Snippet – FHEM mit PHP über Telnet abfragen

Für alle die den Status Ihrer Homemmatic-Geräte anstelle der FHEM-Webseite in einer eigenen Webseite darstellen wollen, gibt es diesmal einen einfachen Schnippsel PHP-Code um den Status eines Homematic-Fensterkontaktes hm-sec-sc per Telnet abzufragen.
Hierfür bietet sich das list-Kommando von FHEM an. Die Syntax ist sehr einfach:

list [devspec] [value]

Wobei [devspec] der Name des Homematic-Gerätes ist, wie es in der FHEM-Einstellungen konfiguriert ist. Für [value] wird STATE als eines der Attribute des Fensterkontaktes abgefragt. STATE gibt neben dem Gerätenamen den aktuellen Zustand closed oder open aus.

Folgendes Script setzt ein entsprechendes Telnet-Kommando ab und parst das Ergebnis:

[cclN_php]
//Hostname und Telnet-Port des FHEM-Servers
$fhemhost = “localhost”;
$fhemport = 7072;

//Socket öffnen
$fhemsock = fsockopen($fhemhost, $fhemport, $errno, $errstr, 30);
//FHEM Kommando definieren (Name des Homematic-Gerätes eintragen)
$fhemcmd = “list STATE\r\nquit\r\n”;
fwrite($fhemsock, $fhemcmd);
while(!feof($fhemsock)) {
$ergebnis=fgets($fhemsock, 128);
$zustand=explode(‘ ‘,$ergebnis);
switch (trim($zustand[1])) {
case “closed”:
$zustand=”geschlossen”;
break;
case “open”:
$zustand=”offen”;
break;
default:
$zustand=$ergebnis[1];
break;
}
if ($ergebnis[1]!=””) {
print “:”.$zustand;
}
}
[/cclN_php]

In einer Webseite kann das dann z.B. folgendermaßen implementiert werden:

fenstersensoren

Ich lasse dann auch jeden Abend um 21 Uhr per Cron-Script prüfen ob alle Fenster geschlossen sind. Wenn nicht, wird eine Mail versendet.

Viel Spaß mit den Schnippsel
Chris

Wortuhr Bildschirmschoner

Vor dem Bau meiner ersten Wortuhr hatte ich das Prinzip der Uhr als Bildschirmschoner programmiert. Den alten Code habe ich nun nochmal rausgekramt und etwas abgeändert. Vorlage für das neue “Ziffernblatt” war die Wortuhr aus der c`t Hardware Hacks. Diese Version hat keine Minutenanzeige und keine Fünfminutenschritte wie in der Hardware-Version. Dafür aber die Worte “genau”, “gerade”, “gleich” und “kurz”. Die Uhr ist somit im Minutenbereich ein Schätzeisen 🙂

wortuhr_screenshot

Der Bildschirmschoner läuft mindestens unter den Windows-Versionen Win XP, Win7 und Win8 mit installiertem .NET 4 Framework. Die Datei muss in den Ordner /Windows/System32/ kopiert werden oder rechte Maustaste -> Installieren. Danach erscheint er in der Bildschirmschonerauswahl.

Wortuhr ScreenSaver

Bei Fehlern und für Anregungen schreibt mir einfach. Viel Spaß damit!

Chris