ioBroker - WLANThermo

Dutchman

New member
Sind noch andere user unterwegs fuer Feedback der version 2.1 ? wen alles läuft werde ich die version diese Woche offiziell ins stable releasen
 

s.ochs

BOFH
Teammitglied
Admin
Alle Minis mit ESP32 haben die gleiche Schnittstelle wie das Nano V3, also Mini V3 oder auch Mini V1/V2 mit dem Umbau auf ESP32.
 

tstegmeier

New member
Funktioniert hervorragend und bisher sehr stabil. Hab es direkt installiert und getestet. Bisher alles bestens. Vielen Vielen Dank für die Integration in ioBroker. Getestet mit einem Mini V2(ESP32 Umbau).
 

Dutchman

New member
Funktioniert hervorragend und bisher sehr stabil. Hab es direkt installiert und getestet. Bisher alles bestens. Vielen Vielen Dank für die Integration in ioBroker. Getestet mit einem Mini V2(ESP32 Umbau).
vielen dank für dein Feedback, freut mich sehr und viel grill spass gewünscht :) (hier geht am WE auf pulled pork, auch gerade meine pit master empfange bin begeistert!)
 

Steak-Thermo

Active member
Wahnsinn, wie die Zeit vergeht. Es ist fast ein Jahr her, dass ich die letzte Version hier abgelegt hab. :eek:

Ich habe das ioBroker-Skript erweitert. Prinzipiell gilt, was ich am 27.10.21 schrieb. Einige Änderungen gibt es aber. Hier der überarbeitete Info-Text:

Grundlage ist das Skript von Markus (Danke dafür, ich habe viel gelernt). Als Fingerübung habe ich es für meine Zwecke angepasst. Eigentlich muss es nur eingespielt und gestartet werden. Es sei denn, die MQTT-Daten vom Thermo finden sich nicht unter mqtt.0 oder die ausgelesenen Werte sollen nicht unter javascript.0.WlanThermo abgelegt werden.
Der mqtt-Adapter muss natürlich eingespielt und die Anmeldedaten dort und im Thermo hinterlegt worden sein.

Wenn das Skript gestartet wird, durchläuft es alle, unter mqtt angemeldeten, Thermos und hinterlegt sie in einem Array. Für jedes Thermo werden die data- und settings-Objekte gelesen, geparsed und unter javascript.0.WLANThermo.[Thermoname] abgelegt. Ich habe ein Mini V2, es sollte aber auch mit den anderen Thermos klappen. Falls nicht, bitte eine Rückmeldung geben, ich schaue dann mal, ob ich das anpassen kann.

Beim ersten Start sollte es jetzt keine Warnungen mehr geben. Falls doch, bitte Bescheid geben. Am besten auch die Fehlermeldung aus dem Log mitgeben.

Unter javascript.0.WLANThermo wird ein State 'UpdateThermoListe' angelegt. Wird er auf true gesetzt, wird die Thermoliste neu aufgebaut. Das gilt natürlich auch für einen Neustart des Skripts. Veraltete Einträge von z.B. nicht mehr vorhandenen Thermos müssen händisch gelöscht werden, das macht das Skript nicht. Der Trigger kann z.B. über eine Oberfläche (Node-Red-Dashboard, ...) gesetzt werden, um das Neueinlesen zu starten.

Bei Änderungen an den mqtt-Objekten (das, was das Thermo regelmäßig schickt), werden die Objekte neu geparsed und die Werte wieder abgelegt. Das passiert alle X Sekunden, auch wenn sich die Werte vorher ändern. Im Thermo kann eingestellt werden, wie groß X sein soll, also in welchem Intervall die Werte aktualisiert werden sollen.

Unter javascript.0.WLANThermo.[Thermoname] wird ein State 'change' angelegt. Wird dieser auf true gesetzt, werden die Daten aus javascript.0.WLANThermo.[Thermoname] gelesen und in den mqtt-Bereich in ioBroker geschrieben. Dadurch werden Änderungen ans jeweilige Thermo geschickt.

Was ich noch bauen möchte ist, über das Node-Red-Dashboard Werte zu ändern und die ans Thermo zu schicken. Allerdings liest das Skript Änderungen vom Thermo ja, sobald das Thermo neue Daten schickt. Das würde die Werte im javascript.0.WLANThermo.[Thermoname]-Bereich überschreiben. Und zwar wohl relativ häufig, bei einem Intervall von 30 Sekunden. Da muss man wissen, wann ein Update kommt und hat dann wenig Zeit, die Anpassungen auch vorzunehmen. Aktuelle Idee: Ich setze einen Wert über Node-Red, der dafür sorgt, dass vorübergehend keine Werte vom Thermo ausgelesen werden. Wenn die Änderungen vorgenommen wurden, werden sie per Knopfdruck ans Thermo geschickt (javascript.0.WLANThermo.[Thermoname].change auf true setzen) und danach das Auslesen der Daten vom Thermo wieder aktiviert.
Falls jemand eine bessere Idee hat, immer her damit.

Falls euch Fehler auffallen oder irgendwas nicht gut umgesetzt ist, freue ich mich über jegliche Hinweise.
 

Anhänge

  • WLANThermo.zip
    4.2 KB · Aufrufe: 8

Steak-Thermo

Active member
Ja, ich weiß. Über den offiziellen Adapter kann ich das natürlich viel einfacher erreichen. Das war ein dankbares Projekt, um mal wieder ein bisschen zu programmieren. ;-)
 

xbow42

New member
Moin,

OT: das neue Spielzeug mini-v3 ist heute angekommen, cooles Teil.
Was den ioBroker-Adapter betrifft muss ich erst mal sichten, ob der mir einen Mehrwert bring als wenn ich den Mini über den eh schon aktiven MQTT-Adapter einbinde.
Zumindest sollte das nano in der Adapterbezeichnung gestichen werden ;)
Bitte weitere PROs warum man den Adapter lieber statt MQTT nutzen mag?

VG Micha
 

Steak-Thermo

Active member
Moin,

OT: das neue Spielzeug mini-v3 ist heute angekommen, cooles Teil.
Was den ioBroker-Adapter betrifft muss ich erst mal sichten, ob der mir einen Mehrwert bring als wenn ich den Mini über den eh schon aktiven MQTT-Adapter einbinde.
Zumindest sollte das nano in der Adapterbezeichnung gestichen werden ;)
Bitte weitere PROs warum man den Adapter lieber statt MQTT nutzen mag?

VG Micha
Über den Adapter kannst du dir das Gehampel mit dem Parsen sparen. Da reicht es, die jeweiligen Werte in ioBroker auszulesen, bzw. zu setzen.
 

xbow42

New member
Aber werte senden ging schon im ursprünglichen Script von mir… das läuft heute noch so in meinen iobroker
ja das funktioniert bei mir auch, aber der Datenpunkt wlanthermo-nano.0.000000000000.Pitmaster.Pitmaster_1.id steht auf "SSR SourVide(0)" und reagiert nicht auf einen neuen Wert. Egal ob ich den unter Objekte ändere oder über die WebGui(da ist "Sogambo(1)" eingestellt) ein anderes Profil wähle.
 
Oben Unten