NEWS
"admin.0 Restart loop detected" und keine Trigger mehr
-
@klausstoertebeker
Also nach meinem Kenntnisstand sollte die events der js-controller an hand der Subscriptions raisen und der javescript Adapter sollte die empfangen bzw subscriben.Ob nun irgendein anderer Adapter da stören kann - keine Ahnung.
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
warum ich keine Trigger mehr bekomme, weder ereignis- noch zeitgesteuert?
jetzt muss ich doch mal genauer nachfragen, bzw würde vllt ein Beispiel helfen
z.b. ein Beispiel script mit den entsprechenden Datenpunkten/Zeitstempel, bzw das log aus dem script -
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
bis auf drei Adapter
oben ist es aber
nodejs modules from github: 3 +-- iobroker.homepilot20@0.0.68 (git+ssh://git@github.com/homecineplexx/ioBroker.homepilot20.git#d6dbb5c1b9a8cf5396bc139cd2e0dd7ad68aec10) +-- iobroker.icons-open-icon-library-png@0.1.3 (git+ssh://git@github.com/ioBroker/ioBroker.icons-open-icon-library-png.git#0847a79d713ee6725ccb6ccfb044c025b73ec946) | `-- kodi-ws@2.4.4 (git+https://git@github.com/iobroker-community-adapters/kodi-ws.git#ad5a1fdc5cd0a282e6818ff152594b5d32535103)
-
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
warum ich keine Trigger mehr bekomme, weder ereignis- noch zeitgesteuert?
jetzt muss ich doch mal genauer nachfragen, bzw würde vllt ein Beispiel helfen
z.b. ein Beispiel script mit den entsprechenden Datenpunkten/Zeitstempel, bzw das log aus dem scriptMoin moin crunchip,
mache ich gerne. Aber ich habe mir gestern Abend den Kopf zermartert, wie ich das machen wie ich Dir diese Informationen so zur Verfügung stellen kann, dass Du alles auf einmal sehen kannst...
Wäre ein "Bildschirm-Video" sinnvoll, in dem ich drei Firefox-Fenster aufnehme, in denen jeweils die Informationen parallel dargestellt werden? -
@crunchip said in "admin.0 Restart loop detected" und keine Trigger mehr:
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
bis auf drei Adapter
oben ist es aber
nodejs modules from github: 3 +-- iobroker.homepilot20@0.0.68 (git+ssh://git@github.com/homecineplexx/ioBroker.homepilot20.git#d6dbb5c1b9a8cf5396bc139cd2e0dd7ad68aec10) +-- iobroker.icons-open-icon-library-png@0.1.3 (git+ssh://git@github.com/ioBroker/ioBroker.icons-open-icon-library-png.git#0847a79d713ee6725ccb6ccfb044c025b73ec946) | `-- kodi-ws@2.4.4 (git+https://git@github.com/iobroker-community-adapters/kodi-ws.git#ad5a1fdc5cd0a282e6818ff152594b5d32535103)
Mittlerweile habe ich den Adapter
iobroker.icons-open-icon-library-png
auf die Version 0.1.2 downgegraded - die ist imstable
-Repository verfügbar.
Und ich habe den enocean-Adapter (mit npm installiert) deinstalliert, ebenso wie den zwave2-Adapter (den hatte ich über dasstable
-Repository installiert).
Die einzigen Adapter, die ich jetzt noch von außerhalb desstable
-Repository installiert habe, sind derhomepilot20
- da läuft aber gerade die Bitte, den in dasstable
-Repository zu integrieren - und derpioneer_sc_vsx
. Für letzteren gibt es nur die Möglichkeit, über npm zu installieren.
Somit habe ich nur noch Adapter installiert, die ich wirklich benötige... -
@klausstoertebeker du kannst doch irgendein passendes Script aufrufen und das darunterliegende Log zeigen bei script start.(ggf debug log einbauen)
Oder auch mal einen Datenpunkt aus deinen Objekten, da müsste sich doch der Zeit Stempel ändern, wenn etwas geschaltet wird -
@crunchip
Das bekomme ich hin. Dann werde ich das Script-Log hier in Code-Tags einfügen und den Zeitstempel der Datenpunktänderung in den Text einfügen -
Hallo crunchip,
ich habe mich doch für ein Video Video entschieden, weil ich dort durch entsprechende Anordnung der Fenster die Reaktionen von ioBroker gleichzeitig darstellen kann und ich das für besser halte als das komplizierte Beschreiben mit Worten,
In dem Video siehst Du, wie- ich in der Visualisierung "VIS-2" einen Button anklicke, der mit dem boolschen Objekt
Schalter_Arbeitszimmer_Server-2
verknüft ist (Fenster links oben) - das Objekt
Schalter_Arbeitszimmer_Server-2
den Wert wechselt (unterer Bereich, markierte Zeile; Wechsel von false -> true -> false) - die Funktion "Unterprogramm Server-2 schalten" nicht ausgelöst wird (ich habe mehrere "debug"-Blöcke eingefügt, keiner schreibt jedoch ins Skript-Log)
Das Blockly-Skript hat folgenden Inhalt:
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="}.JK6ksO42P4EA)Pm/q:">Server-2_heruntergefahren</variable> </variables> <block type="on" id="dpfW@o|Xb4KE-N4[V6kj" x="63" y="-87"> <field name="OID">0_userdata.0.Schalter.Schalter_Arbeitszimmer_Server-2</field> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="debug" id="9MmQ)U(CW|$CoZ{4:j_L"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="(0ibH02O]P8f;LJnWxv8"> <field name="TEXT">test</field> </shadow> <block type="text" id="~3{3/4%#`IS700N)${Y?"> <field name="TEXT">"Unterprogramm Server-2 schalten" gestartet</field> </block> </value> <next> <block type="controls_if" id="ZhJrg)}pep`{Pfq:@MR)"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="logic_compare" id="D}jsUEOC#BX=VjIs$=@u"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="=1(_*k?^+dvYJ$h-@W5_"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Schalter.Schalter_Arbeitszimmer_Server-2</field> </block> </value> <value name="B"> <block type="logic_boolean" id="/.z^fx89LEs[CUCacev,"> <field name="BOOL">TRUE</field> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="Z}:7nmbOWJ^dl0_h.K!N"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Arbeitszimmer Server-2 Verbrauch und Schalter.Schalter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="T}_]4*Xa:sCj#0])Q{@_"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="debug" id="buTzmBW)ufvlE+k17)62"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="(0ibH02O]P8f;LJnWxv8"> <field name="TEXT">test</field> </shadow> <block type="text" id="+*O/[2o#pc](Cq|_*[be"> <field name="TEXT">Server-2 eingeschatet</field> </block> </value> </block> </next> </block> </statement> <value name="IF1"> <block type="logic_compare" id="MusPF0c$(T)4h!V]4RoQ"> <field name="OP">EQ</field> <value name="A"> <block type="get_value" id="#II_Alpp%c2MKX#:].$l"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Schalter.Schalter_Arbeitszimmer_Server-2</field> </block> </value> <value name="B"> <block type="logic_boolean" id="9s@KTW1P}:t1}n8?Rzhs"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO1"> <block type="control" id="{s_XQ;qrGJ)tHqnB!l?K"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">0_userdata.0.Hilfsobjekte.Server-Ausschaltbefehl</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text_replace" id="0|#Go{/Im:rLY9M5K5eU"> <value name="FROM"> <shadow type="text" id="X#T|Tfy`+jTZh4ztgY`2"> <field name="TEXT">x</field> </shadow> <block type="text_newline" id="jFvT@+lbKG!6v|3|*dp7"> <field name="Type">\n</field> </block> </value> <value name="TO"> <shadow type="text" id="A)}{b7Gm2)tE]2g4~=KX"> <field name="TEXT">y</field> </shadow> <block type="text" id="(XZX6%uN`Z[h2QW0e^%5"> <field name="TEXT"></field> </block> </value> <value name="TEXT"> <shadow type="text" id="tKZBuIpOe{/kC7q%j#2y"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="Z0L-cG-_C)?/QTu+o%*a"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="g8xwdz:?VoM!t1VQJ$*8"> <field name="TEXT">ssh admin@</field> </block> </value> <value name="ADD1"> <block type="get_value" id=";SU=2SU{O/PjSk[wj~l/"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Netzwerkadressen.IP-Adresse_Server-2</field> </block> </value> <value name="ADD2"> <block type="text" id="m!H8v?xWJ/dFVX|-EA[D"> <field name="TEXT"> poweroff</field> </block> </value> </block> </value> </block> </value> <next> <block type="exec" id="dINM^XRtRKI2zo0kDsWK"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG">debug</field> <value name="COMMAND"> <shadow type="text" id="+x)UNfi@Pd09uZn+)nj0"> <field name="TEXT">pwd</field> </shadow> <block type="text_replace" id="A-tOS.,Ab5-0p]4P=~y9"> <value name="FROM"> <shadow type="text" id="X#T|Tfy`+jTZh4ztgY`2"> <field name="TEXT">x</field> </shadow> <block type="text_newline" id="W:HGu5V97#-a3jjZU.e^"> <field name="Type">\n</field> </block> </value> <value name="TO"> <shadow type="text" id="A)}{b7Gm2)tE]2g4~=KX"> <field name="TEXT">y</field> </shadow> <block type="text" id="@*Ka=3uUO=13YbFc/{GG"> <field name="TEXT"></field> </block> </value> <value name="TEXT"> <shadow type="text" id="tKZBuIpOe{/kC7q%j#2y"> <field name="TEXT">text</field> </shadow> <block type="text_join" id="boC#i7RN}`2VmfBbk6zH"> <mutation items="3"></mutation> <value name="ADD0"> <block type="text" id="RmGi6+2VY8]{d[q1mAR1"> <field name="TEXT">ssh admin@</field> </block> </value> <value name="ADD1"> <block type="get_value" id="a?wbLJ5YSs6!.a$*LMxn"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Netzwerkadressen.IP-Adresse_Server-2</field> </block> </value> <value name="ADD2"> <block type="text" id="Jh*.IX(cz:U|oD~{u[7^"> <field name="TEXT"> poweroff</field> </block> </value> </block> </value> </block> </value> <next> <block type="debug" id="FmqPTzo7kT3t`]ZC-uM-"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="(0ibH02O]P8f;LJnWxv8"> <field name="TEXT">test</field> </shadow> <block type="text" id="wi|%p$JN)Ou9]*1Vzjrz"> <field name="TEXT">Server-2 wird heruntergefahren</field> </block> </value> <next> <block type="debug" id="!-#Y#V,z_/BkVke1Yfbh"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text" id="(0ibH02O]P8f;LJnWxv8"> <field name="TEXT">test</field> </shadow> <block type="get_value" id="YW0V%+Psc`G?+Sq6L+OV"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Hilfsobjekte.Server-Ausschaltbefehl</field> </block> </value> <next> <block type="variables_set" id="_SZ^${a4.da.HVtVflw?"> <field name="VAR" id="}.JK6ksO42P4EA)Pm/q:">Server-2_heruntergefahren</field> <value name="VALUE"> <block type="logic_boolean" id="]4cEN?|P.r=JC]R/0gDK"> <field name="BOOL">FALSE</field> </block> </value> <next> <block type="controls_whileUntil" id="Jg$ka*@unOMXF)%64UHa"> <field name="MODE">WHILE</field> <value name="BOOL"> <block type="logic_compare" id="NV(rf0!]lu5I{X@1BMHM"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="NGdQ)Elb3*]VK_oaDWP+"> <field name="VAR" id="}.JK6ksO42P4EA)Pm/q:">Server-2_heruntergefahren</field> </block> </value> <value name="B"> <block type="logic_boolean" id="q,s[qKLIpOnk9[%tP|,V"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <statement name="DO"> <block type="exec" id="M@mW6FL%_,0v]D|3(x4?"> <mutation xmlns="http://www.w3.org/1999/xhtml" with_statement="true"></mutation> <field name="WITH_STATEMENT">TRUE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text" id="2ISya|QWuK=oZ_Q{6whi"> <field name="TEXT">text</field> </shadow> <block type="text_join" id=".F*K;}^Ro%VIk;36qkkN"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="xpen|W3sk1@1mMI^X$dx"> <field name="TEXT">ping -c 1 </field> </block> </value> <value name="ADD1"> <block type="get_value" id="+LBmpXG*J,6^@M@Gwrr8"> <field name="ATTR">val</field> <field name="OID">0_userdata.0.Netzwerkadressen.IP-Adresse_Server-2</field> </block> </value> </block> </value> <statement name="STATEMENT"> <block type="controls_if" id="jDa`a4aMS,t+/r[Do_j/"> <value name="IF0"> <block type="logic_compare" id=":vrMh+x=v2bHQY;)}LC8"> <field name="OP">NEQ</field> <value name="A"> <block type="text_indexOf" id="RJ/#yna;Hqk(.JEQv+rQ"> <field name="END">FIRST</field> <value name="VALUE"> <block type="exec_result" id="G/5sXUTA6F*eMir{LT(W"> <field name="ATTR">result</field> </block> </value> <value name="FIND"> <shadow type="text" id="XsuuVumbmWIWoZ69JRxC"> <field name="TEXT">abc</field> </shadow> <block type="text" id=",v,6RfJ4n1ZN@SdO?,@/"> <field name="TEXT">Destination Host Unreachable</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="CD*8GZP9X4Ans5BZAy7t"> <field name="NUM">0</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="|vwYEzXZi}d;JR/hNu6j"> <field name="VAR" id="}.JK6ksO42P4EA)Pm/q:">Server-2_heruntergefahren</field> <value name="VALUE"> <block type="logic_boolean" id="My%k3.H/,N]8O*b[;1z!"> <field name="BOOL">TRUE</field> </block> </value> </block> </statement> </block> </statement> <next> <block type="timeouts_wait" id="KxzjUAu%2G~]*e7mro5Y"> <field name="DELAY">60000</field> <field name="UNIT">ms</field> </block> </next> </block> </statement> <next> <block type="control" id="6ke8|yGP0)D=`8]C1-m%"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">alias.0.Arbeitszimmer Server-2 Verbrauch und Schalter.Schalter</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="FL9Lkobw[krO}u*2Ef9L"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </statement> </block> </xml>
Hier das Admin-Log zum Download: Admin-Adapter-Log.json
Hier das Javascript-Log zum Download: Javascript-Adapter-Log.jsonIch hoffe, die Informationen reichen für den Anfang
- ich in der Visualisierung "VIS-2" einen Button anklicke, der mit dem boolschen Objekt
-
@klausstoertebeker sagte in "admin.0 Restart loop detected" und keine Trigger mehr:
Das Blockly-Skript hat folgenden Inhalt:
Blockly bitte immer auch als Screenshot.
Nur wenige werden Lust haben, das erstmal zu importieren um einen Blick darauf werfen zu können. -
@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...