Schlagwort-Archive: Hausautomation

[openhab] man kommt nach Hause und das Licht geht an

Wenn man im dunkeln nach Hause kommt, ist es manchmal hilfreich wenn das Licht automatisch für eine Gewisse Zeit eingeschaltet wird.

Folgende Regel schaltet das Licht zwischen 23 Uhr und 6 Uhr morgens ein, sofern das Licht noch nicht eingeschaltet ist und die Automatik nicht deaktiviert wurde.

var Timer timerH
rule "Coming home"
when
Item Handy1 received command ON or
Item Handy2 received command ON
then
if (now.getHourOfDay() == 23 && FlurAlle.state == OFF && FlurAutomatik.state == ON || now.getHourOfDay() <= 6 && FlurAlle.state == OFF && FlurAutomatik.state == ON ) { sendCommand(FlurAlle, ON) timerH = createTimer(now.plusSeconds(900)) [ sendCommand(FlurAlle, OFF) ] } end

Die Regel hab ich unter dem Namen homecoming.rules in dem Pfad /home/openhab/configurations/rules abgelegt.

[openhab] Anwesenheitserkennung

Zeitgesteuert das Licht ein und ausschalten können einfache Schaltzeituhren schon seit Jahren. Praktischer und stromsparend ist es jedoch wenn das Licht nur eingeschaltet wird, wenn auch jemand zu Hause ist.

Die Anwesenheitserkennung lässt sich relativ einfach in openhab einrichten, hierfür muss zunächst das Addon org.openhab.binding.networkhealth-1.6.1.jar in dem addons Verzeichniss abgelegt werden. Mit Hilfe des bindings wird der Netzwerkstatus einer URL / IP überprüft.

Um zu prüfen ob sich ein Handy im WLAN befindet, reicht der folgende Eintrag in einer items Datei:

Switch Hermann {nh="android-000029388sjsdjd"}

Wenn sich das Handy im WLAN befindet, wird der Status auf on gesetzt.

Mehrere Handys

Da es in einem Haushalt meistens mehrere Handy gibt, ist es Hilfreich die Handys gesammelt abzufragen. Wenn nun Eins der hinterlegten Handys im WLAN gefunden wird, wird der Anwesenheitsstatus auf On gesetzt.

Für die Abfrage und das setzen des Anwesenheitsstatus gibt es bereits eine sehr gute Anleitung unter https://github.com/openhab/openhab/wiki/Samples-Tricks#check-presence-by-detecting-wifi-phonestablets.

Aktor nur bei Anwesenheit schalten

Die Aktoren sollen nun nur zwischen 16 Uhr und 23 Uhr eingeschaltet werden, jedoch nur wenn jemand zu Hause ist. Gleichzeitig sollte es eine einfach Möglichkeit geben, die automatische Schaltung zu deaktivieren.

Für das deaktivieren der Automatik habe ich den folgenden Switch in einer items Datei angelegt:
Switch FlurAutomatik "Automatik" (flur) {ON,OFF}

Für der schalten der Aktoren nutze ich folgende Regel:

rule Anwesend
when
Time cron "* */5 * * * ?"
then
if (now.getHourOfDay() >= 16 && now.getHourOfDay() <=22 && Presence.state == ON && FlurAutomatik.state == ON || now.getHourOfDay() >= 6 && now.getHourOfDay() <=8 && Presence.state == ON && FlurAutomatik.state == ON) { if(fs203.state == OFF){ sendCommand(fs203, ON) logInfo("PresenceCheck", "LICHT AN" ) } } else { if(fs203.state == ON && FlurAutomatik.state == ON){ sendCommand(fs203, OFF) logInfo("PresenceCheck", "LICHT AUS" ) } } end

Die if Abfrage if(fs203.state == ON/OFF){ wird benötigt, da ansonsten alle 5 Minuten ein f20 Signal abgesetzt wird und es dann dazu kommt das die Signale nicht verarbeitet werden.
In der openhab.log erhält man dann folgende Fehlermeldung:
2015-01-26 21:20:30.093 [WARN ] [o.o.i.t.c.i.AbstractCULHandler] - (LOVF) Limit Overflow: Last message lost. You are using more than 1% transmitting time. Reduce the number of rf messages

FS20 Steckdosen gegen 433 MHz Steckdosen

Die 433 MHz Steckdosen lassen sich über den 433 MHz Sender mit Hilfe des Script einfach schalten und Sie sind günstig in der Anschaffung. Leider musste ich immer wieder feststellen das die Steckdose erst nach mehrfachem schalten über openhab ein beziehungsweise ausgeschaltet wurden.
Mittlerweile musste ich die ein oder andere Steckdose austauschen, da sie auch über die normale Fernbedienung nicht mehr geschaltet werden konnten.

Unter dem Weihnachtsbaum lag das FS20 Starterset mit drei Steckdosen und einer Fernbedienung.
Ich habe nun zwei der 433 MHz Steckdosen gegen FS20 Steckdosen ausgetauscht und muss zugeben, das ich seit dem noch kein Problem hatte das eine Steckdose nicht geschaltet hat.

Leider sind die Steckdosen in der Anschaffung relativ teuer und neben der Steckdose wird zum Beispiel noch eine CUL(www.busware.de) benötigt.
Wenn man jedoch sich eine CUL zugelegt hat, kann darüber auch auf andere Aktoren und Sensoren(Amazon Partnerlink) aus dem FS20 System zugegriffen werden.

FS20 Steckdosen

[openhab] FS20 Fernbedienung und Switch Status Aktualisierung

In dem letzten Artikel hatte ich geschrieben das sich der Status eines F20 Switches in openhab nicht ändert, wenn der Aktor über die FS20 Fernbedienung ein beziehungsweise ausgeschaltet wurde.

In einem Kommentar schrieb Elinoy(Kommentarersteller) das er ebenfalls vor dem Problem stand, hierfür jedoch eine Lösung(Workaround) gefunden hatte.

Ich habe mir seinen Workaround angesehen und dabei den Fehler entdeckt, warum der Status nicht aktualisiert wurde.

Wenn openhab im Debugmodus über /home/openhab/start_debug.sh gestartet wird und eine Taste auf der FS20 Fernbedienung gedrückt wird, erhält man folgend Ausgabe:

21:31:06.930 [DEBUG] [o.o.i.t.c.i.AbstractCULHandler:231 ] - Received raw message from CUL: F1B1B0100E6
21:31:06.936 [DEBUG] [o.o.i.t.c.i.AbstractCULHandler:280 ] - Requesting credit report
21:31:06.942 [DEBUG] [.o.b.fs20.internal.FS20Binding:204 ] - Received FS20 message: F1B1B0100E6
21:31:06.946 [DEBUG] [.o.b.fs20.internal.FS20Binding:224 ] - Received command OFF for device 1B1B01
21:31:06.951 [INFO ] [runtime.busevents :26 ] - weg state updated to OFF
21:31:06.964 [DEBUG] [o.o.i.t.c.i.AbstractCULHandler:231 ] - Received raw message from CUL: 21 900
21:31:06.968 [DEBUG] [o.o.i.t.c.i.AbstractCULHandler:262 ] - credit10ms = 900

Der Aktor wurde mit dem Haus+Geräteadresse wie folgt angesprochen: 1B1B01

Wenn man jedoch die Haus+Geräteadresse aus fhem übernommen hat, wurde sie mit 1b1b01 angegeben.
Über die Haus+Geräteadresse mit kleinem b kann der Aktor über openhab geschaltet werde, jedoch ändert sich der Status nicht wenn die Fernbedienung genutzt wird.

Mit der Angabe 1B1B01 ändert sich der Status wenn der Aktor über die Fernbedienung geschaltet wird.

[openhab] fs20 über cul einbinden

Ursprünglich hatte ich den fs20 Umschalter von ELV über die CUL(busware) in fhem eingebunden. Mittlerweile bin ich auf openhab umgestiegen und nachdem die 433 MHz Steckdosen problemlos geschaltet werden konnten, wurde es Zeit für fs20.

Openhab wird unter dem Benutzer openhab ausgeführt und damit der Benutzer auf die cul (/dev/ttyACM0) zugreifen kann, wurde der Benutzer der Gruppe dialout hinzugefügt.
Fehlt die Gruppenzugehörigkeit, erhält man unter openhab 1.6.1 folgende Fehlermeldung:
22:35:49.756 [ERROR] [.o.b.fs20.internal.FS20Binding:81 ] - Can't open cul device org.openhab.io.transport.cul.CULDeviceException: gnu.io.NoSuchPortException
at org.openhab.io.transport.cul.internal.CULSerialHandlerImpl.openHardware(CULSerialHandlerImpl.java:129) ~[na:na]
at org.openhab.io.transport.cul.internal.AbstractCULHandler.open(AbstractCULHandler.java:148) ~[na:na]

Für die Integration der CUL werden die Addons org.openhab.binding.fs20-1.6.1.jar und org.openhab.io.transport.cul-1.6.1.jar benötigt.
Zusätzlich muss die folgende Zeile in der openhab.cfg hinzugefügt werden.
fs20:device=serial:/dev/ttyACM0

Nun kann in der entsprechenden items Datei der eigentliche Aktor angelegt werden:
Group garten
Switch weg "Wegbeleuchtung" (garten) {fs20="1b1b01"}

Die Hausadresse sowie die Geräte Adresse 1b1b01 hatte ich aus der fhem Konfiguration übernommen.

Das Einzigste was openhab derzeit gegenüber fhem anscheinend noch nicht kann ist, das wenn ein Aktor über eine Fernbedienung aktualisiert wird, der Schaltvorgang von openhab nicht erkannt wird. Leider wird dadurch der Status des Aktors in openhab nicht aktualisiert.

Die cul von busware

Die cul von busware

UPDATE 1. Januar 2015

Der Status des Switches aktualisiert sich in openhab, wenn der Aktor über die FS20 Fernbedienung geschaltet wird. Bitte den Artikel https://www.itbasic.de/openhab-fs20-fernbedienung-und-switch-status-aktualisierung/ beachten.