Image als Button doppelt belegen?

Es gibt ja die Möglichkeit ein Bild in Abhängigkeit einer Variable darzustellen … Bei TRUE wird zum Beispiel ein grüner Button gezeigt und bei FALSE ein roter. Weiterhin hat man die Möglichkeit durch drücken des Buttons ein Script zu starten … Kann ich eigentlich auch ein Script je nach Zustand des Bildes hinterlegen? Also wenn Variable == true, dann Button == grün und gleichzeitig Script zum Ausschalten und das Ganze dann einmal umgekehrt. Oder wird das in einem einzigen Script gelöst … mit if/else Abfrage ?

Gruß
Jens

Hallo Jens,

beides ist möglich. Wobei mit If/else wird das am besten gehen. Möchtest Du es über die Variable mit zwei Scripten machen, dann beim Script ein OnValue Event auf jeweils true und false anlegen.

Oder wenn Du keine Button nimmst sondern zwei Images mit:


case 'KG_Flu_Li_aus':
 FS20_SwitchMode($KG_Flu_Dimmer, false); // Licht aus
 break;

 case 'KG_Flu_Li_an':
 FS20_SwitchMode($KG_Flu_Dimmer, true); // sonst Licht an
 break;

Der case Wert wird beim Object Inspector des Bildes im Wert IPSYMID übergeben.

Hallo Thomas,

danke für die Erklärung … leider bin ich php Anfänger und daher mit CASE und BREAK noch nicht vertraut.
Werde versuchen den Wert über GetValue einzulesen und dann mit if/else weiter machen.

Hatte nur zuerst gedacht, dass ich im Inspector pro Bild/Zustand auch ein eigenes Script hinterlegen kann. Durch die if/else Anweisung wirds dann aber wohl letztendlich einfacher, da nur ein Script vorhanden ist das für beide Zustände benutzt werden kann.

Ich habe mir ein Script für den Designer geschrieben in dem ich alle Schalter des Hauses abfrage und dafür Aktionen auslöse. Das ist für spätere Änderungen immer günstig.

Und das bindest du dann am Anfang in alle neuen Scripte ein, damit du dann alle Werte zur Verfügung hast!?
Werde ich mir merken :slight_smile:

Nein nicht ganz so.

Ich habe eigentlich drei Arten von Scripten.

  1. Das Konstantenscript

Einbindung in allen meinen Scripten über:


include(IPS_GetScriptFile("Konstanten"));

In diesem sind allgemeine Variablen und arrays abgelegt und damit kannst Du Dinge wie:


$OG_Sz_Steckdose                = 62213;
 $OG_Sz_Steckdose_TV             = 22204;
 $OG_Sz_Steckdose_Bettlampen     = 22571;
 $OG_Zz_Steckdose_Lautsprecher   = 22890;

ablegen, damit diese in allen Scripten zur Verfügung stehen.

  1. Globale Scripte

Wie für den Designer, dort sind z.B alle Schalterfunktionen hinterlegt…

  1. Spezielle Scripte

Wie Terminverwaltung, Wecker etc.