NEWS
gelöst mit Restore: jedes Script nach Update auf Fehler
-
Hallo,
ich hoffe ich bin hier richtig in dieser Rubrik, ich habe gestern alle Versionen im iobroker auf den neusten Stand gebracht.
Leider läuft seit gestern kein Script mehr. Das Update lief ohne Fehler durch und ich kann mir keinen Reim darauf machen.
Hat jemand einen Tipp wonach ich schauen kann?Update habe ich so getätigt:
pi@smarthomepi:~ $ iobroker upgrade All adapters are up to date pi@smarthomepi:~ $ iobroker upgrade self Host "smarthomepi" is up to date. pi@smarthomepi:~ $ sudo apt update Holen:1 http://raspbian.raspberrypi.org/raspbian buster InRelease [15,0 kB] Holen:2 http://archive.raspberrypi.org/debian buster InRelease [32,6 kB] OK:3 https://repos.influxdata.com/debian buster InRelease OK:4 https://deb.nodesource.com/node_14.x buster InRelease Holen:5 https://archive.raspbian.org/raspbian buster InRelease [15,0 kB] Holen:6 http://archive.raspberrypi.org/debian buster/main armhf Packages [393 kB] Es wurden 456 kB in 2 s geholt (297 kB/s). Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. pi@smarthomepi:~ $ sudo apt upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paketaktualisierung (Upgrade) wird berechnet... Fertig Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: gconf-service gconf2-common libgconf-2-4 python-colorzero Verwenden Sie »sudo apt autoremove«, um sie zu entfernen. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. pi@smarthomepi:~ $ sudo apt dist-upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paketaktualisierung (Upgrade) wird berechnet... Fertig Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt: gconf-service gconf2-common libgconf-2-4 python-colorzero Verwenden Sie »sudo apt autoremove«, um sie zu entfernen. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. pi@smarthomepi:~ $ iobroker fix library: loaded Library version=2021-08-05 ========================================================================== Welcome to the ioBroker installation fixer! Script version: 2021-04-07 You might need to enter your password a couple of times. ========================================================================== ========================================================================== Installing prerequisites (1/3) ========================================================================== OK:1 http://archive.raspberrypi.org/debian buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:3 https://repos.influxdata.com/debian buster InRelease OK:4 https://deb.nodesource.com/node_14.x buster InRelease OK:5 https://archive.raspbian.org/raspbian buster InRelease Paketlisten werden gelesen... Fertig Installed gcc-c++ ========================================================================== Checking ioBroker user and directory permissions (2/3) ========================================================================== Created /etc/sudoers.d/iobroker Fixing directory permissions... This system does not support setting default permissions. Do not use npm to manually install adapters unless you know what you are doing! ========================================================================== Checking autostart (3/3) ========================================================================== Enabling autostart... Autostart enabled! ========================================================================== Your installation was fixed successfully Run iobroker start to start ioBroker again! ========================================================================== iobroker start
hier meine Adapterversionen
Adapter "admin" : 5.1.25 , installed 5.1.25 Adapter "alexa2" : 3.11.2 , installed 3.11.2 Adapter "backitup" : 2.2.2 , installed 2.2.2 Adapter "discovery" : 2.7.3 , installed 2.7.3 Adapter "fullybrowser" : 2.0.9 , installed 2.0.9 Adapter "history" : 1.9.13 , installed 1.9.13 Adapter "ical" : 1.11.4 , installed 1.11.4 Adapter "icons-material-png": 0.1.0 , installed 0.1.0 Adapter "icons-material-svg": 0.1.0 , installed 0.1.0 Adapter "icons-mfd-svg" : 1.0.2 , installed 1.0.2 Adapter "influxdb" : 1.9.5 , installed 1.9.5 Adapter "info" : 1.9.8 , installed 1.9.8 Adapter "javascript" : 5.2.13 , installed 5.2.13 Controller "js-controller" : 3.3.21 , installed 3.3.21 Adapter "linkeddevices" : 1.4.3 , installed 1.4.3 Adapter "mobile" : 1.0.1 , installed 1.0.1 Adapter "mqtt" : 2.4.0 , installed 2.4.0 Adapter "onvif" : 0.4.4 , installed 0.4.4 Adapter "ping" : 1.5.0 , installed 1.5.0 Adapter "shuttercontrol": 1.2.1 , installed 1.2.1 Adapter "simple-api" : 2.6.1 , installed 2.6.1 Adapter "socketio" : 3.1.4 , installed 3.1.4 Adapter "sonoff" : 2.4.5 , installed 2.4.5 Adapter "tr-064" : 4.2.14 , installed 4.2.14 Adapter "trashschedule" : 1.2.0 , installed 1.2.0 Adapter "tuya" : 3.6.9 , installed 3.6.9 Adapter "vis" : 1.4.5 , installed 1.4.5 Adapter "vis-history" : 1.0.0 , installed 1.0.0 Adapter "vis-jqui-mfd" : 1.0.12 , installed 1.0.12 Adapter "vis-timeandweather": 1.1.7 , installed 1.1.7 Adapter "web" : 3.4.9 , installed 3.4.9
Hier ein Beispiel eines einfachen Scripts das ich immer zum testen nehme und bisher lief.
var Nachricht1='[{"text":"❄ Neue Post im Briefkasten!","backgroundColor":"#ffcc00","borderColor":"","icon":"","iconColor":"","fontColor":""}]'; setState('0_userdata.0.Status.alertmessages', Nachricht1, true);
oder
materialDesignWidgets.sendTo('0_userdata.0.Status.alertmessages', 'Mobilheim Frostwächter nicht erreichbar', 'red');
-
Der Datenpunkt wird nicht geschrieben (seit dem Update)
-
Das kommt im Logfile unter der Script Konsole
-
Logfile gekürzt auf den JavaScript Adapter nach dem starten des Scripts
iobroker.2021-12-08.log
Gruß
Ralf -
-
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
Das kommt im Logfile unter der Script Konsole
leider nicht lesbar
bitte auch als Text in Codetags, oder wenigstens eine bessere Auflösung!Glaskugel:
hast du den debug modus aktiv?
oder Scripte unter global?
oder?? -
@homoran danke für die Nachfrage,
das steht direkt unter dem Scriptfenster
javascript.0 (4518) script.js._Test-Scripte.11 compile failed: at script.js._Test-Scripte.11:367
Nein den Debug Modus habe ich nicht aktiviert, und an der Lage der Scripte habe ich nichts geändert.
Das lief alles Monatelang bis zu dem Update. Egal was ich als Script nehme und egal auf welcher Ebene abgelegt.
Ich bin schon am überlegen ob ich die Sicherung wieder einspiele, da ich nicht so tief drin stecke und leider wenig Zeit aktuell habe. Sollte halt nur Laufendas hier ist ein Script das unter Global steht (lief vorher, wie all die anderen Scripte auch)
var materialDesignWidgets = {}; //var materialDesignWidgetsDel = {}; materialDesignWidgets.sendTo = function (id, text, backgroundColor = '', borderColor = '', icon = '', iconColor = '', fontColor = '') { let json = getState(id).val; if (json) { try { json = JSON.parse(json); } catch (e) { json = []; console.warn('Wert ist kein JSON string! Wert wird ersetzt!'); } } else { json = []; } json.push( { text: text, backgroundColor: backgroundColor, borderColor: borderColor, icon: icon, iconColor: iconColor, fontColor: fontColor } ) setState(id, JSON.stringify(json), true); } var myJson22aa; var myObj22aa; var count22aa; materialDesignWidgets.delete= function (id, textinput) { myJson22aa=getState(id).val myObj22aa=JSON.parse(myJson22aa) count22aa=0; if (myObj22aa.length>0){ for(let i = 0; i < myObj22aa.length; i++) { if(myObj22aa[i].text == textinput) count22aa++;} //log("count" +" "+count22aa.toString()) //console.log("count" +" "+count22aa.toString()) if (count22aa>1){ for(let i = 0; i < myObj22aa.length; i++) { if(myObj22aa[i].text == textinput) {myObj22aa.splice(i, 1); i--; log("bin in viele")} } }else{ for(let i = 0; i < myObj22aa.length; i++) { if(myObj22aa[i].text == textinput) {myObj22aa.splice(i, 1); log("bin in einem")} } } // log(JSON.stringify(myObj22aa)) if (count22aa>0) setState(id,JSON.stringify(myObj22aa)); count22aa=0 } }
-
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
und an der Lage der Scripte habe ich nichts geändert.
Und???
hast du unter global (ein) Skript(e)??ich glaube nicht, dass
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
_Test-Scripte.11:367
367 Zeilen hat.
fängt der Name des Skripts tatsächlich mit einem Underscore an?
-
Da klemmt wohl was zentral im javascript-Adapter:
2021-12-08 10:25:27.059 - [31merror[39m: javascript.0 (4518) SyntaxError: Invalid left-hand side in assignment 2021-12-08 10:25:27.060 - [31merror[39m: javascript.0 (4518) at new Script (vm.js:102:7) 2021-12-08 10:25:27.060 - [31merror[39m: javascript.0 (4518) at Object.createScript (vm.js:262:10) 2021-12-08 10:25:27.060 - [31merror[39m: javascript.0 (4518) at createVM (/opt/iobroker/node_modules/iobroker.javascript/main.js:1482:28)
Den mal neuinstallieren, und auch mal schauen ob die Laufzeitumgebung nodeJS sauber installiert ist.
-
@homoran ja das Script fängt damit an, aber auch ohne Underscore der gleiche Fehler.
Das war nur ein Scriptschnipsel den ich zum testen nehme -
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
@homoran ja das Script fängt damit an, aber auch ohne Underscore der gleiche Fehler.
Das war nur ein Scriptschnipsel den ich zum testen nehmedeaktiviere mal das globale Skript
-
@thomas-braun okay, wie stelle ich das am besten an?
ausser die Befehle (von oben) kenne ich keinen Weg. Mir reicht ein Tippdamit bleibe ich immer auf dem neusten (wenn es die Zeit erlaubt)
iobroker backup iobroker stop iobroker update iobroker upgrade self apt update apt upgrade sudo apt dist-upgrade iobroker fix iobroker start
-
@homoran habe ich, ich habe es deaktiviert und dann folgendes aufgerufen
var Nachricht1='[{"text":"❄ Neue Post im Briefkasten!","backgroundColor":"#ffcc00","borderColor":"","icon":"","iconColor":"","fontColor":""}]'; setState('0_userdata.0.Status.alertmessages', Nachricht1, true);
danach kommt
javascript.0 (10757) script.js._Test-Scripte.11 compile failed: at script.js._Test-Scripte.11:295
Datenpunkt wird nicht geschrieben
-
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
javascript.0 (10757) script.js._Test-Scripte.11 compile failed: at script.js._Test-Scripte.11:295
Immerhin sind es jetzt weniger Zeilen
aber 295 Zeilen hat dein _Test-Scripte.11 wohl auch nicht
Da bin ich jetzt überfragt
-
@homoran stimmt, nur das was Du oben siehst, drei Zeilen und nicht mehr
-
sudo ln -s /usr/bin/node /usr/bin/nodejs which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update && sudo apt update && apt policy nodejs
-
@thomas-braun bin dabei...
danach dann fix und start noch... melde mich gleich wiederpi@smarthomepi:~ $ sudo ln -s /usr/bin/node /usr/bin/nodejs ln: die symbolische Verknüpfung '/usr/bin/nodejs' konnte nicht angelegt werden: Die Datei existiert bereits pi@smarthomepi:~ $ which nodejs node npm && nodejs -v && node -v && npm -v && sudo apt update && sudo apt update && apt policy nodejs /usr/bin/nodejs /usr/bin/node /usr/bin/npm v14.18.2 v14.18.2 6.14.15 OK:1 http://archive.raspberrypi.org/debian buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:3 https://repos.influxdata.com/debian buster InRelease OK:4 https://deb.nodesource.com/node_14.x buster InRelease OK:5 https://archive.raspbian.org/raspbian buster InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. OK:1 http://archive.raspberrypi.org/debian buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:3 https://repos.influxdata.com/debian buster InRelease OK:4 https://deb.nodesource.com/node_14.x buster InRelease OK:5 https://archive.raspbian.org/raspbian buster InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. nodejs: Installiert: 14.18.2-deb-1nodesource1 Installationskandidat: 14.18.2-deb-1nodesource1 Versionstabelle: *** 14.18.2-deb-1nodesource1 500 500 https://deb.nodesource.com/node_14.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages 500 https://archive.raspbian.org/raspbian buster/main armhf Packages
-
jetzt kommt zu mindestens schon mal folgendes und das Script läuft
12:05:21.572 info javascript.0 (14071) Start javascript script.js._Test-Scripte.11 12:05:21.577 warn javascript.0 (14071) script.js._Test-Scripte.11: Wert ist kein JSON string! Wert wird ersetzt! 12:05:21.580 warn javascript.0 (14071) at Object.materialDesignWidgets.sendTo (script.js._Test-Scripte.11:31:5) 12:05:21.580 warn javascript.0 (14071) at script.js._Test-Scripte.11:4:23 12:05:21.580 warn javascript.0 (14071) at script.js._Test-Scripte.11:7:3 12:05:21.580 info javascript.0 (14071) script.js._Test-Scripte.11: registered 0 subscriptions and 0 schedules
-
ich vermute mal ein anderes Script unter Global hat das ausgelöst...durch meine Schuld wohl.
linkeddevice_all wurde angelegt (warum auch immer) und dort sind einige meiner Geräte mit äöü und das meckert er rot an... -
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
ich vermute mal ein anderes Script unter Global hat das ausgelöst...durch meine Schuld wohl.
und warum bekomme ich diese Antwort nie, wenn ich danach frage?
-
@homoran warum du die nie bekommst kann ich dir nicht sagen.
ich hatte verstanden das dazugehörige Script (woraus ich eine Funktion lese - heißt das so?) sollte ich deaktivieren und nicht das andere auch, was ich bis dahin nicht gesehen hatte weil es in einem Unterordner war. Merkwürdigerweise ist das dort neu ...und ich nicht mal weis womit ich das angelegt habe. Ich habe gestern nur die Updates eingespielt.
Also verzeih wenn ich nicht so firm bin -
@rosi8818
ich hatte gefragt ob du unter Global Skripte stehen hast.Global ist nicht ohne Grund nur für Experten sichtbar
-
@homoran hab ich jetzt auch verstanden...und ja ich bin kein Experte...hatte nur ein Script mit Anleitung hier aus dem Forum dort abgelegt.
sorry für die Frage aber irgendwo muss man ja mal anfangen. -
@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
.hatte nur ein Script mit Anleitung hier aus dem Forum dort abgelegt.
aber ein zweites (???) war auch dort.
Da ich so etwas vermutete bat ich dich dort nachzusehen@rosi8818 sagte in jedes Script läuft nach Update auf Fehler:
linkeddevice_all wurde angelegt (warum auch immer)
Wahrscheinlich von dem Adapter