NEWS
Eine Heizung mit drei Fensterkontakten
-
Hallo Leute,
ich habe das nächste (Anfänger-)Problem. Ich möchte jetzt nach und nach meine Heizkörper smart machen und als erstes eben runter regeln wenn die Fenster offen sind und umgekehrt. Nun ist es so, dass ich im Wohnzimmer drei Fenster und einen Heizkörper habe. Ich habe auch schon ein Skript geschrieben und es funktioniert... bis zu dem Punkt an dem ich im laufenden Betrieb die Temperatur ändere. Dafür hatte ich schon eine Lösung, ich brauche ja nur die Temperaturänder als Trigger... wenn ich die aber mit rein nehme triggert sich natürlich mein Skript selber, wenn Fenster auf und zu gehen... Ich habe hin und her probiert und keine Lösung gefunden. Hier also mein Stand nur mit Fensterkontakt-Triggern. (Nicht wundern... ich habe gerade nur einen Kontakt, die anderen kommen noch... um mein Skript live zu testen habe ich hier einfach meine Lampen als "Kontakt" genommen)
Die debugs kommen natürlich zum Schluss wieder raus.
Danke schonmal!
-
Da gibt es einige Wege, das fängt schon an wie Du triggerst.
Z.B.: Leg Dir einen weiteren DP an statt einer lokalen Variable in dem Du die aktuelle Temperatur von "davor" speicherst und den nutzt Du dann zum Zurücksetzen nachdem alle Fenster geschlossen wurden. -
@joergh sagte in Eine Heizung mit drei Fensterkontakten:
Da gibt es einige Wege, das fängt schon an wie Du triggerst.
Z.B.: Leg Dir einen weiteren DP an statt einer lokalen Variable in dem Du die aktuelle Temperatur von "davor" speicherst und den nutzt Du dann zum Zurücksetzen nachdem alle Fenster geschlossen wurden.Die Lösung ist trivial (wenn ich dich richtig verstanden hab).
Setz einfach im gleichen Skript noch einen Trigger auf die Temperaturänderung, und prüfe darin ob diese von einem Skript aus passiert. Wenn das nicht der Fall ist, dann kannst Du einfach den neuen Wert der Temperatur in die Variable sichern.
Zum Prüfen wo eine Änderung her kommt kannst Du den Baustein aus dem Trugger-Bereich nehmen der mit "Objekt ID" voreingestellt ist. Über diesen Baustein kommst Du auf Eigenschaften des Triggers (wer hat getigert, wie war der alte wert, wie lange ist die Änderung her, etc) zugreifen.
Alternativ kannst Du dir eine "blockier" variable bauen (FensterOffenAktiv).
Diese setzt du bevor Du die Temperatur automatisch absenkst auf "wahr", und nachdem Du die Temperatur wieder angehoben hast auf "falsch"
Im Trigger auf die Temperaturanpassung schaust Du dann nach ob diese Variable auf "wahr" steht. Wenn ja dann musst du die Temperaturanpassung ignorieren.A.
-
@mariatschi0815
Vorschlag: -
@paul53 Ich glaube er möchte halt den Normalwert für die Raumtemperatur bei geschlossenen Fenstern in dem Moment wo er ihn nach Starten des Skriptes verändert auch mit verändert haben. Dazu braucht er wohl noch einen weiteren DP, der dann immer ausgelesen wird, wenn ein Fenster geöffnet wurde und vorher keines geöffnet war.
-
@joergh sagte: Normalwert für die Raumtemperatur bei geschlossenen Fenstern in dem Moment wo er ihn nach Starten des Skriptes verändert auch mit verändert haben.
Genau das macht "setze soll_geschlossen auf Wert vom DP Sollwert" innerhalb des Triggers: Wenn das erste Fenster geöffnet wird, wird die Variable auf den Sollwert gesetzt.
-
Stimmt. Hatte es nicht gleich begriffen.
-
Hey Leute,
mir ist leider etwas dazwischen gekommen, weswegen ich mich jetzt mit dem "Projekt" nicht weiter beschäftigen konnte.
Danke für die vielen Tipps!
Paul, das sieht so aus wie ich es mir vorgestellt habe. Nur eine Verständnisfrage. Den soll_geschlossen setzt du quasi nur beim Start des Skriptes auf 20 und anschließend wird er über meine Eingabe im laufenden Skript angepasst und beibehalten. Seh ich das so richtig?
-
@mariatschi0815 sagte: soll_geschlossen setzt du quasi nur beim Start des Skriptes auf 20 und anschließend wird er über meine Eingabe im laufenden Skript angepasst und beibehalten.
Ja. Wenn zum Zeitpunkt des Skriptstarts mind. ein Fenster offen ist, der Sollwert also 5 °C beträgt, muss man einen Standardwert vorgeben, da dann der Sollwert bei geschlossenen Fenstern nicht zur Verfügung steht.
-
@paul53 sagte: muss man einen Standardwert vorgeben
Alternativ kann man sich auch den Sollwert in einem eigenen Datenpunkt (unter "0_userdata.0") merken.
-
Funktioniert! Danke nochmal.
Mal noch eine andere Frage, wenn ich jetzt noch mehr Zimmer nachrüste... (was passieren wird), macht es mehr Sinn für jedes Zimmer ein Skript zu bauen, oder das Skript so umzuschreiben, dass es für alle zimmer funktioniert? Ich hätte jetzt noch drei Zimmer mit einem Fenster und ein Zimmer mit zwei Fenstern, aber jeweils nur ein Heizkörper.
-
@mariatschi0815 sagte: für jedes Zimmer ein Skript zu bauen,
Ich würde für jedes Zimmer ein Skript verwenden, um die Skripte übersichtlich zu halten.
-
Hey Leute,
da ich das Thermostat ohne bridge steuere hat sich noch ein zusätzliches Problem aufgetan. Ich muss noch den Mode mit heat oder off steuern. Also müsste ich noch einbinden, dass wenn die Fenster geschlossen sind und die Temperatur um bspw. 2Grad fällt der Modus auf heizen stellt und dann die Temperatur geregelt wird.Mein Gedankengang wäre jetzt ein zusätzlichen Trigger einzubauen der auf Temperaturänderung „anspringt“ und dort ein if einzubauen, welches dann eine Variable belegt und dann ein steuere mit mode jeweils vor die Targettemp. jetzt wäre ja hier aber wieder das Problem, dass bei offenem Fenster die Temperatur sinkt und dadurch die ganze Zeit mein Trigger auslöst. Dazu kommt noch, sollte das Fenster (warum auch immer) so lange offen sein, dass die Temperatur konstant bleibt reagiert mein Trigger ja nicht mehr.
Bevor ihr mir jetzt ein fertiges script liefert, wofür ich euch immer sehr dankbar bin, könnt ihr mir erstmal Tips geben wie ihr an solche Probleme heran geht? Ich möchte es ja auch lernen, um seltener und vielleicht gar nicht mehr mit solchen Anfängerproblemen zu nerven.
Gruß Martin
-
Das wäre jetzt meine Idee dazu.
Ich musste das nochmal editieren. Ich habe noch festgestellt, dass das Thermostat erst anfängt zu arbeiten, wenn mann die Lokaltempereatur kalibriert und der mode auf auto oder heat steht.
Also um das Heizen anzustoßen genügt es den Wert zum Kalibrieren (Offset[...]) anzustoßen. Das Thermostat mach dann zu wenn das Offset wieder 0 ist.
Für die Fenster genügt es den Mode zwischen off und auto (oder heat) zu schalten.Also sieht mein Skript jetzt erstmal so aus:
Das Thermostat misst die Temperatur in der Umgebung eigenständig, liefert aber nicht regelmäßig aktuelle Werte. Somit nutze ich einen extra Temp-Sensor muss den Wert aber bei der Berechnung trotzdem berücksichtigen.
Und ein Problem bleibt, was wenn die Temperatur sich nicht mehr ändert?
-
@mariatschi0815 sagte: das Thermostat erst anfängt zu arbeiten, wenn mann die Lokaltempereatur kalibriert
Wirklich? Das kann ich mir nicht vorstellen. Ein Thermostat muss im entsprechenden Modus die Temperatur regeln. Die Temperaturabhängigkeit im Skript zu realisieren, ist dann kontraproduktiv.
-
@paul53 Ja... das Teil bereitet mir jetzt schon etwas länger Kopfzerbrechen... Es ist auch nicht optimal in den Zigbee-Adapter eingebunden, was aber an der Hardware liegt. Hab da schon etliche Leute mit beschäftigt.
Jedenfalls ist es so erstmal nutzbar. Bin hier auch schon im Forum unterwegs um rauszufinden ob das Eurotronics Spirit Zigbee mittlerweile problemlos läuft und würde dann nochmal umsteigen.
Für den Moment um mich einzuarbeiten würde ich das Teil jetzt aber erstmal weiter benutzen. Auch wenn dadurch wohl noch mehr Kopfschmerzen vorprogrammiert sind.Um es nochmal kurz zu fassen, wir werden hier nicht mehr ewig wohnen, weswegen das Thermostat günstig sein soll/sollte einfach um mich praktisch (oder in dem Fall unpraktisch...) damit beschäftigen zu können.
-
@mariatschi0815 sagte: das Teil bereitet mir jetzt schon etwas länger Kopfzerbrechen...
Ist es das Saswell SEA802? Da wäre ich vorsichtig, wenn nicht einmal der Hersteller weiß, auf welcher Frequenz es funkt.
-
@paul53 said in Eine Heizung mit drei Fensterkontakten:
@mariatschi0815 sagte: das Teil bereitet mir jetzt schon etwas länger Kopfzerbrechen...
Ist es das Saswell SEA802? Da wäre ich vorsichtig, wenn nicht einmal der Hersteller weiß, auf welcher Frequenz es funkt.
Jain, ist wohl baugleich. Ob Hama da ähnlich desinteressiert ans Werk geht lässt sich nur vermuten. Wobei die Ergebnisse und Arbeitsweisen hier wohl dafürsprechen, dass einfach nur umgelabelt wurde....
-
Also, mein Spirit Zigbee kam und es macht das was ein Thermostat tun sollte. Da ich immernoch auf meine anderen Fensterkontakte warte hab ich erstmal folgendes Skript geschrieben. Nichts bewegendes.
Edit: Ich hoffe ich hab den CRON-job richtig verstanden. Ich habe hier einfach mal angefangen und ich weiß, dass mein script hier gerade mal ansatzweise lauffähig ist und bin für Hilfestellung sehr dankbar.
Ich brauch ja zum Ein- und Ausschalten jeweils einen CRON und dann nochmal extra für die Tage mit unterschiedlichen Schaltzeiten, richtig?
Jetzt gibt es hier schon das erste Problem, wenn bspw. über Nacht ein Fester offen bleibt und die Heizung ausgeschalten wird übermittelt sie automatisch als ZielTemp 5°C. Jetzt würde ja, sobald ich das Fenster schließe meine Heizung im Heizzyklus nur mit 5°C "heizen", wie kann ich denn das umgehen?Achso, zu einem späteren Zeitpunkt möchte ich die anderen Heizkörper (sobald sie nachgerüstet sind) mit in diesem Heizplan einpflegen.
Gruß Martin
-
Mahlzeit,
hat keiner Zeit mir ein bisschen zu helfen? Ja ich weiß, dass es den Heizungs-Adapter gibt. Ich möchte ja aber gerne scripten (üben) und alles eben so individuell wie möglich gestalten.