sebilm/ioBroker.myuplink

Frequent crash in newest version

Closed this issue · 15 comments

Hi Seb, using the actual version from today download, it crashes frequently, every minute i would say. After a while, iobroker terminates the adapter permanently. Would you mind having a look, please?

This is the error log:

myuplink.0 2024-02-07 21:06:25.311 error Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n

504 Gateway Time-out

\r\n
Microsoft-Azure-Application-Gateway/v2\r\n\r\n\r\n"
myuplink.0 2024-02-07 21:06:25.310 error Error: Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n

504 Gateway Time-out

\r\n
Microsoft-Azure-Application-Gateway/v2\r\n\r\n\r\n" at MyUplinkRepository.checkError (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:101:18) at MyUplinkRepository.getFromMyUplinkAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:72:18) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async MyUplinkRepository.getDevicePointsAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:46:12) at async Myuplink.setSystemDeviceAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/main.js:264:30) at async /opt/iobroker/node_modules/iobroker.myuplink/build/main.js:214:9
myuplink.0 2024-02-07 21:06:25.308 error unhandled promise rejection: Gateway Time-out: "\r\n<title>504 Gateway Time-out</title>\r\n\r\n

504 Gateway Time-out

\r\n
Microsoft-Azure-Application-Gateway/v2\r\n\r\n\r\n"
myuplink.0 2024-02-07 21:06:25.307 error 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().
myuplink.0 2024-02-07 21:06:25.303 error { "message": "Request failed with status code 504", "name": "AxiosError", "stack": "AxiosError: Request failed with status code 504\n at settle (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:1967:12)\n at IncomingMessage.handleStreamEnd (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:3066:11)\n at IncomingMessage.emit (node:events:529:35)\n at endReadableNT (node:internal/streams/readable:1368:12)\n at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\n at Axios.request (/opt/iobroker/node_modules/axios/dist/node/axios.cjs:3877:41)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async MyUplinkRepository.getFromMyUplinkAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:63:24)\n at async MyUplinkRepository.getDevicePointsAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/myuplinkRepository.js:46:12)\n at async Myuplink.setSystemDeviceAsync (/opt/iobroker/node_modules/iobroker.myuplink/build/main.js:264:30)\n at async /opt/iobroker/node_modules/iobroker.myuplink/build/main.js:214:9", "config": { "transitional": { "silentJSONParsing": true, "forcedJSONParsing": true, "clarifyTimeoutError": false }, "adapter": [ "xhr", "http" ], "transformRequest": [ null ], "transformResponse": [ null ], "timeout": 45000, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN", "maxContentLength": -1, "maxBodyLength": -1, "env": {}, "headers": { "Accept": "application/json, text/plain, /", "user-agent": "iobroker.myuplink", "Authorization": "Bearer eyJhbGciOiJSUzI1NiIsImtpZCI6IkI3NDEwMDI3NjJGQ0MzOTQ3OTA1RTA0QUIxREFBMjNGMjk4MzIzQ0ZSUzI1NiIsInR5cCI6ImF0K2p3dCIsIng1dCI6InQwRUFKMkw4dzVSNUJlQktzZHFpUHltREk4OCJ9.eyJuYmYiOjE3MDczMzYzNTQsImV4cCI6MTcwNzMzOTk1NCwiaXNzIjoiaHR0cHM6Ly9hcGkubXl1cGxpbmsuY29tIiwiYXVkIjoiQVBJLXYyIiwiY2xpZW50X2lkIjoiZTRiNWUwNDQtYjNlYy00OTg5LTllMjktODFkYzgyMTY4MWE1Iiwic3ViIjoiY2UzZDUyMzEtMzYwMy00NGFmLWE3MjktMDhkOTJiZDZlZmYxIiwianRpIjoiRDg0MDNCNDM2NUQwNEJCQTU0NjlDMDlCREMxMkRDMEEiLCJpYXQiOjE3MDczMzYzNTQsInNjb3BlIjpbIlJFQURTWVNURU0iLCJXUklURVNZU1RFTSJdfQ.vGSuImcqJz2-zJ8xxfEmk1P-0Xdh4Z7t1d0EXbYcYBN5yOeAqxvamqMzGF8E_fxNq4Ra9IGJlPwyINjvQhdc4PGa-zF9NcIa7RtZspKWCz04hEDfV6DdQIi98zW69nhJ9lZINBCOnOn0igNBeSY2lr9NFHyDHM1HjtGsMhrCSGwIZDoXss_rIGgw3Qa-kSvG-Tq0ilVvKp7EioyVm1P-PSiGuTSv61_O1mV5l44Dy4YuOgMkFEp0aPRlnL_LqnXlFP5oCq5cc5D0GVBWbu8SO1XQWJDubh76idbwf3lQo0HEyyUEFQTCbAuz9oFHhz66xsOUUNWKYOSzYlKww22RUQ", "Accept-Language": "en", "Accept-Encoding": "gzip, compress, deflate, br" }, "baseURL": "https://api.myuplink.com", "method": "get", "url": "/v3/devices/emmy-r-104783-20240205-06722520297565-68-27-19-29-fa-12/points" }, "code": "ERR_BAD_RESPONSE", "status": 504}
myuplink.0 2024-02-07 21:06:25.297 error error from /v3/devices/emmy-r-104783-20240205-06722520297565-68-27-19-29-fa-12/points
myuplink.0 2024-02-07 21:05:54.128 info Adapter started.
myuplink.0 2024-02-07 21:05:54.088 info Starting adapter.
myuplink.0 2024-02-07 21:05:54.048 info starting. Version 0.7.0 (non-npm: sebilm/ioBroker.myuplink) in /opt/iobroker/node_modules/iobroker.myuplink, node: v18.18.2, js-controller: 5.0.17
 

The crash is not good, I'll have a look at that. But the main problem is that myUplink seems to be unavailable.

Moinsen seb, kämpfe hier seit Anfang der Woche mit dem gleichen Problem, ab dem 25.1. lief der Adapter bis dahin fehlerfrei. Die Version 0.7 ist aber m.E. nicht Verursacher, da ich erst auf Grund des Fehlers auf 0.7 gewechselt bin.
z.Zt. habe ich das Abrufintervall erstmal auf 5 Minuten gestellt. Bisher wurde der Adapter dadurch nicht mehr gekillt.

Same here. Tested with 0.6.0, 0.6.1 and 0.7.0. Crashes start a while after fresh configuration of the instance. But then came quite frequently.

Ich kann das auch bestätigen. ioBroker meldet sich auch mit "restart loops". Ich kann nicht sagen, ob das an der neuen Version liegt, weil ich den Adapter erst ein paar Tage nutze. Bin auch der Meinung, dass ich es mit einer vorherigen Version auch hatte. Ich lasse den Adapter jetzt mal in Debug laufen. Mal schauen, was kommt.

Außerdem sind mit dem Update auf 0.7 die Objekte durcheinander geraden. Hat sich da was geändert? Objekte ein mal mit Unterstrichten getrennt und ein mal mit Leerzeichen, zB.

@menkej IDs mit Leerzeichen und Umlauten sind nicht erlaubt. Deshalb musste ich die in den Kategorien ersetzen. Die alten Kategorien mit Leerzeichen und Umlauten werden ignoriert und sollten gelöscht werden.

Many thanks for the error reports. I have found the error and fixed it in version 0.7.1. The version can now be installed via npm and then later in the latest repository.

@menkej IDs mit Leerzeichen und Umlauten sind nicht erlaubt. Deshalb musste ich die in den Kategorien ersetzen. Die alten Kategorien mit Leerzeichen und Umlauten werden ignoriert und sollten gelöscht werden.

Ok, hab ich auch schon gemacht, weil sie nicht mehr aktualisiert werden. Aber: warum habe ich hinten am "Slave_1_EB101_" noch einen Unterstrich dran?

Was mir noch aufgefallen ist: aktuell pollt der Adapter minütlich, wie es scheint. Die Frequenz würde ich runter nehmen - so oft sendet die Nibe ja gar nicht. Nicht, dass wg. Last die API Dicht macht. Das Problem hatte ich mit meinem E-Auto und dem Adapter den ich dafür bauen wollte. Da half nur auf unregelm. Abfragen mit etwas unterschiedlichen Intervallen zu schwenken...

@menkej
Der Unterstrich am Ende kommt durch die Klammer, die da war - der Original-Name wird dir noch als Name direkt dahinter angezeigt. Alle Zeichen, die nicht erlaubt sind, werden durch _ ersetzt. Deshalb gibt es in den Einstellungen die Möglichkeit, die Kategorien umzubenennen - so kann das jeder für sich anpassen. Die API sendet halt bei verschiedenen Wärmepumpen verschiedene Dinge.
Auch die Frequenz kannst du in den Einstellungen ändern.

@menkej Der Unterstrich am Ende kommt durch die Klammer, die da war - der Original-Name wird dir noch als Name direkt dahinter angezeigt. Alle Zeichen, die nicht erlaubt sind, werden durch _ ersetzt. Deshalb gibt es in den Einstellungen die Möglichkeit, die Kategorien umzubenennen - so kann das jeder für sich anpassen. Die API sendet halt bei verschiedenen Wärmepumpen verschiedene Dinge.

So ist das mit generischen APIs... Aber dann hätten ja vor dem EB101 eigentlich 2 Unterstriche sein müssen. Das fängst du wohl ab. Meine Augen stört nur der Unterstrich am Ende. ;-)

Das mit dem Umbenennen ist natürlich eine Option. Ich habe das indirekt über Aliases gelöst - die musste ich jetzt eben nochmal alle anpassen. Aber das ist einfacher als in Influx die Werte wieder neu zusammenzufassen, wenn sich irgendein Gerät/Adapter ändert...

Wobei ich hier aktuell noch Probleme habe, weil die Migration der Verdichterstarts in influx von nibeuplink log auf myuplink log nicht geklappt hat (da war noch kein Alias drauf). Aber das hat nichts mit diesem Adapter zu tun. ;-)

Auch die Frequenz kannst du in den Einstellungen ändern.

Gefunden. Danke.

Many thanks for the error reports. I have found the error and fixed it in version 0.7.1. The version can now be installed via npm and then later in the latest repository.

Der Fehler kommt leider nach wie vor. Beim Adapter wird hier die Version 0.7.1 angezeigt, allerdings ist die Instanz noch auf 0.7.0. Ist das richtig so, oder was muss ich noch beachten?

Wenn im Instanz-Tab noch 0.7.0 steht, dann hast du das Update noch nicht installiert.

Wenn im Instanz-Tab noch 0.7.0 steht, dann hast du das Update noch nicht installiert.

OK Danke... hab' den Adapter nochmal drüber installiert jetzt passt es. :-)

Nach dem Update auf 0.7.1 läuft der Adapter bei jetzt auch sehr gut und ohne Probleme. Vielen Dank!

Der Eingangs genannte Fehlerblock erscheint noch in unregelmäßigen Abständen im Protokoll. Wie oft kann ich leider nicht sagen, da nach einiger Zeit der Fehler aus dem Protokoll verschwunden ist (ist das normal?).
Das Gute aber zum Schluss... der 0.7.1 Adapter ist in den letzten 24 Stunden nicht mehr abgestürzt... vielen Dank :-)

Also Abstürze habe ich mit der 0.7.1 jetzt auch nicht mehr. Sehr gut. Aber der Gateway-Timeout (ursprüngliche Fehlermeldung) kommt nach wie vor. Ich habe jetzt seit gestern testweise ein 2 Min Intervall eingestellt und werde wohl auf 10 oder 15 hoch gehen. Muss noch mal schauen wie oft die VVM500 überhaupt sendet... Ich vermute, dass die neue myuplink Plattform jetzt mit der Zwangsmigration durch das Update der alten Geräte etwas an die Grenzen kommt...