Wenn Systemzustand auf ABW geändert wird Script...offene

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Lulibe
Beiträge: 27
Registriert: 10.01.2018, 20:03

Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von Lulibe » 10.02.2018, 19:48

Hallo,
als Anfänger -trotz Suche hier- hat man es nicht leicht...
Ich möchte, dass die CCU bei Änderung des Systemzustandes auf Abwesenheit prüft, ob "Fensterkontakte" (HM-Sec-SCo ) noch geöffnet
sind und falls ja, das EmpfangsModul "HM-MOD-Re-8" ansteuert, damit eine LED geschaltet wird.
Bei Änderung auf "Anwesend" soll die LED wieder ausgeschaltet werden.


Über Programmerstellung habe ich es jetzt so improvisiert, dass alle Kontakte über "oder" abgefragt werden. Ich möchte es aber
per script realisieren. Das hier im Forum stehende script "offene Fenster zaehlen" hilft mir nur ein Stück weit weiter...

viewtopic.php?t=25517

Ich dachte an einer Ergänzung im Sinne, wenn Zaehler größer Null, dann sende an "HM-MOD-Re-8..."

Wer hilft mir....??

66er
Beiträge: 3083
Registriert: 23.08.2015, 11:06
System: CCU
Hat sich bedankt: 116 Mal
Danksagung erhalten: 111 Mal

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von 66er » 10.02.2018, 21:00

Hallo,

darf man wissen, warum es unbedingt per Skript sein muß ?

Ich wundere mich etwas, da Du die Lösung ja eigentlich schon hast:

LG und schönes WE
Stefan

Lulibe
Beiträge: 27
Registriert: 10.01.2018, 20:03

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von Lulibe » 10.02.2018, 21:07

...weil ich es ausprobieren möchte und bei weiteren Kontakten das Programm nicht angepasst werden muss. Leider weiß ich die Lösung nur theoretisch, meine JF Zeile funktioniert nicht...

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

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von alchy » 11.02.2018, 10:40

Code: Alles auswählen

! Anzahl offener Kontakte in einem Gewerk 
! v 0.1 (c) by Alchy
string functions = "Verschluss";
! +++++ Finger weg +++++
string ids;integer anzahl = 0;
object func = (dom.GetObject(ID_FUNCTIONS)).Get(functions);
if(func){ foreach(ids, func.EnumUsedIDs()){   
 if( (dom.GetObject(ids).HssType() == "SHUTTER_CONTACT") || ( dom.GetObject(ids).HssType() == "ROTARY_HANDLE_SENSOR") ){
  if(dom.GetObject(ids).DPByHssDP("STATE").Value()){anzahl = anzahl + 1;}                   
 }
} 
if (anzahl > 0) {
WriteLine("Offen: " #anzahl #" - mach was bei offene Fenster und Tueren"); 
}else{
WriteLine("Offen: " #anzahl #" - mach was bei alles zu");
}}else{WriteLine("Gewerk nicht vorhanden");}
Das Script ermittelst offene Fenstersensoren in einem Gewerk und gibt die Anzahl aus.
Das Script ergibt nur eine entsprechende Ausgabe auf dem Bildschirm.
Wenn du stattdessen etwas anders willst, ersetze die WriteLine Zeilen bzw. erweitere das Script durch sinnvolle Anweisungen, wie das Setzen einer Systemvariablen oder Schalten eines Gerätes.
DAzu die ScriptDoku in meiner Signatur lesen und/oder fragen.

Eine erweiterte Version mit Versenden von mehr Infos per Push usw. gibt es >> H I E R <<

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.

Lulibe
Beiträge: 27
Registriert: 10.01.2018, 20:03

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von Lulibe » 11.02.2018, 12:08

HAllo, danke schon mal für die Anworten.
Aber genau da liegt mein Problem, die Anweisung zu programmieren. Stehe auf dem Schlauch.
Es soll die Variable "FensterOffen" gesetzt und das Modul "HM-MOD-Re-8" angesteuert werden, das eine
LED schaltet...

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

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von alchy » 11.02.2018, 12:28

Ich wusste es. Jetzt kommt noch eine Variable ins Spiel.

Eine Logik oder Alarmvariable namens FensterOffen kannst du mit:

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffen").State(true);
auf wahr setzen und mit

Code: Alles auswählen

dom.GetObject(ID_SYSTEM_VARIABLES).Get("FensterOffen").State(false);
auf unwahr.

Wo der Code hin muss, habe ich dir ja oben beschrieben. Einfach unter die jeweilige WriteLine Aussage.
Ich habe keinen Bock nach den Datenpunkten des HM-MOD-Re-8 zu schauen, ich habe kein solches Modul.
Schau also selber in der Doku (siehe Signatur) oder mit einem Script nach, wie die Datenpunkte bei dem Modul heißen.
Wenn du sie lieferst, schreibe ich auch den Code dazu.

ABER

wenn du die Variable FensterOffen mittels Script setzt, kannst du dir ja ein Programm zusammenklickern
Wenn Systemzustand FensterOffen dann Modulkanal X = ein ...

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.

Benutzeravatar
JRiemann
Beiträge: 3903
Registriert: 12.11.2015, 21:05
Wohnort: Aurich
Danksagung erhalten: 3 Mal

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von JRiemann » 11.02.2018, 12:32

Es macht aus meiner Sicht wenig Sinn und bringt keine Vorteile die gewünschte Anforderung per Skript zu löschen.
Denn auch dieses Skript muss in einem Programm ausgeführt werden. Das Programm wiederum benötigt einen Trigger. Im Umkehrschluss müssen also alle Fensterkontakte in ein Programm gepackt werden damit auf deren Statusänderung reagiert und das Skript ausgeführt wird. Man würde dumm gesagt auf eine Statusänderung reagieren um dann abzufragen ob sich der Status geändert hat.
Das Programm zyklisch und dann evtl. noch im Minutentakt aufzurufen wäre absolut sinnfrei!!!

Per Skript das Gerwerk auszulesen macht also nur Sinn wenn man detaillierte Informationen auslesen und weiterverarbeiten möchte!
Viele Grüße!
Jörg

Lulibe
Beiträge: 27
Registriert: 10.01.2018, 20:03

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von Lulibe » 11.02.2018, 13:17

JRiemann hat geschrieben:Es macht aus meiner Sicht wenig Sinn und bringt keine Vorteile die gewünschte Anforderung per Skript zu löschen.
Denn auch dieses Skript muss in einem Programm ausgeführt werden. Das Programm wiederum benötigt einen Trigger. Im Umkehrschluss müssen also alle Fensterkontakte in ein Programm gepackt werden damit auf deren Statusänderung reagiert und das Skript ausgeführt wird. Man würde dumm gesagt auf eine Statusänderung reagieren um dann abzufragen ob sich der Status geändert hat.
Das Programm zyklisch und dann evtl. noch im Minutentakt aufzurufen wäre absolut sinnfrei!!!

Per Skript das Gerwerk auszulesen macht also nur Sinn wenn man detaillierte Informationen auslesen und weiterverarbeiten möchte!

Die Systemvariable "FensterOffen" wird auf wahr gesetzt, wenn der Systemzustand "abwesend" wahr ist und zu dem Zeitpunkt noch "fenster" geöffnet sind, die einem Gewerk zugeordnet sind. Dann erfolgt eine Signalisierung per LED an einem Board.
Kommen weitere Kontakte hinzu oder werden entfernt, muss nur das Gewerk angepasst werden und nicht das Programm, in dem ggf. alle Kontakte mit "oder" aufgeführt wären.
Das waren meine Gedanken dazu. Sind die so falsch = SINNFREI . ??

Lulibe
Beiträge: 27
Registriert: 10.01.2018, 20:03

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von Lulibe » 11.02.2018, 13:18

alchy hat geschrieben:

Code: Alles auswählen

Scriptcopy gelöscht
Das Script ermittelst offene Fenstersensoren in einem Gewerk und gibt die Anzahl aus.
Das Script ergibt nur eine entsprechende Ausgabe auf dem Bildschirm.
Wenn du stattdessen etwas anders willst, ersetze die WriteLine Zeilen bzw. erweitere das Script durch sinnvolle Anweisungen, wie das Setzen einer Systemvariablen oder Schalten eines Gerätes.
DAzu die ScriptDoku in meiner Signatur lesen und/oder fragen.

Eine erweiterte Version mit Versenden von mehr Infos per Push usw. gibt es >> H I E R <<

Alchy


Ja, genau so... herzlichen Dank . :D funktioniert natürlich :)
Zuletzt geändert von alchy am 11.02.2018, 13:22, insgesamt 1-mal geändert.
Grund: Scriptcopy gelöscht

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

Re: Wenn Systemzustand auf ABW geändert wird Script...offene

Beitrag von alchy » 11.02.2018, 13:20

JRiemann hat geschrieben:Das Programm zyklisch und dann evtl. noch im Minutentakt aufzurufen wäre absolut sinnfrei!!!
Naja, er will den Zustand zumindest bisher nur prüfen, wenn sich die Anwesenheit ändert also ist die Logik dahinter schon in Ordnung und nicht sinnfrei.

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)“