openHAB2 und MQTT 2.4

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
hd578
Beiträge: 6
Registriert: 28. Okt 2018 12:11

Re: openHAB2 und MQTT 2.4

Beitrag von hd578 »

Hallo.
Es fällt mir auf das Du nicht die einzelnen Kanäle POWER1, oder POWER2 etc in deinem Befehlen hast.
Wie meinst Du das?

madmike
Beiträge: 272
Registriert: 15. Apr 2018 17:09

Re: openHAB2 und MQTT 2.4

Beitrag von madmike »

Hallo HD578,

wenn du mal in meine ITEM-Zeile schaust wirst du feststellen das vor dem Command-Befehl POWER steht.
Wenn Du einen 4ch Sonoff nutzt sollte auch die Adressierung rein welchen Sonoff-Schalter du schalten willst also zum Beispiel POWER1 für den ersten,
POWER2 für den zweiten usw. Ich habe am Anfang auch den Fehler gemacht Ihn wie einen Basic-Schalter zu nutzen, und den gleichen Fehler gehabt wie Du.
mfg
Micha

Gerd_B2809
Beiträge: 13
Registriert: 18. Jan 2019 12:51
Answers: 1

Re: openHAB2 und MQTT 2.4

Beitrag von Gerd_B2809 »

Habe folgende Konstellation:
Schalte einen Eltako mit einen ESP8266(Tasmota 6.4.1) und Relay1 mit Pulsetime 0,5 Sekunden, das klappt auch alles soweit.
Tasmota sendet folgende Info an MQTT

Code: Alles auswählen

13:06:59 MQT: stat/HAR161/RESULT = {"POWER":"ON"}
13:06:59 MQT: stat/HAR161/POWER = ON
13:07:00 MQT: stat/HAR161/RESULT = {"POWER":"OFF"}
13:07:00 MQT: stat/HAR161/POWER = OFF
Mein Problem der Satus OFF wird nicht in OH2 korrigiert der Switch bleibt auf ON
Wie kriege ich es hin das der Status vom Tasmoata auch im OH2 richtig angezeigt wird.
thing:

Code: Alles auswählen

Thing mqtt:topic:HAR161 {
        Channels:
            Type number : Temperatur    "Waschkeller Temperatur"           [ stateTopic="tele/HAR161/SENSOR" , transformationPattern="JSONPATH:$.AM2301.Temperature" ]
            Type number : Feuchte       "Waschkeller Luftfeuchte"          [ stateTopic="tele/HAR161/SENSOR" , transformationPattern="JSONPATH:$.AM2301.Humidity" ]
            Type switch : Schalter      "Flurlicht"                        [ stateTopic="stat/HAR161/STATE"  , transformationPattern="JSONPATH:$.POWER" , commandTopic="cmnd/HAR161/POWER", on="ON" , off="OFF"]
    } 
item:

Code: Alles auswählen

Switch   HAR161_Light                   "Flurlicht"                                     <switch>
(EG, gPower)   ["Switchable"]           { channel="mqtt:topic:OH2broker:HAR161:Schalter"}
Hat jemand eine Lösung? Wie man so einen Tastschalter hinbekommt.

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

Das stateTopic ist stat/HAR161/POWER, nicht stat/HAR161/STATE
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Gerd_B2809
Beiträge: 13
Registriert: 18. Jan 2019 12:51
Answers: 1

Re: openHAB2 und MQTT 2.4

Beitrag von Gerd_B2809 »

Hey udo1toni,

danke das wars, jetzt ist auch das Dunkle um MQTT 2.4 wieder etwas heller geworden.

Gruß Gerd

giss69
Beiträge: 14
Registriert: 1. Jan 2019 20:36

Re: openHAB2 und MQTT 2.4

Beitrag von giss69 »

Hallo,
ich versuche meine Sonoffs/Tasmota von mqtt1 auf matt 2.4 umzuziehen allerdings mit mäßigen Erfolg.
Zuerst eine Verständigungsfrage:
Muss ich jeden Thing parallel über Paper UI und Dateien erstellen?
Wenn ich die Things über xxx.things definiere tauschen sie aber nicht in Paper UI. Ist es normal?
Kommunikation klappt irgendwie auch nicht. Habe heute den ganzen Tag damit verbracht dies zum laufen zu bringen, fleißig bei diversen Forums mitgelesen, alles mögliche ausprobiert. Es läuft aber nicht. MQTT 1. funktioniert nach wie vor.
Könnt ihr bitte meine Einstellungen überprüfen?

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:broker  [   host="192.168.1.100", secure=false, port=1883, clientid="openhab", username="xxx", password="xxx" ]
{
//Diele
Thing mqtt:topic:Basic2 "Diele" {
 Channels:
        Type string : reachable      "Reachable"               [ stateTopic="tele/Basic2/LWT" ]
        Type switch : power          "Power"                   [ stateTopic="stat/Basic2/POWER", commandTopic="cmnd/Basic2/POWER" ]
        Type number : rssi           "WiFi Signal"             [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
        Type string : module         "Modul"                   [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.Module"]
        Type string : version        "Version"                 [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.Version"]
        Type string : fallback       "Fallback Topic"          [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.FallbackTopic"]
        Type string : group          "Group Topic"             [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.GroupTopic"]
        Type string : wsmode         "WebServer Mode"          [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.WebServerMode"]
        Type string : hostname       "Hostname"                [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.Hostname"]
        Type string : ipaddress      "IP-Adresse"              [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.IPAddress"]
        Type string : restartreason  "Restart Grund"           [ stateTopic="tele/Basic2/INFO3", transformationPattern="JSONPATH:$.RestartReason"]
        Type string : update         "Letzter Update"          [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Time"]
        Type string : uptime         "Laufzeit"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Uptime"]
        Type number : vcc            "Spannung"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.Vcc"]
        Type number : apbasis        "WiFi AP"                 [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.Wifi.AP"]
        Type string : wifissid       "WiFi SSID"               [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
        Type string : wifimac        "WiFi MAC"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.APMac"]
}
        //Tisch

Thing mgtt:topic:Basic1 "Tisch"{
Channels:
    Type switch : power     "Power"                [ stateTopic="stat/Basic1/POWER", commandTopic="cmnd/Basic1/POWER" ]
    Type string : reachable "Reachable"            [ stateTopic="tele/Basic1/LWT" ]
}
sonoff.items

Code: Alles auswählen

Group Basic2            "Diele"
Switch Basic2           "Diele Power"                { channel="mqtt:topic:broker:Basic2:power" }
// Sonoff Basic2 (Tasmota) administration data:
String reachable        "Reachable [%s]"            { channel="mqtt:topic:broker:Basic2:reachable" }
String module           "Modul [%s]"                 { channel="mqtt:topic:broker:Basic2:module" }
String version          "Version [%s]"               { channel="mqtt:topic:broker:Basic2:version" }
String fallback         "Fallback Topic [%s]"        { channel="mqtt:topic:broker:Basic2:fallback" }
String group            "Group Topic [%s]"           { channel="mqtt:topic:broker:Basic2:group" }
String wsmode           "Webserver Mode [%s]         { channel="mqtt:topic:broker:Basic2:wsmode" }
String hostname         "Hostname [%s]"              { channel="mqtt:topic:broker:Basic2:hostname" }
String ipaddress        "IP-Adresse [%s]"            { channel="mqtt:topic:broker:Basic2:ipaddress" }
String restartreason    "Restart Grund [%s]"         { channel="mqtt:topic:broker:Basic2:restartreason" }
String update           "Letzter Update [%s]"        { channel="mqtt:topic:broker:Basic2:update" }
String uptime           "Laufzeit [%s]               { channel="mqtt:topic:broker:Basic2:uptime" }
Number vcc              "Spannung [%.2f V]"          { channel="mqtt:topic:broker:Basic2:vcc" }
Number apbasis          "WiFi AP [%s]                { channel="mqtt:topic:broker:Basic2:apbasis" }
String wifissid         "WiFi SSID [%s]              { channel="mqtt:topic:broker:Basic2:wifissid" }
Number rssi             "WiFi RSSI [%.0f %%]"        { channel="mqtt:topic:broker:Basic2:rssi" }
String wifimac          "WiFi MAC [%s]"              { channel="mqtt:topi:brokerc:Basic2:wifimac" }

// Tisch
Switch Basic1    "Power"                             { channel="mqtt:topic:broker:Basic1:power" }
String Basic1_Reachable "Reachable: [%s]"            { channel="mqtt:topic:broker:Basic1:reachable" }
sonoff.sitemap

Code: Alles auswählen

sitemap abhometest label="AB Home Test" {

Frame
{
Text label="Tisch" icon="light"
         Switch item=Basic1 label= "Tisch"
Text label=Status icon="chart"{
Frame label= "Tisch" {
        Text item=Basic1_Reachable
			}
}
}

Frame
{
Text label="Diele" icon="light"
         Switch item=Basic2 label= "Diele"
Text label=Status icon="chart"{
Frame label= "Diele" {
        Text item=reachable
        Text item=module
				Text item=version
				Text item=fallback
				Text item=group
				Text item=wsmode
				Text item=hostname
				Text item=ipaddress
				Text item=restartreason
				Text item=update
				Text item=uptime
				Text item=vcc
				Text item=apbasis
				Text item=wifissid
				Text item=rssi
				Text item=wifimac
			}
}
}
}

Danke im Voraus
Viele Grüße

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

giss69 hat geschrieben: 25. Jan 2019 21:34 Muss ich jeden Thing parallel über Paper UI und Dateien erstellen?
Nein, im Gegenteil, enweder über Paper UI, oder über eine mqtt.things Datei (natürlich ist der Name der Datei bis auf die Endung beliebig).
Wenn ich die Things über xxx.things definiere tauschen sie aber nicht in Paper UI. Ist es normal?
Nein, dann hast Du einen Fehler in der Definition. Alles, was in *.things Dateien korrekt definiert wird, taucht unmittelbar in Paper UI als Thing auf.

Achte auf die exakte Schreibweise, z.B. muss es clientID heißen, nicht clientid
Die Thing Definition ist Bestandteil der Bridge, entsprechend sieht dieDefinition auch etwas anders aus (kein Doppelpunkte; kein Schlüsselwort mqtt)

mqtt.things

Code: Alles auswählen

Bridge mqtt:broker:broker  [ 
    host="192.168.1.100", 
    secure=false, 
    port=1883, 
    clientID="openhab", 
    username="xxx", 
    password="xxx" ]
    {
    //Diele
        Thing topic Basic2 "Diele" 
        {
        Channels:
            Type string : reachable      "Reachable"               [ stateTopic="tele/Basic2/LWT" ]
            Type switch : power          "Power"                   [ stateTopic="stat/Basic2/POWER", commandTopic="cmnd/Basic2/POWER" ]
            Type number : rssi           "WiFi Signal"             [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.RSSI"]
            Type string : module         "Modul"                   [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.Module"]
            Type string : version        "Version"                 [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.Version"]
            Type string : fallback       "Fallback Topic"          [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.FallbackTopic"]
            Type string : group          "Group Topic"             [ stateTopic="tele/Basic2/INFO1", transformationPattern="JSONPATH:$.GroupTopic"]
            Type string : wsmode         "WebServer Mode"          [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.WebServerMode"]
            Type string : hostname       "Hostname"                [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.Hostname"]
            Type string : ipaddress      "IP-Adresse"              [ stateTopic="tele/Basic2/INFO2", transformationPattern="JSONPATH:$.IPAddress"]
            Type string : restartreason  "Restart Grund"           [ stateTopic="tele/Basic2/INFO3", transformationPattern="JSONPATH:$.RestartReason"]
            Type string : update         "Letzter Update"          [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Time"]
            Type string : uptime         "Laufzeit"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Uptime"]
            Type number : vcc            "Spannung"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.Vcc"]
            Type number : apbasis        "WiFi AP"                 [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.Wifi.AP"]
            Type string : wifissid       "WiFi SSID"               [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.SSId"]
            Type string : wifimac        "WiFi MAC"                [ stateTopic="tele/Basic2/STATE", transformationPattern="JSONPATH:$.Wifi.APMac"]
        }
        //Tisch
        Thing topic Basic1 "Tisch"
        {
        Channels:
            Type switch : power     "Power"                [ stateTopic="stat/Basic1/POWER", commandTopic="cmnd/Basic1/POWER" ]
            Type string : reachable "Reachable"            [ stateTopic="tele/Basic1/LWT" ]
        }
    }
Ein Gutteil der Channel ist im Grunde überflüssig, da jeweils auf das gleiche Topic zugegriffen wird. Du kannst problemlos das gesamte JSON als String speichern und anschließend über unterschiedliche Label die unterschiedlichen Teile ausgeben. Nur dort, wo Ausgaben als Wert gebraucht werden (z.B. RSSI um das zugehörige Icon dynamisch zu gestalten) musst Du einen eigenen Channel definieren.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

giss69
Beiträge: 14
Registriert: 1. Jan 2019 20:36

Re: openHAB2 und MQTT 2.4

Beitrag von giss69 »

@udo1toni

Vielen Dank für Deine Mühe! Nach deiner Korrektur sind die items in der Paper UI aufgetaucht.
Die Fehler passieren bei viel copy/past Aktionen.)))
Ist das ganze ganz schon kompliziert:(
Es ist natürlich sehr komfortabel die items über Paper UI hinzufügen aber mein Ziel war iOS App weiter zu benutzen und da muss man ein Sitemaps definieren, was wiederum nicht ohne items file geht:(
Oder gibt es einen anderen Weg?
Danke!

Update:
es funktioniert immer noch nicht. Die Items tauchen bei Paper UI zwar auf ich kann die aber über Basic UI nicht bedienen und
es werden keine Infos angezeigt.
Im Log sehe ich auch nicht, dass mit broker kommuniziert wird :cry:
Soll ich Channels über Paper UI noch verlinken?
Zuletzt geändert von giss69 am 27. Jan 2019 18:21, insgesamt 1-mal geändert.

Benutzeravatar
leupy
Beiträge: 78
Registriert: 21. Nov 2018 19:43
Wohnort: Saarlouis

Re: openHAB2 und MQTT 2.4

Beitrag von leupy »

Hallo,
ich bin am gleichen Thema dran.
Ich bekomme keine Werte mehr z.B vom WIFI Signal nach umstellen auf OH2.4
Der Sonoff lässt sich über Control ein und ausschalten.
JSONPath Transformation hab ich installiert

Mein Thing

Code: Alles auswählen

Bridge mqtt:broker:broker [ host="192.168.120.70", secure=false ]
{
    Thing topic Sonoff96 "Lüfter Keller" 
    {
    Channels:
      Type switch : Schalter       "Lüfter Keller"         [     stateTopic="feucht_keller/POWER",    commandTopic="cmnd/feucht_keller/POWER",       on="ON",  off="OFF"    ]
      Type string : Status96       "Schalter Status"       [     stateTopic="feucht_keller/STATE",    transformationPattern="JSONPATH:$.POWER",      on="ON",  off="OFF"    ]
      Type number : Wifi_Signal    "Wifi Signalstärke"     [     stateTopic="feucht_keller/STATE",    transformationPattern="JSONPATH:$.Wifi.RSSI"                          ] 
}}

Mein Item

Code: Alles auswählen

Number Sonoff96WIFI  "Keller 96 Siganlstärke [%.1f %%]"             (gWifi)     {channel="mqtt:topic:broker:Sonoff96:Wifi_Signal"}
Meine Anzeige im UI
Lüfter.JPG
Lüfter.JPG
Hat jemand eine Idee :D
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Saarländer
Raspberry Pi 3 & 4 openHAB3.3
Asus Touchscreen Wandeinbau
Win 10 Rechner zum Visualisieren
Sonoff Aktoren mit Tasmota
Sonoff RF Bridge
MiLight
Shelly 1 und 2

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

Re: openHAB2 und MQTT 2.4

Beitrag von udo1toni »

Das stateTopic bei Sonoff sollte eigentlich mit stat/ beginnen, zumindest, wenn Du den Sonoff nicht anders konfiguriert hast.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

Antworten