NEWS
DP abhängig von mehreren Varianten
-
Ich bräuchte mal wieder etwas Hilfe bei einen Script.
Ich habe insgesamt drei Fenstersensoren. Wenn einer der Fenstersensoren auf ist, und am Heizungsthermostat die IST-Temperatur kleiner als die SOLL-Temperatur, soll der DP auf 1 gehen, sonst auf 0.
Folgendes Script habe ich zusammengebastelt:
Im Träger sind die drei Fensterkontakte, die auf 1 gehen, wenn das Fenster auf ist.
Weiter habe ich versucht zu bestimmen wenn Fensterkontakt 1 oder 2 oder 3 auf 1 ist und IST vom Thermostat kleiner ist als soll, wird der DP Wohn-Kueche auf 1 gesetzt, sonst auf 0.Kann sich und mir jemand erklären warum das nicht funktioniert?
-
@stefan341
Das Skript reagiert nicht auf eine sinkende Temperatur bei offenem Fenster, da nicht auf die Temperatur getriggert wird. -
@paul53 sagte in DP abhängig von mehreren Varianten:
@stefan341
Das Skript reagiert nicht auf eine sinkende Temperatur bei offenem Fenster, da nicht auf die Temperatur getriggert wird.Was @paul53 damit sagen will:
- ändere den Trigger das auf die Temperatur getriggert wird.
- Füge dem falls ein grosses "und" hinzu - neben den 3 Bedingungen der Sensoren muss mit hinein: '
Wert
<sollwertThermostat
Wenn du dann noch Ressourcen schonen willst, dann Machst du dir eine Variable
local_wohnkueche
, initialisierst sie zu skriptbeginn mitwert von 'Wohn-Kueche'
, und an stelle der beiden 'aktualisiere' kommt
(im oberen Fall):falls nicht
local_wohnkueche
aktualisiere 'Wohn-Kueche' mit 'wahr'
und
(im unteren Fall):falls
local_wohnkueche
aktualisiere 'Wohn-Kueche' mit 'falsch'
Dann wird nur aktualisiert wenn der Wert sich auch geändert hat.
A.
-
@asgothian sagte: Füge dem falls ein grosses "und" hinzu - neben den 3 Bedingungen der Sensoren muss mit hinein: 'Wert < sollwertThermostat
Das ist bereits enthalten.
@asgothian sagte in DP abhängig von mehreren Varianten:
wird nur aktualisiert wenn der Wert sich auch geändert hat.
Das würde ich so machen:
-
Also eigentlich sind eure beiden Vorschläge gleich, nur mit dem Unterschied, dass @Asgothian den Datenpunkt am Ende des Scripts direkt mit 1 oder 0 ansteuert und @paul53 ihn nur ansteuert wenn der DP ungleich der Variable ist und somit die Variable mit dem DP immer gleich hält oder sehe ich das falsch?
@paul53
ich verstehe in deinem Script den Teil nicht ganz, wo du den Wert der Variable setzt. Ich lese das so: Die Variable wohnkueche soll gesetzt werden wenn die IST-Temperatur < der SOLL Temperatur ist und zusätzlich mindestens eines der drei Fenster auf ist. Aber da fehlt doch auf was die Variable gesetzt werden soll oder? -
@paul53 said in DP abhängig von mehreren Varianten:
Das würde ich so machen:
Das funktioniert nicht ganz. Folgendes habe ich ausprobiert:
Fenster 1 ist auf.
Am Thermostat sinkt IST unter den Wert von SOLL
Der DP geht auf 1
Fenster 2 wird zusätzlich geöffnet
Der DP geht auf 0Hier müsste der DP auf 1 bleiben, bis ALLE Fenster geschlossen werden
-
@stefan341
Das kann eigentlich nicht sein, wenn du es so wie vorgeschlagen implementiert hast.
Verhält es sich immer so, oder ist per Zufall mit beim Öffnen von Fenster zufällig "gleichzeitig" die IST über die SOLL Temperatur gestiegen? -
@stefan341 sagte da fehlt doch auf was die Variable gesetzt werden soll oder?
Wenn die Bedingungen erfüllt sind wird die Variable true, sonst false.
Sollen 1 und 0 geschrieben werden, dann:
-
@paul53 said in DP abhängig von mehreren Varianten:
@stefan341 sagte da fehlt doch auf was die Variable gesetzt werden soll oder?
Das meinte ich mit
@stefan341 said in DP abhängig von mehreren Varianten:
@paul53
ich verstehe in deinem Script den Teil nicht ganz, wo du den Wert der Variable setzt. Ich lese das so: Die Variable wohnkueche soll gesetzt werden wenn die IST-Temperatur < der SOLL Temperatur ist und zusätzlich mindestens eines der drei Fenster auf ist. Aber da fehlt doch auf was die Variable gesetzt werden soll oder? -
@paul53
Jetzt funktioniert es soweit. Nur eine Kleinigkeit ist mir aufgefallen, die ich bisher noch nicht berücksichtigt hatte:Wenn im Thermostat IST < SOLL ist und ein Fenster geöffnet wird, geht der DP auf true.
Soweit ist das richtig.
Wenn das Fenster NICHT geschlossen wird, die Heizung heizt und irgendwann soviel geheizt ist, dass IST = oder > SOLL ist, geht der DP auf false.
Somit wird suggeriert, dass alles ok ist und die Warnung im VIS, für die ich das Ganze nutzen möchte, verschwindet, obwohl eigentlich nichts gut ist, sondern die Heizung die Außenwelt mitheizt.Könnte man das Ganze so erweitern, dass wenn der DP auf true war, er erst auf false geht, wenn alle Fenster zu sind?
-
@stefan341 sagte: wenn der DP auf true war, er erst auf false geht, wenn alle Fenster zu sind?
-
@paul53
Danke, das klappt soweit.Im nächsten Schritt müsste ich die Datenpunkte, die ich für jeden Raum habe, in der VIS anzeigen lassen. Also ich habe mir das so gedacht, dass ich ein Skript erstelle, dass die Datenpunkte triggert, wenn einer auf true geht, einen Namen für den DP in einen weiteren DP schreibt. Im Idealfall muss ich dann nur den Inhalt des letzten DP, in dem alle offenen Fenster gelistet sind, in der VIS ausgeben lassen
-
@stefan341 sagte: DP, in dem alle offenen Fenster gelistet sind, in der VIS ausgeben lassen
Etwa so?
Alle Räume mit offenen Fenstern werden gelistet.
-
@paul53
Danke. Ich habe momentan noch ein paar andere Dinge die ich zuerst erledigen muss. Darum dauerte meine Antwort auch etwas. Ich werde es testen. -
@paul53 Ich bin jetzt endlich dazu gekommen es zu testen.
Es funktioniert fast.Wenn einer der DP auf 1 geht, ändert sich der VIS-DP in "folgende Fenster sind geöffnet...". Soweit geht es. Geht der DP nun aber wieder auf 0 weil das Fenster geschlossen wurde, ändert sich der VIS-DP nicht in "Alle Fenster sind geschlossen"
-
@stefan341 sagte: weil das Fenster geschlossen wurde, ändert sich der VIS-DP nicht in "Alle Fenster sind geschlossen"
Das Resultat erscheint nur, wenn wirklich alle Fenster geschlossen sind, also die Liste "offen" leer bleibt.
-
@paul53
Ok, das klingt logisch. Aber das soll ja keine generelle Warnung sein wenn ein Fenster offen ist, sondern nur warnen wenn einer der Datenpunkte auf 1 geht. -
@stefan341 sagte: nur warnen wenn einer der Datenpunkte auf 1 geht.
Du meinst so?
oder so?
Das widerspricht dieser Aussage:
@stefan341 sagte in DP abhängig von mehreren Varianten:nur den Inhalt des letzten DP, in dem alle offenen Fenster gelistet sind, in der VIS ausgeben lassen
-
@paul53 said in DP abhängig von mehreren Varianten:
Das widerspricht dieser Aussage:
@stefan341 sagte in DP abhängig von mehreren Varianten:nur den Inhalt des letzten DP, in dem alle offenen Fenster gelistet sind, in der VIS ausgeben lassen
Ich habe das unglücklich ausgedrückt. Ich meinte in dem Datenpunkt sollten alle offenen Fenster gelistet sein, weswegen folgendes Skript ausgelöst hat
@paul53 said in DP abhängig von mehreren Varianten:
@stefan341 sagte: wenn der DP auf true war, er erst auf false geht, wenn alle Fenster zu sind?
Das wäre dann das zweites Skript aus deinem letzten Post oder?
-
@stefan341 sagte: Das wäre dann das zweites Skript aus deinem letzten Post oder?
Das löst nur aus, wenn das erste Fenster in einem Raum geöffnet wird.
@stefan341 sagte in DP abhängig von mehreren Varianten:
weswegen folgendes Skript ausgelöst hat
Ich war der Auffassung, dass du die in diesem Skript (pro Raum) beschriebenen Datenpunkte auswerten willst, um in Vis zu zeigen, in welchen Räumen noch Fenster offen sind.