Rollladen-Position [Designer]

Möchte man die Position eines Rollladens im Designer visualisieren, besteht das Problem darin,
daß man einen Wert von 0 bis 100% auf 3 Icon reduzieren muss (wenn man nicht mehr hat).
Das folgende „IPSmagic-Skript“ tut genau dies: es liefert 3 Positionen: Auf, Mitte, Zu in Form einer Integer Variablen: 0,1,2
Diese kann dann im Designer den Icons zugeordnet werden (siehe Bild 1).
Im Skript selber müssen nur die Werte für „$auf“ und „$zu“ angepasst werden.
Getriggert wird das Skript z.B. durch „LEVEL“ (bei Änderung) beim HomeMatic System (siehe Bild 2: LEVEL: 27.5% > „Position“: 1 > Icon "Rollladen-Mitte wird angezeigt )
(später auch durch die errechnete „Position“ aus einem universellen (auch für 1-Wire) „IPS-Rollladen-Modul“ - ist in Vorbereitung)

MST


// (c) by IP-Symcon 2008
// lauffähig ab Version 2.0
// Trigger: "Bei Variablenänderung" > "LEVEL"

if($IPS_SENDER == "Execute")
{
   echo "Diese Skript kann so nicht ausgeführt werden.
";
   echo "Bitte triggern sie das Skript über eine Float Variable";
}

if($IPS_SENDER == "Variable")
{
   if(!is_float($IPS_VALUE))
   {
      die("Skript kann nur Float Variablen verarbeiten!");
   }
   $vid = CreateVariableByName($IPS_VARIABLE, "Position", 1);

    $auf = 20;    // bis 20 Prozent > AUF
    $zu = 80;    // ab 80 Prozent > ZU
                    // sonst > MITTE

    $pos = $IPS_VALUE*100;

    if(($pos > 100) || ($pos < 0))
    {
       die("Position out of bounds (".$pos."), Variable: [".IPS_GetLocation($IPS_VARIABLE)."]");
    }

    if ($pos <= $auf) {
        SetValueInteger($vid,0);
    } elseif ($pos >= $zu) {
        SetValueInteger($vid,2);
    } else {
       SetValueInteger($vid,1);
    }

}

function CreateVariableByName($id, $name, $type)
{
   global $IPS_SELF;
   $vid = @IPS_GetVariableIDByName($name, $id);
   if($vid===false) {
      $vid = IPS_CreateVariable($type);
      IPS_SetParent($vid, $id);
      IPS_SetName($vid, $name);
      IPS_SetInfo($vid, "This Variable was created by Script #$IPS_SELF");
   }
   return $vid;
}

icon_rolladen_mitte.gif

Danke!!!

Echt ein super Script!
Bin wirklich begeistern von IP-Symcon und dem Support!
Ganz großes Lob an dieser Stelle!

ASICS

Bin wirklich begeistern von IP-Symcon und dem Support!
Ganz großes Lob an dieser Stelle!

… da können wir mal beruhigt ins Wochenende gehen …

MST