NEWS
Tasmota MQTT Werte erhalten
-
Hallo,
da ich etliche Tasmota Zwischenmessstecker habe und die Werte gerne über gesendete mqtt Nachrichten in iobroker bekommen möchte, das aber nicht ganz so einfach war, wollte ich mal meine Lösung vorstellen.
Gut an IOBROKER ist das mit dem MQTT Broker/Client Adapter man auf externe Programme wie mosquito verzichten kann. Daher habe ich diesen Adapter als sink für die mqtt Nachrichten verwendet:
Konfiguriert wird der Adapter als Server/Broker. Verwendet habe ich Port 1833 ohne WebSockets. Benutzer und Passwort sind vergeben:Auf den Tasmotageräten wird dann die iobroker-IP konfiguriert mit dem User und dem Passwort.
Ein passender Name unter Topic kann man dort auch vergeben:
Damit die Werte regelmäßig an iobroker gesendet werden kann man in der Konsole von Tasmota Pausenwert zwischen zwei Nachrichten mittels
TelePeriod 10
z.B. auf 10 s ändern.Im Objektbaum findet man dann Nachrichten unter mqtt/<Index> in mehreren Unterverzeichnissen wieder. Ich benutze aber die Werte unter tele/<vergebenerName>/SENSOR da ich dann das Gerät auch mal tauschen kann und im Gerät nur wieder den gleichen Namen einstellen muss:
{ "Time": "2024-02-20T10:59:50", "ENERGY": { "TotalStartTime": "2023-12-31T11:37:00", "Total": 90.376, "Yesterday": 0.023, "Today": 0.01, "Period": 0, "Power": 1, "ApparentPower": 2, "ReactivePower": 2, "Factor": 0.44, "Voltage": 228, "Current": 0.01 } }
In den anderen Feldern kann man weitere Werte des Gerätes ermitteln.
Leider werden die Werte aber nicht weiter einzeln ausgegeben. So muss man nun das verschachtelte JSON auslesen um die Werte dann im Objektbaum unter 0_userdata zu speichern. Dazu habe ich mir dort in einem mir passenden Verzeichnis einen Channel angelegt und darunter dann die States für Arbeit und Leistung. Ein weiterer Wert Anzahl dient dazu die Anzahl der eingeschalteten Frostschutz-Heizungen im Zelt zu ermitteln:
Um die Einzelwerte dann in meine neuen State zu bekommen benutze ich ein Blockly Script:
Es macht in etwa folgendes:
Wenn sich SENSOR ändert dann lese das JSON aus SENSOR und speichere Ihn eine Variablejobject
.
Dann speichere jeweils die Werte von Arbeit und Leistung in meinem erzeuten State Objekte indem das passende JSON-Attribut in ein Object und dann in eine Zahl verwandelt wird.
Meine Anzahl wird dann auch gleich noch berechnet.Das wars auch schon.
Hier noch das ganze für einen Satz von Temperatursensoren welche ich auch über ein Tasmota-Gerät auslese:
Ich hatte dazu ein Sonoff Basic R2 verwendet welches ein internes Netzteil als galvanische Trennung zwischen benutzt, das Relais und die Verbindungstrippe raus geworfen damit ich die 2pol. Ausgangsbuchse als Anschluss für die DS18B20 Sensoren verwenden kann. Ich konnte 9 Stück damit parasitär betreiben. Ein weiterer im Gerät eingelöteter läuft nicht-parasitär (Hier DS18B20-1). Angeschlossen habe ich dann aktuell nur 5 Stück + der Interne.
Ich hoffe ich kann mit meiner kurzen Beschreibung Leuten weiter helfen.
Mein nächstes Ziel ist dann noch über mqtt auch die Relais zu schalten.
Ich haben ansonsten noch die Software evcc, ein OpenDTU und einen Bayern-Lüfter via mqtt angebunden. Das dann aber später vielleicht in einem eigenen Tröt.
-
@tasuanetrukiat
Warum machst Du das nicht mit dem Sonoff-Adapter?
Der fummelt einem das fein auseinander (Leistungen, Temperaturen usw.) und Schalten geht auch. Ohne Blockly o.ä. -
Du solltest die Temp nach der ID zuordnen. Ansonsten könnte es zu Problemen kommen (falsch Zuordnung).
Genauer hier:
https://forum.iobroker.net/topic/69730/csw120-warmwasserspeicher-an-welchen-rohren-messen/12 -
@haselchen sagte in Tasmota MQTT Werte erhalten:
Bei Tasmota Geräten nimmt man den Sonoff Adapter.
warum?
Ich nehme nur den mqtt. -
Wo ist der Vorteil ?
-
@haselchen sagte in Tasmota MQTT Werte erhalten:
Wo ist der Vorteil ?
Das weiß ich nicht.
Du hast doch geschrieben:@haselchen sagte in Tasmota MQTT Werte erhalten:
Bei Tasmota Geräten nimmt man den Sonoff Adapter.
Die sind aufeinander eingespielt und liefern dir fertige Datenpunkte. -
Dabei bleibe ich auch
Aber wo liegt für Dich der Vorteil den MQTT bei Tasmota zu benutzen ?
Die Geräte sind in 30sek eingebunden und liefern Dir sofort ALLE Datenpunkte fertig aufgelistet.
-
@haselchen sagte in Tasmota MQTT Werte erhalten:
Aber wo liegt für Dich der Vorteil den MQTT bei Tasmota zu benutzen ?
ich denke der "Vorteil" liegt darin, wenn man sowieso schon mqtt nutzt (und weiß wie es funktioniert) spart man sich zusätzliche Adapter
-
@crunchip sagte in Tasmota MQTT Werte erhalten:
ich denke der "Vorteil" liegt darin, wenn man sowieso schon mqtt nutzt (und weiß wie es funktioniert) spart man sich zusätzliche Adapter
genau so
1 Adapter weniger