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.
Grüße Mirco
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
$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.
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
?>
Hast du oben rechts mal „Execute“ geklickt? Damit kannst du dein script testen. Wenn das geht liegt dein Problem woanders.
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