ESP Event über mqtt

Allgemeine Fragen rund um die "Smart Home" Hardware/Komponenten

Moderatoren: seppy, udo1toni

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58
Answers: 0

ESP Event über mqtt

Beitrag von raf65 »

Hey alle zusammen.

habe nun umgestellt von mqtt 1 auf mqtt 2.4.
Hierfür habe ich auf meinem Rasperry MQTT Binding und den Embedded MQTT Broker Installiert. Die Maschine ist komplett mit der neuesten SW aufgesetzt. Soweit am Rande.

Was ist für Hardware im Einsatz ausschließlich ESP mit ESPeasy.
Was funktioniert:
Temperatur auslesen und Schalter/Relays

Was fehlt
Temperatur einstellen.

Thing

Code: Alles auswählen

Thing mqtt:topic:rafmqtt:TempSetzen					"Temperaturen Einstellen" 		(mqtt:broker:rafmqtt)  @ "Versorgung" {
		Channels:
Type dimmer : EGVorgabeTemperaturWohnraum		"Temperaturvorgabe Wohnraum" 					[stateTopic = "/ESP_EG/dummy/Wohnraum", commandTopic="/ESP_EG/dummy/Wohnraum", min="10", max="30", step=1  ]
}
Unter der MQTT 1er Version konnte ich hiermit einen Befehl an den ESP senden
{http=">[*:POST:http://esp-eg/control?cmd=event,raumWoh ... 1$tm-%1$td]"}
Das hat auch funktioniert.

Habe gerade keine Idee mehr wie ich das Event über mqtt 2.4 auslösen kann.

Vorschläge jedweder Art sind willkommen :D

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

Re: ESP Event über mqtt

Beitrag von udo1toni »

Warum muss denn da das Datum mit rein? das scheint mir doch einigermaßen unlogisch...
Weiterhin sollte eine Temperatur eigentlich eine normale Zahl sein, und kein Prozentwert.
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: ESP Event über mqtt

Beitrag von peter-pan »

raf65 hat geschrieben: 13. Dez 2019 17:47 {http=">[*:POST:http://esp-eg/control?cmd=event,raumWoh ... 1$tm-%1$td]"}
Bist du sicher, dass du da von MQTT sprichst. Ich bin zwar kein Experte, aber für mich sieht das so aus, als wäre das ein Channel-Link für das http-Binding.
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58
Answers: 0

Re: ESP Event über mqtt

Beitrag von raf65 »

Bist du sicher, dass du da von MQTT sprichst. Ich bin zwar kein Experte, aber für mich sieht das so aus, als wäre das ein Channel-Link für das http-Binding.
Genau Peter, das ist http und nicht mqtt ich wollte das auf dem neuen Server nun auf mqtt umstellen. Muss auch irgendwie funktionieren.

Warum muss denn da das Datum mit rein? das scheint mir doch einigermaßen unlogisch...
Weiterhin sollte eine Temperatur eigentlich eine normale Zahl sein, und kein Prozentwert.
Nee das Datum muss nicht mit rein, wie gesagt, dass war der alte Eintrag den ich auf de alten Server hatte und dort hatte es funktioniert. Auf dem ESP gibt es eine Regel die schlussendlich die Werte weiter verarbeitet.

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

Re: ESP Event über mqtt

Beitrag von udo1toni »

Hast Du Dich schon etwas in mqtt eingelesen? Die Kommunikation mittels mqtt läuft eigentlich ganz einfach ab.

Es gibt eine zentrale Instanz, das ist der mqtt Broker (z.B. Mosquitto oder Moquette, es gibt aber auch kommerzielle Produkte).
Jeder Teilnehmer, der über mqtt kommunzieren möchte (also die Geräte), verbindet sich als Client mit dem Broker.
Anschließend sendet er seine Befehle oder Werte, was auch immer, an den Broker, das heißt er publiziert ein Topic mit einem Payload.

Code: Alles auswählen

Beispiel: Ein Sensor misst eine Temperatur. Das Topic ist dann (z.B.) esp_xyz/stat/sensor1 und der Payload 22 (für 22°C).
Der Broker leitet diesen Payload an alle Clients weiter, die das Topic abonniert haben.

Wenn die Temperatur in openHAB ankommen soll, muss dort also das passende Topic als stateTopic in einem mqtt number Channel eingetagen sein.

Wenn Du nicht weißt, welche Topics das Device publiziert, musst Du entweder die Doku des Devices bemühen, oder (falls der Wert zyklisch gesendet wird) zumindest ein mqtt Analysewerkzeug wie mqtt spy oder mqtt.fx nutzen. Das Tool verbindet sich als Client mit dem Broker. Anschließend kannst Du im Tool das Topic # abonnieren (die # bedeutet, dass alles ab der Raute egal ist, in diesem Fall also "alles"). Nun wird im Tool jedes Topic auftauchen, welches publiziert wird. Wenn Du weißt, dass das Topic von einem bestimmten Gerät kommt, kannst Du das natürlich berücksichtigen und z.B. /ESP_EG/# abonnieren.

Noch eine Randbemerkung: Es ist zwar erlaubt, das Topic mit einem Slash zu beginnen (/), aber eigentlich sollte man das nicht tun.

EDIT: Glatt vergessen... Messwerte werden auch gerne in Form eines JSON Objekts publiziert, dann muss man auf openHAB Seite natürlich JSONPATH verwenden, um den konkreten Wert zu extrahieren. Falls Du da nicht weiter kommst, kannst Du gerne auch ein konkretes JSON Objekt schicken ;)
openHAB4.1.2 stable in einem Debian-Container (bookworm) (Proxmox 8.1.5, LXC), mit openHABian eingerichtet

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

Re: ESP Event über mqtt

Beitrag von peter-pan »

Schade, da kann ich dir leider nicht weiterhelfen. So tief in die Materie bin ich leider (noch) nicht vorgedrungen. Habe bisher nur Sonoff-Tasmotas im Einsatz. Werde aber deinen Post weiter aufmerksam verfolgen.
Aber kannst du das vielleicht über die WebUI des Schalters/Gerätes (WebUI-Konsole) herausfinden ?

Gruss Peter
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58
Answers: 0

Re: ESP Event über mqtt

Beitrag von raf65 »

Hey Udo1toni
Hast Du Dich schon etwas in mqtt eingelesen? Die Kommunikation mittels mqtt läuft eigentlich ganz einfach ab.
Ja denke schon, denn die Abfrage mit der Temperatur und dem ansprechen von Schaltern funktioniert einwandfrei. Bin aber natürlich kein Experte darin.

Mein Problem ist das ansprechend des EVENT vom ESP. Dieses Event kann ich nicht über MQTT.fx auslesen. Habe auch schon über Publish versucht den Befehl abzusetzten. Bisher ergebnislos.

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58
Answers: 0

Re: ESP Event über mqtt

Beitrag von raf65 »

Kein Problem Peter
irgendwann löse ich das Problem bestimmt und dann teile ich das hier.

raf65
Beiträge: 37
Registriert: 11. Dez 2019 11:58
Answers: 0

Re: ESP Event über mqtt

Beitrag von raf65 »

so kleines Upgrade

Habe das ganze zur Zeit über rules gelöst. Bin aber nicht zufrieden mit dem Ergebnis.

Unter Things habe ich den Typ als dimmer definiert und möchte eine Range von 10 -30 vorgeben wobei die Erhöhung um jeweils 0,5 Punkte erfolgen soll.

Code: Alles auswählen

Type dimmer : EGVorgabeTemperaturWohnzimmer		"Temperaturvorgabe Wohnzimmer" 					[stateTopic = "/ESP_EG/dummy/Wohnraum", min="10", max="30", step=0.5, commandTopic="", min="10", max="30", step=0.5  ]
Leider funktioniert das nicht. Bei mir wird immer 1-100 angezeigt auch wird der Status, also die Temperatur nicht richtig angezeigt, es wird eine Temperatur von 60 °C angezeigt. müssten jedoch 22 °C sein.
Auch die Schrittgröße von 0,5 wird ignoriert und erfolgt weiterhin 1er Schritten.

Irgendwas mache ich da wohl falsch. Habt Ihr eine Idee? Oder gibt es da eine andere Möglichkeit?

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

Re: ESP Event über mqtt

Beitrag von peter-pan »

Wie sieht denn dein Item aus ? Und wie hast du das in der Sitemap definiert?

Vielleicht geht es in der Sitemap mit einem Setpoint-Widget, z.B.:

Code: Alles auswählen

Setpoint item=radiator_valve_04_Set minValue=16.0 maxValue=25.0 step=0.5
Edit:
Ich weiss aber nicht ob Typ Dimmer in deinem Thing richtig ist. In meinem Sonoff TH16 habe ich die Temperatur als Number angelegt und das Item auch. Allerdings kann ich da nichts regeln(Nur Status).
Pi5/8GB(PiOS Lite 64-bit(bookworm)/SSD 120GB - OH4.1.2 openhabian

Antworten