Zunächst hatte ich ESPEasy drauf geflasht, weil ich dachte, es wäre mächtiger und böte mir damit mehr Möglichkeiten. Die Anbindung des RF-Chips auf der Bridge ist damit aber nicht möglich, also wurde sie wieder umgeflasht auf Tasmota. Bei openHAB war die Einbindung der bestehenden Homematic Rolladenaktoren und 2er Funktaster dazu ein Kinderspiel (alles über PaperUI). Für Sonoff muss zunächst der Message-Broker Mosquitto installiert werden. Für diesen ist es unbedingt empfehlenswert auch einen Monitor (z.B. MQTT.fx) zu installieren. Danach konnte ich sehen, was die Bridge so von sich gibt. Die Befehle und Antworten sind zwar im Tasmota-Wiki ausführlich beschrieben aber gerade der Pfad, der ja noch konfiguriert werden kann, hat mich eine Weile beschäftigt. Als die Konfiguration der Bridge gepasst hat, ging es an die Einbindung in openHAB (darum soll es hier vornehmlich gehen). Für den Test habe ich mir eine Diagnose-Konfiguration angelegt. In dieser sind auch zwei Items zum senden und empfangen über Mosquitto enthalten.
diagnostic.items:
Code: Alles auswählen
DateTime Datum "Datum und Zeit [%1$tA, %1$td.%1$tm.%1$tY %1$tT]" {channel="ntp:ntp:local:dateTime"}
Switch MQTT_Test "Testing" {mqtt="<[mosquitto:testing/mqtt/Test:state:default], >[mosquitto:testing/mqtt/Test:command:*:default]"}
String MQTT_String "String" <switch> {mqtt="<[mosquitto:testing/mqtt/String:state:default]"}
String RFBridge1_Reachable "RFBrigde1 [%s]" <switch> {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/LWT:state:default]"}
String RFBridge1_STATE "State" <switch> {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/STATE:state:default]"}
// Switch RFBridge1_Power "Power" <switch> {mqtt="<[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:JSONPATH($.POWER):.*POWER.*], >[mosquitto:openHAB1_RFBridge1/cmnd/POWER:command:ON:ON], >[mosquitto:openHAB1_RFBridge1/cmnd/POWER:command:OFF:OFF]", autoupdate="false"} //
Number RfBridge1_RSSI "RSSI [%d %%]" <network> {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/STATE:state:JSONPATH($.Wifi.RSSI)]:.*\"RSSI\".*"}
String RfBridge1_Uptime "Uptime [%s]" <time> {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/STATE:state:JSONPATH($.Uptime):.*\"Uptime\".*], <[mosquitto:openHAB1_RFBridge1/tele/UPTIME:state:JSONPATH($.Uptime):.*\"Uptime\".*]"}
String RfBridge1_RfSync "Sync [%s]" {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:JSONPATH($.RfReceived.Sync):.*\"RfReceived\".*]"}
String RfBridge1_RfLow "Low [%s]" {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:JSONPATH($.RfReceived.Low):.*\"RfReceived\".*]"}
String RfBridge1_RfHigh "High [%s]" {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:JSONPATH($.RfReceived.High):.*\"RfReceived\".*]"}
String RfBridge1_RfData "Data [#%s]" {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:JSONPATH($.RfReceived.Data):.*\"RfReceived\".*]"}
String RfBridge1_RfKey "RfKey [%s]" {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:JSONPATH($.RfReceived.RfKey):.*\"RfReceived\".*]"}
Code: Alles auswählen
sitemap diagnostic label="Diagnose" {
Frame label="Datum / Zeit" {
Text item=Datum
}
Frame label="MQTT Test"{
Default item=MQTT_Test
Default item=MQTT_String
}
Frame label="RFBridge1"{
Text item=RFBridge1_Reachable
Default item=RFBridge1_Power
Default item=RfBridge1_RSSI
Default item=RfBridge1_Uptime
Default item=RfBridge1_RfSync
Default item=RfBridge1_RfLow
Default item=RfBridge1_RfHigh
Default item=RfBridge1_RfData
Default item=RfBridge1_RfKey
}
}
Code: Alles auswählen
...
Switch Garden_Gartenhaus_Light "Licht Gartenhaus" <light> (Garden, gLight) {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:OFF:.*\"RfReceived\".*\"550114\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:OFF:.*\"RfCode\".*\"#550114\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:OFF:#550114], <[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:ON:.*\"RfReceived\".*\"550115\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:ON:.*\"RfCode\".*\"#550115\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:ON:#550115]", autoupdate="false"}
Switch Garden_Gabbione_Light "Licht Gabbione" <light> (Garden, gLight, Garden_Spots_Light) {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:OFF:.*\"RfReceived\".*\"554114\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:OFF:.*\"RfCode\".*\"#554114\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:OFF:#554114], <[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:ON:.*\"RfReceived\".*\"554115\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:ON:.*\"RfCode\".*\"#554115\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:ON:#554115]", autoupdate="false"}
Switch Garden_Baum_Light "Licht Baum" <light> (Garden, gLight, Garden_Spots_Light) {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:OFF:.*\"RfReceived\".*\"551114\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:OFF:.*\"RfCode\".*\"#551114\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:OFF:#551114], <[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:ON:.*\"RfReceived\".*\"551115\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:ON:.*\"RfCode\".*\"#551115\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:ON:#551115]", autoupdate="false"}
Switch Garden_Zaun_Light "Licht Zaun" <light> (Garden, gLight, Garden_Spots_Light) {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:OFF:.*\"RfReceived\".*\"550514\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:OFF:.*\"RfCode\".*\"#550514\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:OFF:#550514], <[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:ON:.*\"RfReceived\".*\"550515\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:ON:.*\"RfCode\".*\"#550515\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:ON:#550515]", autoupdate="false"}
Switch Garden_Weihnachtsbaum_Light "Licht Weihnachtsbaum" <light> (Garden, gLight) {mqtt="<[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:OFF:.*\"RfReceived\".*\"555114\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:OFF:.*\"RfCode\".*\"#555114\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:OFF:#555114], <[mosquitto:openHAB1_RFBridge1/tele/RESULT:state:ON:.*\"RfReceived\".*\"555115\".*], <[mosquitto:openHAB1_RFBridge1/stat/RESULT:state:ON:.*\"RfCode\".*\"#555115\".*], >[mosquitto:openHAB1_RFBridge1/cmnd/RfCode:command:ON:#555115]", autoupdate="false"}
...
Code: Alles auswählen
...
Frame label="Außenanlagen" icon="garden" {
Default item=Garden_Gartenhaus_Light
Default item=Garden_Gabbione_Light
Default item=Garden_Baum_Light
Default item=Garden_Zaun_Light
Default item=Garden_Weihnachtsbaum_Light
}
...
Items:
Code: Alles auswählen
...
Switch item=Garden_Spots_Light label="Garten Strahler"
...
Code: Alles auswählen
...
Group:Switch:OR(ON, OFF) Garden_Spots_Light "Licht Strahler" <light> (Garden, gLight)
...
Wenn ich jetzt allerdings die Gruppe über das BasicUI einschalte, wird nur einer der Strahler angehen aber die restlichen auch als angeschaltet angezeigt, weil die Bridge die Daten zu schnell verarbeitet und der RF-Chip diese nicht schnell genug senden kann. Bisher habe ich keine Möglichkeit gefunden, das ohne Rule umzusetzen.
Was mir noch aufgefallen ist: Die blaue LED, die bei der Bridge die WLAN-Verbindung anzeigt, ist in Tasmota falsch konfiguriert. In ESPEasy hat sie noch geleuchtet, in Tasmota blinkt sie nur beim Start kurz auf.