Duofern Rolladenmotoren mit Homeassistant

English version of this post here
Homeassistant ist mein Frontend der Wahl für Hausautomatisierung. Schönes Interface, in Python geschrieben, und leicht anzupassen. Angefangen habe ich damit wegen des Mysensors-Supports.

Letztes Jahr ging es dann daran, die Rolladenmotoren auszusuchen. Leider versuchen die meisten Hersteller, ihre eigenen proprietären Lösungen in den Markt zu drücken. Homeassistant unterstützt zwar ein paar dieser Lösungen, aber man muss sich trotzdem noch oft ein schweineteures Gateway anschaffen, um mit den Komponenten reden zu können. Für mich war es zusätzlich schwierig, weil die installierten Rolläden mit einem Gurt daherkamen und der Rolladenkasten aus Stahlblech ist und so eine winzige Öffnung hat, dass es nicht mit vertretbarem Aufwand möglich ist, Rohrmotoren zu installieren.

Am Ende habe ich mich dann für Rademacher entschieden. Aus Faulheit: Gurtwickler für Einbau- oder Aufputzmontage mit Möglichkeit zur Funkfernbedienung. Die Entscheidung fiel auf sechs RolloTron Standard DuoFern. Homeassistant unterstützt zwar Duofern nicht von Haus aus. Die Perl-basierte Hausautomatisierung FHEM unterstützt aber das Duofern Protokoll mithilfe eines preislich akzeptablen USB-Sticks von Rademacher.
Duofern USB Stick

Ich traute mir zu, den Perl-Code für Homeassistant zu portieren. Nach ein paar Wochen hatte ich die Rolladensteuerung mit Homeassistant dann im Juni 2017 am Laufen. Pünktlich, um im Sommer die Rolläden nach dem Stand der Sonne zu fahren und das Haus schön kühl zu halten. Das Ergebnis findet sich als pyduofern auf meinem bitbucket.

Für die homeassistant-integration gibt es ein Unterverzeichnis in `examples`. Netterweise ist das Funkprotokoll bidirektional, man bekommt also die aktuelle Position der Rolläden auch dann angezeigt, wenn man sie am Motor manuell fährt.

Das Ganze ist noch im Werden. Der nächste Schritt um es nativ in homeassistant einbetten zu dürfen wäre, es als offizielles pypi-modul hochzuladen. Aber vorher möchte ich gerne noch etwas aufräumen und es mit asyncio zum Laufen bringen, um die aktuelle Architektur von Homeassistant. bestmöglich zu unterstützen.

10 Gedanken zu “Duofern Rolladenmotoren mit Homeassistant

  1. Hallo Paul,

    Google hat mich auf Deine Seite geführt. Warum? Ich habe mich in letzter Zeit dem home Assistent in Verbindung auf einem Raspi. Ich bin kein Programmierer und habe mich da durchgekämpft.
    Meine Gartenbeleuchtung osram lightify, Fritz Box und meine IP Cam zur Überwachung und Steuerung sobald ich zuhause bin läuft nun. Nun würde ich gerne noch dem Thema Rolladensteuerung widmen. Da ich schon elektrische Gurtwickler verbaut habe, würde ich diese können. Und interessiert mich deine Lösung. Welche Gurtwickler Von Rademacher würdest du empfehlen? Wie gestaltet sich der Aufwand bzgl der Einbindung in den Home Assistent? Vielleicht könntest du mir ein paar Screenshot zukommen lassen. Und ein paar Infos.
    Würde mich freuen von Dir zu hören.

    Gruß

    Chris

    1. Hallo Christian,

      mit dem Modul sollten alle Rademacher Duofern Rolladenmotoren gehen. Achtung: Es gibt von Rademacher auch Gurtwickler Ohne Duofern! Wenn du nicht eh schon Duofern Motoren hast, gibt es auch noch andere Alternativen: Wenn die Rolladenkästen groß genug sind sind z.B. Rohrmotoren+Funkschalter (z.B. homematic, geht auch mit Homeassistant). Das wäre auch nicht teurer, als die Rademacher Gurtwickler. Und je nach dem, was für Gurtwickler du schon hast, kannst du evtl. Funkschalter anschließen/nachrüsten (musst du selbst rausfinden, ob das mit deinen Wicklern geht).

      Das Setup für Duofern ist auf der github-Seite beschrieben: https://github.com/gluap/pyduofern enthält die Anleitung zur Konfiguration des USB-Sticks, zur Installation des Python-Moduls und zum Pairing mit den Motoren. Wenn das erledigt ist können die Motoren in Homeassistant eingebunden werden. Dafür liegt eine extra-Anleitung in https://github.com/gluap/pyduofern/tree/master/examples.

      Ich hab schon länger drüber nachgedacht, mal ein Video zu machen, was für Schritte für die Installation gebraucht werden, wenn ich dazu komme, schreibe ich mal.

      Viele Grüße

  2. Hallo Paul,

    dank Deiner sehr genialen Vorarbeit läuft mein Umstieg von FHEM auf Home Assistent (fast) wie am Schnürchen 🙂
    Meine Rademacher DuoFern Rolladenmotoren waren auf den Stick bereits unter FHEM gepaired gewesen – ein „refresh“ hat gereicht und die Aktoren waren wieder vorhanden. Umbenennen hat einwandfrei funktioniert – ebenso wie das rauf- und runterfahren über CLI – bis hierhier also alles gut!
    Wo ich jetzt ein Problem habe ist bei der finalen Integration in Home Assistant – ich bin vorgegangen wie beschrieben aber HA wirft mir beim Starten Fehler:
    2018-06-15 17:21:25 ERROR (MainThread) [homeassistant.loader] Error loading custom_components.cover.duofern. Make sure all dependencies are installed
    Traceback (most recent call last):
    File „/srv/homeassistant/lib/python3.5/site-packages/homeassistant/loader.py“, line 86, in get_component
    module = importlib.import_module(path)
    File „/usr/lib/python3.5/importlib/__init__.py“, line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    File „“, line 986, in _gcd_import
    File „“, line 969, in _find_and_load
    File „“, line 958, in _find_and_load_unlocked
    File „“, line 673, in _load_unlocked
    File „“, line 673, in exec_module
    File „“, line 222, in _call_with_frames_removed
    File „/home/homeassistant/.homeassistant/custom_components/cover/duofern.py“, line 14, in
    from pyduofern.duofern_stick import DuofernStickThreaded
    ImportError: No module named ‚pyduofern‘
    2018-06-15 17:21:25 ERROR (MainThread) [homeassistant.loader] Unable to find component cover.duofern
    2018-06-15 17:21:29 ERROR (Thread-16) [pyhomematic.devicetypes.generic] HMGeneric.getValue: WORKING on ITD00000111:1 Exception:

    Ganz offenbar werden hier benötigte Module nicht gefunden – ich habe jetzt ehrlich gesagt aktuell keine Idee mehr … fällt Dir dazu noch was ein?
    Ansonsten auf jeden Fall nochmal vielen Dank für Deine bisherigen Mühen – mir hat es sehr geholfen!

  3. Paul, Du bist wirklich mal der Hammer – jetzt funktioniert es!!
    Keine Ahnung was Du gemacht hast aber nachdem ich die Files mit den aktuellen Github Versionen ersetzt hatte, hat es auf Anhieb funktioniert!
    Meine Rollos sind jetzt in HA sichtbar und steuerbar.
    Wahnsinn!

    Vielen Dank für Deine schnelle Hilfe! Wieder einen Punkt den ich abhaken kann…sehr genial!

  4. Paul, noch eine andere Frage:
    Mit der FHEM Implementierung gab es u.a. die Möglichkeit weitere Einstellungen an den Rolladen Aktoren vorzunehmen – z.B. ob morgens und abends automatisch rauf/runter gefahren werden soll, ob der sog. „venting modus“ aktiv ist (der Rolladen also nur auf Uug geschlossen wird), etc….eine ganze Hand voll an Parametern, die eben im Aktor selbst hinterlegt wird.

    Hast Du irgendwelche Pläne Deine Portierung in diese Richtung weiter auszubauen?

    1. Hi Robert,

      In pyduofern sind die meisten Kommandos (mit Ausnahme der „wCmds“, die glaube ich alle einen Umweltsensor erfordern) verfügbar (wenn auch nicht auf der Kommandozeile exponiert).

      Hat man einen pyduofern.duofern_stick.DuofernStick als stick, setzt z.B. stick.command("409882", "ventilatingPosition", 10) die ventilatingPosition für den Rolladen 409882 auf 10, stick.command("409882", "ventilatingMode", "on") fährt den Rolladen auf die ventilatingPosition.

      Derzeit wird das in Homeassistant nicht exponiert, dafür müsste ich eine extra GUI schreiben. Bevor ich das mache, möchte ich aber die Portierung von Threads auf asyncio fertig bekommen. Sobald die Homeassistant-Integration auf asyncio portiert ist (pyduofern kann schon asyncio), kann ich einen pull request bei Homeassistant einreichen, um duofern als „standardmodul“ zu aktivieren.

      Danach könnte man dann überlegen, ob man die GUI erweitert. Aber ich kann leider nur am Wochenende und nach Feierabend Zeit rein stecken, deshalb wird es, bis ich dazu komme, die GUI anzufassen eher noch eine Weile (=Monate, evtl ein Jahr) dauern. Wenn dir das die Nutzung des Moduls versauert kann ich das verstehen — FHEM ist an der Stelle definitiv flexibler (dem Code nach zu urteilen — die GUI hab ich nie angespielt).

      Die gute Nachricht: Die meisten Sachen gehen schon jetzt, mit Homeassistant Bordmitteln ist es kein Problem nach Sonnenstand die Rolladenposition anzupassen und/oder morgens oder abends die Rolläden in Lüftungsposition zu fahren. Auf dem GUI kann man die entsprechenden Automatisierungen auch jederzeit an oder aus schalten. Was halt nicht geht ist, über die GUI remote die Settings im Aktor zu ändern.

      1. Hallo Paul,

        ach was – von versauern kann hier keine Rede sein! Danke auch für Deine Erklärungen.
        Das mit der Zeit als knappem Gut ist mir ein durchaus bekanntes Thema 🙂
        Ich schau einfach mal wie weit ich da direkt in Python komme – im Grunde brauche ich nicht viel. Da ich zur Steuerung der Rolläden in den jeweiligen Räumen auch noch entsprechende Funk Wandschalter habe, würde ich z.B. die Venting Funktion bzw. Position direkt im Aktor ändern (ergibt dann sowas wie Sommer / Winterbetrieb).
        Ich freue mich jedenfalls wenn Du irgendwann dazu kommen solltest, an dem Thema weiter zu arbeiten – ist aus meiner Sicht aber auf keinen Fall ein „show stopper“ und ich versuche mich ggf. mal in Python.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.