Haustierbesitzer (vor allem Hundebesitzer) wissen wovon ich rede. Man ist verabredet und lässt das liebe Tier zu Hause. Damit der oder die Kleine auch im Dunkeln keine Angst bekommt, lässt man ein Licht an – Im Zweifel auch schon, wenn es noch hell ist. Das Dilemma muss doch mit OpenHAB zu lösen sein – und ist es natürlich auch! In meinem Fall gibt es einen einfachen An/Aus Schalter in meiner Sitemap, der definiert, ob der Hund zu Hause ist. Eine Regel prüft, ob der Schalter an ist und schaltet dann bei Sonnenuntergang die vorher definierten Lichtquellen an. In 3 einfachen Schritten bringst du deinem Smarthome die „Hunde im Haus“ Funktion bei.
1 |
Switch Hunde "Hunde im Haus" |
Zuerst legst du in deiner .items Datei einen Dummy Switch an.
1 2 3 4 |
Frame label="Sonstige Einstellungen" { Switch item=Hunde icon="smiley" } |
In der Sitemap habe ich ein eigenes Frame mit sonstigen Einstellungen angelegt, da ich diese Funktion nicht sehr oft benötige. Hier legst du den Switch mit dem Item an. Jetzt geht es schon an die Regel.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
rule "Hunde anwesend" when Channel 'astro:sun:37f6fe1d:set#event' triggered START then if (Hunde.state ==ON) { sendCommand(Licht_EG_Essen_Bild, ON) Thread::sleep(500) sendCommand(Licht_UG_Flur_Treppe, ON) } end |
Ich persönlich habe gerne mehrere Dateien mit wenigen Regeln. Also habe ich ich eine awesenheit.rules angelegt, in der unter anderem meine Regeln zur generellen Anwesenheitssteuerung abgelegt sind. In unserem Fall legen wir die Regel „Hunde anwesend“ an.
Als „when“ Bedingung ziehen wir das Astro Binding heran. passen wir den Trigger „Sonnenuntergang“ ab. Sobald der Sonnenuntergang startet wird geprüft, ob der Schalter „Hunde“ angeschaltet ist (Hunde.state ==ON). Ist die Aussage wahr werden entsprechend die angegebenen Lichter angeschaltet. In meinem Fall ein Licht im EG und ein Licht im UG. Um den KNX Bus nicht zu überfordern 😉 wird zwischen den Schaltvorgängen 500Millisekunden pausiert.
Das war es schon. Ab sofort müssen die lieben Haustiere nie wieder auf Licht am Abend verzichten.
Wenn du jetzt noch möchtest, dass der Status des Schalters bei einem Neustart von openHAB wiederhergestellt wird, musst du das entsprechend in der persistence hinterlegen. In meinem Fall eine rrd4j Datenbank. Davon ausgehend, dass die Datenbank schon grundsätzlich eingerichtet ist, musst du in deiner. persist Datei folgenden Code ergänzen:
1 |
Hunde : strategy = everyChange, restoreOnStartup |
Jetzt wird jede Änderung des Schalterstatus geändert und gespeichert. Bei einem Neustart wird der letzte bekannte Status wiederherstellt.
Hinterlasse einen Kommentar