Closed MatzeFro closed 1 year ago
Kann ich so nicht nachvollziehen. Poste bitte einen screenshot der Instanzen-Parameter des Adapters. Zusätzlich bitte noch den Output von http://ems-esp/api/boiler (ems-esp ggfs. durch die IP-Adresse ersetzen)
Hallo zusammen,
hier einmal die beiden abfragen.
Danke und Gruß Matthias
Hallo - noch ein Update...
wenn ich das richtig interpretiere ist
"auxheaterstatus": 0,
der letzte Eintrag den er in den IOBroker importiert.
gruß und Danke Matthias
Ich vermute, dass ggfs die Details zur Entity fehlen oder falsch sind. Rufe mal http://ems-esp/api/boiler/auxheaterstatus und http://ems-esp/api/boiler/auxheaterdelay auf und poste das Ergebnis.
Ich habe den Code zum ems-esp Gateway leicht geändert, um ggfs. diesen Fehler abzufangen. Kannst den Adapter mal vom Github installieren und schauen, ob es dann funktioniert.
Hier die API-Ausgaben:
... und was macht die Github Version des Adapters?
der Adapter läuft schein bar nun mit der "Test-Version" im log kommen noch 2 Warnungen.
Die Warnungen kommen von ioBroker, da durch das ems-esp Gateway der Wertebereich mit einem Minimum von 50 übergeben wird, aber der aktuelle Wert 0 ist. (ignorieren) Kannst du mal bitte die Objektdaten (aus dem ioBroker Objektbrowser) des States boiler.auxheaterdelay posten ?
Bitte schön:
{ "_id": "ems-esp.0.boiler.auxheaterdelay", "type": "state", "common": { "id": "boiler.auxheaterdelay", "name": "ems: aux heater on delay", "type": "number", "unit": "K*min", "read": true, "write": true, "role": "level", "min": 10, "max": 1000 }, "native": { "ems_type": "number", "visible": true, "ems_command": "auxheaterdelay", "ems_device": "boiler", "ems_id": "", "ems_api": "V3" }, "from": "system.adapter.ems-esp.0", "user": "system.user.admin", "ts": 1688818972559, "acl": { "object": 1636, "state": 1636, "owner": "system.user.admin", "ownerGroup": "system.group.administrator" } }
Das sieht ok aus. Muss ein anderer State sein, welcher den Absturz provoziert hat. Ich habe eine geänderte Version in GH hochgeladen, welcher eine Meldung im Log erzeugt. Kannst Du diese Version mal laufen lassen und schauen was im Log steht?
nun stürzt er wieder ab
Mist da war ich etwas zu unkonzentriert - Funktion nennt sich adapter.log.warn und nicht adapter.log .warning .... deshalb der Absturz. Ist korrigiert, kannst du nochmal testen?
.... sorry ich teste gerade bei mir ... gibt falsche Meldungen aus .... ich muss mal schauen
kann passieren - ich Danke Dir trotzdem
operating time compressor pool = 49710 Tage, 6 Stunden, 24 Minuten
ems-esp.0 | 2023-07-08 15:46:55.131 | info | ems :true 30 secs |
---|---|---|---|
ems-esp.0 | 2023-07-08 15:46:55.130 | info | end of initializing ems states |
ems-esp.0 | 2023-07-08 15:46:50.282 | info | V3 url1:http://ems-esp.fritz.box/api/thermostat |
ems-esp.0 | 2023-07-08 15:46:38.776 | warn | wrong ems-esp state definition: boiler.uptimecomppool { "name": "uptimecomppool", "fullname": "operating time compressor pool", "circuit": "", "value": 71582784., "type": "number", "uom": "minutes", "readable": true, "writeable": false, "visible": true } |
ems-esp.0 | 2023-07-08 15:46:25.833 | info | V3 url1:http://ems-esp.fritz.box/api/boiler |
ems-esp.0 | 2023-07-08 15:46:25.642 | info | V3 url:http://ems-esp.fritz.box/api/system |
ems-esp.0 | 2023-07-08 15:46:25.638 | warn | wrong ems-esp state definition: esp.api |
ems-esp.0 | 2023-07-08 15:46:25.635 | info | start initializing ems states false |
ems-esp.0 | 2023-07-08 15:46:25.630 | info | API version identified V3 |
ems-esp.0 | 2023-07-08 15:46:12.578 | info | starting. Version 1.30.0 (non-npm: tp1de/ioBroker.ems-esp) in /opt/iobroker/node_modules/iobroker.ems-esp, node: v18.16.1, js-controller: 5.0.6 |
so ich habe den Adapter nochmal korrigiert und die falschen Warnmeldungen beim Werte-Update unterdrückt.
Für den State boiler.uptimecomppool (s.o.) ist das JSON Format vom ems-esp API-Interface falsch und bei der Konvertierung entsteht der Fehler. Das Feld "value" hat den Wert 71582784. - das mag Javascript bei der Konvertierung nicht. Richtig wäre 71582784 (ohne Punkt am Ende) oder 71582784.0 (mit Nachkommastelle). Das müsste dann in der ems-esp Firmware (API-Interface) korrigiert werden. Ich wüsste nicht wie ich das im ioBroker Adapter korrigieren könnte.
Nun fange ich den Konvertierungsfehler ab und erzeuge den State ohne diese Informationen. Schau mal wie der dann in ioBroker aussieht.
Nun sieht es ok aus. der Adapter startet jedenfalls nicht mehr durch und die Werte werden sauber aktualisiert
2023-07-08 16:38:12.687 - info: ems-esp.0 (12317) starting. Version 1.30.0 (non-npm: tp1de/ioBroker.ems-esp) in /opt/iobroker/node_modules/iobroker.ems-esp, node: v18.16.1, js-controller: 5.0.6 2023-07-08 16:38:36.072 - info: ems-esp.0 (12317) API version identified V3 2023-07-08 16:38:36.074 - info: ems-esp.0 (12317) start initializing ems states false 2023-07-08 16:38:36.079 - info: ems-esp.0 (12317) V3 url:http://ems-esp.fritz.box/api/system 2023-07-08 16:38:36.276 - info: ems-esp.0 (12317) V3 url1:http://ems-esp.fritz.box/api/boiler 2023-07-08 16:38:47.536 - warn: ems-esp.0 (12317) wrong ems-esp state definition: boiler.uptimecomppool { 2023-07-08 16:38:58.704 - info: ems-esp.0 (12317) V3 url1:http://ems-esp.fritz.box/api/thermostat 2023-07-08 16:39:03.181 - info: ems-esp.0 (12317) end of initializing ems states 2023-07-08 16:39:03.183 - info: ems-esp.0 (12317) ems :true 30 secs 2023-07-08 16:39:12.155 - warn: ems-esp.0 (12317) State value to set for "ems-esp.0.boiler.hphystheat" has value "0" less than min "50" 2023-07-08 16:39:12.165 - warn: ems-esp.0 (12317) State value to set for "ems-esp.0.boiler.hphystcool" has value "0" less than min "50"
Ich habe doch mal versucht die Werte im JSON zu korrigieren, d.h. den Punkt am Ende zu eliminieren. Dann werden auch die anderen Definitionswerte vom ems-esp API-Interface übernommen. Schau mal, ob es funktioniert.
nun startet er ohne Fehlermeldung und der Wert wird gesetzt.
So könnte ich ja direkt nochmals Danke sagen.
2023-07-08 17:09:19.463 - info: ems-esp.0 (14324) starting. Version 1.30.0 (non-npm: tp1de/ioBroker.ems-esp) in /opt/iobroker/node_modules/iobroker.ems-esp, node: v18.16.1, js-controller: 5.0.6 2023-07-08 17:11:33.379 - info: ems-esp.0 (14324) API version identified V3 2023-07-08 17:11:33.382 - info: ems-esp.0 (14324) start initializing ems states false 2023-07-08 17:11:33.389 - info: ems-esp.0 (14324) V3 url:http://ems-esp.fritz.box/api/system 2023-07-08 17:11:33.580 - info: ems-esp.0 (14324) V3 url1:http://ems-esp.fritz.box/api/boiler 2023-07-08 17:11:57.071 - info: ems-esp.0 (14324) V3 url1:http://ems-esp.fritz.box/api/thermostat 2023-07-08 17:12:02.414 - info: ems-esp.0 (14324) end of initializing ems states 2023-07-08 17:12:02.415 - info: ems-esp.0 (14324) ems :true 30 secs
Gut, dann lass ich es erst mal dabei. Welche Wärmepumpe hast du eigentlich?
Es ist eine "Bosch Splitwärmepumpe 3400i"
und nochmals vielen Dank
Nichts zu danken, ich hatte schon lange keine Änderungen mehr im ioBroker Adapter, da ich selber aktuell home assistant bevorzuge. Ich mach aber ein neues Release für diesen Adapter.
Ich würde dir empfehlen die aktuelle Entwicklungsversion 3.6.0-dev xx für ems-esp zu Installieren. Dann hast du alle aktuellen Korrekturen und Erweiterungen
hatte ich mittlerweile auch schon installiert. änderte aber nichts an der fehlenden 0 nach dem Komma. hier kämpfe ich aktuell auch - macht sporadisch scheinbar einen FR :( oder speichert nicht sauber.
Hallo zusammen,
Ich habe eine neue Wärmepumpe und das Gateway S32 von BBQKees (Firmware 3.5.1). die Wärmepumpe und das Gateway scheinen ohne Probleme mit einander zu kommunizieren. Nun haber ich mir den iobroker-Adapter EMS-ESP installiert und versuche ihn erst einmal "minimal" zu betreiben. also nur IP eingetragen. im Gateway noch das "Boolean Format" auf 1/0 und "Bypass Access Token authorization on API calls" auf true
hat jemand eine Idee?
Gruß und Danke
im iobroker log kommt dann folgender Absturz: info: host.yyyyyyyyyyyy instance system.adapter.ems-esp.0 started with pid 20864 info: ems-esp.0 (20864) starting. Version 1.30.0 in /opt/iobroker/node_modules/iobroker.ems-esp, node: v18.16.1, js-controller: 5.0.6 info: ems-esp.0 (20864) API version identified V3 info: ems-esp.0 (20864) start initializing ems states false info: ems-esp.0 (20864) V3 url:http://xx.xx.xx.xx/api/system info: ems-esp.0 (20864) V3 url1:http://xx.xx.xx.xx/api/boiler error: ems-esp.0 (20864) 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(). error: ems-esp.0 (20864) unhandled promise rejection: Unexpected token , in JSON at position 119 error: ems-esp.0 (20864) SyntaxError: Unexpected token , in JSON at position 119 at write_state (/opt/iobroker/node_modules/iobroker.ems-esp/lib/ems.js:413:22) at init_states_emsesp (/opt/iobroker/node_modules/iobroker.ems-esp/lib/ems.js:95:8) at async Object.init (/opt/iobroker/node_modules/iobroker.ems-esp/lib/ems.js:44:17) at async main (/opt/iobroker/node_modules/iobroker.ems-esp/main.js:99:49) error: ems-esp.0 (20864) Unexpected token , in JSON at position 119