Fensterzustand anzeigen

gut… hab vergessen zu sagen, oben im script stehts so drin

>&nbsp&nbsp"

ups, typisch für mich, die hälfte vergessen.

Danke ich ändere es ab.

in Zeile 48 muss das eigene Profil eingetragen werden für die Tür/Fensterkontakte.

<?
$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'] == "TuerStatus")) // 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(29445 /*[Homematic\Sensoren\Content]*/, $str);

?>

Tuer.rar (8.01 KB)

Guten Abend an alle,

@rwn
Danke für das neue Script. Läuft super.

@alle

[QUOTE=RWN;102529]in Zeile 48 muss das eigene Profil eingetragen werden für die Tür/Fensterkontakte.
Kann mir hier bitte jemand auf die Sprünge helfen, wie ich die Unterscheidung reinbekomme. Habe es nicht kapiert.

Gruß

Bruno

Die Unterscheidung bekommst Du, indem Du dir ein eigenes Variablenprofil anlegst und in Zeile 48 einträgst.

Ich poste heute Abend oder morgen noch eine etwas angepasste Version. Betrifft nur das Aussehen.

Edit: neuer Code steht oben drinnen.

Hallo Rainer,

danke für die Rückmeldung.

Habe ein neues Profil angelegt und zugewiesen. Im Webfront der jeweiligen Räume sind die Veränderungen inkl. Bild zu sehen, in der html-Box sind jedoch nur die Fenster-Bilder. Habe Dein neuestes Script geladen.

Was habe ich übersehen oder falsch eingestellt (vielleicht falscher Eintrag in Zeile 48 oder falsche Stelle)? Das Profil heisst doch „TuerStatus“? Bitte um Hilfe.

Gruß
Bruno

Das Profil musst Du der Statevariable der Tür/Fensterkontakte zuweisen. Diese hat standartmässig ~Switch. Was bewirken würde, das alles mit Profil ~switch angezeigt würde, auch Aktoren usw…

Hallo Rainer,

danke für die erneute Rückmeldung.

Hatte einen Denkfehler. Verwende die Drehgriffkontakte auch für Türen. Da reicht dann die Variablenzuweisung nicht aus. Da müsste wahrscheinlich vor der Typ-Auswertung noch eine if-Schleife rein, dann kann ich beides erfassen.

Der Wassermelder und der Luftgüte-Sensor sind auch vom Typ 0. Diese tauchen auch in der Liste auf.

Gruß
Bruno

Der Wassermelder und der Luftgüte-Sensor sind auch vom Typ 0. Diese tauchen auch in der Liste auf.

Deswegen ja die Unterscheidung durch das Variablenprofil. :confused:

Wenn ich aber im zweiten Teil Deines Scriptes den Typ auf 1 ändere werden mir die jeweiligen Geräte doppelt aufgeführt. Deshalb denke ich, dass noch eine if-Bedingung rein muss. Oder verstehe ich was falsch?

Gruß
Bruno

Ja, alles.

Das Script ist für Drehgrifffenstersensoren und Türsensoren.

Typ 1(integer) ist Drehgriff, Typ 0(bool) Türsensor.

Wenn Du den Drehgriff auch für eine Tür benutzt, musst Du auch das Variablenprofil abfragen und entsprechend für die img eine if Abfrage einbauen.

Dafür ist das Script aber nicht geschrieben, wenn Du dieses so nutzen willst, pass es deinen Bedürfnissen an.

OK, danke, entspricht ja dem, was ich geschrieben habe. Mal schauen, wie ich es hinbekomme.

Gruß
Bruno

Guten Morgen,

Ihr hab da eine wirklich schöne Arbeit gemacht. Total klasse. Das Script läuft bei mir perfekt ABER

Meine Frau hat nun gestern zum wiederholten Male für ca. 3 Std in einem abgetrennten Teil unseres Hauses die Fenster (Drehgriffkontakte) zum Lüften komplett offen gehabt. Wir haben ein Neugeborenes zu Hause und daher verstehe ich Ihre (und meine - die Nacht hatte ich ganze 4 Std Schlaf) Situation nur zu gut.

Hat vielleicht schon jemand sein Script um eine Warnung (Musik oder Warnton) erweitert, wenn die Fenster bei der Temp zu lange auf stehen. Meine Planung geht dahin, dass das später außentempabhängig funktionieren soll (im Sommer hat man ja durchaus die Fenster länger oder ganz auf) aber irgendwie läuft mir momentan ständig die Zeit weg und ich möchte keine tiefgefrorene Familienmitglieder abends auffinden. ;-))))

…dann tip dir doch einpaar Zeilen dazu für das was Du haben willst.

Ich hab noch keinen Tannenbaum, noch kein Geschenk für meine Fau und zwischendurch immer nur wenige Minuten am PC (wie jetzt gerade) und wollte nur das Rad nicht neu erfinden. :stuck_out_tongue:

Aber trotzdem Danke für Deine moralische Unterstützung. Hast ja Recht. :wink:

Du kannst nicht alles haben. :smiley: Steck ein paar Zweige an den Kinderwagen und mach eine LED-Beleuchtung dran, so einen schönen Baum hattest Du mit Sicherheit noch nie. :cool:

Ich tippe mal auf Single. :wink:

Wenn Du mich damit meinst, muss ich dich leider entäuschen.:smiley: Das was Du jetzt noch vor dir hast, habe ich schon über 20 Jahre hinter mir. Ich weis also wie das ist. :stuck_out_tongue:

(war ein Scherz).
Du entäuschst mich nicht. Du hast noch genug Bonus durch Deine hilfreichen Skripte.

Hi Boui,
klasse das es noch jemanden so geht :wink:
ich habe einmal 3 Jahre und einmal 15 Monate Vorsprung :wink:
Jetzt versteht jemand, warum man kaum Zeit hat sich in irgendwas einzulesen :frowning: