NEWS
"admin.0 Restart loop detected" und keine Trigger mehr
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
keiner schreibt jedoch ins Skript-Log)
-
@crunchip
Ok, hier das Blockly-Skript als Bild:
Und hier das detaillierte Skript-Log nach betätigen des Buttons:javascript.0 21:29:33.426 info Stopping script script.js.IT-Gerätesteuerung.Unterprogramm_Arbeitszimmer_Server-2_schalten javascript.0 21:29:33.475 info Start JavaScript script.js.IT-Gerätesteuerung.Unterprogramm_Arbeitszimmer_Server-2_schalten (Blockly) javascript.0 21:29:33.486 info script.js.IT-Gerätesteuerung.Unterprogramm_Arbeitszimmer_Server-2_schalten: subscribe: {"pattern":{"id":"0_userdata.0.Schalter.Schalter_Arbeitszimmer_Server-2","change":"ne","q":0},"name":"script.js.IT-Gerätesteuerung.Unterprogramm_Arbeitszimmer_Server-2_schalten"} javascript.0 21:29:33.486 info script.js.IT-Gerätesteuerung.Unterprogramm_Arbeitszimmer_Server-2_schalten: registered 1 subscription, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
Das Skript wurde wieder nicht getriggert.
-
@klausstoertebeker Was ist das für ein "Schalter"?
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
Und hier das detaillierte Skript-Log nach betätigen des Buttons:
da sollte eigentlich mehr kommen
vllt, findet man etwas im debug modus?
-
@crunchip sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
da sollte eigentlich mehr kommen
wenn wirklich nicht getriggert wird kommt gar nichts
-
@klausstoertebeker
Was mir als erstes auffällt: Du fragst im Trigger nochmals den Wert ab. Und das auch noch 2x.
Das ist völlig unnötig. Dafür nimmt man den Block "Wert" aus dem Bereich "Trigger". Der Trigger kennt schließlich seinen eigenen Wert.
Und noch was: Wenn man einen bool'schen Wert abfragt, kann das "sonst falls" entfallen. Der Wert ist entwedertrue
und es wird Teil 1 ausgeführt. Danach reicht ein "sonst", denn dann kann der Wert ja nur nochfalse
sein.Prinzip:
https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps -
@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 gesehen -
@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