Mehrere Geräte auf einer Taste

Hallo IPSler,

habe ein Script geschrieben, das 4 Geräte gleichzeitig schalten soll. ( zu Bett gehen alles aus ). Nun möchte ich, das das Script aus geführt wird wenn ich am Bett die Taste 1 des FS20 S4A drücke.

Wie kann ich das realisieren.

Grüße Mirco

Hallo Mirco,

dazu musst du dir eine FS20RX Instanz anlegen und sie auf die FS20 S4A anlernen. -> siehe Wiki -> Flash-Animation „Neue Geräte anmelden“

Der Instanz ordnest du dann eine Boolean-Variable zu.

Im Skript-Editor dann diese Variable für dein Skript als Trigger OnChange eintragen.

Dein Skript sollte dann noch prüfen welchen Wert die Variable hat und dem entsprechend alles ein- oder ausschalten.

Gruß,
Jörn

Hallo Jolentes, danke für die schnelle Antwort. Ich habe leider, trotz deiner ausführlichen Anleitung, ein Problem. Es tut sich nichts.

Ich habe eine FS20 Instanz angelegt und sie auf die FS20 S4A angelernt.
Der Instanze habe ich Boolean zu geordnet.
Im Skript Editor habe ich die Variable zum Triggern gegeben. (siehe Anghang )

Das eizige was ich nicht verstehe und nicht weiss wie ich es machen muss ist:
Dein Skript sollte dann noch prüfen welchen Wert die Variable hat und dem entsprechend alles ein- oder ausschalten. :confused:

Grüße Mirco

IPS.PNG

Hallo Mirco,

hier ein Beispiel.


$status=GetValueBoolean("Bettschalter_Taste_1")
if ( $status )
{
   FS20_SwitchMode(12345, True);
}
else
{
   FS20_SwitchMode(12345, False);
}


Wobei mir dabei auffällt, dass es noch effizienter geht.


$status=GetValueBoolean("Bettschalter_Taste_1")
FS20_SwitchMode(12345,$status);

Wie sieht den dein Skript aus?

Gruß,
Jörn

Das wals jolentes dort gepostet hat schaltet einen Aktor. Du kannst aber beliebig viele FS20_SwitchMode-Befehle hintereinander senden lassen.

Toni

Ja. Deswegen habe ich nach dem Skript gefragt.
Und nicht zu vergessen, dass die InstanzID 12345 noch ausgetauscht werden muss.

Gruß,
Jörn

das mit den IDs versteht sich doch von selbst :wink:


$status=GetValueBoolean("Bettschalter_Taste_1")
FS20_SwitchMode(12345,$status); 
FS20_SwitchMode(12346,$status); 
FS20_SwitchMode(12347,$status); 
FS20_SwitchMode(12348,$status); 

Toni

So anbei mein Script. Möchte betonen, das ich noch nicht viel Ahnung von PHP habe.

Grüße Mirco


IP-SYMCON Event Scripting


File : alles_aus.ips.php
Trigger : Bettschalter_Taste_1
Interval :
*/
FS20_SwitchMode (52933, FALSE); /Stehlampe aus
FS20_SwitchMode (17219, FALSE); /Hennalampe aus
FS20_SwitchMode (27745, FALSE); /Fensterlampe aus
?>

Wenn dein trigger funktioniert, wird der Taster die Geräte nur ausschalten, nie einschalten - ist das so gewollt?

Versuch es mal die Kommentare mit // statt mit / einzuleiten.

Toni

Hallo Toni,

habe die Änderung durchgeführt, aber leider tut sich nicht. :frowning:

Habe ich was vergessen?

Grüße Mirco


IP-SYMCON Event Scripting


File : alles_aus.ips.php
Trigger : Bettschalter_Taste_1
Interval :
*/
FS20_SwitchMode (52933, FALSE); //Stehlampe aus
FS20_SwitchMode (17219, FALSE); //Hennalampe aus
FS20_SwitchMode (27745, FALSE); //Fensterlampe aus
?>

Unbenannt.PNG

Hast du oben rechts mal „Execute“ geklickt? Damit kannst du dein script testen. Wenn das geht liegt dein Problem woanders.

:smiley: läuft. Danke

Grüße Mirco

Fein. freu

Wenn du nun noch Probleme hast, kann es nur noch am Trigger liegen.

Meld dich dann einfach nochmal eben hier im Thread.

Toni

Soweit läuft alles super.

Mir ist aufgefallen, das wenn ich den Bettschalter Taste 1 drücke und das Script „alles aus“ getriggert wird, sich die Variable Bettschalter Taste 1 auf true setzt. Das ist ja auch richtig so. Wenn ich jetzt allerdings Nacht mal raus muss um das Kind oder meine Blase zu beruhigen, kann ich danach wenn ich mich wieder ins Bett fallen lasse die Bettschalter Taste 1 nicht noch einmal benutzen, da diese ja bereits auf true steht. Natürlich könnte ich die Variable aus schalten und dann nochmal benutzen, aber mal erlich, wer kann das mitten in der Nacht ?:o

Gibt es eine Möglichkeit das Script in sofern zu ändern, das sich die Variable nach ca 5 min wieder automatisch auf False setzt ohne die Geräte wieder an zu schalten? Das Script hänge ich mal an.

Grüße Mirco


IP-SYMCON Event Scripting


File : alles_aus.ips.php
Trigger : Bettschalter_Taste_1
Interval :
*/
FS20_SwitchMode (52933, FALSE); //Stehlampe aus
FS20_SwitchMode (17219, FALSE); //Hennalampe aus
FS20_SwitchMode (27745, FALSE); //Fensterlampe aus
?>

Klar geht das. Sogar gleich, nicht erst nach 5 Minuten.

Ich muss das nur mal eben aus dem Kopf machen, weil ich IPS nicht in griffweite hab… Sinngemäß müsste das so stimmen:


$status=GetValueBoolean("Bettschalter_Taste_1");
if ($status == TRUE)
{
  FS20_SwitchMode(52933, FALSE); //Stehlampe aus
  FS20_SwitchMode(17219, FALSE); //Hennalampe aus
  FS20_SwitchMode(27745, FALSE); //Fensterlampe aus
  SetValueBoolean("Bettschalter_Taste_1", FALSE);
}

Durch SetValueBoolean wird zwar dein Script nochmal getriggert (Variable hat sich geändert), aber nur wenn Die Bettschalter variable TRUE wird, wird auch der Code ausgeführt. Wieder einschalten würden die Geräte (oder Lampen) erst bei einem Befehl wie FS20_SwitchMode(27745, TRUE).

Toni

Genau so sollte es sein. Danke an Tonic1024. Merci

Grüße Mirco