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
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 “
}
}
[/cclN_php]
In einer Webseite kann das dann z.B. folgendermaßen implementiert werden:
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