Eine Markise ist recht empfindlich, wenn die Natur mit mehr als nur der Sonne einwirkt. Meine Markisenautomatik soll primär der Verschattung meiner Terrassentüren dienen, ohne das ich dabei die Rollos schließen muss.
Inhalt
Voraussetzungen
- Für diese Anleitung benötigst Du ein lauffähiges NodeRED, wie im Beitrag „RedMatic auf der RaspberryMatic installieren“ beschrieben ist.
- Eine Wetterstation, welche dir mindestens liefert, ob es regnet, wie die Windgeschwindigkeit ist und ob verschattet werden muss. Zusätzlich verwende ich noch die Angabe für Windspitzen.
Ob verschattet werden muss, kann man auf vielfältige Art ermitteln. Ich nutze dafür den Temperaturdifferenzsensor des Wetterstations-Bausatzes „Weatherman 1“ von Dr. Stall, welche mittlerweile durch den „Weatherman 2“ abgelöst wurde. - Als Aktor verwende ich den Rolloaktor HMW-LC-Bl1-DR*, es gehen jedoch ebenso die anderen Homematic IP-Rollo-Aktoren HmIP-BROLL* oder HmIPW-DRBL4*. Zur Not natürlich auch ein Shelly 2.5* 😉
Funktionsumfang
Da die Parameter für eine Markisenautomatik sehr individuell sind und abhängig von der Befestigung, der Größe der Markise, vom Standort und natürlich den persönlichen Vorlieben, stelle ich im Folgenden die für mich passenden Einstellungen als Anregung für Deine Markisensteuerung vor.
- Die Markise soll nur automatisch verfahren, wenn jemand zu Hause ist, um Schäden vorzubeugen. Diesen Punkt realisiere ich mit einer Präsenzerkennung unserer Mobiltelefone und wird über eine Variable dargestellt.
Die Präsenzerkennung ist nicht Bestandteil dieser Anleitung. - Die Markise soll im Automatikmodus meine Terrassentüren soweit verschatten, dass keine direkte Sonne auf den Boden des Raumes fällt.
- Bei einsetzendem Regen soll die Markise sofort einfahren. Bisher hat sich schlechtes Wetter meist durch dunkle Wolken angekündigt, so dass bereits vorher die Variable für „Beschattung notwendig“ auf
false
gestellt wurde. - Bei Windspitzen über einen gewissen Wert, welcher von der Markise abhängig ist, soll die Markise für mindestens eine Zeitspanne eingefahren werden und auch bleiben.
- Die Auslenkung, d.h. wie weit die Markise ausgefahren werden kann, soll windabhängig gesteuert werden.
Umsetzung
Abhängigkeit vom Sonnenstand
Anhand der aktuellen Werte des Sonnenstands kann ich ermitteln, ob und wieviel die Terrassentür unter der Markise verschattet werden muss. Dazu muss die Markise herausfahren, sobald die Sonne die Tür bescheint. Das Verfahren ist ähnlich der Beschattung mittels Rollo, zu der sich viele Anleitungen im Netz finden lassen. Ich lasse dabei die Markise in 20%-Schritten verfahren, dass hat sich bei mir als praktikabel erwiesen.
Den Sonnenstand ermittele ich aller 5 Minuten und schreibe ihn in den globalen Kontext. Diesen Wert nutze ich auch zur Verschattung der anderen Fenster mittels Rollo. Für die Berechnung dient der Node sun-position, der aller 5 Minuten getriggert wird und die aktuellen Werte für meinen Standort ausgibt.
Die Werte für Azimuth und Elevation werden in je einem Switch-Node ausgewertet und damit „berechnet“, bei welchem Sonnenstand die Markise wie weit ausgefahren werden muss. Die Werte für die Auslenkung der Markise habe ich dabei größtenteils empirisch, also durch Beobachtung ermittelt. Bei der Rolloverschattung kann man das besser berechnen, da das Rollo direkt vor dem Fenster sitzt – das ist bei unserer Markise nicht der Fall 🙂 und es kann auch nicht immer komplett verschattet werden.
Die Auslenkung schreibe ich in den Flow-Kontext. Diese Änderung fließt zudem als Nachrichtenobjekt in die nachgelagerte Berechnung für den Parameter Windgeschwindigkeit.
Abhängigkeit vom Wind
Der Wind spielt bei meiner Markise eine große Rolle, da es fast keinen Tag gibt, an dem es keinen Wind gibt. Daher werte ich zum einen die Windgeschwindigkeit aus, die welche die maximale Auslenkung der Markise vorgibt und zum anderen die Windspitzen. Liegen letztere über 11 km/h, so wird die Markise sofort eingefahren und bleibt es auch die nächsten 30 Minuten. Dazu verwende ich wiederum Kontext-Variablen, die mir die aktuelle Windgeschwindigkeit und ob es windig ist verraten. Damit nur geringe Änderungen in der Windgeschwindigkeit nicht zu einer nervösen Markise führen, dient ein rbe-Node um erst Änderungen größer 0,5 km/h weiterzuleiten.
Diese beiden Werte werden in einem Function-Node ausgewertet, welcher die maximale Auslenkung berechnet und in den Flow-Kontext schreibt. Zusammen mit der sonnenstandsabhängigen Auslenkung führen sie zur Berechnung der eigentlichen Auslenkung für die Markise.
Abhängigkeit von der „Sonnentemperatur“
Die „Sonnentemperatur“ ist ein Wert, den ich von der Wetterstation erhalte. Dazu ist ein schwarz lackierter Temperatursensor unter einer Glaskuppel der direkten Sonnenstrahlung ausgesetzt. Damit lässt sich gut feststellen, ob gerade die Sonne scheint, da diese Temperatur meist viel höher als die der Luft ist.
Dieser Wert teilt mir also mit, ob eine Verschattung notwendig ist. In meinem Fall ist muss dieser größer als 31 °C sein. Auch hier gibt es wieder eine „Glättung“ von 15 min, damit bei einer kleinen Wolke nicht gleich die Markise wieder reinfährt.
Weitere Eingangsgrößen
Vom Regensensor bekomme ich mitgeteilt, ob es gerade regnet. Bei Regen fährt die Markise auch im manuellen Betrieb nicht raus. Sollte sie bereits draußen sein, fährt sie sofort rein.
Weiterhin fährt sie zeitgesteuert nach Dämmerungsbeginn, spätestens jedoch 22:00 Uhr in ihre Behausung.
Zusammenbau
Steckt man die einzelnen Zweige zusammen, ergibt sich ein komplex aussehendes Gebilde. Wenn man es optisch ein wenig trennt, ist es jedoch gut zu überblicken. Für das Finetuning habe ich mir an verschiedene Stellen einen Debug-Node oder eine Telegram-Benachrichtigung gehängt. So sehe ich, welche Berechnungsgrundlage (Windstärke, Windspitze, Sonnenstand, …) für die aktuelle Auslenkung der Markise herangezogen wurde.
Fazit
Die Markise hat mit diesem Flow nun eine Saison, inklusive einem Winter, hinter sich und hat sich noch nicht beschwert. Als Bewohner ist die Beschattung per Markise angenehmer als eine Rolloverschattung, da man so noch nach draußen blicken kann. Im Hochsommer schliessen sich aber auch die Rollos, die Hitze wird sonst unerträglich.