Garagentor visualisieren

Hallo zusammen,

ich stehe hier erneut vor einem Problem bei dem ich nicht weiter komme.

Ich habe ein an die Haussteuerung angebundenes Garagentor (Entrematic 600 inkl. Zusatzplatine.

Ich kann folgende Funktionen ausführen:

Senden 0: Tor fährt in eine Richtung
Senden 0 während fahrt: Tor bleibt stehen
Senden 0 nach Stop: Tor fährt in andere Richtung.

Zusätzlich erhalte ich den Stand ob das Tor komplett geschlossen ist oder offen ist.

Wie kann ich das in Ip-Symcon möglichst „schön“ visualiseren?

Da ich keine einzelnen Adressen für Hoch/Runter/Stop habe, kann ich keinen EIB_Shutter verwenden oder gibt es evtl. eine Möglichkeit einen leeren EIB_Shutter zu erstellen und den Rest per Skript zu lösen?

Oder evtl. ganz falsche Richtung?

Vielen Dank.

Gruß dharma

Hmm,
IPS 4.0 kann doch Icons mit mehreren Zuständen. Das sollte doch für dich passen. Wie das zu verwenden ist müßte aber jemand anders schrieben, ich habs selbst noch nicht gemacht.

Wenns noch schöner sein soll dann über HTML/CSS irgednwas nach persönlichem Gusto hinbasteln. Da kannst du deiner Phantasie freien lauf lassen. Wird aber etwas aufwändiger.

gruß
bb

Moin!

Schau dich doch einfach mal bei den Rollläden-Beispielen hier im Forum um, kommt ja quasi auf das gleich raus…
…auf…zu…stop…

Die meisten werden es wohl mit einer Integer Variable machen und mit einem eigenen Profil (siehe IPSShadowing und andere Beispiele).

Oder halt, wie Bernhard schon sagte, aufwendig mit HTML.

Grüße,
Chris

Ich habe das folgendermaßen gelöst, allerdings für IPSView. Aber vielleicht kannst du mit dem Ansatz weitermachen.

<?

$GaragentorStatusAuf = GetValue (31833 /*[Hardware\Homematic\Garage\SHUTTER_CONTACT 1 auf\STATE]*/ );
$GaragentorStatusZu = GetValue (33688 /*[Hardware\Homematic\Garage\SHUTTER_CONTACT 2 zu\STATE]*/ );

{
if (($GaragentorStatusAuf == false && $GaragentorStatusZu == false))$GaragentorStatus = 2;
elseif ($GaragentorStatusAuf == true)$GaragentorStatus = 0;
elseif ($GaragentorStatusZu == true)$GaragentorStatus = 1;
}

SetValue (41279 /*[Hardware\Homematic\Garage\GaragentorStatus]*/ , $GaragentorStatus); //GaragentorStatus ist eine Int Variable mit Maxwert 2

//echo $GaragentorStatus
?>

GS.JPG

Vielen Dank für die Denkanstösse.

Ich werde mich da am Wochenende evtl. mal ransetzen und das Ergebis rückmelden.

Gruß dharma

Hallo finde im Forum leider nicht den Entwickler bzw. den passenden Fred im Forum

Aber wenn du den Status offen oder zu als Variable zu verfügung hast ?

könntest du so wie ich das icon umschalten .


Das Skript dazu

 
<?
$bordercolor = "#505050"; // Rahmenfarbe anpassen

$str = "<table style='border-bottom:1px solid $bordercolor' width='100%' cellspacing='0'>";

foreach(IPS_GetInstanceListByModuleID("{EE4A81C6-5C90-4DB7-AD2F-F6BBD521412E}") as $id)
{
   if(IPS_StatusVariableExists($id, "STATE"))
    {
        $var = IPS_GetStatusVariable($id, "STATE");
        // Integer Variable
        if($var['VariableType'] == 1)
        {
             if(@IPS_GetEventIDByName("Event".$var['VariableID'], $IPS_SELF) === false)
            {
                  $ereignis = IPS_CreateEvent(0);
                  IPS_SetEventTrigger($ereignis, 1, $var['VariableID']);
                  IPS_SetParent($ereignis, $IPS_SELF);
                  IPS_SetName($ereignis, "Event".$var['VariableID']);
                  IPS_SetEventActive($ereignis, true);
            }
            switch(GetValue($var['VariableID']))
            {
               case 0:
               $img = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B' width='50px'><img src='..\\webfront\\user\\icons\\fixed\\FensterGeschlossen.png'></td>";
               $changedID = IPS_GetVariable($var['VariableID']);
               $time = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B'>".date('d.m.y H:i:s', ($changedID['VariableChanged']))."</td>";
               $value = "<td style='border-width:1px 1px 0 1px; border-style:solid; border-color:$bordercolor;' width='16%' align='center' bgcolor=#004000>geschlossen</td>";
               break;
               case 1:
               $img = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B' width='38px'><img src='..\\webfront\\user\\icons\\fixed\\Fenster1 Gekippt32.png'></td>";
               $changedID = IPS_GetVariable($var['VariableID']);
               $time = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B'>".date('d.m.y H:i:s', ($changedID['VariableChanged']))."</td>";
               $value = "<td style='border-width:1px 1px 0 1px; border-style:solid; border-color:$bordercolor;' width='16%' align='center' bgcolor='#C08800'>gekippt</td>";
               break;
               case 2:
               $img = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B' width='38px'><img src='..\\webfront\\user\\icons\\fixed\\Fenster1 Offen32.png'></td>";
               $changedID = IPS_GetVariable($var['VariableID']);
               $time = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B'>".date('d.m.y H:i:s', ($changedID['VariableChanged']))."</td>";
               $value = "<td style='border-width:1px 1px 0 1px; border-style:solid; border-color:$bordercolor;' width='16%' align='center' bgcolor=#800000>geˆffnet</td>";
               break;
            }
            $name = IPS_GetObject($var['VariableID']);
            $str .= "<tr height='38px'>$img<td style='border-top:1px solid $bordercolor' bgcolor='#27292B' width='67%'>  ".IPS_GetName(IPS_GetParent($name['ParentID']))." ".IPS_GetName($name['ParentID'])."</td>".$time.$value."</tr>";
        }
        $profil = IPS_GetVariable($var['VariableID']);
        // bool Variable
      if(($var['VariableType'] == 0) && ($profil['VariableCustomProfile'] == "Tuer")) // Profil eintragen
      {
         if(@IPS_GetEventIDByName("Event".$var['VariableID'], $IPS_SELF) === false)
            {
                  $ereignis = IPS_CreateEvent(0);
                  IPS_SetEventTrigger($ereignis, 1, $var['VariableID']);
                  IPS_SetParent($ereignis, $IPS_SELF);
                  IPS_SetName($ereignis, "Event".$var['VariableID']);
                  IPS_SetEventActive($ereignis, true);
            }
            switch(GetValue($var['VariableID']))
            {
               case 0:
               $img = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B' width='38px'><img src='..\\webfront\\user\\icons\\fixed\\Tuer.png'></td>";
               $changedID = IPS_GetVariable($var['VariableID']);
               $time = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B'>".date('d.m.y H:i:s', ($changedID['VariableChanged']))."</td>";
               $value = "<td style='border-width:1px 1px 0 1px; border-style:solid; border-color:$bordercolor;' width='16%' align='center' bgcolor=#004000>geschlossen</td>";
               break;
               case 1:
               $img = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B' width='38px'><img src='..\\webfront\\user\\icons\\fixed\\TuerOffen.png'></td>";
               $changedID = IPS_GetVariable($var['VariableID']);
               $time = "<td style='border-width:1px 0 0 1px; border-style:solid; border-color:$bordercolor;' align='center' bgcolor='#27292B'>".date('d.m.y H:i:s', ($changedID['VariableChanged']))."</td>";
               $value = "<td style='border-width:1px 1px 0 1px; border-style:solid; border-color:$bordercolor;' width='16%' align='center' bgcolor='#800000'>geˆffnet</td>";
               break;
            }
            $name = IPS_GetObject($var['VariableID']);
            $str .= "<tr height='38px'>$img<td style='border-top:1px solid $bordercolor' bgcolor='#27292B' width='67%'>  ".IPS_GetName(IPS_GetParent($name['ParentID']))." ".IPS_GetName($name['ParentID'])."</td>".$time.$value."</tr>";
        }
    }
}
$str .= "</table>";
SetValue(28159 /*[Neu\Fenster]*/, $str);

?>

NICHTS FERTIGES WEIL FÜR HOMEMATIK :eek:
aber so als Gestaltung Vorschlag

Gruß Jens