Anzahl der offenen Fenster

Hallo IPS-Gemeinde,

ich bin auf der Suche nach einer Funktion/Baustein, die Anzahl der offenen Fenster anzuzeigen.

In einem anderen Thread habe ich das bereits gesehen und dort auch gefragt, aber leider keine Antwort erhalten.

Gibt es dafür etwas fertiges, oder wie habt ihr das gemacht?

Gruß
-Bem-

Ich hatte mal sowas geschrieben: Überprüfen, ob ein Fenster geöffnet ist (via Links)

Hilft das? Evtl. könntest du es erweitern, sodass nicht nur der Zustand sondern auch die Anzahl angezeigt wird.

paresy

Peter Chrisben hat mal ein Script gepostet, welches ich nutze:


<?php

 # Fensterstatus abfragen
 # Ersteller: PeterChrisben
 # Version: 1.0
 #
 # Dummy-Instanz erstellen. Name ist egal. Darunter folgene Variablen anlegen.
 # -- String-Variable. Name: FENSTER LISTE
 # -- Integer-Variable. Name: FENSTER OFFEN
 # -- Boolean-Variable. Name: FENSTERSTATUS
 #
 # Dem Skript nur noch Ereignisse der Fensterkontakte ( bei änderung ) hinzufügen .
 # Die Ereignisse benennen ( Schlafzimmer, Bad, etc. ), weil dieser
 # Name / diese Namen in die String-Variable geschrieben werden. Fertig.
 # Sollten die Namen der Variablen geändert werden, müssen diese auch
 # im Skript geändert werden. (ca. Zeile 20 => $int, $string, $status).



 $parentID = IPS_GetParent($_IPS['SELF']);
 $int = IPS_GetVariableIDByName('FENSTER OFFEN',$parentID);
 $string = IPS_GetVariableIDByName('FENSTER LISTE',$parentID);
 $status = IPS_GetVariableIDByName('FENSTERSTATUS',$parentID);

 $events = IPS_GetChildrenIDs( $_IPS['SELF']);
 $i = 0;

 foreach($events as $ID)
 {
     $FKevent = IPS_GetEvent($ID);
     $FKstatus = GetValue($FKevent['TriggerVariableID']);
     $name = IPS_GetName($ID);
     if($FKstatus == true)
        {
            $i++;
            $names[] = $name;
        }
 }

 @$count = count($names);
 if ($count >= 1){
     SetValue($status,true);
     $result = implode(",", $names);}
 else{
     SetValue($status,false);
     $result = "Alle Fenster geschlossen.";}

 SetValue($int, $i);
 SetValue($string, $result);


Sieht dann so aus:

Im Webfront oben habe ich dann eine Info über die Anzahl der geöffneten Fenster:

fenster_1.png

Tippe ich dann darauf komme ich zu einer Übersicht mit den Fenstern.

Loerdy

Hallo Loerdy,

Danke für das tolle Script.

Ich hab’s mal eingebaut, aber da meine Fensterkontakte per Modbus von der Wago als Integer kommen, werd ich wohl noch etwas herumexperimentieren müssen.

Wenn’s läuft, sage ich Bescheid,

VG
-Bem-

Ich lege Wert darauf das das Script von mir auch nur „gemopst“ wurde.
Ich habe den Originalpost leider nicht mehr gefunden, sonst hätte ich dahin verlinkt.

Viel Erfolg !

Gruß,
Loerdy

Guten Morgen loerdy,

das ist Selbstverständlich und wird auch von mir so behandelt.

Gruß
-Bem-

Ansonsten gibt es dafür das Modul „Aktivliste“ im Store. Das kannst du so einrichten, dass es dir alle offenen Fenster zeigt. Falls du entsprechende Aktorik hast, kannst du sie auch direkt schließen.

Ehy… da kommst du jetzt mit an, wo ich mir schon den ganzen morgen Gedanke mache, wie ich das Script verbiegen kann. :wink:

Das werde ich heute Abend mal testen.

DANKESCHÖN

Hallo,

die Aktivliste war nicht so zielführend, aber dafür habe ich das Fenster Offen Script ohne weitere Probleme an den Start bekommen.

Ich musste nur in Zeile 33 meine Fenster auf FALSE abfragen und alles funktionierte einwandfrei.

VIELEN DANK für den Support und das tolle Script von:

[i]# Fensterstatus abfragen

Ersteller: PeterChrisben [/i]

Bei mir sieht es im WebFront jetzt wie im Anhang aus.

Gruß
-Bem-

Hallo zusammen,

kurze Anfängerfrage. Wie müsste denn das Skript geändert werden, um die Fenster nicht als Liste mit Kommata getrennt, sondern untereinander dargestellt werden.

VG Markus

Hallo zusammen,

ich habe noch eine weitere Frage zu dem Skript. Ich habe festgestellt, dass einige meine Reed-Kontakte im geöffneten Zustand true senden, andere aber false.
Kann mir hier jemand einen Tipp geben, wie das zu realisieren ist?

Vielen Dank im Voraus.

VG Markus

Hallo Markus,

das Problem hatte ich auch. Enocean Homematic und Reedkontakte auf der Wago sind unterschiedlicher Meinung, wenn Fenster zu.

Ich habe die Variablen nach dem Einlesen dann im IPS entsprechend negiert, damit ich im Script keine Probleme bekommt.

VG
Der Bem

Einfach nur ein .Reversed im Profil nutzen. :smiley:

Hallo,

vielen Dank euch für die Antworten. Aber ich hab dann mal eine Verständnisfrage. Ich bin bisher davon ausgegangen, dass, wenn ich in den Profilen etwas ändere, ich nur den Ausgangswert „maskiere“. Also in dem Beispiel aus true Geöffnet und aus false Geschlossen wird. Die Abfrage im Skript geht aber doch auf den Ausgangswert, oder? Und der bleibt ja immer gleich. Oder kann ich den auch ändern?
Und die nächste Frage ist, wenn ich aus true false und aus false true mache, dann kann ich ja im Webfront nicht mehr Geöffnet und Geschlossen darstellen, oder?

Sry, bin gerade erst mit IPS angefangen. Daher fehlt es noch an einigen Basics.

VG Markus

Ups, da hab ich wohl auf dem Handy nicht alles gelesen. Sorry. Das Profil beeinflusst nur die Darstellung, nicht den Wert der Variablen.

Aber wie hast du das dann gemacht bem?

Ja Moin?

hab gerade mal nachgesehen… ich hab das invertieren in der Wago gemacht.
Sorry. Das hatte ich verdrängt und hilft dir leider gar nicht weiter.

Leider habe ich keine Ahnung wie man ein Script schreibt, daher mache ich ähnliche Dinge als Workflow im IPS.

Vielleicht kann ja jemand kurz ein Script auf den Markt werfen.
Ist bestimmt ganz easy, wenn man das kann.

Gruß
bem

ich habe die offenen Fenster über das Alarmierungsmodul je Etage gelöst. Die Ausgabe dann über bool oder Skript

Ohne das Skript umzubauen kann man natürlich auch eine zusätzliche Variable anlegen, die dann die invertierte Statusvariable abbildet.

$status = !$status;

Das ist ja einfach. So geht invertieren per Script? :flushed:

Würde aber die ganze Sache lösen.