Archiv des Autors: hermann

[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.

[Outlook 2010] Informationsspeicher konnte nicht geöffnet werden

Neulich erhielt jemand beim starten von Outlook die Fehlermeldung „Informationsspeicher konnte nicht geöffnet werden“. Zunächst dachte ich an ein Problem mit dem Postfach selbst, dies konnte jedoch über die Weboberfläche ohne Probleme geöffnet werden.
Ein löschen der ost Datei oder die Reparaturinstallation von Office lösten das Problem ebenfalls nicht.

Die letztendliche Lösung war, das der Kompatibilitätsmodus in der Outlook Verknüpfung aktiviert war. Dieser war zwar auf Windows 7 gestellt, so wie das Betriebssystem selbst, jedoch trat dadurch der beschriebene Fehler auf.

Um den Kompatibilitätsmodus zu deaktivieren müssen über die rechte Maustaste die Eigenschaften der Verknüpfung aufgerufen werden.
Unter dem Reiter Kompatibilität kann der Kompatibilitätsmodus deaktiviert werden.

[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