Schlagwort-Archive: openhab

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.

[openhab] Onewire Sensoren einbinden

In dem ein oder anderen Zimmer befindet sich ein Onewire Sensor um die Temperatur zu messen, die gemessene Temperatur soll nun im openhab dargestellt werden.

Für das auslesen habe ich das Shellscript onewiretemp.sh erstellt:

#!/bin/bash
wert=`cat /sys/bus/w1/devices/$1/w1_slave | tail -n1 | cut -d '=' -f2`
wert2=`echo "scale=3; $wert/1000" | bc`
echo $wert2

Das Script liegt unter /home/openhab/bin und beim Aufruf muss die Sensor ID mit angegeben werden.

./onewiretemp.sh Sensor Id
Die gemessene Temperatur wird dann wie folgt ausgegeben 20,745.

Die Abfragen der einzelnen Sensoren habe ich in einer items Datei zusammengefasst.

Group temperatur

Number Temperature_Flur "Temperatur Flur [%.1f °C]" (flur,temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b92eb4:60000:REGEX((.*?))]" } Number Temperature_Pia "Temperatur Pia [%.1f °C]" (temperatur) { exec="<[/home/openhab/bin/onewiretemp.sh 28-000004b91510:60000:REGEX((.*?))]" }

Damit die Ausgabe an mehreren Stellen in der Sitemap erfolgt, können bei der jeweiligen Abfrage mehrere Gruppen angegeben werden.

Hier noch ein Auszug aus der sitemap:

Frame label="Temperatur"{
Group label="Temperatur" icon="house" item=temperatur
}

ob-onewire1

ob-onewire2

Wie die Onewire Sensoren mit dem Raspberry Pi verbunden werden, habe ich in dem Artikel beschrieben.

[openhab] 433 MHz Steckdosen über eine Gruppe schalten

Manchmal ist es hilfreich wenn man alle Steckdosen auf einmal an oder ausschalten kann, zum Beispiel für die Anwesenheitserkennung.

Für das schalten habe ich in der /home/openhab/configurations/items/flur.items einen neuen Schalter angelegt.

Switch FlurAlle "Alle" (flur) {OFF,ON}

Da über den 433MHz Sender die verschiedenen Schaltcodes nicht gleichzeitig gesendet werden können, habe ich eine Regel erstellt um die einzelnen Steckdosen mit einer kleinen Verzögerung zu schalten.

Inhalt der /home/openhab/configurations/rules/flur.rules:
rule FlurAlleOn
when
Item FlurAlle received command ON
then
sendCommand(Treppe, ON)
timer = createTimer(now.plusSeconds(2)) [
sendCommand(Telefon, ON)
]
end

rule FlurAlleOff
when
Item FlurAlle received command OFF
then
sendCommand(Treppe, OFF)
timer = createTimer(now.plusSeconds(2)) [
sendCommand(Telefon, OFF)
]
end