NEWS
Gedankenanstoß bezüglich Umsetzung Lüftungsautomatisierung
-
Hallo zusammen,
mir fehlt es gerade so an der richtigen Idee, wie ich meine Lüftung automatisieren kann. Vllt. gibt es hier ja jemanden, der Ähnliches schon umgesetzt hat oder zumindest eine schlaue Idee hat.
Zur Ausgangssituation:
Ich habe eine banale Wohnraumlüftung, die leider ohne Energierückgewinnung banal die Luft wie ein Staubsauger in den Schlafzimmern/Küche absaugt und nach draußen befördert. Gleichzeitig strömt dann frische Luft (aufgrund des Unterdrucks in den Zimmern) über Lüftungsschlitze in den Fensterlaibungen nach. Problem: Im Sommer saugt man sich bei kühler Innentemperatur die heiße Luft rein. Im Winter genau umgekehrt, saugt man sich die kalte Luft rein und muss ständig dazu heizen. Zudem merkt man insbesondere im Winter, wie die kalte Luft förmlich in den Raum "fällt".Also habe ich mir folgende Anforderung an eine Automatisierung überlegt:
Abhängig von der Wettervorhersage für den Folgetag soll bei einer Maximaltemperatur <= Heizschwelle (19°) nur zwischen 11 und 16 Uhr gelüftet werden. Bei Temperaturen zwischen 19° und 25° soll die Lüftung 8 Stunden am Tag laufen, jedoch nur bis zu der Zeit wo die Außentemperatur maximal 23° hat. Bei prognostizierten Temperaturen >25° soll gelüftet werden, wenn die Außentemperatur < Innentemperatur - sonst nicht.Es soll dann noch Flows geben, die quasi die o.g. Basiseinstellung überschreiben und eine Zwangsbelüftung darstellen. Diese habe ich bereits in Benutzung.
- Beim Duschvorgang/längerer Toilettennutzung im Bad
- Bei Wama/WT-Aktivität im Waschraum und gleichzeitig geschlossener Türe
- Beim Kochvorgang in der Küche
- Bei schlechtem VOC-Wert in den Schlafräumen
Im Moment fehlt mir die Idee der Umsetzung, dass ich "heute" den Wetterbericht für "morgen" auswerte (z. B. Openweathermap) und dann für "morgen" dann den Lüftungskorridor festlege.
Ich denke nämlich, dass wenn ich nur simple auf die aktuelle Temperatur, die ich ja stündlich auslesen könnte, reagieren lasse, könnte es ja sein, dass ich entweder zu früh oder zu spät lüfte. Auch MUSS ja jeden Tag gelüftet werden, sprich würde z.B. in einem heißen Sommer die Außentemperatur nie unter die Innentemperatur fallen, würde das System niemals lüften. Eine gute Planung würde hier dann vllt. die 6 Stunden Nachts wählen, wo z. B. die Temperatur zwar nicht niedriger, aber vllt. = Innentemperatur wäre (z. B. Nachts zwischen 2Uhr und 8 Uhr).Ich hoffe ich habe mein komplexen Gedankengang transportieren können und bin auf zahlreiche Ideen und Input gespannt.
Vielen Dank
Almeda -
@almeda Nun dann fang halt mal und sammel halt mal in Deinem Flow die Temperaturen des Wetterberichts, die aktuellen Temperaturen. Diese Daten würde ich im Flowkontext speichern und dann brauchst Du ja etwas was triggern soll.
-
...Im Moment fehlt mir die Idee der Umsetzung, dass ich "heute" den Wetterbericht für "morgen" auswerte...
Ich hole mir z.B. die Wettervorhersage beim "Das Wetter" Adapter ab um im Winter meine FBH zu regeln wenn es in den nächsten 3-6 Stunden zu einem Kältesturz/Hitzewelle kommen sollte (bei uns sind 15 Grad Temperatur Unterschied innerhalb von ein paar Stunden nicht ungewöhnlich) und auch meine Beschattung mit den Rollläden im Sommer bevor am Tag die große Hitze beginnt.
Den Adapter kann man in Grenzen entsprechend einstellen für welchen Zeitraum, Zeitbereich und in welchem Intervall er die Werte aktualisieren soll. Bei mir aktualisiert er die nächsten 5 Tage in 3 Stunden Schritten alle 15 Minuten. Das dürfte für Deine Zwecke zu fein sein. Es gibt aber noch zwei weitere Modi deren Einzelheiten ich jetzt aber nicht im Kopf habe (nur dass die etwas gröber sind).
Könnte für Dein Projekt nützlich sein.
Alternativ: die Werte für den nächsten Tag periodisch mit dem Parser Adapter und RegEx von einer Webseite in Datenpunkte schreiben. Muß man zwar gelegentlich anpassen wenn das Design der Webseite geändert wird, das geht dann aber relativ schnell wenn man es mal hat.
-
Das Wetter kann man sich über die API ganz leicht selbst abholen - ich nutze ein Kombi aus Accuweather und Openweather - das ist die beste Kombi.
Hier der Thread: https://forum.iobroker.net/topic/44684/wetter-api-s-mit-nodered-abrufenDa braucht man keinen Adapter - das geht direkt mit der API.
Ich glaube aber der TE sollte erst mal die Logik mit Triggern etc. definieren - das andere ist nur Handwerkszeug.
Anhand des Wetterbrerichts kannst Du ja dann variable scheduler Nodes verwenden. Ich würde Dir bei der komplexen Aufgabenstellung die Chronosnodes empfehlen. Die Priorisierung kannst Du ja einfach erreichen - in dem du diverse Zustände im Kontext speicherst und dann das dann als Bedingung über eine Reihe von Switch-nodes filterst.
-
@albert-k
Vielen Dank für deinen hilfreichen Input.
Das Wetter abholen ist nicht das Problem. Ich hatte schon vor geraumer Zeit das äußerst umfangreiche Thema von mickym dazu durchgelesen, wo er über Wochen hinweg immer mal mit dem einen, mal dem anderen Anbieter und entsprechender API die Daten abholt, um am Ende dann beides zu nutzen.
Aber wie du sagst, so dezidiert brauche ich es vllt. gar nicht. Ich habe überlegt, ob mir entweder Temp-Max und Temp-Minimum reichen. Oder ob ich vllt. 24 Temperaturwerte für einen Tagesverlauf brauche, um dann automatisiert den besten Abschnitt der Lüftung bestimmen zu lassen.Solche Temperaturunterschied von 15° innerhalb weniger Stunden haben wir hier nicht. Und die Verschattung läuft bei mir bereits vollautomatisch sonnenstandsgeführt nativ in KNX.
@mickym
Vielen Dank auch dir für deinen Input. Ich schätze deine Expertise immer sehr. Wenn man hier so quer durchs Forum liest, ist es schon immer beeindruckend, wie du das Thema durchdrungen hast. Sicherlich bin ich davon weit entfernt und werde es auch dauerhaft bleiben. Dennoch lese ich mir das meiste selbst an und experimentiere, bis ich das Ergebnis habe.Dein umfangreiches Thema zum Abholen der Wetterdaten habe ich schon vor 3-4 Wochen gelesen. Aus dem Topic ist mir am Ende nur nicht klar geworden, was für mich nun das richtige ist. Das liegt sicherlich auch daran, dass ich nicht weiss, was ich überhaupt an Input benötige, dass die Flows am Ende dann auch den richtigen Lüftungszeitraum bestimmen.
Was genau meinst du "die Logik mit Triggern definieren"?
Scheduler Todes und Chronosnodes schau ich mir dieser Tage mal an.
Ansonsten war schon bei Erstellung dieses Themas meine Idee, zunächst mal Temp-Max und Minimum abzuholen und in eine Contextvariable zu schreiben. Zuerst habe ich überlegt, z. B. mit einem Big-Timer zu arbeiten, welcher ja den Vorteil hat, auch einen Input zu haben, womit man den Timer überschreiben und auf Off setzen kann. Wenn ich es aber streng einfach nach Winter- u. Sommerzeit unterteile, kann es in den Übergangszeiten (Frühjahr/Herbst) ja trotzdem dazu kommen, dass das System zu ungenau ist.Am Ende fehlt mir die Vorstellung, was ich brauche oder wie ich es am besten umsetze, dass ich z. B. einmal die Wetterdaten um 23Uhr Abends für den Folgetag abhole, dann z. B. 24 Temperaturwerte habe und dann automatisiert entscheide, welcher Zeitraum der beste für die Lüftung auf True ist.
Dazu kommt, dass ich eine vollwertige KNX Wetterstation am Dach habe und tatsächlich auch noch auf Echtzeitdaten zugreifen kann, diese jedoch im Sommer bei direktem Sonnenlicht auf die Wetterstation (weil auf dem Dach) wohl zu hohe Temperaturen liefert. Also auch nicht ganz optimal.VG
Almeda -
@almeda sagte in Gedankenanstoß bezüglich Umsetzung Lüftungsautomatisierung:
Das liegt sicherlich auch daran, dass ich nicht weiss, was ich überhaupt an Input benötige, dass die Flows am Ende dann auch den richtigen Lüftungszeitraum bestimmen.
Was genau meinst du "die Logik mit Triggern definieren"?Nun um ehrlich zu sein, überzeugt mich Deine Logik generell nicht und ich glaube ich würde es auch nicht mit Schedulern und trotzdem relativen starren Gerüst arbeiten würde.
Das Herzstück Deiner Logik ist doch folgende:
Abhängig von der Wettervorhersage für den Folgetag soll bei einer Maximaltemperatur <= Heizschwelle (19°) nur zwischen 11 und 16 Uhr gelüftet werden. Bei Temperaturen zwischen 19° und 25° soll die Lüftung 8 Stunden am Tag laufen, jedoch nur bis zu der Zeit wo die Außentemperatur maximal 23° hat. Bei prognostizierten Temperaturen >25° soll gelüftet werden, wenn die Außentemperatur < Innentemperatur - sonst nicht.
und das
Auch MUSS ja jeden Tag gelüftet werden, sprich würde z.B. in einem heißen Sommer die Außentemperatur nie unter die Innentemperatur fallen, würde das System niemals lüften. Eine gute Planung würde hier dann vllt. die 6 Stunden Nachts wählen, wo z. B. die Temperatur zwar nicht niedriger, aber vllt. = Innentemperatur wäre (z. B. Nachts zwischen 2Uhr und 8 Uhr).
Ich finde diesen Ansatz:
Ich denke nämlich, dass wenn ich nur simple auf die aktuelle Temperatur, die ich ja stündlich auslesen könnte, reagieren lasse, könnte es ja sein, dass ich entweder zu früh oder zu spät lüftegrundsätzlich besser. Ausserdem habe ich verstanden, dass Du Deine schöne Wetterstation nicht verwenden willst und verstehe auch die Gründe, insbesondere da bei einer Lüftung man ja nicht so genau timen muss insofern wäre mir das zu früh oder spät vielleicht auch nicht so wichtig.
Wie Du siehst - liegt aber das ganze bei der Logik und nicht bei der Technik, wie es dann umzusetzen ist.
Also ich würde den Ansatz mit dem stündlichen Auslesen zielführender finden, wobei Du ja dann gerne die Temperatur der Folgestunde aus der Vorhersage verwenden kannst.
Wenn du meine stündliche Vorhersage nimmst, kannst Du doch auch flexibel einfach mit einer Stunde Vorlauf reagieren und im Flowkontext speichern. Wenn Du das jede Stunde machst erhälst Du in dem 1. Element die Temperatur in der aktuellen Stunde, im 2. Element die Folgestunge (es ist jetzt 17:04), die Zeitangaben sind UTC in dem folgenden Screenshot also 17:00.
Es rückt ja jede Stunde einfach weiter, so dass Du in meinem Beispiel um 17 Uhr auf die Temperatur von 18 Uhr reagierst.
Lass mich doch folgendes "Kochrezept" mit Dir überlegen:
Nur ein stündlicher Trigger:
- Ein stündlicher Trigger holt sich die Vorhersage für die nächste Stunde (um Deinem zu früh oder zu spät entgegen zu wirken) aber flexibel auf jede Änderung zu reagieren.
- Dieser stündliche Trigger wertet die Temperatur der Folgestunde aus. Und ab nun wird nicht mehr gescheduled.
- Sprich dieser Trigger ist der Herzschlag Deines Flows.
- Dieser Trigger speichert die Laufzeit pro Tag und lassen wir den Tag mal erst um 8 Uhr morgens beginnen.
So nun lass uns mal Deine Logik auseinander nehmen.
Abhängig von der Wettervorhersage für den Folgetag soll bei einer Maximaltemperatur <= Heizschwelle (19°) nur zwischen 11 und 16 Uhr gelüftet werden. Bei Temperaturen zwischen 19° und 25° soll die Lüftung 8 Stunden am Tag laufen, jedoch nur bis zu der Zeit wo die Außentemperatur maximal 23° hat. Bei prognostizierten Temperaturen >25° soll gelüftet werden, wenn die Außentemperatur < Innentemperatur - sonst nicht.
Fangen wir also um 8 Uhr an:
Temperatur der Folgestunde:
Wenn <19 °C:
Ist es zwischen 11 Uhr und 16 Uhr => Lüften, ansonsten nicht.Wenn 19 ° C und 23° C.
Bei Temperaturen zwischen 19° und 25° soll die Lüftung 8 Stunden am Tag laufen, jedoch nur bis zu der Zeit wo die Außentemperatur maximal 23° hat.
Das widerspricht sind, da ja ab 23 Uhr zugemacht wird, also auch vor den 8 Stunden. Deshalb:
Ist es Lüftungsdauer < 8 Stunden - lüften.Sinkt die Temperatur ja wieder unter 19 ° C tritt ja automatisch die 1. Regel wieder in Kraft.
Wenn über 23°C:
Warum soll zwischen 23 °C und 25 °C nichts passieren?
Also wenn über 23°C, dann lüfte, wenn Außentemperatur < Innentemperatur oder es zwischen 2 Uhr und 8 Uhr früh.
Nächte über 23°C sind auch in heutigen Zeiten noch sehr selten. Wenn es unter 23 °C sinkt, greift ja sofort die 2. Regel und macht Deine 8 Stunden Lüftung voll.Schau mal ob Du mit dieser Logik leben kannst.
==============================================================
In meinen Augen musst Du Deinen stündlichen Trigger NIE verändern - deshalb kannst Du das auch mit einer simplen Inject Node realisieren.Falls Du wegen Urlaub oder sowas den Trigger stoppen willst, dann kannst Du ja einen von aussen steuerbaren Scheduler nehmen.
Den Bigtimer finde ich inzwischen nicht mehr gut, hier entweder die cronplus nodes oder noch flexibler diese Nodes verwenden:Nun noch was zu den in meinen Augen im Moment flexibelsten Time-Nodes:
https://flows.nodered.org/node/node-red-contrib-chronosDas sind in meinen Augen derzeit die flexibelsten Nodes die ich kenne und die können auch über den Kontext frei definieriert werden.
Dazu gibts auch eine tolle Beschreibung: https://github.com/jensrossbach/node-red-contrib-chronos/wikiStatt mit einer Switch Node zu arbeiten - kannst Du dann die Chronos Scheduler Node verwenden für Deinen Trigger und dann eine Zeitfilternode macht den Rest sehr übersichtlich - da Du mit JSONATA direkt deine Temperatur abfragen kannst:
Also wenn Temperatur kleiner 19° C und zwischen 11 Uhr und 16 Uhr hier in einer einzigen Node dargestellt ohne viel Programmieraufwand. -
@Almeda
Ich habe eine ähnliche Situation - also nur Zuluftventilatoren- KEINE Abluft, denn dann kann ich mir über den Unterdruck Kohlenmonoxid über den Kamin reinziehen!!! (Dein Schornsteinfegermeister klärt dich hoffentlich gerne auf).
Hatte ähnliche Überlegungen wie Du....
Reduziert habe ich das Ganze schließlich so:
Ich entscheide über einen Button am Tablett "Lüftung Auto" on/off.
Dann geht bei Sonnenuntergang die Lüftung an und gegen 5Uhr wieder aus.
Zugegeben trivial, aber funktioniert super. Im Winter lüfte ich überwiegend über Fenster - im Sommer in der Nacht per Ventilator.
Viel mehr wirst Du, meiner Meinung nach, auch mit der "ausgefeislten" Logik nicht erreichen können.VG Torsten
-
@schneidy76
Vielen Dank für deinen Beitrag.
Das mit dem Kamin ist kein Problem, wir haben nämlich keinen.
Ansonsten hast du recht, mir ist das zu trivial. Im Grunde hast du ja die Lüftung hinter einen Zeitschaltuhr gehängt, der du einen Aus-/Ein-Knopf verpasst hast. Das habe ich jetzt auch schon so ähnlich. Nur dass mein Ein-/Aus-Knopf ein Sommer-/Winter-Knopf ist.
Ich denke ja schon ne ganze Weile darüber nach und meine oben genannten Kriterien sind ja genau aus solchen Überlegungen gewachsen.
Mir ging es mehr darum, dass ich nicht wusste, wie ich meine Ideen in Node-Red umsetzen und zusammenbauen soll. Aber wie sagt man immer: "Wenn du es dir vorstellen kannst, kannst du es auch tun."
Was mir bei dir z. B. im Sommer schon fehlen würde: Oft ist es ja in heißen Sommern manchmal bis 3 Uhr nachts draußen immer noch >Raumtemperatur. Dann saugst du dir also von Sonnenuntergang von z. B. 22Uhr - 3 Uhr die warme Luft rein.
Am Beispiel von mickym sieht man ja, dass es logsicher/smarter geht.@mickym
WOW! Vielen Dank für deinen Input. Du hast recht, es ist meinerseits stellenweise zu komplex gedacht.
Aber mit deinen Ausführungen, glaube ich, aktuell alles nötige zu haben und werde mich am Wochenende mal raussetzen und versuchen, das umgesetzt zu bekommen.
Es werden dabei sicherlich weitere Fragen auftauchen, daher werde ich mich bald mit dem Ergebnis wieder melden