es müsste eine einfache Lösung für meinen Vorhaben geben aber ich komme nicht darauf:
ich möchte eine Meldung herausgeben wenn einer der 11x Fensterkontakte geöffnet ist bzw. wird.
Natürlich wäre es mit einer vielfache ODER-Bedingung möglich aber nicht besonders elegant, zumal man nicht in Minutentakt jeden einzelnen Kontakt abfragen sollte.
Dies kommt in jeder Alarmanlage vor, wie löst Ihr das?
Viele Grüsse
Mehrere Fensterkontakte zusammenfassen?
Moderator: Co-Administratoren
Mehrere Fensterkontakte zusammenfassen?
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...
Re: Mehrere Fensterkontakte zusammenfassen?
Vielen Dank,
wenn ich es richtig verstehe, hast Du eine Systemvariable pro Fensterkontakt definiert. Damit umgehst Du die ständige Abfrage. Richtig?
Es ist eine gute Lösung. Ich möchte es in HCPL lösen. Es geht auf ähnlicher Weise und ich probiere es aus.
Gibt es alternative Vorschläge?
wenn ich es richtig verstehe, hast Du eine Systemvariable pro Fensterkontakt definiert. Damit umgehst Du die ständige Abfrage. Richtig?
Es ist eine gute Lösung. Ich möchte es in HCPL lösen. Es geht auf ähnlicher Weise und ich probiere es aus.
Gibt es alternative Vorschläge?
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...
-
- Beiträge: 7151
- Registriert: 31.12.2006, 15:18
- System: Alternative CCU (auf Basis OCCU)
- Wohnort: Rhein-Main
- Danksagung erhalten: 35 Mal
Re: Mehrere Fensterkontakte zusammenfassen?
Hi,
unabhängig von der Verwendung der TFK:
Du erstellst in HPCL ein neues Makro ohne Hardwarebezug, und in jeden TFK, der auf Empfnag oder auf Änderung getriggert wird, schreibst einen Aufruf für dieses Makro (normal sollte auf Änderung reichen, aber nach Neustarts etc. könnte es Vorteilhaft sein, das ganze immer (bei Empfang) zu erledigen).
Und in dem Makro kannst Du alle n-TFK prüfen, dabei kann man unterschiedlich vorgehen, entweder man "odert" sich durch, dann weiß man nur, das min. einer offen ist. Eleganter ist es, sich zwei Zahlenvariablen im Makro anzulegen, und dort am Anfang die Zähler zu nullen, und dann TFK für TFK einzeln zu prüfen, ob offen, dann wird die Variable für offen um eins erhöht, sonst wird die für geschlossen um eins erhöht. Die Nächste Stufe ist noch eine Zeichenketten-Variable anzulegen, und dort für jeden offenen TFK den Namen anzufügen.
Damit weiß man am Ende, ob 1, 2, 3, oder wieviel Fenster offen sind, und wenn das Makro wirklich von jedem beteiligtem TFK gestartet wird, dann kann man auch diese Zählvariablen jederzeit einfach von anderen Makros/Objekten aus abfragen, und weiß sofort, ob min. ein TFK nicht geschlossen ist, und kann gezielt das Scharfschalten der Anlage verhindern. Und wenn man sich das per eMail oder Pushover mitteilen lassen will, könnte man auch noch die Zeichenkette mit den offenen Fenstern mitschicken, damit man schneller weiß, wo man suchen muss.
Der Familienvater
unabhängig von der Verwendung der TFK:
Du erstellst in HPCL ein neues Makro ohne Hardwarebezug, und in jeden TFK, der auf Empfnag oder auf Änderung getriggert wird, schreibst einen Aufruf für dieses Makro (normal sollte auf Änderung reichen, aber nach Neustarts etc. könnte es Vorteilhaft sein, das ganze immer (bei Empfang) zu erledigen).
Und in dem Makro kannst Du alle n-TFK prüfen, dabei kann man unterschiedlich vorgehen, entweder man "odert" sich durch, dann weiß man nur, das min. einer offen ist. Eleganter ist es, sich zwei Zahlenvariablen im Makro anzulegen, und dort am Anfang die Zähler zu nullen, und dann TFK für TFK einzeln zu prüfen, ob offen, dann wird die Variable für offen um eins erhöht, sonst wird die für geschlossen um eins erhöht. Die Nächste Stufe ist noch eine Zeichenketten-Variable anzulegen, und dort für jeden offenen TFK den Namen anzufügen.
Damit weiß man am Ende, ob 1, 2, 3, oder wieviel Fenster offen sind, und wenn das Makro wirklich von jedem beteiligtem TFK gestartet wird, dann kann man auch diese Zählvariablen jederzeit einfach von anderen Makros/Objekten aus abfragen, und weiß sofort, ob min. ein TFK nicht geschlossen ist, und kann gezielt das Scharfschalten der Anlage verhindern. Und wenn man sich das per eMail oder Pushover mitteilen lassen will, könnte man auch noch die Zeichenkette mit den offenen Fenstern mitschicken, damit man schneller weiß, wo man suchen muss.
Der Familienvater
Re: Mehrere Fensterkontakte zusammenfassen?
Vielen Dank Familienvater, Deine Lösung ist elegant und ausbaufähig.
Ich habe sie eingesetzt den Ansatz von Visu in HCPL eingesetzt und melde zunächst nur, ob einer der Kontakte offen ist. Es läuft gut.
Ich werde das Programm erweitern. Ich muss mich erst mit e-mail in HCPL beschäftigen.
Viele Grüsse
Ich habe sie eingesetzt den Ansatz von Visu in HCPL eingesetzt und melde zunächst nur, ob einer der Kontakte offen ist. Es läuft gut.
Ich werde das Programm erweitern. Ich muss mich erst mit e-mail in HCPL beschäftigen.
Viele Grüsse
Hans1234, über 100 Aktoren, HPCL programmiert - IoBroker dient als graphische Interface und der Einbindung von nicht-HM-Geräten sowie Alexa/Siri/ Wetter usw...
Re: Mehrere Fensterkontakte zusammenfassen?
Hallo,
als Info zu dem Thema noch eine einfache Lösung um offene Fenster festzustellen.
Einfach die Fensterkontakte in eine Zahl addieren, die Summe ist dann die Anzahl der offenen Fenster.
Hier der Beispielsource:
In FensterCheck vom Typ Zahl steht dann die Anzahl der offenen Fenster.
Bei der Methode weiss man natürlich nicht welche Fenster es sind, dafür habe ich ein separates Makro was aber nur aufgerufen wird wenn wirklich ein Fenter auf ist. Dann braucht nicht dauernd ein Makro mit unzähligen wenn/oder Anweisungen zu laufen.
LG
Lars
als Info zu dem Thema noch eine einfache Lösung um offene Fenster festzustellen.
Einfach die Fensterkontakte in eine Zahl addieren, die Summe ist dann die Anzahl der offenen Fenster.
Hier der Beispielsource:
Code: Alles auswählen
FensterCheck:=TFKFensterDiele + TFKFensterKueche +,
TFKFensterWohnen + TFKTerrassentuer
wenn FensterCheck > 0 dann
ausfuehren(OffeneFensterAnzeigen)
endewenn
Bei der Methode weiss man natürlich nicht welche Fenster es sind, dafür habe ich ein separates Makro was aber nur aufgerufen wird wenn wirklich ein Fenter auf ist. Dann braucht nicht dauernd ein Makro mit unzähligen wenn/oder Anweisungen zu laufen.
LG
Lars