Hallo zusammen,
ich bin total neu dabei mit Edomi. Ich habe nun fast alle KNX-Grundfunktionen in meinem Haus umgesetzt und überlege mir nun nach und nach ein paar Logiken.
Dabei wollte ich die Fenstergriff-Stellungen meiner Fenster abfragen und so visualisieren, dass wenn ich das Haus verlasse, dass ich dann daran erinnert werde, wenn irgendwo noch ein Fenstergriff auf der "offen-Position" steht (passiert tatsächlich andauernd).
Vermutlich weil ich keinerlei Erfahrung mit den Logiken von Edomi (bzw. die unendlich vielen LBSen nicht kenne), habe ich nicht geschafft, eine schlanke Logik alleine für den Part des Fenstersensors zu erstellen. Deshalb habe ich gleich mal versucht, einen eigenen LBS dafür zu schreiben.
Anbei der Code, ich habe mich zwar als Entwickler registriert, aber noch keine Rückmeldung erhalten. Da ich aber ausserdem auch komplett neu in php bin, stehen sicherlich einigen von Euch die Haare zu Berge. Deshalb freue ich mich auch über konstruktive Kritik und Verbesserungsvorschläge.
Viele Grüße
Stefan
ich bin total neu dabei mit Edomi. Ich habe nun fast alle KNX-Grundfunktionen in meinem Haus umgesetzt und überlege mir nun nach und nach ein paar Logiken.
Dabei wollte ich die Fenstergriff-Stellungen meiner Fenster abfragen und so visualisieren, dass wenn ich das Haus verlasse, dass ich dann daran erinnert werde, wenn irgendwo noch ein Fenstergriff auf der "offen-Position" steht (passiert tatsächlich andauernd).
Vermutlich weil ich keinerlei Erfahrung mit den Logiken von Edomi (bzw. die unendlich vielen LBSen nicht kenne), habe ich nicht geschafft, eine schlanke Logik alleine für den Part des Fenstersensors zu erstellen. Deshalb habe ich gleich mal versucht, einen eigenen LBS dafür zu schreiben.
Anbei der Code, ich habe mich zwar als Entwickler registriert, aber noch keine Rückmeldung erhalten. Da ich aber ausserdem auch komplett neu in php bin, stehen sicherlich einigen von Euch die Haare zu Berge. Deshalb freue ich mich auch über konstruktive Kritik und Verbesserungsvorschläge.

Code:
[I]###[DEF]###[/I] [name=Eltako FFG7B-rw auswerten] [e[I]#1=Status1 #init=0][/I] [e[I]#2=Status2 #init=0][/I] [e[I]#3=Batteriestatus #init=0][/I] [a[I]#1=][/I] [a[I]#2=][/I] [a[I]#3=][/I] [I]###[/DEF]###[/I] [I]###[HELP]###[/I] Dieser Baustein wertet [B]die[/B] Statusbits des Eltako FFG7B-rw-Fenstersensors aus[B].[/B] Getriggert wird der Baustein, wenn sich E1 oder E2 ändern[B].[/B] E1 = Statusbit 1 E2 = Statusbit 2 E3 = Statusbit Batterie Wenn E1 und E2 = 0, dann wird A1 = 0 und A2 kriegt das Ergebnis "Fenster geschlossen" Wenn E1 und E2 = 1, dann wird A1 = 1 und A2 kriegt das Ergebnis "Fenster geoeffnet" Wenn E1 = 1 und E2 = 0, dann wird A1 = 2 und A2 kriegt das Ergebnis "Fenster gekippt" Wenn E3 = 1 ist, dann kriegt A3 das Ergebnis "Batterie tauschen", ansonsten "Batterie ok" Versionhistorie: 0.1 Initiale Version [I]###[/HELP]###[/I] [I]###[LBS]###[/I] <? [B]function[/B] LB_LBSID($id) { [B]if[/B] ($E=getLogicEingangDataAll($id)) { [I]//Daten aller Eingänge holen[/I] [B]if[/B] ($E[1]['refresh']==1 || $E[2]['refresh']==1) { [I]//neues Telegramm?[/I] [B]if[/B] (($E[1]['value'])==0){ [B]if[/B] ($E[1]['value'] == $E[2]['value']){ setLogicLinkAusgang($id,1,0); setLogicLinkAusgang($id,2,"Fenster geschlossen"); } } [B]if[/B] (($E[1]['value'])==1) { [B]if[/B] ($E[1]['value'] == $E[2]['value']){ setLogicLinkAusgang($id,1,1); setLogicLinkAusgang($id,2,"Fenster geoeffnet"); } [B]else[/B] { setLogicLinkAusgang($id,1,2); setLogicLinkAusgang($id,2,"Fenster gekippt"); } [B]if[/B] (($E[3]['value'])==1) { setLogicLinkAusgang($id,3,"Batterie tauschen"); }[B]else[/B]{ setLogicLinkAusgang($id,3,"Batterie ok"); } } } } } [B]?>[/B] [I]###[/LBS]###[/I] [I]###[EXEC]###[/I] <? [B]?>[/B] [I]###[/EXEC]###[/I]
Stefan
Kommentar