Intelligente Rolladensteuerung mit openHAB 2

In diesem Artikel zeige ich dir, wie du die Rollläden deines Smart Homes mit openHAB automatisieren und wirklich “smart” machen kannst. Ich werde dabei vor allem auf eine Steuerung nach Zeit und Sonnenstand eingehen.

Steuerung nach Zeit

Um die Rollläden zu einer bestimmten Zeit zu bewegen, musst du eine Regel in openHAB erstellen. Lege also im Ordner “openhab-conf/rules” eine neue Datei an, z.B. rollos.rules an. Wenn die Rollladen beispielsweise jeden Morgen außer am Wochenende um 6 Uhr 30 hochgefahren werden sollen, müsste die Regel ähnlich wie die Folgende aussehen:

rule "Rolllaeden morgens"

when
    Time cron "0 30 6 ? * MON,TUE,WED,THU,FRI"    
then
    sendCommand(gRollos, UP)    
end

Die Gruppe “gRollos” musst du dann natürlich durch deine Gruppe mit Rollläden ersetzen. Wenn du noch keine Gruppe dafür erstellt hast, erfährst du in diesem Artikel, wie du dies einfach tun kannst.

Wenn du die Uhrzeit oder die Wochentage ändern möchtest, kannst du z.B. mit diesem Generator einen anderen Time Cron erstellen.

Für eine Steuerung nach einer flexibel anpassbaren Zeit, die du in der Benutzeroberfläche, also z.B. in der openHAB App, festlegen kannst, findest du in diesem Artikel eine ausführliche Erklärung.

Steuerung bei Sonnenuntergang

Du kannst die Regel mit dem Astro Binding auslösen. Wie du dieses aktivierst und einrichtest, kannst du in diesem Artikel nachlesen.

Eine Regel bei der die Rollläden beim Sonnenuntergang auf eine bestimmte Höhe herunterfahren, würde wie folgt aussehen:

rule "Rolllaeden abends"
 
when
    Channel 'astro:sun:37f6fe1d:night#event' triggered START
then
    gRollos.sendCommand(40)
end

Wenn du noch Fragen hast, stelle sie gerne in einem Kommentar oder beschreibe deine Anwendung von intelligenter Rollladensteuerung.

Jan

Ich bin Jan und ich freue mich, dass du meinen Blog gefunden hast. Ich blogge in meiner Freizeit über Smart Home, 3D Druck und Technik und versuche, dir mit meinen Beiträgen möglichst gut zu helfen.

Dieser Beitrag hat 8 Kommentare

  1. Patrick Ritter

    Hey

    Ich bin beim Recherchieren für mein Haus, welches sich gerade noch in der Rohbau Phase befindet, bezüglich smarter Rolladen auf deinem Blog gestoßen. Kannst du kurz schreiben welche Hardware (in Bezug auf die Rollladen) für die Steuerung hierzu verbaut hast? Sicherlich kabelgebundenen?

    Vielen Dank im Voraus

    Grüße Patrick

    1. Jan

      Hallo Patrick,

      wir haben unser Smart Home leider erst angefangen nachzurüsten, nachdem das Haus gebaut war 😑.

      Deswegen habe ich hier mehrere Roller Shutter 2 mit Z-Wave im Einsatz (Einbau unter dem Schalter, da die Rollladen zum Glück vorher schon motorisiert waren, nur eben „dumm“, also mit Schalter).
      Das funktioniert aber nicht wirklich optimal und ich würde sie ehrlich gesagt nicht weiterempfehlen. Die Positionen etc. werden nicht richtig erkannt und es ließe sich auch einfacher mit z.B. einem Shelly für einen Bruchteil des Preises umsetzen. Das wäre dann über WLAN.

      Ich bin leider nicht so in dem kabelgebundenen Markt drin, das kommt glaube ich auch sehr darauf an, welches System du bis jetzt bei deinen anderen Geräten nutzt/planst. Welches wäre das denn? KNX?

      Viele Grüße

      Jan

      1. Patrick Ritter

        Hey Jan

        sorry für die späte Antwort. Andere Geräte sind bis Dato nur Lampen (über Zigbee) und ein Staubsaugroboter (über tuyapi) geplant. Die Rolladen selbst kommen mit einen einfachen Kabel bzw. ich bin hierbei noch komplett frei. Bus / oder LAN-Kabel zum HWR – da wo der Rapi dann mit stehen wird – sind bis dato noch nicht geplant, jedoch noch alles möglich. Was würde man denn da als Kabel verlegen lassen bzw. was kommt denn da für eine Steuerung zwischen Rolladen und Raspi? Was haben Sie als Funksystem im Einsatz? Wäre natürlich auch eine Option. Irgendwie ist der Markt an SmartHome Möglichkeiten dahingehend völlig überflutet 🙂 – Ziel ist jedoch definitiv der Einsatz im openHAB.

        Vielen Dank im Voraus

        Grüße Patrick

        1. Jan

          Hallo Patrick,

          kein Problem ;-).
          Also hast du ja im Moment schon Zigbee als kabelloses System, richtig? Nutzt du einen Raspberry Pi mit einem Zigbee-Stick? Was genau meinst du mit HWR?
          Ich habe im Moment Rollladenschalter mit dem Funkstandard Z-Wave im Einsatz. Damit bin ich aber nicht wirklich zufrieden, da ich langfristig von Z-Wave auf hauptsächlich WLAN umsteigen möchte.
          Um die Rollladen mit dem Rapsberry Pi zu verbinden, baut man einen Microcontoller bzw. Rollladenaktoren an die Kabel, die von den Rollladen kommen. Das kann entweder Unterputz sein, sodass man keinen Schalter mehr an der Wand sieht, oder zusammen mit einem Schalter eingebaut werden. Diese Rollladenaktoren gibt es von verschiedenen Herstellern und mit verschiedenen Funkstandards. Wenn du dort auch Zigbee verwenden möchtest, gibt es dafür auch welche. Da ich Zigbee selber nicht verwende, kann ich hier leider keine empfehlen, wenn ich sie nicht getestet habe. Wenn du es aber z.B. über WLAN umsetzen möchtest, sollen die Shellys dafür auch sehr gut geeignet sein. Ich benutze im Moment nur Shellys als Lichtschalter, hier ist aber Mal ein Link für einen Artikel über den Einsatz als Rollladenaktor. In dem Schaltplan lässt sich das Prinzip, wie man ihn anschließt, auch ganz gut nachvollziehen. Die Shellys sind auch sehr preiswert im Vergleich zu anderen Lösungen.
          Dieser Rollladenaktor kommuniziert dann mit dem Raspberry Pi mit openHAB und das ganze lässt sich dann als Thing und Item mit der entsprechenden Erweiterung für den Funkstandard einbinden. Zum Einbinden von neuen Geräten habe ich hier auch eine Anleitung geschrieben.

          Ich hoffe, dass ich dir damit ein wenig weiterhelfen. Die Entscheidung ist immer etwas schwer, auf welche(n) Funkstandard(s) man setzten möchte. Zum Glück lassen sich ja mit openHAB mehrere Herstelle und Systeme kombinieren, sodass man nicht an einen gebunden ist. Wenn du noch Fragen hast, frag gerne nochmal nach ;-). Ich würde mich freuen zu hören, für welche Lösung du dich entschieden hast.

          Viele Grüße
          Jan

  2. Christoph

    Ich habe in meinem Haus Shelly 2.5 zur in Verbindung mit einem Openhab2@PasPi4 integriert. Der Vorteil ist die automatische Kalibrierung (auch ohne Shelly-Cloud möglich) mittels Shelly-Firmware. Openhab kann so auch auslesen wie weit die Rolladen geöffnet bzw. geschlossen sind. Die Anzeige und das Anfahren der Positionen kann dabei von 0-100% frei gewählt werden.
    Ich taste mich gerade an eine zeit- und temperaturabhängige Steuerung für meine Rolläden heran, da wäre es schön, wenn die bei Tag nicht komplett verdunkeln, sondern nur abschatten kann.

    Meine Frage: Ließe sich daher zum gezielten Anfahren einer Positionen im Befehl “sendCommand(gShutter, UP)” das UP gegen einen Prozentsatz z.B. 50%? Wenn ja, wie müßte der Wert übergeben werden (Syntax)?

    1. Jan

      Hallo Christoph,

      schön, dass der Shelly bei dir funktioniert. Ich überlege auch langsam, die Fibaro Roller Shutter mit Z-Wave durch Shellys auszutauschen. Bei mir funktioniert das mit den Prozenten nämlich nur bei einem Teil der Rollos 😑.

      Nun zu deiner Frage:
      Ja, es lassen sich auch gezielte Positionen übergeben. Das sollte mit gShutter.sendCommand(50) funktionieren (auf das Beispiel bezogen). Ich hoffe, ich konnte dir damit weiterhelfen. Ich habe den kleinen Teil jetzt auch im Beitrag ins zweite Beispiel eingebunden 😉.

      Mich würde es sehr interessieren, wie du deine zeit- und temperaturabhängige Steuerung umgesetzt hast, wenn es fertig ist 👍. Wenn du noch Fragen hast, immer gerne fragen.

      Viele Grüße
      Jan

  3. Andreas

    Hallo Jan,
    Ich nuzte schon länger homematic und habe da über Homeputer CL alle meine Rollos mit Zeitschalt- und Astrofunktion gesteuert. Mit gefällt die OpenHAB Oberfläche aber wesentlich bessere und ich habe die Homematicsachen über Rasperrypi schon eingebunden. Die Rollos fahren auch mittels Astrobinding und rules morgens und abends passend runter. Ich möchte aber eine Rules kreieren, die dafür sorgt dass z.B. im Sommer die Rollos frühestens um 6:30 Uhr (wenn möglich über ein Item mit einstellbarer Zeit!) hochfahren, also wenn der Sonnenaufgang vor 6:30 Uhr ist, dann sollen die Rollos nicht mit “Sunrise” hochfahren. Ich bin leider noch etwas Anfänger zumindest was Skripting und Rules anbelangt. (If Sunrise < “6:30” then …). Hoffe du kannst da weiterhelfen?
    VG Andreas

    1. Jan

      Hallo Andreas,

      das klingt ja nach einem sinnvollen Anwendungsfall 👍.

      Ich habe mir vor einigen Wochen dieselbe Frage gestellt, da ich auch unsere Rollläden mit einer in der UI einstellbaren Zeit automatisieren wollte.

      Du könntest deine Idee entweder mit einem einstellbaren Schalter umsetzen, so wie es in meinem neuen Artikel erklärt ist oder das ganze kombiniert umsetzen, sodass die Rollläden zum Sonnenaufgang hochfahren, aber nur, wenn der Sonnenuntergang nach 6:30 Uhr (oder der in dem in der UI eingestellten Schalter) ist, ansonsten fahren sie zur eingestellten Zeit hoch.

      Für den ersten Fall ist der Code sehr ausführlich im Beitrag verfasst und für den zweiten Fall könntest du folgenden Code verwenden:

      Für die Items:

      Switch automatik "Automatik"
      Number automatik_stunde "Stunde"

      Für die Sitemap:

      Frame label="Automatik" {
      Setpoint item=automatik_stunde label="Stunde [%s h]" step=1 minValue=1 maxValue=23
      Setpoint item=automatik_minute label="Minute [%s m]" step=1 minValue=1 maxValue=59
      }

      Für die Rule:

      rule "Automatik"
      when
      Time cron "0 0/1 * 1/1 * ? *"
      then
      if (automatik.state == ON) {
      var sollMinute = (automatik_minute.state as DecimalType).intValue
      var sollStunde = (automatik_stunde.state as DecimalType).intValue
      if (sollMinute == now.getMinuteOfHour && sollStunde == now.getHourOfDay){
      // Deine Befehle zum Herunterfahren der Rollläden
      automatik.sendCommand(OFF);
      }
      }
      end

      rule “Rolllaeden”
      when
      Channel ‘astro:sun:37f6fe1d:night#event’ triggered START
      then
      var sollMinute = (automatik_minute.state as DecimalType).intValue
      var sollStunde = (automatik_stunde.state as DecimalType).intValue
      if(sollStunde < now.getHourOfDay || (sollMinute < now.getMinuteOfHour && sollStunde == now.getHourOfDay)){
      // Deine Befehle zum Herunterfahren der Rollläden
      } else {
      automatik.sendCommand(ON);
      }
      end

      Berichte mir gerne, ob der Code funktioniert, oder ob ich da einen Fehler eingebaut habe ;-).

      In diesem Kommentar habe ich auch schon erklärt, wie man das ganze auch noch auf Monate begrenzen kann.

      Ich hoffe, dass ich dir damit helfen konnte.

      Viele Grüße
      Jan

Hast du Fragen, Anregungen oder einen einfachen Kommentar dazu? Dann poste es hier!

Bitte bedenke, dass alle Kommentare manuell freigeschaltet werden müssen. Das kann teilweise ein bisschen dauern, du kannst dich aber mit der unten aufgeführten Funktion benachrichtigen lassen, wenn er beantwortet wurde. Das heißt auch, dass Beleidigungen, Spam oder pure Werbung keine Chance haben, auf die Website zu kommen. Deine Email-Adresse wird selbstverständlich nicht veröffentlicht.