mit Homematic Sender einen FS20 Aktor togglen

Ich habe das Problem, dass ich mit einem HM-PBI-4-FM (Funk-Tasterschnittstelle 4-fach Unterputzmontage) einen FS20 Aktor togglen möchte. Ich habe es problemlos hinbekommen per

<?
FS20_SwitchMode(47657 /*[OG\Treppenhaus\Licht Treppenhaus]*/ , true); //Gerät einschalten
?>

das Licht einschalten zu können … wie jedoch aus wenn ein und ein wenn aus?!

Ich würde es per langem und kurzem Tastendruck lösen. Da FS20 nicht bidirektional ist kannst Du Dich auf den tatsächlichen Schaltstatus nicht verlassen und solltest definierte Schaltbefehle absenden und keine Toggle-Schaltung. Lang-/kurz-Auswertung funktioniert wenn Du beim dem Sender auf ungesicherte Übertragung umstellst.

Ändert ja aber nichts an der Problemstellung; wie kann ich den aktuellen Status des FS20 Aktor in meine Schaltscript integrieren?
Für HM->HM ist da ja einfach:

$id_aktor = 25404 /*[Hof Garten\Lampe]*/;
$id_state = 55194 /*[Hof Garten\Lampe\STATE]*/;
HM_WriteValueBoolean($id_aktor, "STATE" , !GetValue($id_state));

Im Übrigen: 1000 Dank für Deine Hilfe am heutigen Abend. :smiley:

Aber genau das, hat dir kronos ja schon genannt.

Was spielt denn das bei einem Treppenhauslicht für eine Rolle ???
Wenn der Aktor nicht funktioniert muss man halt nochmal (d.h. noch 2x drücken).

Die Abfrage der Status-Variable des Aktors in eine case-Anweisung einbauen. Such mal nach Toggle Button, gibt schon Ansätze dafür.

Ein fertiges Skript kann ich leider nicht liefern. :o

Gruß
Bruno

Aber ich habe doch einen Status:

Genau, Du hast einen Status des Geräts. :smiley:

Leider wird der schon beim Senden des Befehls gesetzt. Ob was beim Aktor angekommen ist, ist nicht definiert. :cool:
HM und andere Systeme geben hier Rückmeldung.

Kannste ganz einfach ausprobieren: Nimm den Aktor vom Strom und schalte über IPS.

Gruß
Bruno

Meinst Du sowas:


$inst_id = 47657;
$var = IPS_GetStatusVariableID($inst_id,"StatusVariable");
$val =  GetValue($var);
if ($val == True){
   FS20_Switchmode($inst_id, False);
}else{
   FS20_Switchmode($inst_id, True);
}

Gruss

hightower