ioBroker - WLANThermo Nano

s.ochs

BOFH
Teammitglied
Admin
Noch läuft der Adapter nur mit Nano V1 / V1+, dafür wurde er entworfen. Eine Anpassung an die ESP32-Modelle ist aber schon in Arbeit.
 

s.ochs

BOFH
Teammitglied
Admin
Man muss hier etwas unterscheiden zwischen dem offiziellen iobroker Adapter und den direkt mqtt Anbindungen, wie z. B. von @Markus7501 umgesetzt.
 

Markus7501

Active member
Hoffe ja das es bald den fertigen Adapter für die ESP32 gibt. Dann werde ich mir auf jedenfalls den noch mal ansehen
 

tritor

Member
Hi,
habe heute den NanoV1+ wieder mal in Betrieb genommen und festgestellt, daß sich über den Adapter die Temperaturgrenzen für den Alarm nicht ändern lassen.
Hier das Debug-Log:
Code:
wlanthermo-nano.0    2021-05-24 12:59:53.728    warn    (22572) Terminated (UNCAUGHT_EXCEPTION): Without reason

wlanthermo-nano.0    2021-05-24 12:59:53.728    info    (22572) terminating

wlanthermo-nano.0    2021-05-24 12:59:53.728    info    (22572) cleaned everything up...

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    (22572) Request failed with status code 401

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at processTicksAndRejections (internal/process/task_queues.js:84:21)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at endReadableNT (_stream_readable.js:1241:12)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at IncomingMessage.emit (events.js:326:22)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/lib/adapters/http.js:236:11)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at settle (/opt/iobroker/node_modules/axios/lib/core/settle.js:17:12)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    at createError (/opt/iobroker/node_modules/axios/lib/core/createError.js:16:15)

wlanthermo-nano.0    2021-05-24 12:59:53.727    error    (22572) Error: Request failed with status code 401

wlanthermo-nano.0    2021-05-24 12:59:53.726    error    (22572) unhandled promise rejection: Request failed with status code 401

wlanthermo-nano.0    2021-05-24 12:59:53.726    error    (22572) Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch().

wlanthermo-nano.0    2021-05-24 12:59:53.646    debug    (22572) {"number":1,"name":"Kanal 1","typ":0,"min":90,"max":171,"alarm":0,"color":"#0C4C88"}

wlanthermo-nano.0    2021-05-24 12:59:53.609    debug    (22572) Change in sensor settings33dff0.Sensors.Sensor_1.number

wlanthermo-nano.0    2021-05-24 12:59:53.609    debug    (22572) Triggered state : Sensors

wlanthermo-nano.0    2021-05-24 12:59:53.609    debug    (22572) Triggered state : wlanthermo-nano,0,33dff0,Sensors,Sensor_1,max

wlanthermo-nano.0    2021-05-24 12:59:53.609    debug    (22572) state wlanthermo-nano.0.33dff0.Sensors.Sensor_1.max changed: 171 (ack = false)

Ein Ändern terminiert die Instanz, hab es einige Male getestet.


Eventuell kann sich dutchman das ja ansehen.

Hab das auch im ioB-Forum gepostet.

Grüße
 

s.ochs

BOFH
Teammitglied
Admin
Da haben wir leider nicht so richtig einen Einfluss drauf. Die Entwicklung des Adapters erfolgt extern von @Dutchman (Mitglied im iobroker Entwicklerteam). Mein letzter Stand von ihm ist, dass er "dran" ist. Ist allerdings auch schon wieder etwas her. Ich werde mal schauen, dass ich nochmal ein Status-Update von ihm bekomme. Alternativ steht dir ansonsten auch immer die manuelle Einbindung per MQTT-Adapter zur Verfügung.
 

Tobi68

New member
Hallo,

Im Winter setzte ich mich seit letztem Jahr an den IOBroker.

Habe den Adapter mal eingerichtet und den Nano verbunden.
Dieses Skript läuft nicht durch, soweit ich gelesen habe brauch ich das aber auch gar nicht, der Adapter ist danach entstanden..
Richtig?

Das View was ich gefunden hatte funzt aber auch nicht.
Bin jetzt auch nicht der Profi, kann mir we bei der Fehlersuche helfen?

Danke

Tobi

1631737812899.png


1631737629657.png
 

Marwel

New member
Moin zusammen,
ich bin seit kurzer Zeit Besitzer eines NANO V3...
Da ich bei mir zu Hause einen IOBROKER am werkeln habe, wollte ich die Messwerte auch gerne da sehen
Hier im Forum bin ich auf das Script von Markus7501 gestoßen und habe es bei mir angelegt. Die Werte werden unter "Javascript 0 Grill" auch angezeigt. Lediglich im Script wird noch die folgende Zeile (und natürlich alle folgenden Codezeilen mit jr...) bemängelt:

try {
jr = JSON.parse(getState(pathdata).val);
}


Hier wird die Meldung "Cannot find name 'jr'.(2304)" angezeigt.
Ist das eine Fehlfunktion oder kann ich das ignorieren??

Hat jemand ne Idee?

Die Zeile "createState(pathSettings +'.max_chanels', max_chanels, {type: 'int',int: 'Grill.0.Settings.max_chanels'});"
hab ich schon in "
createState(pathSettings +'.max_chanels', max_chanels, {type: 'number',name: 'Grill.0.Settings.max_chanels'});" geändert.
 

Steak-Thermo

Active member
Ich habe mir die Datei von Markus mal geschnappt und als Übung für mich umgebaut. Dabei muss man auch nicht den Namen der Geräte angeben, das wird selbsttätig ermittelt. Ich kann in den nächsten Tagen mal die erste Version hier einstellen. Die Werte der Fühler werden nach Änderung im Javascript-Bereich abgelegt.
 

Markus7501

Active member
Finde es gut, dass dieses alte Script noch genutzt wird und es sogar weiterentwickelt wird. Sorry war lange nicht online, da mir etwas die Zeit fehlte.
 

Steak-Thermo

Active member
Dann hast du meine Frage schonmal beantwortet, bevor ich sie gestellt habe. ;-)
Ich muss noch ein paar Kleinigkeiten checken, dann stelle ich die hier ein.
 

Steak-Thermo

Active member
N'Abend,

ich bin jetzt nicht ganz sicher, ob es hier jetzt richtig ist. Falls nicht, bitte umbiegen.

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 gibt es viele Warnungen, das passiert bei der Neuanlage der States.

Unter javascript.0.WLANThermo wird ein State 'change' 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.

Bei Änderungen an den Objekten, werden die Objekte neu geparsed und die Werte wieder abgelegt. Das passiert nur alle 30 Sekunden, auch wenn sich die Werte vorher ändern. Wenn jemand weiß, wie ich das so ändern kann, dass die Werte sofort bei einer Änderung gelesen werden, baue ich das auch gerne um. Wobei ein Intervall von 30 Sekunden sicher ausreichen sollte.

Was ich noch umsetzen möchte: Bei Änderung der Werte unter javascript.0.WLANThermo sollen diese in die passenden Objekte geschrieben und über mqtt wieder ans Thermo geschickt werden. Das kann aber noch dauern.

Viel Spaß
 

Anhänge

  • WLANThermo.txt
    19.5 KB · Aufrufe: 6

Steak-Thermo

Active member
Ist bei meinem ähnlich. Lediglich habe ich nicht "any", sondern "ne" genommen. Ich bin allerdings auch nicht sicher, ob das Thermo die Daten höchstens alle 30 Sekunden ändert. Dann läge es nicht am Skript, sondern am Thermo. Sollte aber auch eigentlich reichen.
 

Marwel

New member
Vielen Dank für die schnelle Lösung...
Ich hab die erste Zeile auskommentiert, dann lief das Script sofort durch.
Bei mir werden die Messwerte alle 10 sec. aktualisiert weil ich in den MQTT Einstellungen unter IOT den Sendeintervall von 30 auf 10 sec. geändert habe.
 

Steak-Thermo

Active member
Keine Ahnung, wo die jetzt herkam. Ich habe die Datei oben korrigiert und den Kram rausgeworfen. Das sollte natürlich nicht in die Datei.

Bei mir werden die Messwerte alle 10 sec. aktualisiert weil ich in den MQTT Einstellungen unter IOT den Sendeintervall von 30 auf 10 sec. geändert habe.
Es kann so einfach sein. 😆
 
Oben Unten