Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Node-Red crashes when the internet connection is lost #48

Closed
1 task done
firestorm96 opened this issue Jan 29, 2022 · 10 comments
Closed
1 task done

Node-Red crashes when the internet connection is lost #48

firestorm96 opened this issue Jan 29, 2022 · 10 comments
Labels
Potential bug Potential bug Waiting for feedback Waiting for feedback

Comments

@firestorm96
Copy link

Is there an existing issue for this?

  • I have searched the existing issues and no issue is describing my issue

The problem

Node-Red crashes after about 1min if the internet connection is lost.
This only happens if the Deebot-Node was connected to the server in the first place.

With which model does the problem occur?

Deebot T8 series

Which "other" models are you using?

No response

Which version of the ecovacs-deebot node are you using?

0.3.8

Which version of Node-RED you have installed?

1.2.9

Which version of Node.js are you using?

14.16.0

Anything in the logs that might be useful?

Jan 29 05:33:46 CCU daemon.err node-red: 29 Jan 05:33:46 - [red] Uncaught Exception:
Jan 29 05:33:46 CCU daemon.err node-red: 29 Jan 05:33:46 - Error: read ECONNRESET
Jan 29 05:33:46 CCU daemon.err node-red:     at TLSWrap.onStreamRead (internal/stream_base_commons.js:209:20)
Jan 29 05:33:47 CCU daemon.err node-red: Node-RED exited with non-zero exit status 1

Additional information

No response

@firestorm96 firestorm96 added Potential bug Potential bug Verification Verification labels Jan 29, 2022
@mrbungle64

This comment has been minimized.

@firestorm96

This comment has been minimized.

@mrbungle64
Copy link
Owner

@firestorm96

Sorry, ich hatte irgendwie 14.60.0 gelesen 😅
Die Version 14.16.0 ist allerdings keine aktuelle Version mehr. Das wäre für 14.x aktuell die 14.18.3

Welche Befehle sendest Du denn mit der Ecovacs Deebot Node?
Besonders interessant wäre natürlich was kurz bevor der Fehler auftritt gesendet wurde.

@firestorm96
Copy link
Author

@mrbungle64

Befehle sende ich zu dem Zeitpunkt gar keine.

Node.js is bei mir laut den Logs jeden Morgen um ca. 5:30 Uhr abgestürzt (hatte in meinem Router noch die Zwangstrennung drin, daher genau zu der Zeit kein Internet).

Habe vorhin zum testen mal alle Flows entfernt, einen neuen Flow nur mit dem Ecovacs-Deebot-Node erstellt und dann das Internet getrennt -> nach ca. einer Minute stürzt Node-Red dann ab.

Wenn ich das Node entferne oder einfach deaktiviere, läuft Node-Red auch ohne Internet ohne Probleme.

Ich nehme mal an, dass er ca. jede Minute überprüft, ob die Verbindung zum Ecovacs-Server noch steht und wenn nicht schmiert halt alles ab 😄

@mrbungle64
Copy link
Owner

@firestorm96

Ich nehme mal an, dass er ca. jede Minute überprüft, ob die Verbindung zum Ecovacs-Server noch steht und wenn nicht schmiert halt alles ab

Welche Komponente meinst Du?

@firestorm96
Copy link
Author

@mrbungle64
Das "Ecovacs Deebot"-Node:
grafik

@mrbungle64
Copy link
Owner

@firestorm96

Ich wüsste jetzt nichts davon, dass die Node selbst das tut - aber ich werde mir das noch mal anschauen und versuchen das Verhalten nachzustellen.

@mrbungle64
Copy link
Owner

mrbungle64 commented Jan 29, 2022

@firestorm96

Ich kann das Verhalten nachstellen und damit bestätigen.

Der Fehler selbst tritt zwar offensichtlich im TLSWrap Modul von Node.js auf (ggf. erst ab Version 14.x) - wird aber durch einer der ecovacs-deebot Komponenten ausgelöst und dort nicht abgefangen.

Das schaue ich mir dann so bald wie möglich mal genauer an.

@mrbungle64
Copy link
Owner

@firestorm96

Mit der Version 0.3.11 sollte das Verhalten merklich besser sein.

Das Problem hängt mit dem MQTT Client - welcher in der ecovacs-deebot Library verwendet wird - zusammen:
Der keepalive Wert vom MQTT Client hat als Standardwert 60 Sekunden. Daher war auch Deine Annahme "Ich nehme mal an, dass er ca. jede Minute überprüft, ob die Verbindung zum Ecovacs-Server noch steht und wenn nicht schmiert halt alles ab" nicht total verkehrt 😉 Allerdings hatte ich den Wert nicht explizit gesetzt - daher war mir das nicht bewusst.

Nach dieser Minute hat es also geknallt. Offensichtlich beim Reconnect - das ist zumindest jetzt meine Erfahrung und Erkenntnis.
Btw: Da scheinen auch ein paar andere Node-RED Flows von betroffenen zu sein, wo Websockets zum Einsatz kommen.

Jetzt sollte der Fehler von diesem TLSWrapper aber besser abgefangen werden. Ich hoffe Du kannst das soweit bestätigen 😉

@mrbungle64
Copy link
Owner

mrbungle64 commented Feb 7, 2022

@firestorm96

Mit der Version 0.3.12 sollte das Problem endgültig gefixt sein.

Für die MQTT Library kam heute ein Update raus - diese Version wird nun verwendet.
Wie schon vermutet lag da das eigentliche Problem. Der Bug wurde mit dieser Version gefixt.

Es wäre gut, wenn Du das auch noch bestätigen würdest.

@mrbungle64 mrbungle64 added Waiting for feedback Waiting for feedback and removed Verification Verification labels Feb 7, 2022
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
Potential bug Potential bug Waiting for feedback Waiting for feedback
Projects
None yet
Development

No branches or pull requests

2 participants