Openhab 3 MQTT Action Probleme

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
mhbosch
Beiträge: 28
Registriert: 29. Jan 2019 19:10
Answers: 0

Openhab 3 MQTT Action Probleme

Beitrag 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?

Benutzeravatar
peter-pan
Beiträge: 2769
Registriert: 28. Nov 2018 12:03
Answers: 30
Wohnort: Schwäbisch Gmünd

Re: Openhab 3 MQTT Action Probleme

Beitrag 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 ?!
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

mhbosch
Beiträge: 28
Registriert: 29. Jan 2019 19:10
Answers: 0

Re: Openhab 3 MQTT Action Probleme

Beitrag 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

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Openhab 3 MQTT Action Probleme

Beitrag 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.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

mhbosch
Beiträge: 28
Registriert: 29. Jan 2019 19:10
Answers: 0

Re: Openhab 3 MQTT Action Probleme

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

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Openhab 3 MQTT Action Probleme

Beitrag von udo1toni »

Warum machst Du den 3. Schritt vor dem 1.?
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

mhbosch
Beiträge: 28
Registriert: 29. Jan 2019 19:10
Answers: 0

Re: Openhab 3 MQTT Action Probleme

Beitrag 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?

Benutzeravatar
udo1toni
Beiträge: 15265
Registriert: 11. Apr 2018 18:05
Answers: 245
Wohnort: Darmstadt

Re: Openhab 3 MQTT Action Probleme

Beitrag 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.
openHAB4.3.5 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

mhbosch
Beiträge: 28
Registriert: 29. Jan 2019 19:10
Answers: 0

Re: Openhab 3 MQTT Action Probleme

Beitrag 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!

Antworten