Toggle Button

Jup, tatsächlich:

boolean IPS_SetVariableProfileAssociation ( integer $ProfilName, float $Wert, string $Name, string
$Icon )

Habe hier die „IPS-Bibel“ neben mir liegen…brauche immer was zum blättern…ist dann wohl überholt.
Nebenbei bemerkt sieht die auch schon aus wie ein Buch aus den 60ern :stuck_out_tongue:

Die dürfte noch von V2.2 sein.

Wenn aktuell, die Doku lesen.

Ok, guckt mal was ich hier gebaut habe:

<?

if($IPS_SENDER == "WebFront")
{
    switch($IPS_VALUE)
    {
        case 1:
        IPS_SetVariableProfileAssociation("Aus_Aus", 0, "Aus", "", 0xE53300);
        IPS_SetVariableProfileAssociation("Aus_Aus", 1, "", "", 0xE53300);
        SetValueInteger(42217, 0);
        IPS_Sleep(100);
        SetValueInteger(42217, 1);
		  break;
        case 0:
        IPS_SetVariableProfileAssociation("Aus_Aus", 1, "Aus", "", 0xE53300);
        IPS_SetVariableProfileAssociation("Aus_Aus", 0, "", "", 0xE53300);
        SetValueInteger(42217, 0);
        IPS_Sleep(100);
        SetValueInteger(42217, 1);
        break;
    }
}

Jetzt gibt es nur noch Aus und ich bekomme ein kurzes Feedback bei Tastendruck.
Allerdings nur bei jedem 2. mal. Warum ist das so?

Lass mich raten, 42217 ist deine Integervariable mit Profil. Warum setzt Du diese noch mal. Sie wird doch über SetVariableProfile… gesetzt.

Oder liege ich falsch.

<?

if($IPS_SENDER == "WebFront")
{
   SetValue($IPS_VARIABLE, $IPS_VALUE);
    switch($IPS_VALUE)
    {
        case 0:
        IPS_SetVariableProfileAssociation("Aus_Aus", 0, "Aus", "", 0xE53300);
        break;
    }
}

?>

Also wenn ich das jetzt mal so durchschaut habe, setze ich mit IPS_SetVariableProfileAssociation einfach nur die Assoziation für 0 und 1 in meiner Variable (plus Wert & Farbe)

Also wird meine Variable im Ersten schritt mit der Assoziation 0 auf den Wert Aus gesetzt. Die Assoziation 0 wird gelöscht.

Anschliessend setzte ich sie allerdings manuell für eine kurze Zeit (100ms) auf aus und dann wieder ein, das bringt mir eine kurzes visuelles feedback im WF.

Nur eben im zweiten Step haut das nicht hin.

Worauf bezieht sich denn das case0 / case1?

Wenn Du nur einen z.B. Aus-Befehl senden willst, brauchst Du das ganze Gedönse nicht. Im Profil nur einen Wert anlegen und im Script den Code von dfhome ohne ! vor $IPS_VALUE.

case bezieht sich auf den Wert der hinterlegt ist. Wenn Du jetzt 2345 hinterlegst muss um zu schalten der case auch 2345 sein. Also case 2345:

Hurra, ich kann nun AUS schalten! (wenn auch ohne optisches feedback)

Jetzt reicht es aber auch erst mal für heute, Kopf frei kriegen…

Morgen gehts dann ans eingemachte: Quellen Auswahl in einer Zeile :slight_smile:

Hast du morgen schon was vor, Rainer?? :D;)

Hallo,

ich habe das jetzt auch mal ausprobiert und es hat soweit funktioniert; aber entweder habe ich etwas falsch gemacht oder man muss dann für jede Variable ein eigenes Profil anlegen, denn wenn man das Profil ändert, schlägt sich das ja auf alle durch. Oder verstehe ich es gerade nicht so recht ?

oder man muss dann für jede Variable ein eigenes Profil anlegen

richtig erkannt. :wink:

hm - das ist nicht wirklich praktisch und entspricht nicht dem Sinn eines Profils - dann sind es ja fixe Attribute, die zur Variablen gehören :frowning:
aber gut, ist halt so - danke für die Bestätigung

Hier ging es um einen Einzelnen Button für ein spezielles Gerät und nicht um ein Profil für 1000 Button.

Hallo Rainer,

bin etwas am verzweifeln. Hab das so gemacht wie beschrieben, aber leider wird bei mir der „Schließen“ Status nicht in die Integer Variable geschrieben und ist damit leider auch nur grau ( also blass - grau --> wie inaktiv )

<?
if($IPS_SENDER == "WebFront")
{
    switch($IPS_VALUE)
    {
        case 1:
        IPS_SetVariableProfileAssociation("Tor1", 0, "öffnen", "", 0x04B404);
        IPS_SetVariableProfileAssociation("Tor1", 1, "", "", -1);
        break;
        case 0:
        IPS_SetVariableProfileAssociation("Tor1", 1, "schließen", "", -1);
        IPS_SetVariableProfileAssociation("Tor1", 0, "", "", -1);
        break;
    }
}

 TMEX_F3A_SetPin(30124 /*[Räume\Garage\Garagentore]*/, 1, true);
 Sleep(1);
 TMEX_F3A_SetPin(30124 /*[Räume\Garage\Garagentore]*/, 1, false);


?>

Heißt die Variable hat einmal Inhalt öffnen und einmal leer. Irgendwo mach ich was falsch.

Danke Gruss Thomas

Du hast bei schließen ja auch keine Farbe eingetragen. Dort steht bei dir -1. :wink:

:slight_smile: … wußte dass die Antwort kommt …

ne passiert auch , wenn ich dort eine Farbe eintrage. Die Farbe wird halt nicht kräftig dargestellt, sondern wir bei den Boolean Variablen der jeweils inaktive Button. Ist jetzt nicht so kriegsentscheidend, aber optisch nicht so schön.

Gruss

Ok, missverstanden. :smiley:

Zeig mal von deiner Variablen die Assoziation.

Hier kannst auch direkt aus dem Script testen.

<?

if($IPS_SENDER == "Execute")
{
    $value = IPS_GetVariableProfile("EinAus");
    switch($value['Associations'][0]['Value'])
    {
         case 0:
        Ein();
        break;
        case 1:
        Aus();
        break;
    }
}

if($IPS_SENDER == "WebFront")
{
   switch($IPS_VALUE)
    {
         case 0:
        Ein();
        break;
        case 1:
          Aus();
        break;
    }
}

function Ein()
{
    IPS_SetVariableProfileAssociation("EinAus", 0, "", "", -1);
    IPS_SetVariableProfileAssociation("EinAus", 1, "        öffnen       ", "", 0xFFA943);
    SetValue(49757 /*[Test\Button]*/, 1);
}

function Aus()
{
   IPS_SetVariableProfileAssociation("EinAus", 1, "", "", -1);
    IPS_SetVariableProfileAssociation("EinAus", 0, "       schliessen       ", "", 0x555555);
    SetValue(49757 /*[Test\Button]*/, 0);
}


?>

Hallo Rainer,

das wars… hatte das SetValue vergessen. Jetzt funktioniert alles .

Danke !

Gruss Thomas

Hallo zusammen,

habe das gerade mal probiert

<?

if($IPS_SENDER == "WebFront")
{
    switch($IPS_VALUE)
    {
        case 1:
        IPS_SetVariableProfileAssociation("Test", 0, "Ein", "An", 0xFFA943);
        IPS_SetVariableProfileAssociation("Test", 1, "", "", -1);
        break;
        case 0:
        IPS_SetVariableProfileAssociation("Test", 1, "Aus", "Aus", -1);
        IPS_SetVariableProfileAssociation("Test", 0, "", "", -1);
        break;
    }
}

?>

bei Aus kommt jedoch kein Icon. Hat einer Idee warum ?

Danke

Andreas

Wie dein vorschreiber auch schon (;

SetValue(49757 /*[Test\Button]*/, 0); fehlt 

jeweils bei case 0 und 1 mit
SetValue(49757 /[Test\Button]/, 0);
SetValue(49757 /[Test\Button]/, 1); ect…

Hallo , kann mir bitte einer helfen ?
ich habe einen Toggelbutton erstellt der mir für meine Bedürfnisse ein wenig zu schmal ist . Aus und ein funktionieren so wie gewollt.

ich habe es schon mit Phase5 Editor versucht , aber das war ein Schuss im Ofen.
Was mache ich nicht richtig ?
mfg michael

Ps: IP-Symcon ver 4.0

ich habe es mit punkten versucht , sieht aber nicht so doll aus :slight_smile:

Funktioniert an der Stelle „ALT + 255“ ?! :slight_smile: Also ALT gedrückt halten und dann 2, dann 5 und nochmal 5… Sollte ein „unsichtbares“ Zeichen sein :slight_smile:

Grüße,
Chris