MQTT, Strings und Shelly Schalter Problem

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
dyfcom
Beiträge: 14
Registriert: 27. Jan 2019 22:02
Answers: 0

MQTT, Strings und Shelly Schalter Problem

Beitrag von dyfcom »

Guten Abend,

ich bin recht neu in Openhab unterwegs. Dieser Läuft auf einem RP3 mit openhabian.

Nun habe ich angefangen meine MQTT Wetterstation und die Shelly1 Switche (auch per MQTT) einzubinden. Leider funktionieren bei beiden jeweils eine Sache nicht.

Unter Paper Ui habe ich den MQTT Binding installiert und einen Broker erstellt. Zusätzlich noch den Generic MQTT Thing (weiß nicht genau wofür ich den brauche, da ich ein mqtt.thing erstellt habe)

Bei der Wetterstation werden die Sensordaten, als Zahl, wunderbar übertragen und werden im Basic Ui angezeigt. Ich übertrage aber auch den Online Statur mit true/false. Dieser wird aber leider nicht angezeigt, ich habe ihn als String deklariert.

Bei dem Shelly1 Schalter kann ich über Basic Ui die Lampe nicht an und aus schalten bzw, der Status wird nicht angezeigt, ich denke, ich habe in der Konfiguration einen Fehler, leider finde ich ihn nicht :(

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:smarthome [ host="192.168.0.9", secure=false ]{
    Thing topic sensoren "Sensoren" {
    Channels:
    //Wetterstation
       Type number : wetterstation_Luftfeuchtigkeit "Luftfeuchtigkeit[%.1f %%]"    [stateTopic="wetterstation/sensor/humidity"]
       Type number : wetterstation_Temperatur       "Temperatur[%.1f °C]"          [stateTopic="wetterstation/sensor/temperature"]
       Type number : wetterstation_Batterie         "Batterie[%.1f %%]"            [stateTopic="wetterstation/sensor/battery"]
       Type string : wetterstation_Status           "Status"                       [stateTopic="wetterstation/online"]
     }
    Thing topic schalter "Schalter" {
    Channels:
   //Schreibtischlampe
       Type switch : shelly_Schreibtisch     "Schreibtischlampe"            [stateTopic="shellies/shelly1-94459D/relay/0", on="on", off="off", commandTopic="shellies/shelly1-94459D/relay/0/command", on="on" off="off"]


    }
}
smarthome.items

Code: Alles auswählen

//Wetterstation
Number   OS_Outside_Temperature     "Temperatur[%.1f °C]"         <temperature>   (OS_Outside, gTemperature)     ["Temperature"]              {channel="mqtt:topic:smarthome:sensoren:wetterstation_Temperatur"}
Number   OS_Outside_Humidity        "Luftfeuchtigkeit[%.1f %%]"   <humidity>      (OS_Outside, gHumidity)        ["Humidity"]                 {channel="mqtt:topic:smarthome:sensoren:wetterstation_Luftfeuchtigkeit"}
Number   OS_Outside_Battery         "Batterie[%.1f %%]"           <batterylevel>  (OS_Outside, gBattery)         ["Battery"]                  {channel="mqtt:topic:smarthome:sensoren:wetterstation_Batterie"}
String   OS_Outside_Status          "Status[%s]"                      <network>       (OS_Outside, gStatus)      ["Status"]                   {channel="mqtt:topic:smarthome:sensoren:wetterstation_Status"}

//Schreibtisch
Switch   IS_Office_Light            "Licht"              <light>         (IS_Office, gLight)            ["Lighting", "Switchable"]   {channel="mqtt:topic:smarthome:schalter:shelly_Schreibtisch"}
smarthome.sitemap

Code: Alles auswählen

sitemap zuhause label="Zuhause" {
    Frame label="Wetterstation" icon="garden" {
        Text item=OS_Outside_Temperature label="Temperatur" 
        Text item=OS_Outside_Humidity label="Luftfeuchtigkeit"
        Text item=OS_Outside_Battery label="Batterie"
        Text item=OS_Outside_Status label="Status"
    
    }

    Frame label="Buero" icon="firstfloor" {
        Switch item=IS_Office_Light label="Schreibtisch"
    }
}
Ich hoffe, mir kann jemand weiter helfen.

Schöne abendliche Grüße

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

Re: MQTT, Strings und Shelly Schalter Problem

Beitrag von udo1toni »

Things kannst Du entweder über Paper UI oder über Textdateien (*.things) anlegen. Beides ist möglich, auch gleichzeitig, auch für das selbe Binding, aber nötig ist weder das Eine noch das Andere - im Sinne von, dass Du unbedingt über Paper UI etwas anlegen müsstest, wenn Du lieber mit *.things Dateien arbeiten willst.
Alle Things, die Du mittels *.things Dateien anlegst, tauchen anschließend in Paper UI readonly auf, so dass Du alle Parameter bequem prüfen kannst.

Der Status ist ein logisches Signal, weshalb ein string Channel nicht funktionieren wird. Vermutlich wird hier switch korrekt sein, es könnte aber auch contact funktionieren.
Auf MQTT Seite wird wahrscheinlich 0 und 1 als Payload verwendet, das kannst Du am besten mit einem MQTT Sniffer wie MQTT Spy oder mqttFX heraus finden (es gibt auch diverse kostenlose Clients für Android und iOS).
Der Sniffer hilft Dir auch, das Problem mit dem Shelly1 einzugrenzen, denn grundsätzlich sieht die Zeile erst mal gut aus. Denke daran, dass Groß/Kleinschreibung im gesamten Topic korrekt sein muss.
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

dyfcom
Beiträge: 14
Registriert: 27. Jan 2019 22:02
Answers: 0

Re: MQTT, Strings und Shelly Schalter Problem

Beitrag von dyfcom »

Erstmal vielen Dank!

Also brauch man nur das MQTT Binding und Broker installieren und kann die things löschen? Also müssen Bindings immer installiert werden und things kann man über eine .things Datei anlegen?

Hätte erstmal den Log auslesen sollen, hatte ein paar Fehler in der mqtt.things und in sitemap. Jetzt funktioniert es mit dem String.

Hab in der Zeile

Code: Alles auswählen

[stateTopic="shellies/shelly1-94459D/relay/0", commandTopic="shellies/shelly1-94459D/relay/0/command"]
das

Code: Alles auswählen

, on="on", off="off"
entfernt. Nun bekomme ich beim Schalten über Basic Ui an dem Channel "shellies/shelly1-94459D/relay/0/command" eine "0" bzw. "1", gibt es eine Möglichkeit diese zu on/off zu ändern?

dyfcom
Beiträge: 14
Registriert: 27. Jan 2019 22:02
Answers: 0

Re: MQTT, Strings und Shelly Schalter Problem

Beitrag von dyfcom »

Ok Problem gelöst.

War alles von Anfang an richtig. Hätte Openhab nur Neustarten müssen und den Cache löschen, anscheinend mag MQTT das nicht, wenn man im laufenden Betrieb die config bearbeitet.

Trotzdem Danke!

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

Re: MQTT, Strings und Shelly Schalter Problem

Beitrag von udo1toni »

Ja, das ist ein (in der aktuellen Version bereits gefixes) Problem, dass man nach Änderungen über die *.things Dateien den Dienst durchstarten muss. Das ginge übrigens auch über die Karaf Konsole ohne kompletten Neustart, nämlich so:

Code: Alles auswählen

openhab> bundle:restart org.eclipse.smarthome.binding.mqtt
Dieser Befehl gilt nicht für die aktuelle Nightly, da eclipse inzwischen wieder in openHAB integriert wurde. Der Befehl wird aber von der Karaf Konsole automatisch ergänzt, so dass man den korrekten Pfad recht schnell herausfinden kann.

Auf die Karaf Konsole kommt man mittels

Code: Alles auswählen

openhab-cli console
oder

Code: Alles auswählen

ssh openhab@localhost -p8101
openHAB4.3.3 stable in einem Debian-Container (bookworm) (Proxmox 8.3.5, LXC), mit openHABian eingerichtet

dyfcom
Beiträge: 14
Registriert: 27. Jan 2019 22:02
Answers: 0

Re: MQTT, Strings und Shelly Schalter Problem

Beitrag von dyfcom »

Vielen Dank! Hat geklappt

Antworten