NEWS
On()-Funktion - Reagieren auf _SHORT oder _LONG
-
Habe das folgende Script mit der Javascript-Adapter Version 1.1.1 getestet:
on({id: /^hm-rpc\.0\.BidCoS-RF\.1\.PRESS_.*$/, val:true}, function(dp) { log(dp.id); });
und es funktioniert. Log:
` > javascript-0 2015-12-16 21:15:51 info script.js._Multistate-Test: hm-rpc.0.BidCoS-RF.1.PRESS_LONGjavascript-0 2015-12-16 21:15:31 info script.js._Multistate-Test: hm-rpc.0.BidCoS-RF.1.PRESS_SHORT `
-
Na ist doch klasse:).
…und wie würde das für die Variablen "klingel" und "klingel_long" aussehen?
Geht das denn mit Variablen?
-
…und wie würde das für die Variablen "klingel" und "klingel_long" aussehen? `
Sollen die Variablen als Auslöser dienen:on({id: /^javascript\.0\.klingel.*$/, val:true}, function(dp) { log(dp.id); });
-
Das hast du falsch verstanden.
Ich habe zur Vereinfachung halber die Actoren, also z.B. "hm-rpc.1.J…......" in Variablen, also z.B. "klingel" gepackt.
Diese verwende ich halt in den on()-Funktionen.
Ich mag meine Scripts möglichst universell, und brauche so eben nur jeweils den "Kopf" ändern.
Bei dem Klingelscript ist das nicht wirklich notwendig, aber bei meinen MQTT-Sensoren macht das schon Sinn.
-
Das Script mit den "hm-rpc.1.J…......" als Auslöser habe ich bereits gepostet.
-
-
Kannst mir glauben, das Fenster habe ich Heute bestimmt 1000x nach oben geschoben.
…immer wieder neu;).
Sonst hätte ich ja auch nichts dazu geschrieben;).
Benutze übrigens Firefox.
-
Du hast "status()" geschrieben. Und ich ohne Klammern.
Bei dir wolltest du das Ergebnis von Funktion status nutzen (Vermutlich "undefined") und ich habe die Funktionen eingegeben. `
Mit dem Ergebnis der Funktion hat es nichts zu tun.Es sollte lediglich ein Funktionsaufruf ohne Parameterübergabe sein. Macht man einen solchen Funktionsaufruf in einer extra Zeile - z.B. innerhalb einer Verbundanweisung, sind die Klammern erfoderlich.
{ funcXYZ(); } ````funktioniert
{ funcXYZ;
}EDIT: Habe noch etwas recherchiert: Callback-Funktionen müssen offenbar als anonyme Funktion (mit oder ohne Argumente)
on(id, function(arg1, ...argN) {
Funktion(en);
});oder als Funktionsreferenz (ohne Argumente)
on(id, FunktionXYZ);
angegeben werden.
-
-
Hey,
frage von einem totalen JavaScript noob: Er schaltet mir die Var output2 nicht, was mache ich falsch?
log("Test","info"); //var input1 = "ping.0.input1";/*input1 bool*/ //var input2 = "ping.0.input2";/*input2 zahl*/ //var output1 = "ping.0.output1";/*output1 bool*/ //var output2 = "ping.0.output2";/*output2 zahl*/ function testfunc1() { setState("ping.0.output1", true); } function testfunc2() { setState("ping.0.output1", false); } on({id: "ping.0.input1", val: true}, testfunc1); on({id: "ping.0.input1", val: false}, testfunc2);