Hallo zusammen,
hab es hinbekommen, sogar ohne Zeitliche Wartezeiten beim Schalten.
@Torro, Danke dein Tip Gestern Abend hat den richtigen Denkanstoß gegeben.
Falls jemand ein Vergleichbares Einsatzgebiet hat, werde ich den Ablauf hier kurz Beschreiben und den Code einfügen.
Es wird eine Globale Variable und 2 Scripte benötigt:
-Das erste Script wird auf das Tasterereignis True gestartet.
-Beim Betätigen des Tasters wird jeweils die Variable um 1 hochgesetzt.
-Über einen Timer das zweite Script verzögert gestartet. (Nach Ablauf der Zeit, schaltet der Taster bei der nächsten Betätigung immer beide Lampen aus).
-Mit den 4 verschiedenen Variablenwerten werden die Lampen wie folgt geschaltet:
1 - Lampe 1 ein.
2 - Lampe 1 aus und Lampe 2 an.
3 - Lampe 1 ein und Lampe 2 bleibt an.
4 - Lampe 1 aus und Lampe 2 aus.
Script 1
$i = getvalue (29688 /*[Wohnzimmer\Scripte\Zähler Wandbeleuchtung]*/ ); // Globale Variable auslesen und in interne Variable übergeben.
if (10243 == True) { // Wenn Taster betätigt wird.
$i = ($i + 1); // interne Variable um 1 hochzählen.
setvalue (29688 /*[Wohnzimmer\Scripte\Zähler Wandbeleuchtung]*/ ,$i); // Neuen Wert in Globale Variable zurück schreiben.
IPS_SetScriptTimer(42365 /*[Wohnzimmer\Scripte\Wohnwand Statusvariable auf 3 setzen]*/ ,10); // Timer für Rückstellungs Script setzen.
If ($i == 1) { // Wenn interne Variable gleich 1 ist.
MXC_SwitchMode(38661 /*[Wohnzimmer\xComfort Switch Lampen Schrank]*/ ,True); // Schranklampe 1 einschalten.
}
If ($i == 2) { // Wenn interne Variable gleich 2 ist.
MXC_SwitchMode(38661 /*[Wohnzimmer\xComfort Switch Lampen Schrank]*/ ,False); // Schranklampe 1 ausschalten.
mxc_switchmode(34267 /*[Wohnzimmer\xComfort Switch Lampen Wand]*/ , True); // Schranklampe 2 einschalten.
}
If ($i == 3) { // Wenn interne Variable gleich 3 ist.
MXC_SwitchMode(38661 /*[Wohnzimmer\xComfort Switch Lampen Schrank]*/ ,True); // Schranklampe 1 einschalten.
}
If ($i == 4) { // Wenn interne Variable gleich 4 ist.
MXC_SwitchMode(38661 /*[Wohnzimmer\xComfort Switch Lampen Schrank]*/ ,False); // Schranklampe 1 ausschalten
mxc_switchmode(34267 /*[Wohnzimmer\xComfort Switch Lampen Wand]*/ , False); // Schranklampe 2 ausschalten
IPS_SetScriptTimer(42365 /*[Wohnzimmer\Scripte\Wohnwand Statusvariable auf 3 setzen]*/ ,0); // Timer für Rückstellungs Script ausschalten.
setvalue (29688 /*[Wohnzimmer\Scripte\Zähler Wandbeleuchtung]*/ ,0); // Globale Variable auf 0 setzen
}
}
Script 2
setvalue (29688 /*[Wohnzimmer\Scripte\Zähler Wandbeleuchtung]*/ ,3); //Globale Variable auf 3 setzen.
IPS_SetScriptTimer(42365 /*[Wohnzimmer\Scripte\Wohnwand Statusvariable auf 3 setzen]*/ ,0); //Timer auf 0 setzen.
Falls jemanden ein Fehler auffällt. oder einen einfacheren Weg sieht, bitte posten, da ich kein PHP Spezi bin, bin ich für jede Hilfe dankbar.
PS.: @Toni, habe hier Moeller Binäreingang und Schaltaktor.
Viele Grüße
Olaf