openhab2.5 MQTT Fragen

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

Moin zusammen,
ich versuche mich gerade mal wieder an den Konifg datein und ja ich bin noch auf oh2.5 :)
wenn ich eine mqtt bridge erstellt habe, wie bekomme ich dann folgendes hin':
ich habe einen State Channel der liefert "locked", "unlocked" und "open" als wert zurück und ich habe einen Command Channel wo ich folgende werte senden kann: 2 = locked, 3=unlocked 4=open
wie bekomme ich das nun in einem channel unter? am liebsten währe mir wenn ich das ganze mit nem switch von locked zu unlocked und umgekehrt habe. aber irgendwie stehe ich auf dem schlauch und verstehe die doku da auch leider nicht. kann mir da jemand helfen?
gruß
matze

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

Re: openhab2.5 MQTT Fragen

Beitrag von peter-pan »

Gibt's da auch Items und ein Thing dazu ?
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.3.5 openhabian

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

noch nicht weil ich nicht weiß wie ich es anlegen soll / muss

ibot1989
Beiträge: 99
Registriert: 30. Jul 2016 19:51
Answers: 0
Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht

Re: openhab2.5 MQTT Fragen

Beitrag von ibot1989 »

Hallo Matze,

ich gehe davon aus das du dies Binding installiert hast: https://v2.openhab.org/addons/bindings/mqtt/
Wie du nun Things und entsprechend Channels in den Things erstellst findest du hier: https://v2.openhab.org/addons/bindings/mqtt.generic/ (das ist im ersten Link auch verknüpft, findet man nur nicht auf anhieb)

Falls du damit nicht weiter kommst melde dich hier noch mal, dass ist am Anfang nicht ganz so einfach zu verstehen.

Gruß iBot

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

Ja genau da hänge ich gerade.
Hab das Binding installiert und auch den Broker konfiguriert.
Ich habe nun ein mal dieses status topic: garagentuer/state
und ein mal das command topic: garagentuer/command
So sieht es dann in den things aus:

Code: Alles auswählen

 Bridge mqtt:broker:1 "Mosquitto"
 [
     host="xxxx",
     port=1883
 ]
 {
    // Garagentuer
    Thing topic garagentuer "Garagentuer" {
    Channels:
        Type switch       "Oeffner"         [ stateTopic="garagentuer/state", commandTopic="garagentuer/command" ]
    }
aber ich weiß dann nicht wie ich den "Status" sauber in den switch umgesetz bekomme also das der state dann auch sauber funktioniert. Am liebsten als abgeschlossen und geöffnet

ibot1989
Beiträge: 99
Registriert: 30. Jul 2016 19:51
Answers: 0
Wohnort: östlich von Hamburg, südlich von Lübeck, nördlich von Geesthacht

Re: openhab2.5 MQTT Fragen

Beitrag von ibot1989 »

Was stehen den für Werte in den Topics im Broker?
Ggf. musst du noch passend umwandeln, ein Switch darf z.B. nur ON und OFF als Wert erhalten, wenn dort nun z.B. 1 und 0 drin steht müsstest du das im Channel noch richtig umwandeln.

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

also im brocker bei state steht "locked" oder "unlocked" und als command muss ich 2 oder 3 mitgeben. ich möchte dann in oh auch das "geschlossen" oder "geöffnet" steht

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

Re: openhab2.5 MQTT Fragen

Beitrag von udo1toni »

Da Du mehr als zwei mögliche Status und auch Befehle hast, musst Du einen anderen Channel Type verwenden. Das Einfachste ist da, mit einem String Channel anzufangen:

Code: Alles auswählen

Bridge mqtt:broker:1 "Mosquitto" [
     host="xxxx",
     port=1883
 ] {
    // Garagentür
    Thing topic garage "Garagentür" {
    Channels:
        Type string : tuer      "Öffner"         [ stateTopic="garagentuer/state", commandTopic="garagentuer/command" ]
    }
}
Das kannst Du nun mit einem passenden String Item verbinden. Bitte beachte, dass die Channel UID dennoch in Paper UI nachzuschauen ist. In der Theorie sollte der Link aber folgendermaßen heißen:

Code: Alles auswählen

String Garagentuer "Garage [MAP(garage.map):%s]" { channel="mqtt:topic:1:garage:tuer", autoupdate="false" }
Das Mapping musst Du natürlich noch anlegen, transform/garage.map:

Code: Alles auswählen

locked=geschlossen
unlocked=geöffnet
open=offen
null=null
-=-
Nicht vergessen, dass die Map Transformation installiert sein muss...
autoupdate="false" sorgt dafür, dass openHAB nicht übereifrig den Befehl als Status setzt.

In der Sitemap könntest Du dann einen Switch mit Schaltflächen einsetzen:

Code: Alles auswählen

Switch item=Garagentuer mappings=[2="lock",3="unlock"]
openHAB4.3.6 stable in einem Debian-Container (bookworm) (Proxmox 8.4.1, LXC), mit openHABian eingerichtet

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

Danke für die Erklärung bis hierher.
Nun bekomme ich im Log folgende Fehlermeldung:
"2021-09-10 08:04:02.982 [WARN ] [rest.core.internal.item.ItemResource] - Received HTTP POST request at 'items/Tueroffner_Garage' with an invalid status value '2'"
und dann noch wie bekomme ich den Status angezeigt quasi "neben" den beiden schaltflächen

matze.lingen
Beiträge: 52
Registriert: 28. Jul 2018 18:35
Answers: 0

Re: openhab2.5 MQTT Fragen

Beitrag von matze.lingen »

komando zurück. nach einem reboot ging auf einmal alles genau wie gewünscht.

Antworten