Desweitern erschliesst sich mir der Sinn nicht, da Du nur einen Aktor Ein und Aus schaltest. Wird der Rest über Trigger gelöst? Wenn Du einen Taster simulieren willst, sollte da noch eine Zeile mit ON_TIME und 1 Sek. rein.
HM_WriteValueFloat($VarSwitchVal, "ON_TIME", x); // x Sekunden AN
Also du willst einen TOGGLE über einen Taster machen!?
Dann erstmal das Leerzeichen ganz am Anfang entfernen, vor dem " <?" und dann:
>> Wenn Zwischenstecker TRUE ist, dann nochmal TRUE senden?!?! Eher wenn TRUE dann mach FALSE und andersrum
Edit: Und wie Bruno sagte, du musst das Skript dann natürlich vom Taster aus irgendwie ansteuern, aber da gehe ich mal davon aus, dass du das über ausgelöste Ereignisse (Variablenaktualisierung) deiner Taster machst!?
Jetzt kann ich das Licht aber nicht mehr ausschalten.
Schalten will ich einen Kanal von einem HM-LC-Sw4-DR.
Wie kann ich das lösen wenn ich nur einen Kanal vom Taster nutzen will (für ein und aus)?
Oder sollte ich dann trotzdem auf den zweiten Kanal die Aus-Taste legen.
Also wenn du das direkt im Ereignis machst, und nicht mit einem eigenen Script im logischen Baum, dann wird das so zumindest nix
Du fragst ja den alten Werte der Lampe nie ab.
Somit landest du immer im false-Zweig und dort wird immer Eingeschaltet.
Der einfachste Weg ist (weil beliebig oft kopierbar ohne das man IDs austauschen muss):
Verschiebe das Ereignis mal unter die Variable welche den Status deiner Lampe darstellt, somit wird sie zum ‚Ziel‘ des Ereignisses.
Dann diesen Code in das Ereignis kopieren:
Kurze Erklärung:
$_IPS[‚TARGET‘] enthält die ID der IPS-Variable, wenn das Ereignis eintritt.
Mit GetValueBoolean wird der Status aus der Variable ausgelesen und mit dem ! invertiert.
Und mit IPS_GetParent wird die Instanz der Lampe ermittelt.
Danke Michael … das ist mal eine Erklärung quasi auch für Dummies wie mich, in Sachen PHP
Ich versuche immer die Sache auch für mich logisch nachzuvollziehen, sodass ich mir das auch für andere Sachen ableiten kann. Man(n) lernt ja nie aus.