ioBroker: Integration von Jarolift Gurtwickler JAROMAT Eco UP 23/5

Anzeige:

EDIT 15.06.2018: ich habe zwei Optimierungen an der Programmierung vorgenommen, diese beschreibe ich abweichend von diesem Artikel am Ende…

EDIT 21.06.2018: ich habe das ewig lange Script durch die Nutzung von Funktionen deutlich kürzer und damit auch übersichtlicher gemacht. Dieses ist ab sofort hier zu finden.

Heute habe ich mal eine etwas umfangreichere Anleitung für einen Workaround, welchen ich in meinem Smarthome umgesetzt habe! Ich habe die von Haus aus nicht smarten Rolladen-Gurtwickler von Jalousiescout (Jarolift Gurtwickler JAROMAT Eco UP 23/5) in mein Smarthome integriert und damit über den ioBroker steuerbar gemacht. Ich kann nun diese Gurtwickler wie viele deutlich teureren Geräte über Amazon Alexa steuern!

Doch zuerst mal die Einkaufsliste aller hierzu benötigten Teile:

Hinweis: Es reicht ein Relais-Board mit 4 Kanälen, bei mir sind 8 zu sehen, das liegt daran, dass ich später auch meine Beamer-Leinwand noch smart machen möchte und damit dann die eine Platine reicht.

Der Preis für das Material liegt hier für den ersten Rollladen bei ca. 130 Euro, jeder weitere ist für ca. 100 Euro realisierbar. Bitte beachten: Mit der hier genutzten Steuerungs-Hardware sind maximal drei Kanäle steuerbar. Man kann also z.B. Einen Rollladen für Wohnzimmer, Schlafzimmer und Bad steuern. Wenn mehr als drei Gurtwickler gesteuert werden sollen, muss man die Antriebe gruppieren und gemeinsam steuern (z.B. zwei Rollladen im Wohnzimmer als einen ansteuern).

Als gegeben vorausgesetzt wird in dieser Anleitung, dass bereits ein ioBroker-Server erfolgreich in Betrieb genommen wurde (Anleitung Teil 1 / Anleitung Teil 2). Außerdem muss der MQTT-Server richtig konfiguriert sein, was aber quasi selbsterklärend ist. Es wird hier auch nicht darauf eingegangen, wie man die Tasmota-Firmware flasht (Anleitung hier).

Die ersten Schritte für unseren Umbau zum smarten Rollladen sind ganz einfach: Man verbaut den Rollladen-Gurtwickler incl. dem Funkset nach der beiliegenden Anleitung. Diese ist sehr gut geschrieben und wo notwendig auch bebildert. Auch der Einbau des Funkset und das Anlernen dessen geschieht innerhalb weniger Minuten. Ich verzichte daher an dieser Stelle auf eine Beschreibung dieser Schritte und setze diese als bereits erledigt an. Also nach dem Einbau einfach mal testen, ob der Gurtwickler (bzw. alle bis zu drei Gruppen) über die Fernbedienung(en) des Funkset steuerbar ist und auf alle Eingaben (auf, stop, ab) reagiert. Bitte nicht vergessen alle vorhandenen Funksets zu programmieren, falls mehrere vorhanden sind. Eines werden wir nämlich im Rahmen dieser Anleitung „schlachten“, da kann es nicht schaden, bereits Ersatz zu haben, falls was schief geht (wobei die Gefahr hierfür sehr gering ist).

Umbau Fernsteuerung

Im ersten Schritt wird nun die (fertig angelernte!) Fernsteuerung des Funkset auseinander genommen. Dafür einfach die Batterie raus nehmen und die Frontfolie entfernen (diese ist einfach aufgeklebt). Nun können die kleinen Schrauben auf der Platine gelöst werden und diese aus dem Gehäuse entnommen werden. Nun werden Jumper-Wires angelötet. Ein mal zweiadrig an die Batterie-Kontakte (damit wird die Fernsteuerung dann ohne Knopfzelle betrieben), ein mal vieradrig an dem einen Chip mit den 8 Beinen (siehe Fotos). Hier einfach vorsichtig die Adern zusätzlich pro Kontakt auflöten.

Kabel an der Fernsteuerung angelötet
Das NodeMCU-Board und die Relais-Platine

Im nächsten Schritt wird das NodeMCU-Board mit der Tasmota-Firmware geflasht. Auch hier verzichte ich wie oben angekündigt auf eine Anleitung mit allen Schritten, dies habe ich bereits hier erklärt. Auch wenn es sich beim NodeMCU nicht um ein Gerät der Firma Sonoff handelt, ist die Vorgehensweise absolut identisch. Abweichend sind nur die Anschlüsse, diese sind auf dem NodeMCU-Board und dem Development-Board jedoch klar beschritet.

Wenn das Board erfolgreich programmiert wurde, kann es auf das Development-Board aufgesteckt und mit dem Netzteil verbunden werden (Netzteil noch nicht in die Steckdose stecken). Die Verbindung zwischen den einzelnen Komponenten erfolgt wie hier beschrieben:

Die vier Adern vom Chip auf der Fernbedienung kommen an vier Ports der Relais-Platine. Hier ist es natürlich sinnvoll, die Reihenfolge einzuhalten um später beim programmieren kein Chaos zu bekommen. Am Relais wird jeweils der mittlere Anschluss genommen. Wenn die Relais-Platine mit den Klemmen nach oben angeschaut wird, werden in die jeweils rechts daneben liegenden Anschlüsse jedes Relais wieder vier Kabel geschraubt, diese werden auf den 3V-Anschlüssen des Development-Boards gesteckt. An der Eingangs-Seite des Relais-Board werden die Anschlüsse VCC und GND mit den entsprechenden Ports 3V (für VCC) und GND verbunden. Die Anschlüsse IN1 bis IN4 werden in folgender Reihenfolge auf dem Development-Board angeschlossen: D4, D5, D6 und D7. An einen weiteren GND und 3V-Anschluss des Boards werden die beiden Kabel der Batterieanschlüsse der Fernsteuerung angeschlossen, wobei die untere Feder an GND und die seitliche Feder an 3V kommt. So sieht dann alles verbunden aus:

Fertig verbundenes NodeMCU (auf Developer-Board) mit Relais-Platine und Fernbedienung
Konfiguration des NodeMCU in Tasmota

Jetzt ist die Verkabelung vollständig abgeschlossen, wir können uns um die Konfiguration des NodeMCU kümmern, auf welches Ihr bereits Tasmota installiert habt.

Unter „Einstellungen“ –> „Gerät“ wählt Ihr „Generic“ aus. Die Ports werden wie folgt konfiguriert:

  • D4 GPIO2 –> 25 Relais 1i
  • D6 GPIO12 Relais1 –> 27 Relais 3i
  • D7 GPIO13 LED 1i –> 28 Relais 4i
  • D5 GPIO 14 Sensor –> 26 Relais 2i

Alle anderen Einstellungen bleiben auf „00 None“. Diese Einstellungen speichern. Danach konfiguriert Ihr unter „Einstellungen“ –> „MQTT-Einstellungen“ die Daten Eures MQTT-Servers. Als Topic habe ich „zb40“ genommen (die Bezeichnung der Fernbedienung). Jetzt noch unter „Einstellungen“ –> „Sonstige Einstellungen“ den Haken bei „MQTT aktivieren“ setzen.

Konfiguration im ioBroker

Jetzt ist es an der Zeit im ioBroker unter „Objekte“ –> „mqtt.0“ –> „cmnd“ zu schauen, ob das Gerät hinzugefügt wurde. Sollte hier statt „POWER1“ bis „POWER4“ nur ein „POWER“ erscheinen, ist das nicht weiter schlimm, das korrigert sich später von selbst.

Jetzt müssen wir zur Steuerung noch zwei eigene Datenpunkte als Zahl (0-100) anlegen, diese müssen Als Rolle den Eintrag „level“ bekommen. Ich mache dies immer in meinem Ordner „MeineGeraete.0.Raumname.Geraetename„, andere schwören darauf die eigenen Geräte unter „javascript.0“ anzulegen. Wo ist in meinen Augen egal, man muss sie nur wieder finden 😉 Im Screenshot kann man sehen welche Datenpunkte ich wo angelegt habe:

Die Schwärzungen sind nicht aufgrund von Geheimnissen, sondern das man die relevanten Daten schneller findet 😉

Zusätzlich habe ich noch einen Boolean-Datenpunkt namens „Rollladen_Automatik“ angelegt, dieser kann später ausgeschaltet werden, wenn ich nicht möchte, dass meine Rollladen morgens automatisch auf und abends automatisch zu gehen.

Der größte Teil des Umbaus: Das Script

Jetzt kommt der eigentlich komplizierte Teil der ganzen Automatistierung: das Script! Mit diesem wird es möglich sein, den Rollladen in die Stellungen 100% (ganz geschlossen), 75%, 50%, 25% und 0% (ganz geöffnet) zu bringen. Da der Gurtwickler keinerlei Funktion zur Rückmeldung bietet, wird hier rein über die Laufzeiten gearbeitet! Man muss also alle Zeiten von und zu allen Punkten ein mal stoppen (z.B. wie lange braucht der Rollladen von 50% auf 75%) und dies muss an der entsprechenden Stelle im Script eingetragen werden. Die Stellungen 100% und 0% werden als „endlos“ angefahren. Das heißt im Script wird nur der Befehl für „Rollladen hoch“ oder „Rollladen runter“ gegeben, aber kein Stop-Befehl. Hier stoppt der Antrieb schließlich selbst. Hierdurch wird auch gleichzeitig sichergestellt, dass der Rollladen wieder einen genau bekannten Punkt erreicht hat und Toleranzen kompensiert werden.

Das Script zur Steuerung ist habe ich hier zum Download bereitgestellt (EDIT 21.06.2018: und hier gibt es die neue Version mit der Nutzung von Funktionen, hier können die Laufzeiten einfach im Hauptscript links jeweils bei Funktionsaufruf als Parameter mit übergeben werden. Der Rest wird automatisch daraus abgeleitet. Für die Nutzung anderer Rollläden als 1, einfach rechts in den Funktionen die Parameter entsprechend der Übersicht unten ändern. ACHTUNG: Im neuen Script sind 0% ganz geschlossen und 100% ganz geöffnet!). Dies kann einfach über den Button „Blöcke importieren“ in einem neuen Blockly importiert werden. Die Laufzeiten müssen wie folgt angepasst werden:

  • Roter Pfeil: Dies ist der Zielwert (neue Wert) der erreicht werden soll
  • Gelber Pfeil: Dies ist der Ausgangswert (alter Wert) der vorher bestand
  • diese beiden Werte dürfen NICHT verändert werden, sondern stellen nur dar, um welchen Block es sich aktuell handelt. Der im Screenshot gezeigte Block ist also für die Steuerung von 0% auf 25% zuständig. Die einzelnen Blöcke pro Ausgangs- und Zielwert sind leider notwendig, da der Rollladen von z.B. 0% auf 25% nicht unbedingt die gleiche Zeit benötigt wie von 25% auf 50%
  • Grauer Block: Dieser Block stellt die Steuerung das die ausgeführt werden soll. OFF-ON-ON-OFF steht hier exemplarisch für Rollladen 1 (der Fernsteuerung) runter. Alle möglichen Funktionen folgen weiter unten
  • Schwarzer Block: Dieser Block stoppt die oben angegebene Bewegung. ON-ON-ON-OFF steht hier für Rollladen 1 STOP.
  • Grüner Pfeil: Die vier Zeiten unter der grünen Pfeilspitze (hier 1500 ms) stellen die Fahrzeit dar, die der Rollladen für die hier gewünschte Bewegung braucht (mein Rollladen braucht 1,5 Sekunden um von 0% auf 25% zu fahren.
  • Rosa Pfeil: Hier wird die Abschaltung der Fernsteuerung aktiviert (dass diese nur 500 ms sendet). Zum Wert des grünen Pfeil sind einfach 500 ms zu addieren und dies in die vier Felder unter dem rosa Pfeil einzutragen (in meinem Beispiel folglich 2000 ms). Kürzere Zeiten steuern sporadisch nicht zuverlässig.
  • die schwarz verdeckten Werte bitte auf keinen Fall ändern!

Hier eine Übersicht der möglichen Funktionen:

  • Rolladen 1 hoch: ON-OFF-ON-OFF
  • Rolladen 1 runter: OFF-ON-ON-OFF
  • Rollladen 1 stop: ON-ON-ON-OFF
  • Rolladen 2 hoch: ON-OFF-OFF-ON
  • Rolladen 2 runter: OFF-ON-OFF-ON
  • Rollladen 2 stop: ON-ON-OFF-ON
  • Rolladen 3 hoch: ON-OFF-ON-ON
  • Rolladen 3 runter: OFF-ON-ON-ON
  • Rollladen 3 stop: ON-ON-ON-ON
  • Alle Rolladen hoch: ON-OFF-OFF-OFF
  • Alle Rolladen runter: OFF-ON-OFF-OFF
  • Alle Rollladen stop: ON-ON-OFF-OFF

Wenn nun alle Laufzeiten gemessen und richtig im Script eingetragen sind, sollte durch Änderung der Variable „Rollladen_neu“ dieser in Bewegung gesetzt werden können. Je genauer man die Laufzeiten gemessen hat, desto genauer fährt der Rollladen das jeweilige Ziel an. Um hier rekonstruierbare Punkte zu haben, stand ich wirklich eine Weile mit der Stoppuhr daneben und habe immer wieder von verschiedenen Punkten verschiedene Post-Its angefahren, welche ich zwecks Genauigkeit am Rollladen angebracht habe.

Integration in Amazon Alexa

Den Datenpunkt „Rollladen_neu“ kann man nun auch im Cloud-Adapter integrieren, um den Rollladen dann über Alexa steuern zu können. Werte außer den programmierten 0%, 25%, 50%, 75% und 100% führen natürlich zu keinerlei Bewegung. Da es auf Dauer ein wenig nervig ist, Alexa Prozentwerte zuzurufen, habe ich mir zwei Routinen erstellt. Eine „Rolladen Wohnzimmer auf„, welche das „Gerät“ aus schaltet (der Rollladen ist wie eine dimmbare Lampe in Alexa integriert). Eine weitere trägt den Namen „Rollladen Wohnzimmer zu„, hier wird das „Gerät“ eingeschaltet und auf 100% gedimmt, was den Rolladen ganz schließt. Außerdem habe ich eine Routine „Alexa Sonnenschutz“ erstellt, welche beide mittags in Sonnenrichtung stehende Rollladen auf 75% steuert. Dieser Schritt soll in Zukunft durch einen Sonnen-Sensor übernommen werden.

Der Rollladen wird automatisch: Astro-Funktion

Jetzt wo wir die Rollladen über Alexa steuern können, möchten wir diese natürlich auch noch automatisch morgens öffnen und abends schließen. Dafür habe ich die Astro-Funktion des ioBroker benutzt. Hier reichen zwei einfache Blockly-Scripte:

Rollladen Astro-Steuerung

Wenn der Zeitpunkt des Sonnenuntergang erreicht wird, prüft das Script, ob die bereits weiter oben erwähnte Rollladen-Automatik aktiv ist, wenn ja, wird der Rollladen auf 100% gestellt, also ganz geschlossen. Morgens beim Erreichen des Zeitpunkt Sonnenaufgang, wird ebenfalls geprüft, ob die Automatik aktiv ist, wenn ja, wird der Rollladen auf 0% gesetzt, also ganz geöffnet.

EDIT 15.06.2018: Ich habe heute zwei Optimierungen vorgenommen. Die erste betrifft die prozentuale Angabe der Öffnung. Hier in dieser Anleitung habe ich 0% für volle Öffnung, 100% für geschlossen genutzt. Da ich im Nachhinein festgestellt habe, dass quasi alle „fertigen Aktoren“ genau anders rum arbeiten, habe ich mich dem nun angepasst. Auch bei mir ist jetzt 100% bei geöffnetem Rollladen. Ich habe hierzu einfach die Werte in meinem Script ausgetauscht. Alle 100 wurden durch 0 ersetzt, alle 25 durch 75 und eben anders rum. Schon ist die Richtung umgedreht! Man sollte nur konzentriert arbeiten, um nicht durcheinander zu kommen 😉 Die zweite Änderung betrifft die Datenpunkte. Hier habe ich einfach kosmetische Änderungen vorgenommen. „Rollladen alt“ heißt jetzt „Rollladen Wohnzimmer IST“ und „Rollladen neu“ heißt jetzt „Rollladen Wohnzimmer SOLL„. Dies hat zwei Gründe: Bei mehreren Rollladen (die noch kommen), ist es einfach besser, wenn man gleich am Namen des Datenpunkt sieht, welchen Raum dieser betrifft, außerdem finde ich arbeiten mit ist und soll doch ein wenig schöner als mit neu und alt.

Für das Schlafzimmer folgt hier bald ein weiteres Script. Dieses wird den Rollladen morgens nur öffnen, wenn ich arbeiten muss oder nicht zu Hause bin. Sollte ich Nachtdienst gehabt haben, wird der Rollladen geschlossen bleiben. Hierzu wird dann eine Synchronisation mit meinem Dienstplan erfolgen…

Hinweis: Der Gurtwickler Jarolift JAROMAT Eco UP 23/5 sowie das Jarolift Funkset für JAROMAT Eco wurde mir von der Firma Schoenberger (Jalousiescout) kostenfrei zur Erstellung dieses Workaround zur Verfügung gestellt! Vielen Dank nochmal dafür!

Wenn auch Sie wünschen, dass ich Ihre Produkte in mein Smarthome integriere und darüber auf meinem Blog berichte, kontaktieren Sie mich über info@smarthome-tagebuch.de um das weitere Vorgehen zu besprechen! Unverlangt zugeschickte Artikel werden nicht sicher für meinen Blog getestet!

Anzeige:

10 Kommentare

  1. Erstmal: Super Anleitung! Ich habe das so nachgebaut, aber bei mir fährt der Rolladen nur von ganz auf (100) zu ganz zu (0).
    Ich kann ihn nicht auf 25, 50 oder 75% stellen oder wieder öffnen (auch nicht ganz auf) Wenn ich den Wert der Variable ändere (zum Test) kommt auch nur beim Wert „0“ was bei der Tasmota-Oberfläche an bzw. schalten die Relais.
    Im ioBroker sehe bei den vier Power-Objekten aber jedesmal eine kurze Änderung der Variable, wenn ich 100,75,50 oder 25 eintrage… Ich weiß nicht, wo ich einen Fehler habe. Hast du einen Tipp?

    • Das ist ein sehr komischer Fehler, wenn die Variablen sich im ioBroker ändern, sich aber am Funksender nichts tut. Mein erster Verdacht wäre hier, dass mit den Lötstellen was nicht stimmt (oder dem Anschluss). Vermutlich nur ein Zufall, dass genau 100 auf 0 immer bei Dir ging. Hat Dein Relaisboard LEDs? Blinken diese bei einem Befehl kurz auf? Klackern die Relais?

      • Ich glaub eins der Relais ist kaputt. Dieses klickt nicht wenn es geschalten wird.
        Die andere Sache ist, dass keine Steuerbefehle am Relais ankommen..die Fernbedienung mit den Lötstellen kommt ja erst als letztes in dem Aufbau. Wenn ich die drei funktionenenden Relais via Weboberfläche einschalte leuchtet auch die LED der Fernbedienung. Der Fehler muss also schon vorher passieren.

        • Sorry, aber da ist eine Fernanalyse ohne das Gerät vor sich zu haben quasi unmöglich… Ich kann Dir aber sagen, dass meine Anleitung definitiv funktioniert, haben ja schon mehrere so nachgebaut… In den nächsten Tagen / Wochen kommt übrigens Version 2.0 der Rollladensteuerung, in dieser kann dann jede Position angefahren werden (nicht nur 25%-weise)…

          • Ja, schon klar, dass das so schwierig ist. 🙂 Dachte, vielleicht hast du spontan eine Idee und der Satz mit dem LED bzw. Klackern der Relais hat mich ja auf den richtigen Weg gebracht.
            Das dritte Relais ist tot und eine Ersatzlieferung ist schon unterwegs. Hab mal die Verkabelung umgebaut, da ich für den einen Rollo laut Beschreibung das vierte Relais nicht benötige (ist bei jedem Status „OFF“) und habe das Kabel an das kaputte Relais angeschlossen. Jetzt fährt der Rolladen auf und zu, wie er soll 🙂
            Danke Dir und auch nochmal Danke für die tolle Anleitung!

          • Nach dem Motto „Kaum macht mans richtig, schon funktioniert es“:
            Mein Ersatz-Relais ist gekommen, alles angeschlossen und schon funktioniert es.
            Jetzt will ich das Ganze noch mit Alexa und NodeRed steuern. Da hab ich jetzt was zu tun. Ach, das Wochenende beginnt gut 🙂

          • Mit Alexa ist ja kein Problem. Nur mit Node-Red kann ich nicht helfen, da hab ich null Erfahrung mit (der Bedarf war bisher nicht da)… Alexa über den Cloud-Adapter: Einfach die Soll-Variable dem Cloud-Adapter hinzufügen und gut ist. Man darf in dieser Version halt keine Werte nennen die es nicht gibt (z.B. „Alexa, Rolladen 20%“). Dann bestätigt sie das zwar, aber es passiert nichts. Bei der neuen Version die gerade in Arbeit ist, kann man dann 1% genau arbeiten…

  2. Wirklich eine Klasse Anleitung, welche mich direkt zum Nachbauen bewegt – wenn denn alle Teile da sind. Hierzu nur eine Frage – wäre es auch möglich die Empfänger in den Wicklern über einen Broadlinkadapter anzusprechen? FUnken ja auch auf 433 mhz oder geht das nicht?

1 Trackback / Pingback

  1. ioBroker: Rollladen automatisch als Sonnenschutz steuern – smarthome-tagebuch.de

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*