NEWS
[Gelöst] Alexa2-Adapter (Uncaught Rejection: ....)
-
Aufgetreten ist das Problem mit 3.19.10, aber inzwischen ist 3.20.0 installiert. Wie gesagt, Installation von Adapter und Instanz funktionieren fehlerlos. Löschen lassen sie sich danach nicht mehr.
Mach das mal aus einem richtigen Terminal, nicht aus der GUI heraus.
-
@ofbeqnpolkkl6mby5e13 sagte in Alexa2-Adapter (Uncaught Rejection: TypeError: ....):
Wie kann ich das beheben?
Wie es @Thomas-Braun schon geschrieben hat...
Warum wird eigentlich selten mal ganz oben in den News geschaut ?

Was hat die fehlerhafte Funktion damit zu tun, dass ich den Adapter nicht mehr löschen kann?
-
Mach das mal aus einem richtigen Terminal, nicht aus der GUI heraus.
Das habe ich natürlich auch schon versucht, kommt dieselbe Meldung:
# iobroker del alexa2.0 Delete instance "alexa2.0" host.iobroker Counted 1 instances of alexa2.0 Uncaught Rejection: TypeError: Cannot read properties of null (reading '_id') at /opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3422:42 at Array.map (<anonymous>) at ObjectsInRedisClient._applyViewFunc (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3414:39) at processTicksAndRejections (node:internal/process/task_queues:96:5) # -
Das habe ich natürlich auch schon versucht, kommt dieselbe Meldung:
# iobroker del alexa2.0 Delete instance "alexa2.0" host.iobroker Counted 1 instances of alexa2.0 Uncaught Rejection: TypeError: Cannot read properties of null (reading '_id') at /opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3422:42 at Array.map (<anonymous>) at ObjectsInRedisClient._applyViewFunc (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3414:39) at processTicksAndRejections (node:internal/process/task_queues:96:5) # -
Container.
-
Container.
Kein Grund.
-
Kein Grund.
Das ist exakt alles, was in der Konsole steht.
-
Ich hatte Probleme mit dem Alexa2-Adapter. Ich konnte plötzlich keinerlei Smarthome-Geräte mehr steuern. Zunächst hatte ich den Cookie erneuert, aber das half nicht. Dann habe ich die Instanz gestoppt und den gesamten Objektbaum gelöscht. Als ich danach die Instanz neu starten wollte, ist sie in eine Reboot-Schleife gegangen. Also wollte ich die Instanz und Adapter komplett löschen. Das ging aber nicht. Ich erhalte immer die folgende Fehlermeldung:
$ iobroker del alexa2 --debug Delete adapter "alexa2" host.iobroker Counted 1 instances of alexa2 host.iobroker Counted 1 meta of alexa2 Uncaught Rejection: TypeError: Cannot read properties of null (reading '_id') at /opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3422:42 at Array.map (<anonymous>) at ObjectsInRedisClient._applyViewFunc (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3414:39) at processTicksAndRejections (node:internal/process/task_queues:96:5) ERROR: Process exited with code 6Ich kann Instanz und Adapter händisch aus dem System löschen und danach sowohl Adapter und Instanz wieder installieren, aber beim Löschen bleibt das Problem. Außerdem meldet der iot-Adapter ebenfalls dasselbe, wenn ich ihn starte:
2022-10-29 15:10:23.582 - [32minfo[39m: host.iobroker "system.adapter.iot.0" enabled 2022-10-29 15:10:23.932 - [32minfo[39m: host.iobroker instance system.adapter.iot.0 started with pid 11575 2022-10-29 15:10:26.448 - [32minfo[39m: iot.0 (11575) Plugin sentry Sentry Plugin disabled for this process because sending of statistic data is disabled for the system 2022-10-29 15:10:26.832 - [32minfo[39m: iot.0 (11575) starting. Version 1.12.2 in /opt/iobroker/node_modules/iobroker.iot, node: v16.18.0, js-controller: 4.0.23 2022-10-29 15:10:26.945 - [32minfo[39m: iot.0 (11575) Connecting with a18wym7vjdl22g.iot.eu-west-1.amazonaws.com 2022-10-29 15:10:27.800 - [32minfo[39m: iot.0 (11575) Connection changed: connect 2022-10-29 15:10:28.903 - [31merror[39m: iot.0 (11575) 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(). 2022-10-29 15:10:28.904 - [31merror[39m: iot.0 (11575) unhandled promise rejection: Cannot read properties of null (reading '_id') 2022-10-29 15:10:28.906 - [31merror[39m: iot.0 (11575) TypeError: Cannot read properties of null (reading '_id') at /opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3422:42 at Array.map (<anonymous>) at ObjectsInRedisClient._applyViewFunc (/opt/iobroker/node_modules/@iobroker/db-objects-redis/lib/objects/objectsInRedisClient.js:3414:39) at processTicksAndRejections (node:internal/process/task_queues:96:5) 2022-10-29 15:10:28.907 - [31merror[39m: iot.0 (11575) Cannot read properties of null (reading '_id') 2022-10-29 15:10:28.924 - [32minfo[39m: iot.0 (11575) terminating 2022-10-29 15:10:28.926 - [33mwarn[39m: iot.0 (11575) Terminated (UNCAUGHT_EXCEPTION): Without reason 2022-10-29 15:10:28.973 - [32minfo[39m: iot.0 (11575) Connection changed: disconnect 2022-10-29 15:10:28.975 - [32minfo[39m: iot.0 (11575) Connection lost 2022-10-29 15:10:29.635 - [31merror[39m: host.iobroker instance system.adapter.iot.0 terminated with code 6 (UNCAUGHT_EXCEPTION)Wie kann ich das beheben?
@ofbeqnpolkkl6mby5e13 Dann ist in deinem System irgend ein Objekt kaputt. und das muss ggf noch nichtmal mit alexa 2 zu tun haben.
Am besten Backup von davor einspielen (oder objects.jsonl Backup (oder Redis weiss ja nicht wa Du hast) und ggf nochnmal versuchen bzw Adapter drüberinstallieren und nicht löschen.
passiert es auch mit Backup wieder?
-
@ofbeqnpolkkl6mby5e13 Dann ist in deinem System irgend ein Objekt kaputt. und das muss ggf noch nichtmal mit alexa 2 zu tun haben.
Am besten Backup von davor einspielen (oder objects.jsonl Backup (oder Redis weiss ja nicht wa Du hast) und ggf nochnmal versuchen bzw Adapter drüberinstallieren und nicht löschen.
passiert es auch mit Backup wieder?
Ist Redis. Probiere ich. Danke.
-
Ist Redis. Probiere ich. Danke.
@ofbeqnpolkkl6mby5e13 STOP! Redis mach mal was anderes, weil dann ists was anderes. KEIN BAckup nehmen
-
Ist Redis. Probiere ich. Danke.
@ofbeqnpolkkl6mby5e13 mach folgensdes.
- iobroker stoppen
- iobroker o deactivateSets
- iobroker o activateSets
Gehts danach wieder?
-
@ofbeqnpolkkl6mby5e13 STOP! Redis mach mal was anderes, weil dann ists was anderes. KEIN BAckup nehmen
Zu spät, tut mir leid. Soll ich die eventuell kaputte db nochmal in Betrieb nehmen?
-
Zu spät, tut mir leid. Soll ich die eventuell kaputte db nochmal in Betrieb nehmen?
@ofbeqnpolkkl6mby5e13 deine Entscheidung ;-) aber im
Zweifel schadet das da auch nichts bei der Backup dB. ;-)) dadurch wird eine interne Datenstruktur neu aufgebaut die es bei dir irgendwie zerbröselt hatteWichtig. Alle hosts stoppen bevor Du das auf einem Host aufruft.
-
@ofbeqnpolkkl6mby5e13 deine Entscheidung ;-) aber im
Zweifel schadet das da auch nichts bei der Backup dB. ;-)) dadurch wird eine interne Datenstruktur neu aufgebaut die es bei dir irgendwie zerbröselt hatteWichtig. Alle hosts stoppen bevor Du das auf einem Host aufruft.
Würde dich das Ergebnis denn interessieren? Dann mache ich das gerne.
Was heißt alle Hosts stoppen? Bei mir läuft alles in Containern. Die Redis-DBs in getrennten Containern. Ich habe nur einen Master, kein Slave.
-
Würde dich das Ergebnis denn interessieren? Dann mache ich das gerne.
Was heißt alle Hosts stoppen? Bei mir läuft alles in Containern. Die Redis-DBs in getrennten Containern. Ich habe nur einen Master, kein Slave.
@ofbeqnpolkkl6mby5e13 ok dann nur Master stoppen. War von Master Slave ausgegangen (Bzw wenn objects und States im redis sind ist formal der redis der Master ;-)) die iobroker Instanzen sind dann alle gleichberechtigt.
Ergebnis wirst du keins bekommen außer das es fertig ist. Also have fun ;-)
-
@ofbeqnpolkkl6mby5e13 ok dann nur Master stoppen. War von Master Slave ausgegangen (Bzw wenn objects und States im redis sind ist formal der redis der Master ;-)) die iobroker Instanzen sind dann alle gleichberechtigt.
Ergebnis wirst du keins bekommen außer das es fertig ist. Also have fun ;-)
Okay, ich werde berichten.
-
@ofbeqnpolkkl6mby5e13 ok dann nur Master stoppen. War von Master Slave ausgegangen (Bzw wenn objects und States im redis sind ist formal der redis der Master ;-)) die iobroker Instanzen sind dann alle gleichberechtigt.
Ergebnis wirst du keins bekommen außer das es fertig ist. Also have fun ;-)
Hat funktioniert!
# iobroker o deactivateSets Successfully deactivated the usage of Redis Sets. # iobroker o activateSets Successfully migrated 19719 objects to Redis Sets Successfully activated the usage of Redis Sets. Please make sure to only use js-controller 4.0 or higher on all hosts!Instanz und Adapter für Alexa2 lassen sich wieder deinstallieren. Außerdem funktioniert der iot-Adapter wieder.
Was sind denn diese Sets?
Der Objektbaum des Alexa2-Adapters war wegen vieler Geräte sehr groß, weshalb das Löschen lange gedauert hat. Aber ich habe das artig abgewartet, bevor ich die Instanz neu gestartet hatte. Deutet das auf einen Fehler des JS-Controllers hin, beim Löschen von großen Datenmengen?
-
Hat funktioniert!
# iobroker o deactivateSets Successfully deactivated the usage of Redis Sets. # iobroker o activateSets Successfully migrated 19719 objects to Redis Sets Successfully activated the usage of Redis Sets. Please make sure to only use js-controller 4.0 or higher on all hosts!Instanz und Adapter für Alexa2 lassen sich wieder deinstallieren. Außerdem funktioniert der iot-Adapter wieder.
Was sind denn diese Sets?
Der Objektbaum des Alexa2-Adapters war wegen vieler Geräte sehr groß, weshalb das Löschen lange gedauert hat. Aber ich habe das artig abgewartet, bevor ich die Instanz neu gestartet hatte. Deutet das auf einen Fehler des JS-Controllers hin, beim Löschen von großen Datenmengen?
@ofbeqnpolkkl6mby5e13 bisher gibts keine Anzeichen das löschen von vielen Objekten das verursacht.
Die Sets optimieren den Zugriff auf Objekte eines gleichen Typs, so eine Art „objektsuche nach Typ“. Das dauert mit redis ewig weil jedes Objekt gelesen, geparst und geprüft werden muss. Die Sets enthalten quasi direkte Listen mit dem Objekt IDs pro Typ. Damit spart man sich das. Ich denke der js-Controller 4.1 optimiert da den Fehler weg
-
@ofbeqnpolkkl6mby5e13 bisher gibts keine Anzeichen das löschen von vielen Objekten das verursacht.
Die Sets optimieren den Zugriff auf Objekte eines gleichen Typs, so eine Art „objektsuche nach Typ“. Das dauert mit redis ewig weil jedes Objekt gelesen, geparst und geprüft werden muss. Die Sets enthalten quasi direkte Listen mit dem Objekt IDs pro Typ. Damit spart man sich das. Ich denke der js-Controller 4.1 optimiert da den Fehler weg
Okay, vielen Dank für deine Hilfe!
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden