Umstellung MQTT1 auf MQTT2

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
Heavy-Dee
Beiträge: 143
Registriert: 18. Jan 2018 16:38
Answers: 0

Umstellung MQTT1 auf MQTT2

Beitrag von Heavy-Dee »

Hallo zusammen,
habe ein Problem bei der Umstellung auf MQTT 2.
Ich habe div Shelly 1 und Shelly 2.5 (alle Tasmota) im Haus verbaut und möchte diese auf MQTT 2 umstellen.
Bei MQTT 1 sind die items wie folgt:
Shelly 1:

Code: Alles auswählen

Switch Shelly1_2C68B6           "Esszimmer Decke"           <light>         (grpHomeNet,grpHaus,grpEG,grpEsszimmer,grpLicht)        ["Switchable"]   {mqtt=">[broker:cmnd/Shelly1_2C68B6/POWER:command:*:default], <[broker:stat/Shelly1_2C68B6/POWER:state:default]"}

Shelly 2.5:

Code: Alles auswählen

Switch Shelly25_00B0BE_1         "Wohnzimmer Wand"           <light>         (grpHomeNet,grpHaus,grpEG,grpWohnzimmer,grpLicht)       ["Switchable"]   {mqtt=">[broker:cmnd/Shelly25_00B0BE/POWER1:command:*:default], <[broker:stat/Shelly25_00B0BE/POWER1:state:default]"}
Switch Shelly25_00B0BE_2         "Wohnzimmer Decke"          <light>         (grpHomeNet,grpHaus,grpEG,grpWohnzimmer,grpLicht)       ["Switchable"]   {mqtt=">[broker:cmnd/Shelly25_00B0BE/POWER2:command:*:default], <[broker:stat/Shelly25_00B0BE/POWER2:state:default]"}
Bei MQTT 2:

Code: Alles auswählen

// Deckenbeleuchtung Esszimmer
    Thing topic Shelly1_2C68B6 "Deckenlampe" @ "Esszimmer" 
    {
        Channels:
        Type switch : Shelly1_2C68B6    "Deckenlampe (Esszimmer)"
        [
            stateTopic="stat/Shelly1_2C68B6/POWER", commandTopic="cmnd/Shelly1_2C68B6/POWER"
        ] 
    }
// Wandbeleuchtung Wohnzimmer
    Thing topic Shelly25_00B0BE "Wandlampen" @ "Wohnzimmer" 
    {
        Channels:
        Type switch : Shelly25_00B0BE_1    "Wandlampen (Wohnzimmer)"
        [
            stateTopic="stat/Shelly25_00B0BE/POWER1", commandTopic="cmnd/Shelly25_00B0BE/POWER1"
        ] 
    }    
// Deckenbeleuchtung Wohnzimmer
    Thing topic Shelly25_00B0BE "Deckenleuchte" @ "Wohnzimmer" 
    {
        Channels:
        Type switch : Shelly25_00B0BE_2    "Deckenleuchte (Wohnzimmer)"
        [
            stateTopic="stat/Shelly25_00B0BE/POWER2", commandTopic="cmnd/Shelly25_00B0BE/POWER2"
        ] 
    }

Code: Alles auswählen

// Deckenbeleuchtung Esszimmer
    Switch    Shelly1_2C68B6        "Deckenlampe"           <light>     (grpHomeNet,grpEsszimmer,grpLicht,grpLichtEsszimmer)
        ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly1_2C68B6:Shelly1_2C68B6"}
// Wandbeleuchtung Wohnzimmer
    Switch    Shelly25_00B0BE_1     "Wandlampen"            <light>     (grpHomeNet,grpWohnzimmer,grpLicht,grpLichtWohnzimmer)
        ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly25_00B0BE:Shelly25_00B0BE"}
// Deckenbeleuchtung Wohnzimmer
    Switch    Shelly25_00B0BE_2     "Deckenleuchte"         <light>     (grpHomeNet,grpWohnzimmer,grpLicht,grpLichtWohnzimmer)
        ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly25_00B0BE:Shelly25_00B0BE"}
Das Problem ist über MQTT 1 sind alle Shellys schaltbar.
Über MQTT2 lassen sich nur die Shelly 1 schalten. Die Shelly 2 reagieren nicht.
Vieleicht kann mir jmd sagen wo der Fehler liegt.
openHab4 (v. 4.1.0) Docker auf Synology DS920+ :!:

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

Re: Umstellung MQTT1 auf MQTT2

Beitrag von udo1toni »

So, wie ich das sehe, hast Du noch nicht so ganz verstanden, wie das Thing Modell gedacht ist.
Im Fall von mqtt gibt es zwar keinen zwingenden Zusammenhang, aber ein Thing ist eigentlich als Hardware Einheit gedacht. Ein Shelly2.5 hat zwei Kanäle, ist aber ein Thing.
Weiterhin solltest Du die Channel besser mit einem vernünftigen Namen versehen. Z.B. so:

Code: Alles auswählen

// Deckenbeleuchtung Esszimmer
    Thing topic Shelly1_2C68B6 "Deckenlampe" @ "Esszimmer" 
    {
        Channels:
        Type switch : ch1    "Deckenlampe (Esszimmer)"     [ stateTopic="stat/Shelly1_2C68B6/POWER", commandTopic="cmnd/Shelly1_2C68B6/POWER" ] 
    }
// Wandbeleuchtung Wohnzimmer
    Thing topic Shelly25_00B0BE "Lampen" @ "Wohnzimmer" 
    {
        Channels:
        Type switch : ch1    "Wandlampen (Wohnzimmer)"     [ stateTopic="stat/Shelly25_00B0BE/POWER1", commandTopic="cmnd/Shelly25_00B0BE/POWER1" ] 
        Type switch : ch2    "Deckenleuchte (Wohnzimmer)"  [ stateTopic="stat/Shelly25_00B0BE/POWER2", commandTopic="cmnd/Shelly25_00B0BE/POWER2" ] 
    }
Die entsprechenden Items:

Code: Alles auswählen

// Deckenbeleuchtung Esszimmer
Switch Shelly1_2C68B6    "Deckenlampe"   <light> (grpHomeNet,grpEsszimmer,grpLicht,grpLichtEsszimmer)   ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly1_2C68B6:ch1"}
// Wandbeleuchtung Wohnzimmer
Switch Shelly25_00B0BE_1 "Wandlampen"    <light> (grpHomeNet,grpWohnzimmer,grpLicht,grpLichtWohnzimmer) ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly25_00B0BE:ch1"}
// Deckenbeleuchtung Wohnzimmer
Switch Shelly25_00B0BE_2 "Deckenleuchte" <light> (grpHomeNet,grpWohnzimmer,grpLicht,grpLichtWohnzimmer) ["Switchable"]  {channel="mqtt:topic:embedded-mqtt-broker:Shelly25_00B0BE:ch2"}
Es wäre auch besser, eindeutige Namen zu wählen, die nicht identisch zu den Things Namen sind. Funktioniert zwar, führt aber im Zweifel gerne zu Durcheinander.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

Heavy-Dee
Beiträge: 143
Registriert: 18. Jan 2018 16:38
Answers: 0

Re: Umstellung MQTT1 auf MQTT2

Beitrag von Heavy-Dee »

Danke für die Info und die Lösung.
Habe vor lauter Wald die Bäume nicht mehr gesehen.
Alle Things u. Items geändert und neu benannt. -> funktioniert !!!
openHab4 (v. 4.1.0) Docker auf Synology DS920+ :!:

Antworten