Skript offene Fenster

Allgemeines zur HomeMatic Haussteuerung

Moderator: Co-Administratoren

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Skript offene Fenster

Beitrag von homey21 » 21.09.2021, 17:52

Hallo, ich habe folgendes Skript:

Code: Alles auswählen

var ses=dom.GetObject("fenstergewerk");
string s;
string list;
list="offen:\n";
foreach(s,ses.EnumUsedIDs())
{
var item=dom.GetObject(s);
if(item.IsTypeOf(OT_CHANNEL))
{
var dev=dom.GetObject(item.Device());
if((dev.HssType()=="HM-Sec-SC-2"))
{
var state=item.DPByHssDP("STATE");
if(state.Value())
{
list=list+item.Name();
}}}}
WriteLine(list);
Am Schluss gibt er offene Kontakte aus.

Getriggert wird durch eine Systemvariable, die auf WAHR geht, wenn auch nur ein Fenster offen ist. Wenn also alle Fenster zu sind, wird die SV "FALSE".

Auch dann wird obiges Progrämmchen gestartet (habe ich im Webui eingestellt, (WENN SV Wahr oder WENN SV false, ...), aber leider wird nichts ausgegeben (es müsste ja "offen:" und dann eine leere Liste erscheinen).

Weiß jemand, wo man das ändern kann?

VG homey

MichaelN
Beiträge: 9678
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Skript offene Fenster

Beitrag von MichaelN » 21.09.2021, 18:03

Was steht im Fehlerprotokoll?
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Re: Skript offene Fenster

Beitrag von homey21 » 21.09.2021, 18:06

In der Webui bei "Skript testen" habe ich kein Fehlerprotokoll. Es kommt einfach nichts.

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

Re: Skript offene Fenster

Beitrag von Baxxy » 21.09.2021, 18:09

homey21 hat geschrieben:
21.09.2021, 17:52
(es müsste ja "offen:" und dann eine leere Liste erscheinen)
Nein, müsste nicht. Die WriteLine führt dich in die Irre da sie "an falscher Stelle" steht.
Gezählt werden nur Sensoren die "offen" sind.

Code: Alles auswählen

if(state.Value())
{
list=list+item.Name();
}
Oder existiert das Gewerk eventuell nicht?
Zuletzt geändert von Baxxy am 21.09.2021, 18:39, insgesamt 1-mal geändert.

MichaelN
Beiträge: 9678
Registriert: 27.04.2020, 10:34
System: CCU
Hat sich bedankt: 700 Mal
Danksagung erhalten: 1626 Mal

Re: Skript offene Fenster

Beitrag von MichaelN » 21.09.2021, 18:19

Ich habe jetzt nicht nach geprüft, aber steht das WriteLine nicht außerhalb der Schleife?

@TO Fehlerprotokoll ist ein Fest stehender Begriff. Siehe Signatur, debugging.
LG, Michael.

Wenn du eine App zur Bedienung brauchst, dann hast du kein Smarthome.

Wettervorhersage über AccuWeather oder OpenWeatherMap+++ Rollladensteuerung 2.0 +++ JSON-API-Ausgaben auswerten +++ undokumentierte Skript-Befehle und Debugging-Tipps +++

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

Re: Skript offene Fenster

Beitrag von Baxxy » 21.09.2021, 18:36

MichaelN hat geschrieben:
21.09.2021, 18:19
aber steht das WriteLine nicht außerhalb der Schleife?
Ja, doch passt. War ein bisschen verwirrt. :wink:
Läuft hier durch das Script.

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Re: Skript offene Fenster

Beitrag von homey21 » 21.09.2021, 18:39

Okay auch wenn kein Fenster auf State ist?

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

Re: Skript offene Fenster

Beitrag von Baxxy » 21.09.2021, 18:42

homey21 hat geschrieben:
21.09.2021, 18:39
kein Fenster auf State ist?
Alle zu meinst du?

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
offen:

homey21
Beiträge: 1113
Registriert: 17.11.2013, 01:54
System: CCU
Hat sich bedankt: 36 Mal
Danksagung erhalten: 3 Mal

Re: Skript offene Fenster

Beitrag von homey21 » 21.09.2021, 18:43

Ja meinte ich.
Okay dann muss ich nochmal schauen, oder es liegt am startenden WebUi Programm

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

Re: Skript offene Fenster

Beitrag von Baxxy » 21.09.2021, 19:21

homey21 hat geschrieben:
21.09.2021, 18:43
oder es liegt am startenden WebUi Programm
Hmm, funktioniert es denn korrekt bei "Script testen"?
Du hast ja auch gar keine Ausgabe (außer WriteLine) in eine SysVar drin.
Wenn offen werden meine 3 "Testfenster" so ausgegeben:

Code: Alles auswählen

------------------------------- Scriptausgabe -------------------------------
offen:
Fensterkontakt BX: SWDM-B2:1 - Fensterstatus
Fensterkontakt WZ: SWDO:1 - Fensterstatus
HM-Sec-SCo 663:1 - Fensterstatus
Weil ich eine bunte Mischung (aber keinen HM-Sec-SC-2) an TFK's habe habe ich die Zeile...

Code: Alles auswählen

if((dev.HssType()=="HM-Sec-SC-2"))
durch

Code: Alles auswählen

if (item.HssType() == "SHUTTER_CONTACT")
ersetzt. Und für eine "schönere Ausgabe" dann noch...

Code: Alles auswählen

list=list+item.Name() #"\n";
Grüße, Baxxy

Antworten

Zurück zu „HomeMatic allgemein“