NEWS
"admin.0 Restart loop detected" und keine Trigger mehr
-
@homoran said in "admin.0 Restart loop detected" und keine Trigger mehr:
@klausstoertebeker Was ist das für ein "Schalter"?
Das ist ein Objekt unter
0_userdata.0
vom Typ boolean.Ich habe mir angewöhnt, in meiner Hausautomation Aktoren nie direkt zu schalten, sondern immer über Funktionen, welche auf ein Ereignis triggern, beispielsweise die Änderung oder Aktualisierung eines Objekts.
Beispiel:
Ich möchte eine Lampe ein-/ausschalten:- Der Hardware-Schalter der Lampe ist der Datenpunkt
Lampe_Schalter
- Der Hardware-Taster, der die Lampe schalten soll, ist der Datenpunkt
Lampe_Taster
- Die Funktion, welche den Hardware-Schalter
Lampe_Schalter
ansteuert, ist "Funktion_Lampe_schalten" - Der Trigger, der die Funktion
Funktion_Lampe_schalten
auslöst, istLampe_schalten_Trigger
Um die Lampe nun einzuschalten, drücke ich den Taster
Lampe_Taster
. Dieser setzt das ObjektLampe_schalten_Trigger
auf "true", die Änderung dieses Objekts triggert die FunktionFunktion_Lampe_schalten
. In dieser Funktion wird das Triggerobjekt ausgewertet (in diesem Fall "true") und der Hardware-SchalterLampe_Schalter
wird eingeschaltet.
Das Ausschalten läuft genauso, nur, dass der Tastendruck das Triggerobjekt auf "false" setzt und die Funktion die Lampe ausschaltet.
Bisher hat das immer funktioniert, aber wenn kein Trigger ausgelöst wird, kann die Funktion die Lampe auch nicht schalten... - Der Hardware-Schalter der Lampe ist der Datenpunkt
-
@codierknecht said in "admin.0 Restart loop detected" und keine Trigger mehr:
Was mir als erstes auffällt: Du fragst im Trigger nochmals den Wert ab. Und das auch noch 2x.
Das ist noch aus meinen Anfangszeiten mit Blockly
Aber Danke für den Tipp. Da gerade eh nichts funktioniert, habe ich Zeit, die Skripte anzupassen.
Und noch was: Wenn man einen bool'schen Wert abfragt, kann das "sonst falls" entfallen. Der Wert ist entweder true und es wird Teil 1 ausgeführt. Danach reicht ein "sonst", denn dann kann der Wert ja nur noch false sein.
Auch das werde ich ändern
-
@klausstoertebeker dann beginnen wir halt mal von Anfang an.
Du drückst den Schalter, der virtuelle Datenpunkt ändert sich oder beginnt Vllt da schon das Problem?
Ansonsten würde ich Vllt doch mal die Javascript Instanz downgraden.
Hast du noch Adapter laufen, die unabhängig von Javascript etwas triggern/Schalten, wie z. B SmartControl? Wenn ja, funktioniert das? -
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
@homoran aber warum sollte, wie zu Beginn genannt, kein einziger Trigger, funktionieren
Eventuell mal ein downgrade der Javascript Instanz hilfreich?
Wenn es ein zeitliches Problem (falsche System Zeit) wäre, ist noch zu erklären, aber gar kein Trigger funktioniert, hab ich so bisher auch noch nicht gesehenJa, das ist ja mein eigentliches Problem. Seltsam ist auch, dass ich keine zeitgesteuerten Trigger mehr bekomme (Stichwort: cron-Jobs).
Was den Downgrade angeht, habe ich schon mit einr 7'er-Version und der 8.8.3-Version (beide aus demstable
-Repository) sowie eine 8'er-Version aus dembeta
-Repository gearbeitet, und seit dem etwa 23.02.2025habe ich halt keine Trigger mehr - warum auch immer... -
Hast du einen Adapter wo du einen INPUT Wert setzen kannst?
Hast du einen Adapter der cron benutzt?Hintergrund:
a) Auch der Adaptercode reagiert auf "onStateChange" change trigger. Wenn möglich setz mal bei einem Adapetr via adminUI einen Input State (ACK=FALSE), also schalt z.B. via adminUI ein Licht ein oder so.
Reagiert der Adapter? Oder passiert da auch nix?b) Wenn du einen scheduled aadapter hast startet der?
Oder kannst du bei irgeneinem Adapter einen Cron Eintragen zum Restarten? Restartet der Adapter zu der Zeit?Die Tests könnten zeigen ob ev. das gesammte Ereignissystem nicht funtkioniert. Dann brauchen wir kaum beim Javascript adapter zu suchen sondern eher bei js-controller, node.js oder gar dem Betriebssystem.
(OS Spezialisten: Ist es denkbar dass das Eventhandling von node.js durhc irgeneine OS Einstellung blockiert wird? Gibts da ein Log wo da eas dazu stehen könnte? - Sorry wenn die Frage zu exotisch / naiv ist.)
Um die aller unterste Eben zu testen könntest du ev ein file test.js erstellen mit
setInterval( ()=> {console.log('juhu')}, 1000);
und das dann mit
node test.js
starten. Sollte dann alle Sekunden ein Juhu absetzen. -
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
Um die aller unterste Eben zu testen könntest du ev ein file test.js erstellen mit
setInterval( ()=> {console.log('juhu')}, 1000);
und das dann mit
node test.js
starten. Sollte dann alle Sekunden ein Juhu absetzen.Mache ich. Wohin wird "juhu" dann geschrieben? In's System-Log?
-
@klausstoertebeker
nö als consolen output. also ins terminal.Falls ich zu unklar war
File auf der commandline in linux anlegen und node xxx auf der commandline eintippen.
-
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
File auf der commandline in linux anlegen und node xxx auf der commandline eintippen.
Das habe ich verstanden
Ich versuche es.
-
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
setInterval( ()=> {console.log('juhu')}, 1000);
Da ist ein Syntaxfehler drin: Es fehlt hinter der Argumentenliste eine )
-
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
Um die aller unterste Eben zu testen könntest du ev ein file test.js erstellen mit
setInterval( ()=> {console.log('juhu')}, 1000);
und das dann mit
node test.js
starten. Sollte dann alle Sekunden ein Juhu absetzen.Der Befehl funktioniert (der Befehl lautete
setInterval( ()=> {console.log('juhu');}, 1000);
- da fehlte ein ";") -
@mcm1957
Ich habe dann auch noch versucht, einen cron-job mit node zu starten und habe dieses Beispiel genommen.
Nachdem ich die Modulenode-cron
undexpress
nachinstalliert hatte, führte auch die Ausführung des "index.js" Skripts aus dem Beispiel zum Erfolg...
Sind die auch für ioBroker bzw. den Javascript-Adapter notwendig? -
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
Wenn möglich setz mal bei einem Adapetr via adminUI einen Input State (ACK=FALSE), also schalt z.B. via adminUI ein Licht ein oder so.
Wenn Du mit adminUI die ioBroker-Oberfläche meinst, in der zum Beispiel der Objekte-Baum angezeigt wird:
Ich kann in den einzelnen Instanzen alle Schalter ein- und ausschalten, beispielsweise im "shelly"-Adapter die Schalter von Zwischensteckern, an die ein elekreisches Gerät (Lampe oder Klimaanlage) angeschlossen ist. Da geht das Gerät dann auch an und aus.Wenn du einen scheduled aadapter hast startet der?
Welcher Adapter wäre das zum Beispiel? Habe ich so einen? Wenn nicht, sag' mir einen, den ich dann installiere...
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
Welcher Adapter wäre das zum Beispiel? Habe ich so einen? Wenn nicht, sag' mir einen, den ich dann installiere
Hatte ich oben schon einen genannt...SmartControl
Braucht allerdings ein wenig EinarbeitungMach mal noch nen
iob upload all
Vllt hilft das -
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
Mach mal noch nen
iob upload all Vllt hilft dasMoin,
was macht denn dasiob upload all
? -
@klausstoertebeker said in "admin.0 Restart loop detected" und keine Trigger mehr:
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
Mach mal noch nen
iob upload all Vllt hilft dasMoin,
was macht denn dasiob upload all
?iob upload all ladet alle Daten die v.a. admin braucht aller Adapter nochmal in den admin space. Ist m.E. unkritisch - wird aber eher wenig nutzen vermute ich persönlich. Schaden kann es aber m.E. keinesfalls.
Da du z.B. via Shelly Adapter Geräte schalten kannst funktioniert das Eventhandling im Core normal.
Persönlich würde ich den javascript Adapter mal vollständig deinstallieren und neu installieren. Aber ACHTUNG: Ich habe keine Ahnung wie du deine Skripte erhalten bzw. wiederherstellen kannst.
@haus-automatisierung @apollon77
Habt ihr eine Ahnung was dieses komische Verhalten (keine Reaktion auf Trigger in Java-script, keine Reaction auf cron in Javascript) auslösen könnte?@KlausStoertebeker
Da der Thread nun doch schon länger ist, kannst du ev. den aktuell Stand der installierten Versionen nochmals hier posten. Oder ev. gleich ein aktuellas iob diag (Langfassung) Vor allem haus-automatisierung und auch Apollon77 haben wahrscheinlich kaum Zeit den ganzen Thread zu durchforsten um zu sehen was aktuell installiert ist.Fehlerbild - so wie ich es sehe - bitte korrier wenn es falsch ist:
- kein Script reagiert auf irgendeinen Trigger
- kein Script reagiert auf Cron eventsAdapter bekommen Änderungen via adminUI Objects mit (onStateChange geht also prinzipiell)
Ansonstne bin ich leider raus - hab nicht die geringste Idee mehr was man schaunb könnte.
-
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
Persönlich würde ich den javascript Adapter mal vollständig deinstallieren und neu installieren. Aber ACHTUNG: Ich habe keine Ahnung wie du deine Skripte erhalten bzw. wiederherstellen kannst.
Ich glaube, da gibt es eine Funktion zum exportieren.
@mcm1957 said in "admin.0 Restart loop detected" und keine Trigger mehr:
Da der Thread nun doch schon länger ist, kannst du ev. den aktuell Stand der installierten Versionen nochmals hier posten. Oder ev. gleich ein aktuellas iob diag (Langfassung) Vor allem haus-automatisierung und auch Apollon77 haben wahrscheinlich kaum Zeit den ganzen Thread zu durchforsten um zu sehen was aktuell installiert ist.
Werde ich sofort machen, wenn ich Feierabend habe
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
Ich glaube, da gibt es eine Funktion zum exportieren
Dein backitup Adapter sichert die scripte, sofern aktiviert
-
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
Dein backitup Adapter sichert die scripte, sofern aktiviert
Ja, habe ich. Aber ich glaube, da ich auch die Option "ioBroker" aktiviert habe, werden auch die Adapter (oder zumindes deren Einstellungen) gesichert.
Werde wohl eine zweite Instanz aufmachen, wo dann nur die Skripte gesichert werden... -
@klausstoertebeker scripte werden doch separat gesichert, wenn aktiviert, dazu brauchst keine 2te Instanz.
-
@klausstoertebeker
Warum? Du kannst doch auch nur die Scripte wiederherstellen.