NEWS
[gelöst] script mit 2 Auslösern
-
Hallo ich brauche mal eure Hilfe habe folgenden script für meinen Bewegungsmelder````
on('hm-rpc.0.MEQ0160425.1.MOTION', function (obj) { // Bewegung überwachen
var helligkeit = getState('hm-rpc.0.MEQ0160425.1.BRIGHTNESS');
if (obj.newState.val === true && helligkeit.val < 120) { // Bewegung true und Helligkeit unter 130
setState('hm-rpc.0.MEQ0177599.1.ON_TIME', 60); // 60s Einschaltdauer
setState('hm-rpc.0.MEQ0177599.1.STATE', true); // schalte Lampe an
setState('hm-rpc.0.MEQ0177599.2.ON_TIME', 60); // 60s Einschaltdauer
setState('hm-rpc.0.MEQ0177599.2.STATE', true); // schalte Lampe an
}
});und möchte jetzt noch einen Bewegungsmelder( hm-rpc.0.LEQ1282876.1.MOTION') als Auslöser einfügen ist das möglich oder muss ich einen 2 script machen Gruß Stephan
-
Versuche es mal so:
on(/^hm-rpc\.0\.(MEQ0160425|LEQ1282876)\.1\.MOTION$/, function (obj) { // Bewegung überwachen
-
Hallo paul 53
funktioniert Danke
Gruss Stephan
-
Morgen,
Hab dazu noch eine Frage! Ist es auch möglich das so zu machen das erst beide auf false gehen und dann
ein Gerät geschaltet wird?
on(/^ping\.0\.Iobroker-Server\.(192.xxx.xxx.xx1|192.xxx.xxx.xx2)/, function (obj) { // Ich nicht da und Frau nicht da if (obj.newState.val === false) { // setState('hm-rpc.0.NEQ0144765.1.STATE', false); // Pumpe wird abgeschaltet falls an });
Also mein Anliegen ist, ich habe den Ping Adapter und möchte wenn meine Frau und Ich nicht zu Haus bestimmte
Geräte abschalten .
Habe meine Ping ID´s in das Script von Paul53 eingefügt.Siehe Script!Hoffe habe das so einigermaßen zusammenbekommen,sitze nicht am
Rechner.
Das funktioniert auch bloß das es halt so ist ,das wenn ich nicht da bin wird geschaltet und anders rum genau so. Daher meine Frage wie mach ich es ,das erst
reagiert wird wenn beide nicht da sind? Oder muss ich nen zweites Script nehmen?
Mfg
Sven
-
Ist es auch möglich das so zu machen das erst beide auf false gehen und dann ein Gerät geschaltet wird? `
Ja, das ist möglich, nur muss man nicht unbedingt versuchen, es mit RegExp als Trigger zu lösen.var ping1id = "ping.0.Iobroker-Server.192_xxx_xxx_xx1"; var ping2id = "ping.0.Iobroker-Server.192_xxx_xxx_xx2"; // Initialisierung bei Script start var ping1 = getState(ping1id).val; var ping2 = getState(ping2id).val; function pingtest() { if(!ping1 && !ping2) setState('hm-rpc.0.NEQ0144765.1.STATE', false); // Pumpe wird abgeschaltet falls an } on(ping1id, function(dp) { ping1 = dp.state.val; pingtest(); }); on(ping2id, function(dp) { ping2 = dp.state.val; pingtest(); });
-
Oder man macht es doch mit RegEx und fragt dann innerhalb der Subscription nochmal die Werte beider Pings ab.
on(/^ping\.0\.Iobroker-Server\.(192.xxx.xxx.xx1|192.xxx.xxx.xx2)/, function (obj) { // Ich nicht da und Frau nicht da (triggert nur bei Änderung mindestens eines Pings) if (!getState("ping.0.Iobroker-Server.192_xxx_xxx_xx1").val && !getState("ping.0.Iobroker-Server.192_xxx_xxx_xx2").val ) setState('hm-rpc.0.NEQ0144765.1.STATE', false); });
Gruß
Pix
-
Morgen,
Gestern Abend gleich probiert und es funktioniert wie es soll
So langsam versteht man immer mehr beim Scripten.
Vielen lieben Dank an euch zwei.
8-)
Gruß Sven