NEWS
Fehlermeldungen nach javascript update - benötige Hilfe
-
Hallo zusammen,
ich habe heute im Rahmen der "allgemeinen Wartung" verschiedene Adapter aktualisiert, darunter auch javascript. Ich erhalte nun die unten stehenden Fehlermeldungen. Hat jemand eine Idee, was ich dagegen tun könnte?
js-controller ist v5.0.19
Iobroker läuft in einem Proxmox LCX container auf Debian 11 (bullseye)
Ein node.js update auf v20.14 (npm 10.7) hat leider nichts geändert...Hier die Fehlermeldungen:
host.iobroker-new 2024-06-07 12:45:00.562 error instance system.adapter.javascript.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker-new 2024-06-07 12:45:00.562 error Caught by controller[0]: at Object.onceWrapper (node:events:633:28) host.iobroker-new 2024-06-07 12:45:00.562 error Caught by controller[0]: at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12) host.iobroker-new 2024-06-07 12:45:00.562 error Caught by controller[0]: at Request.emit (node:domain:488:12) host.iobroker-new 2024-06-07 12:45:00.562 error Caught by controller[0]: at Request.emit (node:events:519:28) host.iobroker-new 2024-06-07 12:45:00.561 error Caught by controller[0]: at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10) host.iobroker-new 2024-06-07 12:45:00.561 error Caught by controller[0]: at Request.emit (node:domain:488:12) host.iobroker-new 2024-06-07 12:45:00.561 error Caught by controller[0]: at Request.emit (node:events:519:28) host.iobroker-new 2024-06-07 12:45:00.561 error Caught by controller[0]: at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) host.iobroker-new 2024-06-07 12:45:00.561 error Caught by controller[0]: at Request._callback (script.js.Telegram-Edomi-messaging:116:31) host.iobroker-new 2024-06-07 12:45:00.560 error Caught by controller[0]: at JSON.parse (<anonymous>) host.iobroker-new 2024-06-07 12:45:00.559 error Caught by controller[0]: SyntaxError: Unexpected end of JSON input
und
javascript.0 2024-06-07 12:45:00.363 error at Object.onceWrapper (node:events:633:28) javascript.0 2024-06-07 12:45:00.363 error at IncomingMessage.<anonymous> (/opt/iobroker/node_modules/request/request.js:1076:12) javascript.0 2024-06-07 12:45:00.363 error at Request.emit (node:domain:488:12) javascript.0 2024-06-07 12:45:00.362 error at Request.emit (node:events:519:28) javascript.0 2024-06-07 12:45:00.362 error at Request.<anonymous> (/opt/iobroker/node_modules/request/request.js:1154:10) javascript.0 2024-06-07 12:45:00.362 error at Request.emit (node:domain:488:12) javascript.0 2024-06-07 12:45:00.362 error at Request.emit (node:events:519:28) javascript.0 2024-06-07 12:45:00.362 error at Request.self.callback (/opt/iobroker/node_modules/request/request.js:185:22) javascript.0 2024-06-07 12:45:00.361 error at Request._callback (script.js.Telegram-Edomi-messaging:116:31) javascript.0 2024-06-07 12:45:00.361 error at JSON.parse (<anonymous>) javascript.0 2024-06-07 12:45:00.360 error script.js.Telegram-Edomi-messaging: SyntaxError: Unexpected end of JSON input
Vielen Dank vorab für eure Hilfe!!
Viele Grüße,
Domenic -
@kaffeschluerfer Zeig mal das Script "Telegram-Edomi-messaging"
-
Puh - peinlich. Es liegt tatsächlich auf jedem fall an diesem Script- da hätte ich selbst drauf kommen können. Wenn ich es anhalte kommen die Meldungen nicht mehr.
D.h. ich muss dieses script debuggen. Das Script ist eine "Spielerei", mit der ich per telegram den Status der Fenster abfragen kann bzw. eine Meldung bekomme wenn sich etwas im Haus tut wenn ich im Urlaub bin. Das ganze ist in blockly gebaut, ist glaube ich schwierig hier einzufügen. Ich versuche mal herauszufinden wo das Problem liegen könnte und melde mich ggf. nochmal...
Vielen Dank und sorry fürs belästigen...!
-
@kaffeschluerfer sagte in Fehlermeldungen nach javascript update - benötige Hilfe:
ist glaube ich schwierig hier einzufügen
als Screenshot bitte.
-
Hi zusammen!
kleines update nach etwas rumprobieren, auskommentieren, scripte anhalten und immer wieder diesen Protokolleinträgen für verscheidene scripte (nicht nur das o.g.):
- Es lag definitiv nicht am script, den selbst nachdem ich ALLES auskommentiert bzw. deaktiviert hatte, kamen diese Fehler
- Bei einem neuen "jungfräulichen" script mit EXAKT demselben Inhalt (also "nachgebaut") entsteht das Problem nicht
- bei einem neu angelegtem script, in dem ich die blockly blöcke über export/import hineinkopiert habe, kommen dieselben Fehler
Woran auch immer es liegt, der workaround (script neu machen) für diesen Fall funktioniert. Vielleicht hilft diese Info ja jemandem der vllt. ähmliche Probleme hat...
Viele Grüße! -
@kaffeschluerfer sagte in Fehlermeldungen nach javascript update - benötige Hilfe:
den selbst nachdem ich ALLES auskommentiert bzw. deaktiviert hatte, kamen diese Fehler
Du hast nicht zufällig Scripts in "Global" liegen?
-
@kaffeschluerfer sagte in Fehlermeldungen nach javascript update - benötige Hilfe:
bei einem neu angelegtem script, in dem ich die blockly blöcke über export/import hineinkopiert habe, kommen dieselben Fehler
Dann zeig doch bitte endlich mal das XML Sonst kann doch niemand helfen
-
Hi Matthias,
eigentlich wollte ich gerade mit "nicht nötig" und "Problem ist doch gelöst" antworten, doch da hab ich mich getäuscht...
Ich habe es soweit runter gedampft, dass ich immer wenn ich dieses Script aktiviere, die o.g. Fehlermeldungen im Protokoll bekomme. Nur die Zeile mit dem Verweis auf das Script ist beliebig irgendein anderes laufendes:
Caught by controller[0]: at Request._callback (script.js.common.<<<beliebiger-scriptname>>>:116:31)
Das Problem existiert nur, wenn ich dieses hier starte (...auch wenn es jungfräulich neu gebaut ist).
Hier auch als xml
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on_ext" id="[_^HmXcZr`)r-4uQ%xhI" x="63" y="-1162"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id=")7txGL3IY1g~QmXC4[Dk"> <field name="oid">default</field> </shadow> <block type="field_oid" id="lqz(x$Cx%%r!{+-#s4#o"> <field name="oid">0_userdata.0.telegram.Edomi_message</field> </block> </value> <statement name="STATEMENT"> <block type="telegram" id="m+C7(~Rdr}}mKH%m$AvM"> <field name="INSTANCE">.0</field> <field name="LOG"></field> <field name="SILENT">FALSE</field> <field name="PARSEMODE">default</field> <field name="ESCAPING">FALSE</field> <field name="DISABLE_WEB_PAGE_PREVIEW">FALSE</field> <value name="MESSAGE"> <shadow type="text" id="vc#ayA!HR7hL?xJdLKuc"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="`gM534ankvY9}ZK7j}bL"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="Z}O*G*;r+nXC;OTRwvCu"> <field name="TEXT">Edomi</field> </block> </value> <value name="ADD1"> <block type="get_value" id="IbKu]q.*AU?SiM)efemj"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.telegram.Edomi_message</field> </block> </value> </block> </value> </block> </statement> </block> </xml>
Das script sendet einen Nachrichtentext (text objekt) per telegram, sobald dieser geändert wurde. Wenn dieses script nicht läuft, ist alles supi.
Alle scripte sind in "common". Hat jemand eine Idee?Viele Grüße,
Domenic -
@haus-automatisierung said in Fehlermeldungen nach javascript update - benötige Hilfe:
Du hast nicht zufällig Scripts in "Global" liegen?
...ähm doch - gerade erst entdeckt weil der global ordner ausgeblendet war.
Da liegt altes script mit dem ich vor Jahren mal den Wechselrichter ausgelesen hatte - mittlerweile gibts aber nen adapter dafür...
kanne s daran liegen? -
@kaffeschluerfer sagte: Alle scripte sind in "common".
Sicher nichts unter "global"? Ist der Expertenmodus aktiviert?
-
@kaffeschluerfer sagte: Da liegt altes script
Skript löschen!
-
@paul53 said in Fehlermeldungen nach javascript update - benötige Hilfe:
Sicher nichts unter "global"? Ist der Expertenmodus aktiviert?
Okay, das wars echt... Ohne das läufts bisher ohne Probleme. Woran kann es gelegen haben? Das Problem ist jetzt erst irgendwann mal mit einem der updates hinzu gekommen...
Das hier war das besagte für das es mittlerw. (schon seit einer ganzen weile) einen adapter gibt:
// Ausleseskript Wechselrichter Kostal Piko ab Firmware v05.31 (12.10.2015) //Variaben //Leistungswerte ID_DCEingangGesamt = 33556736; // in W ID_Ausgangsleistung = 67109120; // in W ID_Eigenverbrauch = 83888128; // in W //Status ID_Status = 16780032; // 0:Off //Statistik - Tag ID_Ertrag_d = 251658754; // in Wh ID_Hausverbrauch_d = 251659010; // in Wh ID_Eigenverbrauch_d = 251659266; // in Wh ID_Eigenverbrauchsquote_d = 251659278; // in % ID_Autarkiegrad_d = 251659279; // in % //Statistik - Gesamt ID_Ertrag_G = 251658753; // in kWh ID_Hausverbrauch_G = 251659009; // in kWh ID_Eigenverbrauch_G = 251659265; // in kWh ID_Eigenverbrauchsquote_G = 251659280; // in % ID_Autarkiegrad_G = 251659281; // in % ID_Betriebszeit = 251658496; // in h //Momentanwerte - PV Genertor ID_DC1Spannung = 33555202; // in V ID_DC1Strom = 33555201; // in A ID_DC1Leistung = 33555203; // in W ID_DC2Spannung = 33555458; // in V ID_DC2Strom = 33555457; // in A ID_DC2Leistung = 33555459; // in W //Momentanwerte Haus ID_HausverbrauchSolar = 83886336; // in W ID_HausverbrauchBatterie = 83886592; // in W ID_HausverbrauchNetz = 83886848; // in W ID_HausverbrauchPhase1 = 83887106; // in W ID_HausverbrauchPhase2 = 83887362; // in W ID_HausverbrauchPhase3 = 83887618; // in W //Netz Netzparameter ID_NetzAusgangLeistung = 67109120; // in W ID_NetzFrequenz = 67110400; // in Hz ID_NetzCosPhi = 67110656; //Netz Phase 1 ID_P1Spannung = 67109378; // in V ID_P1Strom = 67109377; // in A ID_P1Leistung = 67109379; // in W //Netz Phase 2 ID_P2Spannung = 67109634; // in V ID_P2Strom = 67109633; // in A ID_P2Leistung = 67109635; // in W //Netz Phase 3 ID_P3Spannung = 67109890; // in V ID_P3Strom = 67109889; // in A ID_P3Leistung = 67109891; // in W var IPAnlage = '192.168.0.122/api/dxs.json'; // IP der Photovoltaik-Anlage createState('Piko.Ausgangsleistung', 0); createState('Piko.Autarkiegrad_d',0); createState('Piko.Autarkiegrad_G',0); createState('Piko.Betriebszeit',0); createState('Piko.DCEingangGesamt',0); createState('Piko.Eigenverbrauch',0); createState('Piko.Eigenverbrauch_d'); createState('Piko.Eigenverbrauch_G', 0); createState('Piko.Eigenverbrauchsquote_d', 0); createState('Piko.Eigenverbrauchsquote_G', 0); createState('Piko.Ertrag_d', 0); createState('Piko.Ertrag_G', 0); createState('Piko.Hausverbrauch_d', 0); createState('Piko.Hausverbrauch_G', 0); createState('Piko.P1Spannung'); createState('Piko.P2Spannung'); createState('Piko.P1Strom'); createState('Piko.P2Strom'); createState('Piko.P1Leistung'); createState('Piko.P2Leistung'); createState('Piko.HausverbrauchSolar'); createState('Piko.HausverbrauchNetz'); var logging = true; var request = require('request'); function Piko() { if (logging) log("Piko 5.5 auslesen"); request('http://' + IPAnlage + '?dxsEntries=' + ID_DCEingangGesamt + '&dxsEntries=' + ID_Ausgangsleistung + '&dxsEntries=' + ID_Eigenverbrauch + '&dxsEntries=' + ID_Eigenverbrauch_d + '&dxsEntries=' + ID_Eigenverbrauch_G + '&dxsEntries=' + ID_Eigenverbrauchsquote_d + '&dxsEntries=' + ID_Eigenverbrauchsquote_G + '&dxsEntries=' + ID_Ertrag_d + '&dxsEntries=' + ID_Ertrag_G + '&dxsEntries=' + ID_Hausverbrauch_d + '&dxsEntries=' + ID_Hausverbrauch_G + '&dxsEntries=' + ID_Autarkiegrad_G + '&dxsEntries=' + ID_Autarkiegrad_d + '&dxsEntries=' + ID_Betriebszeit + '&dxsEntries=' + ID_P1Spannung + '&dxsEntries=' + ID_P2Spannung + '&dxsEntries=' + ID_P1Strom + '&dxsEntries=' + ID_P2Strom + '&dxsEntries=' + ID_P1Leistung + '&dxsEntries=' + ID_P2Leistung + '&dxsEntries=' + ID_HausverbrauchSolar + '&dxsEntries=' + ID_HausverbrauchNetz, function (error, response, body) { if(!error && response.statusCode ==200) { if(logging) log(body); var result = JSON.parse(body).dxsEntries; setState('Piko.DCEingangGesamt', result[0].value); setState('Piko.Ausgangsleistung', result[1].value); setState('Piko.Eigenverbrauch', result[2].value); setState('Piko.Eigenverbrauch_d', result[3].value); setState('Piko.Eigenverbrauch_G', result[4].value); setState('Piko.Eigenverbrauchsquote_d', result[5].value); setState('Piko.Eigenverbrauchsquote_G', result[6].value); setState('Piko.Ertrag_d', result[7].value); setState('Piko.Ertrag_G', result[8].value); setState('Piko.Hausverbrauch_d', result[9].value); setState('Piko.Hausverbrauch_G', result[10].value); setState('Piko.Autarkiegrad_G', result[11].value); setState('Piko.Autarkiegrad_d', result[12].value); setState('Piko.Betriebszeit', result[13].value); setState('Piko.P1Spannung', result[14].value); setState('Piko.P2Spannung', result[15].value); setState('Piko.P1Strom', result[16].value); setState('Piko.P2Strom', result[17].value); setState('Piko.P1Leistung', result[18].value); setState('Piko.P2Leistung', result[19].value); setState('Piko.HausverbrauchSolar', result[20].value); setState('Piko.HausverbrauchNetz', result[21].value); } else { log("Fehler: " + error + " bei Abfrage von: " + url, "warn"); } }); } schedule("* * * * *", function () { // if(isAstroDay ()) { log ("Auslöser: Schedule"); Piko(); // } });
-
@kaffeschluerfer sagte: Das hier war das besagte
Ein solches Skript ist völlig ungeeignet für "global"!
-
@kaffeschluerfer sagte in Fehlermeldungen nach javascript update - benötige Hilfe:
Da liegt altes script mit dem ich vor Jahren mal den Wechselrichter ausgelesen hatte
Das gehört da aber absolut nicht hin. Der Inhalt aus Global-Scripts wird vor jedes andere Script kopiert! Das heißt, die Logik wird von allen deinen Scripts ausgeführt. Parallel. Ist total unnötig und belastet das System.
@kaffeschluerfer sagte in Fehlermeldungen nach javascript update - benötige Hilfe:
schedule("* * * * *", function () {
Jedes deiner Scripts führt also dann jede Minute die Logik aus.
-
@haus-automatisierung, @paul53
Vielen Dank für die Erklärung und die Hilfe!
Ich hatte es echt nicht mehr auf dem Schirm, dass es das Script überhaupt noch gibt. Es ist einige Jahre her. Vielleicht gabs damals irgendeinen Grund, aber da fehlt mir jetzt die Phantasie und die Erinnerung sowieso.
Wie dem auch sei - Problem gelöst - vielen Dank nochmal an euch!!!