Seite 1 von 1
Frage zu MQTT
Verfasst: 19. Feb 2024 16:30
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.
Re: Frage zu MQTT
Verfasst: 19. Feb 2024 16:35
von Harka
Moin,
schau mal bitte hier ->
viewtopic.php?t=8566
Re: Frage zu MQTT
Verfasst: 19. Feb 2024 17:02
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?
Re: Frage zu MQTT
Verfasst: 19. Feb 2024 17:29
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:
...(Halbwissen)
Re: Frage zu MQTT
Verfasst: 19. Feb 2024 18:05
von Harka
alex_alexandroff22 hat geschrieben: ↑19. Feb 2024 17:02
Rule? Was ist hier mit "mein neuer Wert" gemeint?
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.
Re: Frage zu MQTT
Verfasst: 20. Feb 2024 09:05
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.
Re: Frage zu MQTT
Verfasst: 20. Feb 2024 09:28
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
Re: Frage zu MQTT
Verfasst: 20. Feb 2024 09:52
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
Re: Frage zu MQTT
Verfasst: 20. Feb 2024 10:04
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!
Re: Frage zu MQTT
Verfasst: 20. Feb 2024 10:07
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...
