Synchrones Multiroom mit Kodi und AirAudio

synchronHeute ein Update bzgl. meiner Versuche, die Audioausgabe wie im Artikel Multiroom mit Kodi und AirAudio beschrieben, auf mehrere Lautsprecher zu synchronisieren. Das Wichtigste aber schon mal vorweg:

Die Wiedergabe ist nun absolut synchron auf der Musicbox Air von Canton und dem Kodi-Wohnzimmer PC!

Auch wenn ich es in dem ersten Multiroom-Artikel nur als „nice-to-have“ bezeichnet habe, hat mich das Problem mit der asynchronen Wiedergabe bzw. dem hochwahrscheinlichen Auseinanderdriften doch nicht in Ruhe gelassen.

Synchrones Multiroom

Martin, der Entwickler der App „AirAudio“ hat mich dann von sich aus dankenswerterweise darauf hingewiesen, das die aktuelle Airplay-Implementierung von Kodi keine Audio-Synchronisierung unterstützt. Solange dem so ist, werden alle meine Versuche bzgl. einer synchronen Wiedergabe auf dem mit Kodi-betriebenen Wohnzimmer-PC scheitern – und das unabhängig vom Zuspieler! Also auch die Nutzung von Whaale hätte kein Unterschied gemacht.

Statt der Airplay-Implementierung von Kodi selbst, sollte ich shairplay-sync als AirPlay-Abspieler auf dem Wohnzimmer-PC installieren. Bei shairplay-sync handelt es sich um ein Fork von shairplay. shairplay-sync unterstützt aber zusätzlich die Implementierung der synchronen Audiowiedergabe mittels Airplay.

Für die Installation von shairplay-sync gibt es neben den GIT-Quellen auch ein Paket für verschiedene Linux-Versionen. Da ich beim Wohnzimmer-PC (immer noch) ein Ubuntu 14.04 LTS nutze, konnte ich die Installation mittels PPA durchführen, da hiefür ein Paket bereitgestellt wird. Bei einem Raspberry kann bei der Installation z.B. nach der Anleitung von mikebrady Verfahren werden.

Installation von shairplay-sync

Mit folgendem Befehl werden die von dantheperson bereitgestellten Paketquellen von shairplay-sync im Ubuntu hinzugefügt:

sudo add-apt-repository ppa:dantheperson/shairplay-sync

Das Update der Paketquellen und die eigentliche Installation erfolgt dann wie folgt:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install shairport-sync

Die Konfig-Datei von shairport-sync ist nach erfolgreicher Installation im Verzeichnis etc zu finden. Hier müssen ggf. noch ein paar Anpassungen vorgenommen werden.

sudo vim /etc/shairport-sync.conf

In der Konfig-Datei kann z.B. unter general der Name des „AirPlay-Gerätes“ konfiguriert werden.

Audiogerät und -Ausgang ermitteln

Wichtiger sind aber die Einstellungen unter dem Punkt alsa. Hier muss das Device für die Audioausgabe eingetragen werden. So musste ich z.B. schauen, das der S/PDIF-Ausgang genutzt wird.

alsa =
{
    output_device = "hw:0,1";
    mixer_control_name = "PCM";
    mixer_device = "hw:0";
//  audio_backend_latency_offset = 0;
//  audio_backend_buffer_desired_length = 6615;
};

Die entsprechende Hardware für output_device kann über den Alsamixer herausgefunden werden:

alsamixer

Mit F6 werden alle im System verfügbaren Soundkarten angezeigt. Bei mir ist das HDA Intel mit der Nummer „0“. (Ich denke, das die Grafikkarte „1“ hier auch wegen der möglichen Audioausgabe über HDMI angezeigt wird).

alsa2

Nun fehlt noch der passende Audioausgang. Dazu mit F2 in den im Bild gezeigten Dialog und den Eintrag mit „devices“ auswählen.

alsa3

Im Ergebnis werden alle Audio-Geräte inklusive den vorhandenen Schnittstellen wie S/PDIF oder Klinke ausgegeben. Leider wird dieser Unterschied (zumindest bei mir) nicht in der Übersicht angezeigt.

alsa4

Also heißt es ausprobieren. Es sind ja nur zwei Möglichkeiten geblieben da das eigentliche Gerät mit „0“ ja schon bekannt ist. Bleibt in der shairplay-sync-Konfiguration unter output_device nur noch hw:0,0 oder hw:0,1 zu testen. In meinem Fall war der S/PDIF-Ausgang hw:0,1. Die Mixer-Kontrolle ist unter 6 zu finden und in der Konfiguration entsprechend mit hw:0 anzugeben.

Andere Einstellungen habe ich in der Konfiguration nicht verändert. Evtl. paßt aber auch abhängig von der Hardware schon die Default-EInstellung und es sind keine Änderungen an der Konfiguration von shairplay-sync nötig.

Die nötigen Einstellungen können zum Testen auch direkt beim manuellen Start von shairplay-sync mittels Argument mitgegeben werden. Dazu erstmal ein bereits laufendes shairplay-sync mit folgendem Befehl stoppen:

sudo shairport-sync -k

Folgender Aufruf beinhaltet u.a. die von mir angepaßten Parameter:

sudo shairport-sync -vvv -a "Wohnzimmer" -d hw:0,1 -m hw:0 -c PCM

-v schreibt Debuginformationen zur Analyse von Problemen. -vv oder -vvv gibt mehr Informationen preis.
-a definiert den im AirPlay-Zuspieler angezeigten Namen
-d definiert das Gerät zur Audioausgabe. Hier kann dann mit dem im alsamixer gefundenen Geräten experimentiert werden
-c definiert den zu nutzenden Mixer. Dieser gehört in der Regel zum genutzten Gerät.

Eine komplette Liste aller Parameter von shairport-sync ist in der Hilfe oder in den man-Pages zu finden.

shairport-sync -h
man shairport-sync

Ergebnis

Im Ergebnis bin ich nun sehr zufrieden mit meiner Multiroom-Lösung. Neben den schon im ersten Artikel gut funktionierenden Punkten, kam jetzt das absolut synchrone Abspielen auf mehrere Lautsprecher hinzu. Die ganze Lösung ist immer noch sehr anwenderfreundlich. Fehlt mir jetzt noch ein kleiner portabler AirPlay-Lautsprecher für die Terrasse.

Vielen Dank nochmal an Martin von AirAudio für die sehr gute und schnelle Unterstützung!

 

Gruß
Chris

Multiroom mit Kodi und AirAudio

Multiroom ist ja aktuell in aller Munde. Auch ich wollte mich diesem Trend nicht verschliessen und habe einen „kleinen“ Küchenlautsprecher angeschafft – die Canton Musicbox Air 3 in schickem Hochglanz-Weiß, passend zur Küche. Der Lautsprecher verfügt über WLAN mit Airplay und DLNA-Unterstützung. Vor allem aber hat sie genug Leistung und einen gutem Klang (vielleicht sogar etwas zu viel Wumms für die Küche…).

IMG_8769
Canton Musicbox Air 3

Gut, alleine mit dem Kauf des Canton-Lautsprechers war ich noch weit weg von Multiroom. Irgendwie muß „Multiroom“ in meiner bereits vorhandenen Infrastruktur umgesetzt werden. Diese besteht aus einem mit Kodi betriebenem Wohnzimmer-PC und daran angeschlossenem 5.1 Receiver mit 5 Lautsprechern.

Was bedeutet Multiroom?

Für den einen bedeutet Multiroom die Wiedergabe der gleichen Tonquelle auf beliebig vielen Lautsprechern. Oder aber auch die Wiedergabe verschiedener Quellen auf einzelne Lautsprecher oder auch gruppiert auf unterschiedliche Lautsprecher.

Multiroom ist aber auch die Möglichkeit zur Auswahl der Wiedergabe von einer Tonquelle auf einem bestimmten Lautsprecher. Im ersten Anlauf tendiere ich zu diesem Ansatz, da ich nicht das komplette Haus beschallen muss und mich meistens in einem Raum aufhalte.

Die verschiedenen Hersteller wollen natürlich auch alle ein Stück vom Kuchen den Sonos mit seiner „PLAY“-Reihe angeschnitten hat und beschert dem Markt verschiedenen Mutliroom-Lösungen. Neben Sonos wäre da z.B. Teufel mit seiner Raumfeld-Reihe, Denon mit „HEOS“, Yamaha mit MusiCast und vielen mehr zu nennen.

Da ich im Wohnzimmer mit einem Denon-Receiver und den ELAC-Lautsprechern schon eine vernünftige Basis habe, schied für mich ein neues Komplettset der oben genannten Kandidaten aus. Ausser der Raumfeld-Reihe haben die meisten Multiroom-Sets auch eher „Plastik-Charm“, weshalb ich die ELAC-Lautsprecher bevorzuge.

Bedeutet Multiroom synchrone Musikwiedergabe?

Im Fall der oben beschriebenen Multiroom-Lösungen sollte der Ton schon synchron aus den Lautsprechern kommen. Schliesslich soll damit unter anderem auch 5.1/7.1/usw. umgesetzt werden. Das erledigt bei mir der Denon-Receiver ja schon. Bleibt noch die Synchronität zwischen Lautsprechern die z.B. in verschiedenen Räumen aufgestellt sind. Primär die Räume, die auch „akustisch verbunden“ sind. Das war erstmal nicht mein Ziel, da es mir im ersten Anlauf um die Beschallung des Wohnzimmers oder der Küche basierend auf der Musikdatenbank des Wohnzimmer-PCs geht. Bei Filmen benötige ich den Ton nicht in der Küche oder sonstwo im Haus. Natürlich habe ich mich auch mit dem synchronen Abspielen der Musik beschäftigt aber dazu später mehr.

Mehr lesen

Gaszähler auslesen – Darstellung der Daten

Gaszähler auslesen – Darstellung der Daten

Jedes Jahr im Januar ist es wieder soweit – die Daten des Gaszähler müssen an den Lieferanten übermittelt werden. Dabei ist mir aufgefallen, das meine Darstellung der Daten aus der MySQL-Datenbank noch verbesserungswürdig sind. So hatte ich z.B. nur den Verbrauch der letzten 7 Tage wie im Artikel http://blog.bubux.de/gaszaehler-auslesen/ beschrieben ausgewertet. Da fehlt doch noch eine monatliche und jährliche Übersicht!

Nochmal zur Erinnerung: Ich speichere jede gezählte Umdrehung des Gaszählers als separate Zeile in einer MySQL-Datenbank.

Gaszaehler mySQL Datenbank

Daher müssen die einzelnen Zeilen nach den jeweiligen Kriterien gruppiert und dann das Ergebnis der Spalte „zaehlerstand“ summiert werden. Beim Stromzähler wird hingegen immer der aktuelle Gesamtverbrauch in die Datenbank geschrieben und aus den Datenbankeinträgen für die Tages-, Monats- und Jahresverbräuche die Differenz gebildet um entsprechende Auswertungen zu erzeugen.

Auswertung der letzten 12 Monate

Folgendes SQL-Statement ermittelt aus den einzelnen Datenbankeinträgen die Summe gruppiert nach Jahr und Monat. Dabei werden die letzten 12 Monate mittels „INTERVAL“ betrachtet.

SELECT
     CASE DATE_FORMAT(timestamp,'%m')
          WHEN 1 THEN 'Jan'
          WHEN 2 THEN 'Feb'
          WHEN 3 THEN 'Mär'
          WHEN 4 THEN 'Apr'
          WHEN 5 THEN 'Mai'
          WHEN 6 THEN 'Jun'
          WHEN 7 THEN 'Jul'
          WHEN 8 THEN 'Aug'
          WHEN 9 THEN 'Sep'
          WHEN 10 THEN 'Okt'
          WHEN 11 THEN 'Nov'
          WHEN 12 THEN 'Dez'
     ELSE 'fehler' END as Monat,
     year(timestamp), sum(zaehlerstand)
FROM gaszaehler WHERE year(timestamp) >= YEAR(CURRENT_DATE - INTERVAL 12 MONTH) AND  month(timestamp) >= month(CURRENT_DATE - INTERVAL 12 MONTH)
GROUP BY month(timestamp), year(timestamp) ORDER BY timestamp;

Auswertung der Jahresverbräuche

Fehlt noch der jährliche Verbrauch. Das SQL-Statement ist einfacher aufgebaut als vorheriges und summiert den Verbrauch pro Jahr für alle in der Datenbank enthaltenen Daten an.

SELECT 
     year(timestamp), sum(zaehlerstand) 
FROM gaszaehler
GROUP BY year(timestamp) ORDER BY timestamp;

Im Ergebnis sieht das Ganze dann wie folgt aus. Die Grafik zur Anzeige der Daten der letzten 12 Monate erstelle ich wie in diesem Artikel beschrieben

Gaszaehler Uebersicht

Viel Spaß bei der Kontrolle des Gasverbrauchs 🙂

Gruß

Chris

Arduino als AVR ISP zum Brennen des Bootloader

Arduino als AVR ISP zum Brennen des Bootloader

Erstmal noch ein frohes neues Jahr 2016! Es ist lange nichts mehr passiert hier in diesem Blog. Gründe, oder besser Ausreden dafür fallen mir genug ein. Ein Grund ist der Selbstbau einer Garage im letzten Sommer bzw. Herbst. Das hat mich einiges an Zeit und Nerven gekostet. Jetzt steht aber alles und das Auto im trockenen und somit ist wieder Zeit für andere Dinge. Daher heute etwas zum Thema Arduino und des darin benötigte Bootloader und wie man einen Arduino als AVR ISP zum Brennen des Bootloader nutzt. (ISP: In-System-Programmer).

An einem der letzten Wochenenden habe ich mit zwei Bekannten ein Wortuhr-Bau-Wochenende gemacht. Dabei sind an zwei Tagen 3 Wortuhren entstanden. Nach dem Bestücken der Platinen, dem Erstellen der LED-Matrix und der Verkabelung sollte der Sketch auf den Mikrocontroller geladen werden.

Bei dem Versuch wehrte sich die Arduino IDE allerdings den Sketch auf den Mikrocontroller zu spielen. Grund dafür war ein fehlender Bootloader. Da hatte ich bei der Bestellung der Platinen und der Bauteile wohl das entsprechende Häkchen für einen bereits vorprogrammierten Atmel vergessen.

Warum ein Bootloader?

Der Bootloader auf dem Atmel AVR wird benötigt um den Arduino mittels serieller Schnittstelle einfach mit Programmen (Sketch) z.B. mit der Arduino IDE programmieren zu können. Hierbei übernimmt der Bootloader zwei Dinge:

  1. Der Bootloader versucht beim Start festzustellen, ob ein neuer Sketch vom PC auf den Mikrocontroller geladen werden soll. Ist das der Fall, wird das Programm vom PC auf den Mikrocontroller geladen. Daher wird der Mikrocontroller beim Versuch neuen Code hoch zu laden, vorher immer durch die Arduino IDE resetet.
  2. Wenn nicht mittels PC versucht wird ein Sketch auf den Mikrocontroller zu laden, wird der der bereits installierte Code ausgeführt.

Eine Möglichkeit um den Bootloader auf den Atmel zu laden, ist einen anderen Arduino als Programmer zu nutzen. Da ich noch einen Arduino Nano hier rumliegen hatte, musste der dafür herhalten.

Einen Arduino Nano als AVR ISP (In-System Programmer)

Folgende Schritte sind zu befolgen um den Bootloader auf einen Atmel AVR zu spielen:

1. ArduinoISP-Sketch auf Arduino laden

In der Arduino IDE das Beispiel „ArduinoISP“ öffnen. Eine aktuelle Version ist auch auf GitHub zu finden.

isp1

Den Arduino Nano mittels USB an den Rechner anschliessen und ggf. unter „Werkzeuge->Port“ den entsprechenden Port einstellen. Den geladenen Sketch anschließend mit der „Pfeiltaste“ auf den Arduino Nano laden.

Mehr lesen

Wortuhr Bildschirmschoner – Update 2

Heute nochmal ein kleines Update für den Wortuhr Bildschirmschoner. Bei Geräten mit höheren Auflösungen gab es Probleme mit der Anzeigen der Umlaute. Die Buchstabenmatrix ist aufgrund der hohen Auflösung etwas zusammengeschoben worden, weshalb nicht alles korrekt dargestellt wurde. In den Bildschirmschoner-Einstellungen kann man nun die Schriftgröße und zusätzlich noch die Schriftart anpassen (dazu auf den Text hinter Schriftart klicken).

bildschirmschoner_einstellungen_neu

Download Wortuhr ScreenSaver (v1.1)

Gruß
Chris

Snippet – Daten vom internen Netz zum Strato Webspace

Nach langer Zeit Stillstand im Blog nochmal ein kleines Snippet. Problemstellung war, Daten vom Raspberry aus meinem lokalen Netz auf den Webspace von Strato zu bekommen. Ich wollte die aktuelle Temperatur und Luftfeuchte die meine Homematic-Sensoren regelmäßig in der lokalen Datenbank auf dem Raspberry speichern auch hier im Blog anzeigen.

Nichts leichter als das dachte ich, und richtete eine Datenbankverbindung zur MySQL-Datenbank auf dem Strato-Webspace auf dem Raspberry ein. Leider unterbindet Strato den Zugriff auf die Datenbanken wenn dieser nicht vom Strato-Webspace geschieht. Das ist unschön da ich mir was anderes einfallen lassen musste, aber bzgl. der Sicherheit geht das in Ordnung.

Der nun vorgestellte zweite Ansatz ist eine zweigeteilte Lösung mit einer Komponente auf dem Strato-Webserver (PHP-Script) und einem Aufruf dieses Scriptes auf dem Raspberry mittels Shell-Script etc. oder wie in meinem Beispiel mittels PHP-Script welches regelmäßig per Cron aufgerufen wird. Das ist die simpelste Art eines „Webservices“ ohne REST und SOAP und für meine Zwecke völlig ausreichend.

Serverkomponente

Der PHP-Teil auf dem Webspace sieht folgendermaßen aus: Nach der Prüfung eines übergebenen Hashwertes werden die beiden ebenfalls in der URL übergebenen Messwerte (Außentemperatur und Luftfeuchte) auf Vorhandensein geprüft. Hier können und sollten natürlich noch weitere Prüfungen vorgenommen werden ob diese Werte z.B. numerisch sind etc. Da dieses Script auf dem Webspace liegt und durch jeden aufgerufen werden kann, dient der Hashwert als Passwort für den Aufruf.

Ist mit den übergebenen Argumenten alles in Ordnung, werden die Messwerte mittels Prepared-Statement in die auf dem Strato-Webserver angelegte Datenbank-Tabelle „temperaturfuehler“ gespeichert.

Da ich die Messwerte in einer lokalen Datenbank schon historisiere, wird in der Tabelle im Webspace nur eine Zeile mittels „UPDATE“ aktualisiert. Hier muss darauf geachtet werden, dass mindestens einmal vor dem ersten Update ein „INSERT“ in dieser Tabelle vorgenommen werden muss. Das hatte ich über die MySQL-Admin-Oberfläche von Strato gemacht.

prepare("UPDATE temperaturfuehler SET temperatur=?,luftfeuchte=?");
			$stmt->bind_param("dd",number_format($_GET["temperatur"],1),number_format($_GET["luftfeuchte"],1));
			$stmt->execute();
			$stmt->close();
		} catch (Exception $e) {
			echo 'Fehler: ', $e->getMessage(), "\n";
		}
	}
	
} else {
	//echo "Fehler: Hashwert falsch\n";
}
?>

Hier die im obigen Script eingebundene Datei mit den Einstellungen:

");
define('DB_PASSWORD', "");
define('DB_DATABASE', "");
define('DB_SERVER', "");
define('HASHWERT', "");
?>

Lokale Komponente

Jetzt zu dem Teil der auf dem Raspberry lokal läuft. Hier wird obiges Script einfach z.B. per GET aus einem weiteren PHP- oder Shell-Script etc. mit den entsprechenden Argumenten aufgerufen. Wichtig ist, dass die Namen der übergebenen Argumente mit denen aus dem insert.php Script übereinstimmen.

exec("GET \"http://www.deine_url.de/beliebiger_pfad/insert.php?temperatur=$temp&luftfeuchte=$luft&hashwert=der_hashwert_der_beim_get_uebergeben_werden_muss\"");

Obiges Script und der Aufruf können natürlich um beliebig viele Übergabeparameter erweitert werden. Die so an die Strato-Datenbank übergebenen Werte können dann z.B. im WordPress mittels PHP-Plugin aus der Datenbank abgefragt und angezeigt werden. Hier im Blog ist das oben rechts zu sehen.

temperatur

Gruß
Chris

Eclipse Uhr auf Basis der Liqiud-Clock

Neben den Wortuhren wollte ich auch mal eine Uhr bauen, die auf Basis von Christians Liquid-Clock basiert. Die Neopixel habe ich als 5m Rolle in der Bucht gekauft. Als Steuerplatine benutze ich das BBRTCAD von Christian.

Das BBRTCAD ist schnell aufgebaut. Wirklich etwas fisselig ist der Anschluss des Elkos und der Anschlusskabel an den LED-Stripe. Das ist aber etwas abhängig von der Größe der Anschluss-Pads des LED-Stripes die bei mir ziemlich winzig waren. Ich habe dann noch, anders wie in der Anleitung, nur einen Elko benutzt und den Stripe zu einem geschlossenen Ring zusammen gelötet. Das funktioniert auch tadellos anstelle der Nutzung von zwei Elkos wie in Christian´s Anleitung beschrieben. Der LED-Stripe und die Steuerplatine wurden dann auf einer rund ausgefräßten Leimholzplatte (~15mm Stärke) mit den entsprechenden Ausfräsungen für die Elektronik montiert. Nett ist, das der LED-Stripe mit doppelseitigem Klebeband daher kommt, was das Montieren des Stripes sehr einfach macht.

Die sichtbare Platte ist eine schwarze Acrylplatte von Evonik. Diese ist einigermaßen streuend und schön schwarz wo sie auf der Holplatte aufliegt. Befestigt ist die Acrylplatte mit doppelseitigem Klebeband. Das hält bombenfest und ich hatte echte Schwierigkeiten es nochmal ab zu bekommen weil ich die Platte im ersten Versuch etwas verdreht aufgesetzt hatte. Da ich vor dem Aufkleben leider keine Fotos gemacht hatte, gibt es daher auch keine weiteren Bilder vom Innenleben der Grundplatte.

In der Firmware habe ich alle der 60 Leds die aktuell nicht für die Anzeige von Stunde (blau), Minute (grün) und Sekunde (rot) benötigt werden, auf „Dauer an“ (weiß)  gesetzt. Das gibt einen schönen Korona-Effekt. Daher auch „Eclipse Uhr“. Dieser Effekt könnte allerdings noch etwas diffuser sein. Ich habe aktuell nur keinen weißen durchlässigen Schaumstoff zur Hand mit dem man das erreichen könnte. Sobald ich was passenden gefunden habe wird ein Bild nachgereicht.

Die fertige Uhr schaut dann im Dunkeln fotografiert so aus:

eklipse_liquid_clock
Eclipse Uhr

 

Gruß

Chris

GNU Terry Pratchett

Ein Arbeitskollege hat mich auf den XClacks-Overhead„-Header aufmerksam gemacht. Im Jahr 2004 erschien der Scheibenwelt-Roman „Going Postal“ von Terry Pratchett. In dem Buch schreibt Pratchett über „the clacks“, eine Reihe von Türmen mit Lichtsignalen welche dem Scheibenwelt-Pendent zu einem Telegraphensystem entsprechen. Quasi der Vorgänger des Internets.

„A man is not dead while his name is still spoken.“
Going Postal, Chapter 4 prologue

Innerhalb dieses Systems gab es eine Tradition, das wenn ein Bediener einer dieser Türme bei seiner Arbeit stirbt, sein Name entlang der Türme auf und ab in einer Endlosschleife gesendet wird.

His name, however, continues to be sent in the so-called Overhead of the clacks. The full message is “GNU John Dearheart”, where the G means, that the message should be passed on, the N means “Not Logged” and the U that it should be turned around at the end of the line. So as the name “John Dearheart” keeps going up and down the line, this tradition applies a kind of immortality as “a man is not dead while his name is still spoken”

640px-10.12.12TerryPratchettByLuigiNovi1
Terry Pratchett by Luigi Novi. Licensed under Wikimedia Commons

Zum Andenken an Sir Terry Pratchett, der leider am 12. März 2015 verstorben ist, haben reddit-Benutzer den X-Clacks-Overhead-Header entwickelt. Dieser Header kann in verschiedene Protokolle eingebettet werden. Eine ausführliche Erklärung und eine Liste zur Integration des Headers in verschiedene Webserver, Mailserver, unterschiedliche Scriptsprachen etc. sind unclackster www.gnuterrypratchett.com zu finden. Ganz nett ist z.B. auch das Firefox-Add-On, welches im Browser signalisiert, ob eine Webseite den Header sendet.

 

 

Dieser Blog sendet ab sofort auch den „X-Clocks-Overhead“-Header mittels des WordPress-Plugins. Der „X-Clacks-Overhead„-Header ist, wie ich finde, eine sehr schöne Möglichkeit einen Teil von Terry Pratchett im Internet weiter leben zu lassen.

gnu_pratchett_header

Gruß Chris

Raspberry PI 24/7 operation – Update

Nach den Anpassungen für den Neustart des Netzwerkinterfaces wie in Artikel „Stabiler 24/7 Betrieb des Raspberry“ beschrieben, läuft der Minirechner heute genau seit 100 Tagen. Sehr gut!

After the adjustments to restart the network interface as described in post „Stabiler 24/7 Betrieb des Raspberry„, the Raspberry PI runs just fine for 100 days now. Very good!

Raspberry Pi Uptime

Chris

c´t Schlagseite 8/2015

Eben lag die neue c´t im Briefkasten. Die Schlagseite ist mal wieder wunderbar und paßt gut zu den Themen in diesem Blog.

Über Sinn und Unsinn bei der Heimautomatisierung kann man ja vortrefflich diskutieren. Wenn für das Aufwecken des Tablet/Handy, dem Öffnen der App oder Intranet-Seite und anschliessendem Klick auf „Licht Wohnzimmer an“ mehr Zeit benötigt wird als den Lichtschalter an der Wand zu betätigen, ist man meistens schon am Ziel der (intelligenten) Hausautomation vorbei geschossen…