NEWS
"admin.0 Restart loop detected" und keine Trigger mehr
-
@thomas-braun
Hallo Thomas,
war am Wochenende nicht daheim, deshalb erst jetzt meine Antwort:Mein ioBroker läuft auf einem Raspberry Pi 5 (8 GByte) mit graphischer Benutzeroberfäche. Und das deutliche schneller als meinem Raspberry Pi 4B (8 GByte)...
Oder glaubst Du, dass der in die ioBroker-Installation reinfunkt? -
@mcm1957
Hallo mcm1957,
danke für die Info.
Aber derpioneer_sc_vsx
ist der einzige Adapter (installiert mit npm), mit dem ich meinen betagten Pioneer VSX-921-Receiver steurrn kann. Und bisher hat der auch tadellos funktioniert.
Der andere, über dasstable
-Repository verfügbare, Pioneer-Adapter ist für meinen Receiver nicht nutzbar. -
Kann mir denn niemand erklären, warum ich keine Trigger mehr bekomme, weder ereignis- noch zeitgesteuert? Welcher Teil/Adapter von ioBroker ist denn für die Auslöung und Verarbeitung eines Triggers verantwortlich?
Ich habe jetzt alles aus demstable
-Repository installiert - bis auf drei Adapter (enocean
,pioneer_sc_vsx
undhomepilot20
) - und hatte gehofft, dass sich die Probleme damit gelöst haben.
Aber sie sind immer noch da und ich scheine ein Problem mit der Basisinstallation zu haben... -
@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