Seite 1 von 1
Openhab 3 MQTT Action Probleme
Verfasst: 29. Dez 2020 11:58
von mhbosch
Hallo,
ich teste gerade Openhab 3 und bekomme meine MQTT Wandschalter nicht eingebunden. Der Channel wird nicht mehr als Triggerin Item erkannt und die Rule (Python) nicht erstellt. Also dachte ich mir, mache ich ein Group Member und ein Item dazu.
Aber ich bekomme, weder in der Textdatei (die ich bevorzuge), noch über die Oberfläche, den Wert der Action in ein Item.
Mein Thing
Code: Alles auswählen
Thing topic EG_Livingroom_Wallswitch "Wandschalter Wohnzimmer" @ "Wohnzimmer" {
Channels:
Type string : action "Action" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JSONPATH:$.action", retained=true]
//Type string : action "Action" [ stateTopic="zigbee2mqtt/Wandschalter", trigger="true", retained=true]
Type number : voltage "Voltage" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JS:getZigbeeVinV.js"]
Type number : battery "Battery" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JSONPATH:$.battery"]
Type number : linkquality "LinkQuality" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JSONPATH:$.linkquality"]
}
Und so sieht das Item aus.
Code: Alles auswählen
String EG_Livingroom_Wallswitch_Button "Wandschalter Wohnzimmer [%s]" <wallswitch> (EG_LivingRoom, gZigbee, gWandschalter) ["WallSwitch"] {channel="mqtt:topic:boschhome:EG_Livingroom_Wallswitch:action"[profile="JSONPATH:$.action"]}
Im Log kommt aber nur:
Code: Alles auswählen
[openhab.event.ChannelTriggeredEvent ] - mqtt:topic:boschhome:EG_Livingroom_Wallswitch:action triggered button_6_single
Es wird kein Item oder Member aktualisiert.
Sieht jemand den Fehler?
Re: Openhab 3 MQTT Action Probleme
Verfasst: 29. Dez 2020 15:04
von peter-pan
..ich habe leider keine ZigbeeGeräte im Einsatz, aber braucht man zum Schalten nicht ein Switch-Item und ein Command-Topic im dazugehörigen Thing ?
Hier mal zum Vergleich ein Sonoff(POW)-Schalter von mir.
Thing:
Code: Alles auswählen
// Sonoff POW Switches (pow 1 + pow 2)
Thing topic pow02 "Sonoff Pow 02 Stehlampe Wohnzimmer" @ "MQTT2" {
Channels:
Type switch : power "Power" [ stateTopic="stat/pow_02/POWER", commandTopic="cmnd/pow_02/POWER" ]
Type number : rssi "WiFi Signal Strength" [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
Type string : version "Firmware Version " [ stateTopic="stat/pow_02/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Version"]
Type switch : reachable "Reachable" [ stateTopic="tele/pow_02/LWT",transformationPattern="MAP:reachable.map" ]
Type number : powerload "Power load" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Power"]
Type number : voltage "Line voltage" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Voltage"]
Type number : current "Line current" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Current"]
Type number : total "Total energy " [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Total"]
Type number : totalday "Total energy today" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Today"]
Type number : totalyest "Total energy yesterday" [ stateTopic="tele/pow_02/SENSOR", transformationPattern="JSONPATH:$.ENERGY.Yesterday"]
Type string : ssid "WiFi" [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
Type datetime : time "Time" [ stateTopic="tele/pow_02/STATE", transformationPattern="JSONPATH:$.Time"]
Type string : hardware "Chip Set " [ stateTopic="stat/pow_02/STATUS2", transformationPattern="JSONPATH:$.StatusFWR.Hardware"]
Type string : ipaddress "IP Address " [ stateTopic="stat/pow_02/STATUS5", transformationPattern="JSONPATH:$.StatusNET.IPAddress"]
Type number : powerdelta "Power-Delta" [ stateTopic="tele/pow_02/MARGINS", transformationPattern="JSONPATH:$.MARGINS.PowerDelta"]
}
.items dazu:
Code: Alles auswählen
Switch Sonoff_Pow_02 "Stehlampe [MAP(de.map):%s]" <standard_lamp> (gEG_Wohnen,gT_OnOff,gLight) { channel="mqtt:topic:hans:pow02:power"}
// Beispiel mit Profile
//Switch Sonoff_Pow_02 "Stehlampe [MAP(de.map):%s]" <standard_lamp> (gEG_Wohnen,gT_OnOff,gLight) { channel="mqtt:topic:hans:pow02:power"[profile="follow", profile-parameterID="Sonoff_Basic_03"]}
Number Sonoff_Pow_02_RSSI "Stehlampe RSSI [%s]" <qualityofservice> (gEG_Wohnen,gRSSI) { channel="mqtt:topic:hans:pow02:rssi" }
String Sonoff_Pow_02_Version "Stehlampe Version [%s]" <sonoff_pow> (gTasmo,gVer) { channel="mqtt:topic:hans:pow02:version" }
Switch Sonoff_Pow_02_Unreach "Stehlampe Ereichbarkeit [%s]" <siren1> (gEG_Wohnen,gLWT) { channel="mqtt:topic:hans:pow02:reachable" }
String Sonoff_Pow_02_Hardware "Stehlampe Hardware [%s]" <sonoff_pow> (gTasmo,gHard) { channel="mqtt:topic:hans:pow02:hardware" }
String Sonoff_Pow_02_IPAddress "Stehlampe IP-Address [%s]" <sonoff_pow> (gTasmo,gIpAd) { channel="mqtt:topic:hans:pow02:ipaddress" }
Number Sonoff_Pow_02_Verbrauch "Stehlampe Verbrauch Total[%.2f kWh]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:total" }
//* For Fun and Test
Number Sonoff_Pow_02_VerbrauchHeute "Stehlampe Verbrauch Heute[%.2f kWh]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:totalday" }
Number Sonoff_Pow_02_VerbrauchGestern "Stehlampe Verbrauch Gestern[%.2f kWh]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:totalyest" }
Number Sonoff_Pow_02_Strom "Stehlampe Stromaufnahme [%.2f A]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:current" }
Number Sonoff_Pow_02_Spannung "Stehlampe Spannung[%.2f Volt]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:voltage" }
Number Sonoff_Pow_02_Leisung "Stehlampe Leistung[%.2f W]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:powerload" }
String Sonoff_Pow_02_SSID "Stehlampe Wlan [%s]" <standard_lamp> (gTasmo,gSSId) { channel="mqtt:topic:hans:pow02:ssid" }
DateTime Sonoff_Pow_02_Date "Stehlampe Refresh [%1$tH:%1$tM]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:time" }
Number Sonoff_Pow_02_PowerDelta "Stehlampe Power-Delta [%.2f W]" <standard_lamp> (gTasmo) { channel="mqtt:topic:hans:pow02:powerdelta" }
Vielleicht kannst du damit was anfangen ?!
Re: Openhab 3 MQTT Action Probleme
Verfasst: 2. Jan 2021 19:26
von mhbosch
Hallo Peter Pan,
leider hilft es mir nicht, da zwar ITEMS enthalten sind, aber kein Trigger Channel.
Ich schalte das Gerät ja nicht, sondern empfange vom Wandschalter nur den gedrückten Knopf.
Vermutlich muss ich in OH3 ein ITEM erstellen und dies bei "Change" abfragen.
Danke für dein Rückmeldung und ein gesundes und gutes 2021
Re: Openhab 3 MQTT Action Probleme
Verfasst: 2. Jan 2021 19:54
von udo1toni
Also, zum Ausprobieren könntest Du zunächst mal das transformationPattern im Channel entfernen.
retained=true ist übrigens eher suboptimal, damit bekommst Du jedes Mal, wenn openHAB online geht, den zuletzt empfangenen Tastendruck zugesendet, gleich, wie lange dieser Tastendruck her ist.
Re: Openhab 3 MQTT Action Probleme
Verfasst: 2. Jan 2021 20:59
von mhbosch
Hallo udo1toni,
das hat leider auch nicht geholfen.
Code: Alles auswählen
2021-01-02 20:57:13.379 [INFO ] [ab.core.service.AbstractWatchService] - Loading script '/etc/openhab/automation/jsr223/python/personal/aqara_wall.py'
2021-01-02 20:57:14.400 [DEBUG] [ipt.internal.ScriptEngineManagerImpl] - Added ScriptEngine for language 'py' with identifier: file:/etc/openhab/automation/jsr223/python/personal/aqara_wall.py
2021-01-02 20:57:16.116 [WARN ] [jsr223.jython.core.triggers ] - when: "Channel mqtt:topic:boschhome:EG_Livingroom_Wallswitch:action triggered" could not be parsed because 'mqtt:topic:boschhome:EG_Livingroom_Wallswitch:action' is not a trigger Channel
2021-01-02 20:57:16.118 [WARN ] [jsr223.jython.core.rules ] - rule: not creating rule 'Wall Buttons' due to an invalid trigger definition
Ich vermute, dass die Helper Library in OH3 ein Problem hat. Dort habe ich diesen Fehler auch gemeldet, aber er kann bisher nicht reproduziert werden.
Re: Openhab 3 MQTT Action Probleme
Verfasst: 2. Jan 2021 21:10
von udo1toni
Warum machst Du den 3. Schritt vor dem 1.?
Re: Openhab 3 MQTT Action Probleme
Verfasst: 3. Jan 2021 00:01
von mhbosch
Sorry,
ich verstehe es nicht ganz. Ich habe mein THING so geändert:
Code: Alles auswählen
Thing topic EG_Livingroom_Wallswitch "Wandschalter Wohnzimmer" @ "Wohnzimmer" {
Channels:
Type string : action "Action" [ stateTopic="zigbee2mqtt/Wandschalter", trigger="true"]
Type number : voltage "Voltage" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JS:getZigbeeVinV.js"]
Type number : battery "Battery" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JSONPATH:$.battery"]
Type number : linkquality "LinkQuality" [ stateTopic="zigbee2mqtt/Wandschalter", transformationPattern="JSONPATH:$.linkquality"]
}
Dann habe ich wieder die Rule zum einlesen dem System übergeben und der Fehler tritt auf.
Welchen Schritt habe ich denn nun übergangen? Meine Transformation ist entfernt, sowie die retained Deklaration.
Was hätte ich zum testen anders machen sollen?
Re: Openhab 3 MQTT Action Probleme
Verfasst: 3. Jan 2021 01:48
von udo1toni
Du kannst keinen String Channel einfach so als Trigger definieren. Du kannst nur einen Channel Type Trigger definieren. Der Channel Trigger nutzt Dir außerdem nichts, denn es gibt keine Möglichkeit, den Trigger innerhalb der Rule auszuwerten. Pack den String in ein Item und lasse die Rule auf das Item triggern, das ist viel einfacher.
Re: Openhab 3 MQTT Action Probleme
Verfasst: 3. Jan 2021 17:45
von mhbosch
Hallo udo1toni,
dann mag es daran liegen, dass es kein Channel ist. Ich habe dies vor langer Zeit mal so "übernommen", als ich angefangen habe, mit Zigbee und Mqtt zu arbeiten. Ich sollte mich dann noch mal ganz zurücklehnen, und neu beginnen und es mit einem ITEM lösen.
Danke!