Frage zu MQTT

Einrichtung der openHAB Umgebung und allgemeine Konfigurationsthemen.

Moderatoren: seppy, udo1toni

Antworten
alex_alexandroff22
Beiträge: 20
Registriert: 6. Dez 2020 05:44
Answers: 0
Wohnort: Kreis OF

Frage zu MQTT

Beitrag von alex_alexandroff22 »

Hallo zusammen,

ich würde gerne aus OH 4.0 Werte eines Temperatur Sensors an ein ESP8266 Gerät mit Display via MQTT schicken.
Mosquitto läuft, Bridge in OH ist eingerichtet, aber irgendwie komme ich nicht weiter.
Mir ist klar, dass ich diese Temp Werte jetzt "publishen" muss, aber wie stelle ich das an?
Es gibt soviele diverse Anleitungen, aber ich habe jetzt nichts gefunden, wo klipp und klar drinsteht was zu tun ist.

Der Mosquitto tauscht lediglich Pings mit meinem OH aus, ansonsten schaffe ich es nicht irgendetwas dorthin zu schicken.
OH4

Harka
Beiträge: 317
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Frage zu MQTT

Beitrag von Harka »

Moin,
schau mal bitte hier -> viewtopic.php?t=8566

alex_alexandroff22
Beiträge: 20
Registriert: 6. Dez 2020 05:44
Answers: 0
Wohnort: Kreis OF

Re: Frage zu MQTT

Beitrag von alex_alexandroff22 »

Danke, es ist genau das gleiche Problem. Trotzdem komme ich leider nicht weiter.

Das ist das generic MQTT thing, und dem ist das entsprechende Temperatur-Item hinterlegt:

Code: Alles auswählen

UID: mqtt:topic:09bc80bc53:1MQTT
label: 1MQTT
thingTypeUID: mqtt:topic
configuration: {}
bridgeUID: mqtt:broker:09bc80bc53
channels:
  - id: SAUNATEMPMQ
    channelTypeUID: mqtt:number
    label: SAUNATEMPMQ
    description: ""
    configuration:
      commandTopic: temperatur/saunatemp
      unit: °C
Jetzt soll einfach bei jeder Änderung der neue Wert ge-publish-ed werden, aber ich verstehe nicht wo ich das anstellen soll. Rule?

Was ist hier mit "mein neuer Wert" gemeint?

Code: Alles auswählen

mein_mqtt_item.sendCommand(mein_neuer_Wert) 
OH4

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

Re: Frage zu MQTT

Beitrag von peter-pan »

Ich bin mir zwar nicht sicher, aber müsste neben dem eigentlichen Topic noch ein Befehl zum "publischen" mitgeschickt werden, also etwa so:

Code: Alles auswählen

cmnd/temperatur/saunatemp
...(Halbwissen)
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Harka
Beiträge: 317
Registriert: 30. Apr 2021 13:13
Answers: 15

Re: Frage zu MQTT

Beitrag von Harka »

alex_alexandroff22 hat geschrieben: 19. Feb 2024 17:02 Rule? Was ist hier mit "mein neuer Wert" gemeint?

Code: Alles auswählen

mein_mqtt_item.sendCommand(mein_neuer_Wert) 
Ja, an das mit dem Channel "SAUNATEMPMQ" verbundene Item sendest Du mit einer Rule, mit der Änderung des Sensors als Auslöser, die neu anzuzeigende Temperatur vom Sensor.

EmptySoft
Beiträge: 188
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Frage zu MQTT

Beitrag von EmptySoft »

alex_alexandroff22 hat geschrieben: 19. Feb 2024 16:30 ich würde gerne aus OH 4.0 Werte eines Temperatur Sensors an ein ESP8266 Gerät mit Display via MQTT schicken.
Mosquitto läuft, Bridge in OH ist eingerichtet, aber irgendwie komme ich nicht weiter.
Mir ist klar, dass ich diese Temp Werte jetzt "publishen" muss, aber wie stelle ich das an?
Es gibt soviele diverse Anleitungen, aber ich habe jetzt nichts gefunden, wo klipp und klar drinsteht was zu tun ist.

Der Mosquitto tauscht lediglich Pings mit meinem OH aus, ansonsten schaffe ich es nicht irgendetwas dorthin zu schicken.
Um welche Richtung geht es Dir? Vom ESP nach OpenHAB, oder vonm OpenHAB zzum ESP (zum ansteueern des Display) Ich verwende ESP Easy und mein Thing sieht so aus

Code: Alles auswählen

Bridge mqtt:broker:mosquitto  "Mosquitto" [ host="FQDNVonMeinemServer", secure=false, username="gehtKeinemWasAn", password="ichPosteKeinPasswort:=)", clientID="ESPs" ] 
 {
///// ESP_22 /////
 Thing mqtt:topic:ESP_Easy_2 "ESP 2 Zimmer 2" @ "Zimmer"
  {
  Channels:
   Type string : LWT            "Zimmer 2 LWT"          [ stateTopic="ESP_Easy_22/status/LWT" ]
   Type number : Lux            "Zimmer 2 Lux"          [ stateTopic="ESP_Easy_22/BH1750/Lux" ]
   Type number : Regler         "Zimmer 2 Regler"       [ stateTopic="ESP_Easy_22/RotaryEncoder/Counter" ]
   Type number : RotarySwitch   "Zimmer 2 RotarySwitch" [ stateTopic="ESP_Easy_22/RotarySwitch/State" ]
   Type string : CMD            "Zimmer 2 ESP CMD"      [ stateTopic="ESP_Easy_22", commandTopic="ESP_Easy_22/cmd" ]
   Type number : z2             "Zimmer 2 Temperatur"   [ stateTopic="ESP_Easy_22/z2/temperature" ]
   Type number : z2h            "Zimmer 2 Heizung"      [ stateTopic="ESP_Easy_22/z2h/temperature" ]
  }
 }
die genauen Topics findet man am besten mit den MQTT Explorer heraus.
Über den CMD Channel, kann ich Daten an das Display senden.
BYe
Harald

alex_alexandroff22
Beiträge: 20
Registriert: 6. Dez 2020 05:44
Answers: 0
Wohnort: Kreis OF

Re: Frage zu MQTT

Beitrag von alex_alexandroff22 »

Openhab hat bereits die Werte aus einem Temperatursensor und soll sie in Richtung Mosquitto publishen, von dem ich dann später die Werte mit dem ESP8266 Display auslesen möchte.

Der Temperatursensor schickt alle paar Minuten neue Werte an Openhab und die will ich eben auf diesem Display sehen.
Wie gesagt, Mosquitto läuft, OH ist damit per Bridge verbunden. Das MQTT Generic Thing ist angelegt. Als Channel habe ich den o.g. Temperatursensor (SaunaTemp1) mit seinen Werten.
Aber wie bekomme ich das Zeug jetzt zu Mosquitto ge-publish-ed? Und das kapiere ich eben nicht.

Rule anlegen?

Code: Alles auswählen

rule "SaunaTemp1"

when
	Item SaunaTemp1 changed

then

SAUNATEMPMQ.sendCommand( und was kommt hier rein??)

end
 
OH4

EmptySoft
Beiträge: 188
Registriert: 7. Jan 2020 14:45
Answers: 2
Kontaktdaten:

Re: Frage zu MQTT

Beitrag von EmptySoft »

alex_alexandroff22 hat geschrieben: 20. Feb 2024 09:28 Openhab hat bereits die Werte aus einem Temperatursensor und soll sie in Richtung Mosquitto publishen, von dem ich dann später die Werte mit dem ESP8266 Display auslesen möchte.
Wie kommt OpenHAB an die Werte? Per einem Binding?
alex_alexandroff22 hat geschrieben: 20. Feb 2024 09:28 Der Temperatursensor schickt alle paar Minuten neue Werte an Openhab und die will ich eben auf diesem Display sehen.
Wie gesagt, Mosquitto läuft, OH ist damit per Bridge verbunden. Das MQTT Generic Thing ist angelegt. Als Channel habe ich den o.g. Temperatursensor (SaunaTemp1) mit seinen Werten.
als nächstes benötigst Du das Item

Code: Alles auswählen

String RolloZimmerKlein_CMD "Rollo Zimmer klein ESP Commando [%s]" (gRollosCmd)
 {
 channel="mqtt:topic:ESP_Easy_2:CMD"
 }
hier muss natürlich der Channel zum Thing zusammen passen

und jetzt die Rule (Auszug...)

Code: Alles auswählen

RolloZimmerKlein_CMD.sendCommand("oledframedcmd,2,'Rollo: Zu'")
hier wird das Item verwendet. Wie das Kommando bei Dir funktioniert, hängt davon ab, was Dein ESP versteht (nachdem Du noch nicht gesagt hast, was Du da verwendest, kann ich das nicht sagen), wie gesagt ich habe ESP Easy am laufen und für das funktionieren meine Kommandos
mit dem MQTT Explorer musst Du dann den Befehl sehen
BYe
Harald

alex_alexandroff22
Beiträge: 20
Registriert: 6. Dez 2020 05:44
Answers: 0
Wohnort: Kreis OF

Re: Frage zu MQTT

Beitrag von alex_alexandroff22 »

Alles klar, Fehler gefunden! Habe bei der Item-Definition geschlampt.
Im Channel habe ich nämlich auf den Temperatursensor als Item verlinkt und nicht auf das Item, welches die Werte für MQTT erhalten und weitergeben soll.
Jetzt werden die Werte korrekt ge-publish-ed.

Bin zwar mit OH schon einige Jahre am Start, aber noch recht frisch was MQTT angeht...

Ich danke allen herzlichst für die Unterstützung!
OH4

alex_alexandroff22
Beiträge: 20
Registriert: 6. Dez 2020 05:44
Answers: 0
Wohnort: Kreis OF

Re: Frage zu MQTT

Beitrag von alex_alexandroff22 »

EmptySoft hat geschrieben: 20. Feb 2024 09:52
alex_alexandroff22 hat geschrieben: 20. Feb 2024 09:28 Openhab hat bereits die Werte aus einem Temperatursensor und soll sie in Richtung Mosquitto publishen, von dem ich dann später die Werte mit dem ESP8266 Display auslesen möchte.
Wie kommt OpenHAB an die Werte? Per einem Binding?
Jepp, Z-Wave.
ist ein Temperaturfühler an einem Fibaro SmartImplant. Funktioniert wunderbar, jetzt wollte ich in Richtung MQTT und ESP und als erstes ist mir die Idee mit dem Display eingefallen.
Jugend forscht sozusagen... :)
OH4

Antworten