NEWS
Crash nach Speichern von Javascript
-
Guten Morgen
Mein ioBroker verabschiedet sich nach dem Speichern von Javascript. Kommt bei verschiedenen Scripts vor, kurz nach dem Speichern ist ioBroker nicht mehr aktiv und muss über Terminal neu gestartet werden.
admin 3.4.7
javascript 3.6.4
Kann mir jemand helfen?
! 2018-09-14 06:52:45.847 - [31merror[39m: javascript.0 Error: websocket error
! at WS.Transport.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:64:13)
! at WebSocket.ws.onerror (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:150:10)
! at WebSocket.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:109:16)
! at emitOne (events.js:116:13)
! at WebSocket.emit (events.js:211:7)
! at WebSocket.finalize (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:182:41)
! at emitOne (events.js:116:13)
! at Socket.emit (events.js:211:7)
! at emitErrorNT (internal/streams/destroy.js:64:8)
! at _combinedTickCallback (internal/process/next_tick.js:138:11)
! at process._tickCallback (internal/process/next_tick.js:180:9)
! 2018-09-14 06:52:45.857 - [31merror[39m: javascript.0 uncaught exception: write EPIPE
! 2018-09-14 06:52:45.857 - [31merror[39m: javascript.0 Error: write EPIPE
! at _errnoException (util.js:992:11)
! at WriteWrap.afterWrite (net.js:864:14)
! 2018-09-14 06:52:45.869 - [31merror[39m: kecontact.0 websocket error
! 2018-09-14 06:52:45.856 - [31merror[39m: web.0 Error: websocket error
! at WS.Transport.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transport.js:64:13)
! at WebSocket.ws.onerror (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/engine.io-client/lib/transports/websocket.js:150:10)
! at WebSocket.onError (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/EventTarget.js:109:16)
! at emitOne (events.js:116:13)
! at WebSocket.emit (events.js:211:7)
! at WebSocket.finalize (/opt/iobroker/node_modules/iobroker.js-controller/node_modules/ws/lib/WebSocket.js:182:41)
! at emitOne (events.js:116:13)
! at Socket.emit (events.js:211:7)
! at emitErrorNT (internal/streams/destroy.js:64:8)
! at _combinedTickCallback (internal/process/next_tick.js:138:11)
! 2018-09-14 06:52:45.869 - [31merror[39m: web.0 uncaught exception: write EPIPE
! 2018-09-14 06:52:45.869 - [31merror[39m: web.0 Error: write EPIPE
! at _errnoException (util.js:992:11)
! at WriteWrap.afterWrite [as oncomplete] (net.js:864:14) -
Was genau machen denn deine Skripte so? Irgendwas mit Write auf pipes? Da ist ein Fehler drin mit einer nicht Gefangenen exception EPIPE
Welcher js-Controller?
Gesendet vom Handy …
-
vielen Dank für die Antwort. Ich weiss nicht mal was pipe ist…
Der Fehler tritt nach dem Speichern aller scripts auf. Nach einem sudo iobroker start läuft es wieder und alles ist io...
js-controller ist 1.4.2
danke
Thierry
-
Dann zeig doch mal bitte solch ein Skript, was den ioBroker abstürzen lässt!
Enrico
-
ja, gerne:
! function setBedroomShadesOpen () {
! setBedroomShades (100,100);
! }
! function setBedroomShadesHalf () {
! // summer: 23,1,38 (Tuere)
! var astroTime = getAstroDate('sunriseEnd');
! var testTime = addTime('07:00:00');
! if (astroTime > testTime) {
! setBedroomShades (40,50);
! } else {
! setState("hm-rpc.0.MEQ0516382.1.LEVEL"/Schlafz_rechts 2.LEVEL/,1);
! setState("hm-rpc.0.MEQ0517911.1.LEVEL"/Schlafz_links 2.LEVEL/,20);
! setState("hm-rpc.0.MEQ0517906.1.LEVEL"/Schlafz_Tuere.LEVEL/,38);
! }
! }
! function setBedroomShadesClosed () {
! setBedroomShades (0,0);
! }
! function setBedroomShades (levelWindow,levelDoor) {
! log("setting bedroom shades with window: " + levelWindow + " and door: " + levelDoor);
! setState("hm-rpc.0.MEQ0516382.1.LEVEL"/Schlafz_rechts 2.LEVEL/,levelWindow);
! setState("hm-rpc.0.MEQ0517911.1.LEVEL"/Schlafz_links 2.LEVEL/,levelWindow);
! setState("hm-rpc.0.MEQ0517906.1.LEVEL"/Schlafz_Tuere.LEVEL/,levelDoor);
! if (levelWindow > 0 && levelDoor > 0) {
! setState("hm-rega.0.11186"/Rolladen_alle_unten/, false);
! }
! }
! function closeGardenShades () {
! if (getState("hm-rpc.0.LEQ1249130.1.STATE"/Gartentuere.STATE/).val === 0) {
! // Gartentüre ist geschlossen
! setState("hm-rpc.0.MEQ0188927.1.STATE"/Teichpumpe.STATE/,false);
! if (!getState("hm-rega.0.2881"/Gaeste/).val) {
! // keine Gaeste
! setState("hm-rpc.0.LEQ1179670.1.LEVEL"/Roll_Gartenz_Fenster.LEVEL/,0);
! setStateDelayed("hm-rpc.0.LEQ1179485.1.LEVEL"/Roll_Gartenz_Tuere.LEVEL/,0,180000);
! // if Heizung = aus => include Gaestezimmer
! // if(!getState("hm-rega.0.5679"/Heizung/).val) {
! setState("hm-rpc.0.LEQ1179719.1.LEVEL"/Roll_Gaeste.LEVEL/,0);
! // }
! }
! }
! }
! function openGardenShades () {
! // only if not Ferien & not Guests
! if (!getState("hm-rega.0.2881"/Gaeste/).val && !getState("hm-rega.0.13182"/Ferien/).val) {
! if(getState("hm-rega.0.16907"/GastEG/).val === false) {
! setState("hm-rpc.0.LEQ1179670.1.LEVEL"/Roll_Gartenz_Fenster.LEVEL/,100);
! clearStateDelayed("hm-rpc.0.LEQ1179485.1.LEVEL"/Roll_Gartenz_Tuere.LEVEL/);
! setState("hm-rpc.0.LEQ1179485.1.LEVEL"/Roll_Gartenz_Tuere.LEVEL/,100);
! // if Heizung = aus => include Gaestezimmer
! if(!getState("hm-rega.0.5679"/Heizung/).val) {
! setState("hm-rpc.0.LEQ1179719.1.LEVEL"/Roll_Gaeste.LEVEL/,100);
! }
! } else { //GastEG === true
! if(getState("hm-rpc.0.LEQ1179719.1.LEVEL"/Roll_Gaeste.LEVEL/).val <30) {
! setState("hm-rpc.0.LEQ1179670.1.LEVEL"/Roll_Gartenz_Fenster.LEVEL/,100);
! clearStateDelayed("hm-rpc.0.LEQ1179485.1.LEVEL"/Roll_Gartenz_Tuere.LEVEL/);
! setState("hm-rpc.0.LEQ1179485.1.LEVEL"/Roll_Gartenz_Tuere.LEVEL/,100);
! }
! }
! }
! } -
Mist, doch "normales" Javasscript, da sehe ich leider nicht durch! :? Aber irgendwer anderes kann bestimmt was rauslesen!
Enrico
-
auf jeden Fall vielen Dank für's Anschauen!
Ich glaube es hat mehr mit dem javascript adapter zu tun, als mit den scripts selber. Kurz nach dem 'save' keine Reaktion mehr und 'iobroker start' notwendig. Die Änderungen sind dann in ca. 75% gespeichert, in 25% nicht.
Geht auch so, ist aber etwas mühsam
-
Hallo,
bei mir ist das leider ähnlich. Nach dem Speichern eines Skripts crasht iobroker häufig, jedoch nicht immer.
Ich habe mein System wegen Grafana von Debian 8(x86) auf Debian 9.5(amd64) umgestellt. Das ganze läuft als VM mit 2 Kernen und 4GB RAM.
Ich habe dazu mein ioBroker Verzeichniss vorher zusammengepackt (tar) und auf der neuen Installation wieder extrahiert, danach ein reinstall.sh. Node wurde in dem Zuge von 6 auf Node 10.12.0 und NPM auf 4.6.1 upgegraded.
Ein paar Tage lief das Ganze ohne Probleme. Jedoch fiel mir auf, dass nach dem Speichern eines Skriptes der js-controller crasht (Logausgaben ähnlich tgirard, Websocket Error von verschiedenen Adapter gemeldet, vermutlich weil js-controller fehlt) –> iobroker start und es läuft wieder.
Das System crasht manchmal auch bei anderen Events (ich habe den ioBroker backitup installiert, Backup angestossen --> crash von js-controller). Es war teilweise so, dass ich ioBroker nicht mehr starten konnte. Beim Start des javascript Adapters ist jedesmal der js-controller gecrasht. Ich habe testweise alle Skripte deaktiviert --> keine Besserung
Dann habe ich nochmals das reinstall.sh drüber laufen lassen, jetzt kann ich das System zumindest wieder starten.
Aber beim Editieren eines Skripts ist die Wahrscheinlichkeit hoch, das der js-controller sich beendet.
Langsam gehen mir die Optionen aus...
Gruss Marco
P.S. js-controller 1.4.2
-
Läuft beim TE auch nodejs 10?
-
Ich hab es übrigens auch mit nodejs 8 probiert, mit dem selben Ergebnis.
-
gut, dass ich nicht alleine bin
Ich habe übrigens auch ein backup eingespielt (auch via tar komprimiert). Dann aber darüber nochmals iobroker installiert.
Das Problem habe ich immer noch… hoffentlich findet jemand eine Lösung!
schönes Wochenende
-
gibt es hier etwas Neues? Ich habe leider dieses ärgerliche Problem immer noch. Da macht Skripten leider weniger Spass….
Weiss jemand eine Lösung?
Danke