NEWS
Javascript - doppelte Ausführung von Scripten
-
wat hör ich zum ersten mal.. ich habe unzählige Scripte laufen.. ohne dass diese 2 mal ausgeführt werden.. und mein Pi rennt manchmal Wochenlang..
-
Hast du mal ein Beispielskript mit dem das auftritt? Eventuell liegt es ja an deinem Code.
-
Na klar, hier der Blockly Export.
Einfacher geht's ja kaum:
<xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="hT;GJ~fjM7|ThoXeV8[U" x="37" y="13"><field name="OID">hm-rpc.0.MEQ1849371.3.MOTION</field> <field name="CONDITION">ne</field> <statement name="STATEMENT"><block type="controls_if" id="4oqT?{Hb#hBnv@g)4Aco"><value name="IF0"><block type="logic_compare" id="v-pM/7T%BWW68i81[.[H"><field name="OP">EQ</field> <value name="A"><block type="get_value" id="Qok0AE7Dy[=-()j:M13#"><field name="ATTR">val</field> <field name="OID">hm-rpc.0.MEQ1849371.3.MOTION</field></block></value> <value name="B"><block type="logic_boolean" id="i!iE]bKPj:z1X5+2zB*c"><field name="BOOL">TRUE</field></block></value></block></value> <statement name="DO0"><block type="control" id="4R(@t59#XCK[+LZ_!t51"><mutation delay_input="false"></mutation> <field name="OID">hm-rpc.1.CUX0200006.1.TOGGLE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="MD-{YDe2,0Z~BbLI2LVn"><field name="BOOL">TRUE</field></block></value> <next><block type="control" id="{h^uHFL*!XA/G=[884#V"><mutation delay_input="true"></mutation> <field name="OID">hm-rpc.1.CUX0200006.1.TOGGLE</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">1000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"><block type="logic_boolean" id="C8~GAaI{^Mh}PEES7Rrx"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></xml>
-
Danke, aber ich bin nicht so der Blockly-Typ. Schon gar nicht wenns um den rohen XML-Code geht
Geht auch ein Screenshot?
-
Auch das:
Hier der Code den Blockly erzeugt:
on({id: "hm-rpc.0.MEQ1849371.3.MOTION"/*Bewegung-OG_Flur.MOTION*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("hm-rpc.0.MEQ1849371.3.MOTION").val == true) { setState("hm-rpc.1.CUX0200006.1.TOGGLE"/*OG_Flur_Wandtablet.TOGGLE*/, true); setStateDelayed("hm-rpc.1.CUX0200006.1.TOGGLE"/*OG_Flur_Wandtablet.TOGGLE*/, false, 1000, false); } });
Screenshot kommt noch
-
So, hier der Screenshot:
-
Liegt das Script unter "Global"??
Wenn ja, nimm es da raus. Hatte ich glaub ich zum Anfang auch mal.
MfG
dna909
-
Ne, da liegts nicht. Unter "global" hab ich gar nix.
-
Ich hab das auch seit ein paar Tagen so ähnlich.
Zuerst kann man wohl hiermit checken ob was doppelt läuft:
ps -A | grep io
Ist bei mir nicht der Fall.
Bei mir läuft das Script parallel auf instanz.1, obwohl das script auf instanz.0 gestellt ist. Ich habe mal in Vergangenheit zum Testen die Instanz gewechselt. Das bleibt irgendwo noch gespeichert. Nur wo? Deswegen will das Script nicht mehr laufen. Hatte ich monatelang ohne Probleme am Laufen.
javascript.1 2017-08-03 13:59:15.483 info Stop script script.js.common.Telegram.Cam2_motion javascript.0 2017-08-03 13:59:15.483 info Stop script script.js.common.Telegram.Cam2_motion javascript.0 2017-08-03 13:59:14.561 info Stop script script.js.common.Telegram.Cam2_motion
-
Bei mir läuft das Script parallel auf instanz.1, obwohl das script auf instanz.0 gestellt ist. `
@Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz.
-
Stell mal bei "ist anerkannt" auf bestätigt, oder was da noch zur Auswahl steht. So, wie das bei dir steht, kommt eine Ansage beim Ändern des Datenpunktes und eine Ansage beim Bestätigen durch die CCU.
Enrico
-
Ne, hab nur eine Instanz laufen.
@ RappiRN
Das klingt interessant, wird ausprobiert. Würde aber nicht erklären warum das Problem erst nach ein paar Tagen auftaucht und nach Adapter Neustart erstmal verschwindet.
-
@Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?
Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz. `
Ich habe auch zwei Instanzen.0 = produktiv
1 = testen
Ich probiere und teste etliches aus. Nachdem ich mir schon einigemale Instanz 0 abgeschossen habe, teste ich nur noch in Instanz 1.
Dopplungen habe ich noch nie gehabt.
Grüße
-
@Linedancer hast du mehrere Instanzen vom JavaScript-Adapter?
Das könnte erklären, warum ich solche Probleme noch nicht hatte. Ich habe nur eine Instanz. `
Ich habe auch zwei Instanzen.0 = produktiv
1 = testen
Ich probiere und teste etliches aus. Nachdem ich mir schon einigemale Instanz 0 abgeschossen habe, teste ich nur noch in Instanz 1.
Dopplungen habe ich noch nie gehabt.
Grüße `
ditto ich nutze auch 2 instanzen ..
und bis dato keine Probleme mit doppelung..
was ich mir mal eingebaut habe ist … ein Script setzt die variabe und ein anderes der einmal die woche läuft setzte die wieder um .. da suchst du dir nen wolf..
-
was ich mir mal eingebaut habe ist … ein Script setzt die variabe und ein anderes der einmal die woche läuft setzte die wieder um .. da suchst du dir nen wolf.. `
Das wäre so ein Wunsch… nach allen Scripten/Programmen suchen wo eine bestimmte Variable, State vorkommt... so wie bei homematic. -
Ja genau. Diesen Wunsch der globalen Suche hätte ich auch. Ich glaube das wurde auch irgendwo hier im Forum schon mal angesprochen.
Wäre mir wesentlich lieber als das ganze Alexa, Cloud und sonstwie Zeugs
Soll aber keine Kritik an Bluefox & Co. sein. Ich wollte mich nur mal outen als jemand für den der ganze SocialMedia-Kram noch nicht lebenswichtig ist
-
als workaround
exportiere alle Scripte.. diese liegen dann in txt format..
-
Das mit dem Exportieren ist schon klar. Aber auch wenn ich ein Dino bin
dieser Weg ist wohl dann doch mehr als mittelalterlich
-
Ich finde die Idee erstmal gar nicht schlecht mit dem Export. Habe ich gemacht. Alle Dateien sind aber .json!?
-
Ja genau. Diesen Wunsch der globalen Suche hätte ich auch. Ich glaube das wurde auch irgendwo hier im Forum schon mal angesprochen.
Wäre mir wesentlich lieber als das ganze Alexa, Cloud und sonstwie Zeugs
Soll aber keine Kritik an Bluefox & Co. sein. Ich wollte mich nur mal outen als jemand für den der ganze SocialMedia-Kram noch nicht lebenswichtig ist
`
Habe Alexa auch zuerst kritisch gesehen, bin aber mittlerweile ganz begeistert.Der Export der Skripte ist wirklich die beste Möglichkeit. Natürlich mutet das sehr mittelalterlich an, aber man kann gleich den Seiteneffekt des Backups nutzen. Da sind dann mal alle Skripte gleich auf der Platte. Ich speichere Sie übrigens nicht als .txt sondern als .json und nutze TextWrangler (OS X) zum Durchsuchen.
In diesem Zusammenhang ist mir eine kleiner Bug/Fehlverhalten aufgefallen. Vielleicht auch ein Feature :?
Wenn ich globale Funktionen (Funktionen in globalen Skripten) aus normalen Skripten aufrufe und diese globalen Funktionen Logausgaben produzieren, dann erscheinen im Log diese Logzeilen hinterm dem Namen des Skriptes, das die globale Funktion aufgerufen hat (Monstersatz :oops: ). Wie wäre es mit einem kleinen Hinweis (zB ein "(g)" ) darauf, dass diese Logausgabe von einer globalen Funktion kommt?
Gruß
Pix