NEWS
Node-Red Adapter [gelöst]
-
Systemdata Bitte Ausfüllen Hardwaresystem: Pi4 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Raspbian Buster Node-Version: Nodejs-Version: 10.19.0 ==> 12.18.2 (2.7.2020) NPM-Version: 6.13.4 ==> 6.14.5 (2.7.2020) Installationsart: Image genutzt: Ort/Name der Imagedatei: Seit neuestem bekomme ich eine Warnung meines node-red Adapters
MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 stateChange listeners added. Use emitter.setMaxListeners() to increase limit
Das erste Mal habe ich das bemerkt, nachdem ich gestern abend das ganze System aktualisiert habe.
Ich habe anschließend mein System nochmals zurückgesetzt - allerdings blieb dann der Fehler erhalten. Eventuell wurde es nun auch durch ein Firmware Update, was nicht mehr rückgängig zu machen ist erzeugt.
Ich habe auch mal versucht meine Anzahl von mqtt- Input Nodes zu reduzieren, aber die Anzahl der StateChange Listeners ändert sich dadurch nicht. Ich konnte auch bislang noch keine Fehlfunktionen feststellen - aber ich bin schon etwas beunruhigt, da es vorher ja auch ohne diese Warnung ging.
Im Netz findet man die unterschiedlichsten Dinge und diese Meldung scheint immer mal wieder aufzutauchen.
Ob und wie man dieses Limit erhöht weiß ich nicht - allerdings bin ich auch nicht überzeugt, ob das wirklich die Lösung ist. So richtig schlau werde ich nicht.Vielleicht ist das bei dem einen oder anderen zwischenzeitlich auch aufgetreten und jemand weiß Rat?
-
Hi, wenn Node Red neu gestartet wird, habe ich auch immer diese Warnmeldung. Es funktioniert aber alles ohne Probleme. Ich habe auch schon gelesen es sei nur eine Warnung und kein Fehler und bräuchte nicht beachtet werden. Ich habe dafür keine Lösung gefunden, aber ich habe dadurch keine Probleme und beachte es deshalb auch nicht mehr.
Edit: Bei mir ist Node Red immer weiter gewachsen und irgendwann kam die Meldung und dann immer wieder. War schon auf dem Pi3 mit Raspian Lite so und auf dem Pi4 mit Buster hat sich das auch nicht geändert. Vielleicht liegt es daran das ich Node Red als Iobroker Adapter betreibe und es nicht vorgesehen war das es so umfangreich betrieben wird. Einstellungen dafür gibts wohl auch nicht, habe auf jeden fall nix gefunden. -
@frankyboy73
Ok Danke für die Antwort. - Ja Probleme konnte ich bisher auch noch nicht feststellen. Die Warnmeldung ist eigentlich plötzlich aufgetaucht, nachdem ich den Pi4 und den iobroker upgedated habe.
Bei der Recherche konnte ich auch keine schlüssige Erklärung finden.
Die Warnung kommt im Übrigen immer, sobald ich einen "Restart all flows" mache.Ich betreibe übrigens auch Node-Red als iobroker Adapter und bin im Übrigen ein großer Fan und dies ist das Herz meiner iobroker Logik und hoffe, dass ich nie auf Blockly umsteigen muss.
Also ich ignoriere es auch - aber ich habe es trotzdem mal gemeldet, da sich vielleicht die Entwickler dieses Adapter das mal anschauen.
-
Ich nutze Node-Red produktiv - deshalb mache ich die Updates auch nur wenn unbedingt notwendig - zudem ich die settings.js immer wieder anpassen muss!
Die obige Meldung wurde in einem anderen Thread ebenfalls thematisiert und in
Version 1.16.2 behobenIch habe das aus oben beschriebenen Gründen und da eine Warnung nicht getestet.
Nun habe ich im Stable (default) der Adapter aus 1.17.2 aktualisiert!
Doch nun ist die Meldung wieder da oder immer noch da!
node-red.0 2020-07-01 21:02:32.459 warn (7401) (node:7435) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 101 stateChange listeners added to [Adapter]. Use emitter.setMaxListeners() to increase limit
Außerdem bekomme ich nun eine Menge zusätzliche Informationen:
node-red.0 2020-07-01 21:02:37.225 info (7435) Automatic objects creation is not enabled. You can enable it in the node configuration
Was hat es damit auf sich - um welche Objekte handelt es sich hier - muss ich irgendwelche Anpassungen vornehmen?
Diese Meldung kommt ca. 14 mal vor - welche Nodes sind betroffen?
-
@mickym
Hi, Das erste ist so viel ich weiß nur eine Warnung. Wenn du mehr als 100 Inputs oder Gets benutzt ist das normal. Die Grenze soll so viel ich weiß auf 1000 angehoben werden., dachte eigentlich das wäre schon passiert. (da muss ich mich noch mal schlau machen) Falls du Node Red noch nicht so umfangreich nutzt, und unter 100 Listeners bist könnte das auf ein Problem hindeuten. Die Grenze 100 wurde wohl mal genommen weil nicht davon ausgegangen wurde das der Adapter so umfangreich genutzt wird.
Die zweite Meldung heißt, das die Automatische Objekterstellung ausgeschaltet ist. Wenn du zum Beispiel ein Iobroker Out in Node Red einfügst wählst du darin ja das Objekt aus das gesteuert werden soll. Du kannst aber im Iobroker Out auch einfach nur einen Namen eingeben und kein Objekt auswählen, wenn dann die Automatische Objekterstellung aktiviert ist, erstellt Node Red selber ein Objekt im Node Red Ordner. So zu sagen ein Virtuelles Objekt, in das man nen Status reinschreiben kann, den man dann an anderer Stelle wieder mit ner Input oder Get Node auslesen könnte. Das Automatische Objekt erstellen kann man in den Adaptereinstellungen ein und ausschalten.
Betroffen wären bei dir dann die Nodes in denen du kein Objekt ausgewählt hast. -
@frankyboy73 sagte in Node-Red Adapter:
Die zweite Meldung heißt, das die Automatische Objekterstellung ausgeschaltet ist.
Das habe ich mich auch schon gefragt, wo man das denn nun einschalten kann?
-
@frankyboy73
Ok danke - ja wie gesagt das mit der Warnmeldung hatte ich ja schon im Februar gemeldet und dann hieß es, dass man das mit Version 1.16.2 auf 1000 erhöht hat - deswegen wundere ich mich, warum das Problem in den höheren Versionen wieder da ist.Das mit der automatischen Erstellung - wäre gut, weil das in der alten Version nicht zuverlässig funktioniert hatte. Das heißt ich werde meine iobroker Out-Nodes mal alle anschauen und dann schauen, ob die Nachrichten weggehen - oder bleiben die auch als Info - selbst wenn ich das in Nodes konfiguriert habe?
In der Regel schauen - die ja so aus:
Ich hatte dann zur Erstellung einen Subflow geschrieben um in Datenpunkte verschlüsselte Passwörter zu schreiben oder auch die Stati für meine vis unter userdata zu schreiben:
Da hatte ich dann unter AutoCreate spezifiziert das diese Datenpunkte erstellt werden sollen, wenn sie nicht existieren. Das hat aber nicht sauber funktioniert bzw. nur so halb. Mit der neuen Version sind da nun einige Felder dazugekommen.
Meinst Du diese? - Die habe ich noch nicht angepasst.
-
@frankyboy73 Nun habe ich aus allen iobroker Out Nodes auf
"Ignore messages for non existing states" gestellt (also autoCreate="false" (String)) - aber die Meldungen bleiben immer noch.Dann stellt er auch das autoCreate auf "false"
Nur egal ob true oder false - ich habe ja vielleicht 100 iobroker Out Nodes und vielleicht 15 Log Einträge - aber die kann ich keinen Nodes zuordnen.