Beschattungslösung mit Node-RED und BOSCH SMART HOME

HINWEIS: Unbezahlte Werbung aufgrund von Markennennungen

Rolläden nach dem Sonnenstand Steuern ohne Wetterstation

Im Smart-Home Bereich gibt es mittlerweile wirklich viele Dinge, die eher nur Spielereien sind und wenig Nutzen schaffen. Eine smarte Rollladensteuerung, die je nach Sonnenstand und Tageszeit die Fenster beschattet und für ein angenehmes Raumklima sorgt, ist jedoch ein echter Gewinn und möchte ich nicht mehr missen.

Nach einigen Recherchen habe ich mich Anfang des Jahres für die Lösung von Bosch Smart Home entschieden. Das Bosch Smart-Home System baut teilweise auf der Technik von Homematic IP auf, kommt jedoch mit einigen Verbesserungen daher. Das kaufentscheidende Argument war für mich, dass ich bei Bosch, die Steuerung auch autark im Heimnetzwerk nutzen kann und auf keine Internetverbindung oder Clouddienst angewiesen bin. Daneben ist die Smartphone App von Bosch deutlich besser als die von Homematic IP und wer ein Philipps Hue System hat, kann seine Leuchten auch mit der Bosch-App steuern und automatisieren.

Bisher wurden meine Rollläden, wie man das kennt, über normale Taster in den jeweiligen Räumen bedient. Das bedeutet für mich, morgens bevor ich aus dem Haus gehe, einmal in allen Zimmern die Rollläden öffnen und abends wiederum herunterfahren. Zusätzlich auch überlegen, ob es an dem Tag heiß wird und ggf. morgens schon mal die Süd-Westseite beschatten damit Tagsüber nicht die Sonne reinknallt. Als Programmierer reizt es mich natürlich diesen Prozess zu automatisieren. Wie ich dabei vorgegangen bin könnt ihr nun in folgendem Artikel lesen.

Schritt 1. Hardware – Bosch Smart Home – Rollladensteuerung

Zunächst wurden alle Rollladentaster im Haus durch die Bosch Unterputz Rollladensteuerungsmodule ersetzt. Hierzu musste ich in die bestehenden Steckdosen ein Neutralleiter einziehen, da die analogen Rollladenschalter ohne Neutralleiter funktionierten. Glücklicherweise war in den benachbarten Steckdosen Neutralleiter vorhanden die ich brücken konnte. Das bestehende Schalterprogramm konnte durch die Verwendung von passenden Adaptern erhalten bleiben.

Da hier arbeiten am 230V Netz durchgeführt werden, muss ich an dieser Stelle darauf hinweisen, bitte nur selbst machen, wenn ihr wisst, was ihr tut und eine entsprechenden fachlichen Hintergrund aufweist! Wenn ihr euch nicht auskennt lasst die Finger weg und überlasst die Installation einer Fachkraft.

Die Installation und Inbetriebnahme verlief problemlos und ohne nennenswerte Schwierigkeiten. Von Haus aus bietet die Bosch App leider nur die Möglichkeit, die Rollläden zum Sonnenaufgang bzw. Sonnenuntergang oder einer speziellen Uhrzeit zu steuern. Hier kommt nun die zweite Hardware, ein Raspberry PI ins Spiel.

Im Zuge meines Projekts habe ich mir einen Raspberry Pi 4 mit 4 GB Arbeitsspeicher gekauft der als Smart-Home Zentrale dienen soll. Die Dokumentationsunterlagen der PI-Foundation sind wirklich gut und ermöglichen einem den einfachen Einstieg. Empfehlen kann ich zusätzlich folgenden Leitfaden zur Erstinbetriebnahme. Nach etwa zwei Stunden Installation und Konfiguration des Betriebssystems konnte ich mit Node-RED beginnen das Bosch System zu steuern.

Schritt 2. Software – Node-RED

Bei der Frage nach der richtigen IoT-Software gibt es mittlerweile eine große Auswahl für den Raspberry PI, ich habe mich für Node-RED entschieden, da mir die Arbeitsweise mit den Flows am Besten gefallen hat, wer alternativen sucht dem sei hier noch ioBroker ans Herz gelegt. Wer sich einen Überblick verschaffen möchte, dem empfehle ich noch folgendes Video von c’t, in dem verschiedene Systeme verglichen werden.

Node-RED ist ein flussbasiertes Programmiertool, das ursprünglich von IBM entwickelt wurde und seit 2016 Teil der JS Foundation ist. Die flussbasierte Programmierung wurde in den 1970er Jahren von J. Paul Morrison erfunden und beschreibt das Verhalten einer Anwendung als Netzwerk von Blackboxes oder „Nodes“, wie sie in Node-RED genannt werden. Jede Node hat einen genau definierten Zweck. Es werden einige Daten gegeben, es macht etwas mit diesen Daten und dann gibt es diese Daten weiter. Das Netzwerk ist für den Datenfluss zwischen den Knoten verantwortlich. Dieses Modell eignet sich sehr gut für die visuelle Darstellung und macht es einem breiteren Benutzerkreis zugänglicher. Wenn jemand ein Problem in einzelne Schritte aufteilen kann, kann er einen Fluss betrachten und ein Gefühl dafür bekommen, was er tut.​[1]​

Für Node-RED gib es eine große Anzahl an Zusatzmodulen u.a. auch für das Bosch Smart Home System. https://flows.nodered.org/node/node-red-contrib-bosch-shc

Schritt 3. Steuerung in Node-RED nach dem Azimut-Winkel

Der Sonnenstand

Um meine Steuerung zu Programmieren war es zunächst nötig eine Messung an den Hausseiten durchzuführen. Denn ich musste wissen, wann die Sonne auf ein Fenster scheint und wann das Fenster im Schatten liegt. Die Uhrzeit kann man hierfür nicht nutzen, denn diese ändert sich mit den Jahreszeiten. Man muss sich deshalb nach dem sogenannten Azimut-Winkel richten. Dieser Winkel beschreibt einen auf die Himmelsrichtung ausgerichteten Horizontalwinkel, ein Begriff aus der Astronomie.

Zunächst wurde der Sonnenverlauf beobachtet und die Azimut-Winkel bestimmt, wann ein Fenster im Bereich der Sonneneinstrahlung liegt.

Beispiel: Auf der Ostseite beginnt die Sonne ab einem Winkel von 60° (Nord-Ost) bis zu einem Winkel von ca. 140° (Süd-Ost) in das Fenster zu scheinen. Diese Zahlen habe ich nun für alle Hausseiten bestimmt.

In Node-RED benötigt man lediglich noch eine Funktion, welche eine Message sendet, sobald die Sonne den jeweiligen Azimut erreicht hat. Glücklicherweise gibt es hierfür eine fertige Node Names node-red-contrib-sun-position. Durch Eingabe meines Standorts per Geokoordinaten berechnet diese NODE alle wichtigen Werte zur Sonnenposition, perfekt.

Die Regel für die Ost-Fenster habe ich wie folgend definiert:

BESCHATTUNG AKTIVIEREN WENN: AZIMUT ZWISCHEN 60° und 140° und SONNENHÖHE (Meridian) über dem Horizont >5°. (Wenn die Sonne gerade erst aufgegangen ist möchte ich noch nicht beschatten.)

Dieses Regelwerk alleine reicht jedoch noch nicht, denn ein Faktor ist noch nicht berücksichtigt. Das Wetter, aktuell würde bei Regen und Bewölkung diese Regel ebenfalls greifen.

Wetter

Für die Steuerung habe ich zusätzliche Regeln definiert. Zum einen wird die Beschattung anhand der vorhergesagten Tages-Höchsttemperatur geregelt. Wenn es an einem Frühlingstag maximal 20°C warm wird, dann werden die Fenster nur zur hälfte beschattet (Rollladenposition 50%), bei mehr wie 25°C wird zu 80% beschattet und liegt die Temperatur über 30°C dann wird zu 100% beschattet. Aktuelle Wetterdaten für den persönlichen Standort kann man mit der „ONE-CALL-API“ von openweathermap abrufen siehe: https://openweathermap.org/api/one-call-api.

Zusätzlich nutze ich standardisierte Wetterzustände der API, wie REGEN oder BEWÖLKT um die Steuerung noch besser auf das Wetter abzustimmen.

Wie das ganze nun in Node-Red aussieht könnt ihr als nächstes sehen.

Node-RED Flows

Der Code enthält die oben erläuterten Logikfunktionen und kann gerne für eigene Projekte genutzt werden kann.

Benachrichtigungen über TELEGRAM-BOT

Zur Kontrolle und für Status-Informationen sende ich mir bei Schaltzeitpunkten eine Nachricht auf das Smartphone über einen Telegram-Bot. Das war vor allem zu Beginn sehr hilfreich, um die Funktion des Systems überwachen zu können und Bugs zu beheben.

Nachfolgender Auszug an Statusmeldungen zeigt, wie im Verlaufe des Tages die Beschattung durchgeführt wird. Pünktlich zum Sonnenaufgang werden alle Rollläden, ausgenommen die im Schlafzimmer ?, geöffnet. Danach beginnt die Regelung zunächst mit der Ostseite und im weiteren Tagesverlauf wird die West- und Nordseite beschattet. Auf der Südseite habe ich eine Gaube ohne Rollläden und eine Terrassentür, die aufgrund des Vordachs immer im Schatten liegt, daher findet hier keine Beschattung statt. Etwa eine halbe Stunde nach dem Sonnenuntergang werden dann am Abend alle Rollläden geschlossen.

SmartHome, [31.07.20 06:04]
? Beschattung:
Alle Rollläden wurden geöffnet.

SmartHome, [31.07.20 07:30]
? Aktuelles Wetter
Wetterlage: Klarer Himmel
Temperatur: 16.8°C / 67 % rel.Feuchte
tMinMax: 18.63°C / 32.31°C
Taupunkt: 10.6
Luftdruck: 1017 hPa
Regenmenge: l/m²
Wind: 3.6 km/h aus West (340°)

? Aktueller Sonnenstand
Azimuth: 76.7
Altitude: 12.7
Sonnenaufgang: 06:04 Uhr
Sonnenuntergang: 21:04 Uhr

SmartHome, [31.07.20 07:47]
? Schutz für Ostseite: true
Rollladen-Sollwert: 100%
Status: Sonnenschutz
Wetter: Klarer Himmel / 32.32°C
Azimuth: 79.7 / true
Altitude: 15.4

SmartHome, [31.07.20 12:07]
? Schutz für Ostseite: false
Rollladen-Sollwert: 0%
Status: Sonnenschutz
Wetter: Klarer Himmel / 31.42°C
Azimuth: 141.4 / false
Altitude: 54.9

SmartHome, [31.07.20 13:22]
? Schutz für Westseite: true
Rollladen-Sollwert: 100%
Status: Sonnenschutz
Wetter: Klarer Himmel / 31.92°C
Azimuth: 173.6 / true
Altitude: 59.8

SmartHome, [31.07.20 18:22]
? Schutz für Nordseite: true
Rollladen-Sollwert: 100%
Status: Sonnenschutz
Wetter: Klarer Himmel / 36.03°C
Azimuth: 268.9 / true
Altitude: 25.6

SmartHome, [31.07.20 20:32]
? Schutz für Westseite: false
Rollladen-Sollwert: 0%
Status: Sonnenschutz
Wetter: Klarer Himmel / 32.79°C
Azimuth: 292.4 / true
Altitude: 4.5

SmartHome, [31.07.20 20:32]
? Schutz für Nordseite: false
Rollladen-Sollwert: 0%
Status: Sonnenschutz
Wetter: Klarer Himmel / 32.79°C
Azimuth: 292.4 / true
Altitude: 4.5

SmartHome, [31.07.20 21:31]
? Beschattung:
Alle Rollläden wurden geschlossen.

Fazit

Mittlerweile bin ich ziemlich zufrieden mit der Steuerung. Nach einer Testphase, läuft das System nun problemlos und autark. Für die Zukunft überlege ich noch, eventuell eine Wetterstation nachzurüsten, da die Daten der WetterAPI manchmal von der Realität abweichen, fürs erste genügt mir aber der Service. Ich erspare mir das tägliche manuelle Rollladen hoch-/runterfahren und an heißen Tagen bleibt die Hitze draußen. Falls es noch Fragen oder Anmerkungen gibt dürft ihr mich gerne kontaktieren.

Update 17.12.2022

Nach zahlreichen Nachfragen habe ich nun auch den Mainflow hochgeladen.

Quellen

  1. [1]
    “About Node-RED,” Node-RED, Jul. 2020. https://nodered.org/about/ (accessed Jul.2020).
  2. [2]
    “Datei:Kompassrose.svg,” wikipedia.org. https://de.m.wikipedia.org/wiki/Datei:Kompassrose.svg (accessed Jul. 31, 2020).
  3. [3]
    “File:HorSys.svg,” commons.wikimedia.org. https://commons.wikimedia.org/wiki/File:HorSys.svg (accessed Jul. 31, 2020).

Wie hilfreich war dieser Beitrag?

Klicke auf die Sterne um zu bewerten!

Durchschnittliche Bewertung 4.9 / 5. Anzahl Bewertungen: 15

Bisher keine Bewertungen! Sei der Erste, der diesen Beitrag bewertet.

Weil du diesen Beitrag nützlich fandest...

Folge mir in sozialen Netzwerken!

Es tut mir leid, dass der Beitrag für dich nicht hilfreich war!

Lasse mich diesen Beitrag verbessern!

Wie kann ich diesen Beitrag verbessern?

20 Gedanken zu „Beschattungslösung mit Node-RED und BOSCH SMART HOME“

  1. Hallo Frederik Mussler
    Ich habe eine ähnliche Steuerung aufgebaut und bin soweit auch zufrieden. Ein bisher nicht gelöstest Problem stellt jedoch das Wetter dar, lässt doch die Genauigkeit der Wetterdaten von openweathermap doch einige Wünsche offen. So kann es durchaus sein, dass die Rolladen während des Tage mehrfach hoch- und niederfahren. Eine eigene Wetterstation könnte hier sicherlich noch behilflich sein aber es bleibt immer noch die Frage offen, wie gehe ich mit der Helligkeit um. Gemeint sind Einflüsse wie Nebel oder Wolken. Da reagiert meine Anlage sehr schlecht darauf und ich bin nach wie vor auf der Suche nach einer Lösung. Eventuell über Helligkeitssensoren, aber da bin ich mir nicht sicher ob die Empfindlichkeit so genau eingestellt werden kann, dass eine Regelung der Rolladen sinnvoll wird. Haben sie sich darüber auch schon Gedanken gemacht?
    Freundliche Grüsse
    Martin Casagrande

    Antworten
    • Hallo Martin,

      was die Wetterdaten angeht gebe ich dir absolut recht, teilweise sehr träge und manchmal stimmts überhaupt nicht. Ich sag nur, Leichter Regen trotzt strahlender Sonne. Das gleiche Problem habe ich also auch. Gerade an manchen Sommertagen, wenn es bewölkt und trotzdem sehr warm ist. Ich habe auch schon über Helligkeitssensoren nachgedacht, von Philipps Hue habe ich ein paar Bewegungsmelder In und Outdoor. Ich wollte diese Werte mal abgreifen und schauen ob sich damit arbeiten lässt, bin aktuell aber noch nicht dazu gekommen. Falls du eine Lösung gefunden hast würd ich mich über eine Rückmeldung freuen. Liebe Grüße Frederik.

      Antworten
    • Hallo,

      vielleicht bringen Dir die Daten vom DWD mehr. Dort gibt es einen Abruf (MOSMIX-Daten) über „Globale Einstrahlung“. Vielleicht lässt sich damit eine IF / ELSE erarbeiten.

      Liebe Grüße

      Antworten
  2. Hi ,
    die Lösung ist einfacher als man denkt. Man benötigt zwei Temperatursensoren. Einen platzierst du so, dass die Sonne ihn von möglichst vielen Seiten bescheinen kann. Eventuell kannst du ihn noch in eine schwarze Plastikdose oder Glas positionieren. Den anderen Sensor stellst du ganz regulär an eine beschattete Stelle. Die Temperaturdifferenz ist dann der Indikator für die STärke der Sonneneinstrahlung und ob du beschattest oder nicht.
    Gruß Robert

    Antworten
  3. Hallo Herr Mussler,
    erst einmal bin ich beeindruckt von Ihrem Beitrag, auf den ich bei der Suche nach einer Möglichkeit Bosch Rolladenschalter per Funk von einem Pi aus zu steuern gestoßen bin. Aus Ihrem Artikel geht leider nicht hervor, wie der Pi Rolladenschalter steuert. Direkt (PI -> Aktor) oder indirekt (Pi -> Zentrale -> Aktor). Ich suche die direkte Lösung. Dazu müsste ein Transceiver an den Pi gesteckt werden. Können Sie mir als Pi-Neuling einen Tipp geben?

    Gruß Wilfried

    Antworten
  4. Vielen Dank für die Info. Mein Ziel ist, Sensoren und Aktoren unterschiedlicher Hersteller mit einen Raspberry Pi ohne zusätzlicher Zentralen zu koppeln und dafür ein eigenes Dashboard mittels Node-Red zu realisieren. Mit Homematic funktioniert das scheinbar. Fritz!Dect habe ich schon eingebunden.

    LG
    Wilfried

    Antworten
  5. Hi, danke für das Teilen deines Codes. Es hilft sehr. Mir ist aufgefallen, dass in dem Teil für das Wetter beim Setzen der Niederschlagsvariablen der Variablenname bei PreceptionProtection=on und PreceptionProtection=off voneinander abweichen.

    Weiterhin noch ein Tipp um genauere Wetterdaten zu bekommen: Du könntest auch den Deutschen Wetterdienst abfragen. Es gibt dazu auch Node Red Knoten. Die Tageshöchsttemperatur wird zwar nicht geliefert, dafür aber eine genauere Wind und Niederschlagsangabe über MOSMIX.

    freundliche Grüße

    Antworten
  6. Hallo, wollte gerade deinen Flow Beschattung importieren aber das funktioniert leider nicht mehr, es wird nur der erste Baustein importiert. Die contrib-sun habe ich bereits installiert. Wäre super wenn du das mal kurz prüfst oder neu exportierst.
    Grüße

    Antworten
  7. Hi Frederik,

    da ich kompletter Beginner bin, würde ich mich über den Mainflow sehr freuen.
    Grade die nodes „“Werte festlegen“ und die anschließende Aufteilung wären wirklich interessant.

    Vielen Dank 🙂

    Marc

    Antworten
  8. Hallo Frederik,

    wäre es möglich, dass Du auch deinen Mainflow veröffentlichst? Auch wenn vieles nicht 100%ig adaptierbar ist, würde ich mich freuen 🙂

    Beste Grüße,
    Marc

    Antworten
  9. Hallo Frederik,
    ich bin durch Google auf Deinen Blog gestoßen und habe diesen mit wachsendem Interesse studiert, da ich mich mit ähnlicher Problematik beschäftige und meine Rollläden automatisiert nach Wetter und Sonneneinstrahlung steuern will.
    Grundlage ist für mich ebenfalls die Bosch Smart Home Rolladensteuerung in Verbindung mit einem Raspberry Pi 4 und einem ZigBee Controller (CC2652).
    Raspberry OS habe ich bereits installiert und beschäftige mich gerade mit node-red. Habe zwar gewisse Erfahrungen mit C++, aber node-red hat da doch eine etwas andere Herangehensweise. Sollte aber lösbar sein. Vielen Dank für das teilen Deines Codes.
    Meine Bitte: könntest Du mir auch Deinen Mainflow zur Verfügung stellen, damit iich damit lernen und den adaptieren kann? Wäre sehr hilfreich für meine Lernphase.
    Vielen Dank und viele Grüße
    Hans

    Antworten

Schreibe einen Kommentar