ich habe hier schon etliche Threads gelesen, aber ich bekomme es nicht hin.
System: OH3 auf RPi4 mit Mosquitto
Problem 1: Status WLAN-Schalter aktualisieren
Ich habe folgende mqtt.things:
Code: Alles auswählen
Bridge mqtt:broker:mosquitto [ host="x.x.x.x", secure=false, clientID="openhab" ]{
Thing topic wlan_schalter {
Channels:
Type switch : Steckdose_1 "Steckdose 1" [ stateTopic="stat/Steckdose_1/POWER",transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/Steckdose_1/POWER", on="1", off="0" ]
}
Code: Alles auswählen
Switch Steckdose_1 "Steckdose 1" ["Switchable"] { channel="mqtt:topic:mosquitto:wlan_schalter:Steckdose_1" }
Ich hatte ursprünglich in der Channeldefinition jeweils "power" stehen. Udo1toni hat es in einem Beitrag in Großbuchstaben gesetzt (so erscheint es ja auch in der Tasmotakonsole). Nach dieser Änderung erhalte ich im openhab.log bei jedem Schaltvorgang
Code: Alles auswählen
Executing the JSONPATH-transformation failed: Invalid path '$.POWER' in 'ON'
Code: Alles auswählen
Executing the JSONPATH-transformation failed: Invalid path '$.POWER' in 'OFF'
In der Sitemap wird der Switchstatus trotzdem nicht geändert
Problem 2: SONOFF-Bridge auslesen
Ich habe eine RF-SONOFF-Bridge als Generic MQTT Thing angelegt.
Code: Alles auswählen
Thing topic rf_bridge {
Channels:
Type string : rf_data [stateTopic="tele/rf_bridge/RESULT",transformationPattern="JSONPATH:$.RfReceived.Data"]
Code: Alles auswählen
tele/rf_bridge/RESULT = {"Time":"2021-03-14T17:08:27","RfReceived":{"Sync":12400,"Low":340,"High":1140,"Data":"D79129","RfKey":"None"}}
Code: Alles auswählen
String RFBridge "RFBridge Daten [%s]" {channel="mqtt:topic:mosquitto:rf_bridge:rf_data"}
Code: Alles auswählen
rule "sonoffRF"
when
Item RFBridge received update
then
if (RFBridge.state == NULL) {
logInfo("RfBridge.rules", "Item is null, cancelling...")
return;
}
val sonoff_rfdata = RFBridge.state.toString
logInfo("rfbridge.rules", "Received IT Codes: {}", sonoff_rfdata)
end
Freue mich über jeden Hinweis