Anzahl offene Fenster

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Anzahl offene Fenster

Beitrag von Baxxy » 23.04.2021, 13:02

Avatar2102 hat geschrieben:
21.04.2021, 15:49
Hallo zusammen,
Hallo zurück...

Vorab:
Deinen Scriptausschnitt zu sehen ist zwar hilfreich, aber trotzdem relativ nutzlos da nicht ersichtlich ist in welches "Gesamtscript" er gehört.
Muss man als "Hilfswilliger" erstmal den gesamten Thread durchstöbern um das (hoffentlich) richtige Originalscript zu finden ist das nicht gerade motivationsfördernd. Für die Zukunft also bitte wenigstens auf das "Originalscript" verlinken.

Zum Problem:
Ich gehe jetzt von folgendem Alchy - Script aus...

Code: Alles auswählen

! alle Fenstersensoren / HMW-Sen-SC-12-DR / Winmatic / Keymatic / Funk-Neigungssensor in einem bestimmten Gewerk/ Favoriten u.a. durchsuchen
! und Ausgabe in Variable oder per pushover, telegram oder per Mail oder Ansage Home24 Mediaplayer
! v1.42 (c) by Alchy
! https://homematic-forum.de/forum/viewtopic.php?f=26&t=25517&p=301186#p301186
Avatar2102 hat geschrieben:
21.04.2021, 15:49
Ich verstehe hier nicht, warum der Status vom DLD (1 = zu) korrekt erfasst wird,
Das hast du doch in deinem Scriptabschnitt so zugewiesen.
Avatar2102 hat geschrieben:
21.04.2021, 15:49
der DLD aber trotzdem mitgezählt und aufgelistet wird?
So wie ich das sehe zählt das Script alle abgefragten Geräte die ungleich "0" zurückliefern als "OFFEN".
Das ist bei deinem HmIP-DLD ein Problem denn der sendet ja (so deine Deklarationen stimmen) die "1" wenn der Status GESCHLOSSEN ist.
(1 ist ungleich 0 und somit wird der HmIP-DLD auch im GESCHLOSSENEN Zustand als OFFEN gezählt.)

Workaround:
Ich würde den zurückgegebenen Status des HmIP-DLD im Script manipulieren.
(ungetestet da kein HmIP-DLD verfügbar)

Code: Alles auswählen

if ( ( devType == "HmIP-DLD") && ( chType == "DOOR_LOCK_STATE_TRANSMITTER")  ) { choice = true; var status = ch.DPByHssDP("LOCK_STATE").Value() -1;
if (status == -1 ) { status_new = " unbekannt "; }
if (status == 0 ) { status_new = " zu "; }
if (status == 1 ) { status_new = " offen "; }
}
Hiermit wird aber der HmIP-DLD auch als OFFEN angezeigt wenn dessen Status UNBEKANNT ist.

Avatar2102
Beiträge: 7
Registriert: 21.04.2021, 15:31
System: CCU
Hat sich bedankt: 1 Mal
Danksagung erhalten: 1 Mal

Re: Anzahl offene Fenster

Beitrag von Avatar2102 » 24.04.2021, 07:48

Hallo Baxxy,

zuerst mal vielen lieben Dank an Dich, dass Du Dich meinem Problem angenommen hast.
Deinen Scriptausschnitt zu sehen ist zwar hilfreich, aber trotzdem relativ nutzlos da nicht ersichtlich ist in welches "Gesamtscript" er gehört.
Sorry, ich ging davon aus, dass es hier grundsätzlich um Alchy´s Script geht. In Zukunft werde Deinen Ratschlag jedoch beherzigen und immer aufs Script verweisen, welches meine Grundlage war.
So wie ich das sehe zählt das Script alle abgefragten Geräte die ungleich "0" zurückliefern als "OFFEN".
Offensichtlich reichten meine Skills nicht aus, um das zu erfassen. Daher hatte ich auch nicht verstanden, warum der DLD weiter gelistet wird, obwohl doch der Zustand korrekt als "ZU" erkannt wurde (ja ja, aber der Status war "1" und nicht "0"). Hätte ich den DLD nur mit der Hand bewegt (Status unbekannt = "0") und dann das Script getestet, hätte es mir auffallen können.
Workaround
Natürlich funktioniert nach dieser Erkenntnis Dein vorgeschlagener Workaround einwandfrei, der mir persönlich vollkommen reicht.
Daher an dieser Stelle vielen Dank für Deine Mühe, die Erläuterung und den Script-Vorschlag.
LG

Benutzeravatar
Baxxy
Beiträge: 10648
Registriert: 18.12.2018, 15:45
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 597 Mal
Danksagung erhalten: 2180 Mal

Re: Anzahl offene Fenster

Beitrag von Baxxy » 24.04.2021, 09:41

Schön das es funktioniert! :)
Durch Deine Vorlage war das Problemchen recht leicht zu finden.
Avatar2102 hat geschrieben:
24.04.2021, 07:48
Offensichtlich reichten meine Skills nicht aus, um das zu erfassen.
Mach Dir nichts draus, das ging mir Anfangs auch oft so.

Ich versuche es mal zu erklären:

Hier...

Code: Alles auswählen

if (ONLYOPEN == "yes")  {
    if (status) { ... }
    } else { ... } 
Das erste if sollte selbsterklärend sein.
Das zweite if prüft die Scriptvariable "status" auf Plausibilität. Alles was plausibel ist (ungleich "0") wird gelistet.
Zur leichteren Verständlichkeit könnte man das zweite if ind diesem Script auch wie folgt schreiben:

Code: Alles auswählen

if (status <> 0) { ... }
Hoffe das war einigermaßen korrekt beschrieben und verständlich. :wink:

Grüße
Baxxy

411er
Beiträge: 38
Registriert: 09.10.2020, 08:54
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Re: Anzahl offene Fenster

Beitrag von 411er » 21.03.2023, 16:37

Hallo Zusammen,

ich nutze das Alchy Script
! alle Fenstersensoren / HMW-Sen-SC-12-DR / Winmatic / Keymatic / Funk-Neigungssensor in einem bestimmten Gewerk/ Favoriten u.a. durchsuchen
! und Ausgabe in Variable oder per pushover, telegram oder per Mail oder Ansage Home24 Mediaplayer
! v1.42 (c) by Alchy
! viewtopic.php?f=26&t=25517&p=301186#p301186
und würde gerne einzelne Sensoren ausschließen. Ich habe scheinbar nicht richtig durchdrungen, wie hierbei durchsucht wird. Denn er wirft mir einen Türkontakt aus, zu den Fensterkontakten. Das stört dann doch in der Übersicht.

Ich habe die Reed Kontakte auf dem DRI32, also das Script um
if ( ( devType == "HmIPW-DRI32") ) { choice = true; var status = ch.DPByHssDP("STATE").Value();
if (status == 0 ) { status_new = " zu ";}
if (status == 1 ) { status_new = " offen "; }
erweitert.

Was kann ich nun tun, damit ich Türkontakte hierbei bei der Suche ausschließe?

Besten Dank!

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 22.03.2023, 17:44

411er hat geschrieben:
21.03.2023, 16:37
und würde gerne einzelne Sensoren ausschließen. Ich habe scheinbar nicht richtig durchdrungen, wie hierbei durchsucht wird. Denn er wirft mir einen Türkontakt aus, zu den Fensterkontakten.
Das Script bearbeitet die Sensoren, welche du in eines dieser "Gruppen" , (Räumme, Favoriten, Gewerke) steckst.
Entfernst du also den Türkontakt aus der angegebenen "Gruppe" wird er auch nicht ausgegeben. :shock: :shock:

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

411er
Beiträge: 38
Registriert: 09.10.2020, 08:54
System: Alternative CCU (auf Basis OCCU)
Hat sich bedankt: 13 Mal
Danksagung erhalten: 1 Mal

Re: Anzahl offene Fenster

Beitrag von 411er » 23.03.2023, 11:32

alchy hat geschrieben:
22.03.2023, 17:44
411er hat geschrieben:
21.03.2023, 16:37
und würde gerne einzelne Sensoren ausschließen. Ich habe scheinbar nicht richtig durchdrungen, wie hierbei durchsucht wird. Denn er wirft mir einen Türkontakt aus, zu den Fensterkontakten.
Das Script bearbeitet die Sensoren, welche du in eines dieser "Gruppen" , (Räumme, Favoriten, Gewerke) steckst.
Entfernst du also den Türkontakt aus der angegebenen "Gruppe" wird er auch nicht ausgegeben. :shock: :shock:

Alchy
Hallo Alchy,

danke!
Oh man :roll: direkt die gefühlt erste Zeile im Script überlesen (hatte das vor einiger Zeit angefangen und schon wieder alles vergessen).
Danke für die Antwort und entschuldige die "blöde" Frage :oops:

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 23.03.2023, 19:14

Es gibt keine blöden Fragen :wink: kann ja mal passieren das man was überliest

Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

ingranu
Beiträge: 82
Registriert: 16.01.2017, 14:57
Hat sich bedankt: 7 Mal

Re: Anzahl offene Fenster

Beitrag von ingranu » 25.10.2023, 15:05

Hallo zusammen

Seit Jahren benutze Ich dieses wunderbare Script welches sehr gut funktioniert.
Nun habe ich einen neuen Fenster Sensor gekauft, Typ: HmIP-SWDM-2

Kann man diese in das Script aufnehmen, so dass diese auch erkannt werden?

Code: Alles auswählen

    ! alle Fenstersensoren und HMW-Sen-SC-12-DR in einem bestimmten Gewerk/ Favoriten u.a. durchsuchen
    ! und Ausgabe in Variable oder per pushover oder per Mail oder Ansage Home24 Mediaplayer
    ! v1.35 (c) by Alchy
    ! https://homematic-forum.de/forum/viewtopic.php?f=26&t=25517&start=60#p301186

Zuletzt geändert von alchy am 01.11.2023, 20:33, insgesamt 2-mal geändert.
Grund: Scriptcopy gelöscht

ingranu
Beiträge: 82
Registriert: 16.01.2017, 14:57
Hat sich bedankt: 7 Mal

Re: Anzahl offene Fenster

Beitrag von ingranu » 30.10.2023, 15:49

Keine Unterstützung ?

alchy
Beiträge: 10752
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 672 Mal

Re: Anzahl offene Fenster

Beitrag von alchy » 01.11.2023, 21:25

Das sind doch Fensterkontakte - da bin ich doch mal gespannt, was sich EQ-3 da wieder Lustiges ausgedacht hat.
Ich habe diese Geräte nicht und suche mir das auch nicht zusammen.

Script ausführen unter Script testen, im Script Executer oder sonst etwas was dafür möglich ist.

ABER

Statt GERÄTENAME in der ersten Zeile, trägst du den GERÄTENAMEN eines deiner HmIP-SWDM-2 ein.
StatusundBedienung_gerät4.jpg

Code: Alles auswählen

!Kanäle und Datenpunkte eines Gerätes ausgeben
object oDevice = dom.GetObject("GERÄTENAME");
string sDevId;string sChnId;string sDPId;
WriteLine("Gerät \t Kanal \t Datenpunkt\n");



          WriteLine(oDevice.Name()#"\t" #oDevice.Address() #"\t"#oDevice.HssType() );
          foreach(sChnId, oDevice.Channels())
          {
            object oChannel = dom.GetObject(sChnId);
            WriteLine("\t" # oChannel.Name() # "\t" # oChannel.HssType());
            foreach(sDPId, oChannel.DPs().EnumUsedIDs())
            {
               object oDP = dom.GetObject(sDPId);
               string sName = oDP.Name();
               WriteLine("\t\t"#sName# "\t" #" Wert: "#oDP.Value());
            }
            WriteLine("");
           }
Alchy

Blacklist................... almost full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“