Using duofern roller shutters with homeassistant

Zur Deutschen Version des Textes.
I use homeassistant as a front-end for home automation. It is really hackable, written in python and comes with support for a lot of devices. I chose it initially because it has mysensors support.

Last year I needed a solution for controlling roller shutters. Sadly most manufacturers that market in Germany are pushing their own proprietary solutions for home automation. While homeassistant supports a few of those via the proprietary gateways of the manufacturers, the gateways themselves can be very pricey. Additionally the installed roller shutters were belt-operated and the shutter was mounted in a steel case above the window. Unfortunately the hatches giving access to the roller shutter were so small that I ditched my initial plan of mounting a tube motor in the shutter roll.

Finally I found that german manufacturer Rademacher sells wall-mounted belt motors for Roller shutter operation (“Rollotron”). Some of these can be remote-controlled via “duofern”, a proprietary remote control protocol by the manufacturer. While homeassistant does not come with out-of-the-box support for this protocol, the Perl-based FHEM home automation project has support for these blinds via a usb stick sold by the manufacturer.

Duofern USB stick

I loathe perl, therefore I ported the rollotron-related sections of the GPL-licensed FHEM implementation to python. My python port can currently be found as pyduofern on bitbucket.

There is some documentation on how to get it to work with homeassistant in the subdirectory examples. Luckily the RF communication goes both ways, so homeassistant displays the current position of rollershutters regardless of whether they have been moved with manual controls or via homeassistant.

The whole thing is work in progress – in order to get it natively into homeassistant the next step would be to add it to pypi, but before I do that I would rather have it working with asyncio, because that is the way to do it for homeassistant.

21 thoughts on “Using duofern roller shutters with homeassistant

  1. Hallo,
    versuche gerade mit deiner Anleitung einen Rademacher USBStick an den HA zu bekommen, habe aber Hassbian/Hassio und kann keinen udev ausführen :(.
    Wie kann ich den Stick so benennen, dass es für dein Script passt? Gibt es irgendwo ein Konfigfile, o.ä.???
    Gruß
    Andreas

    1. Hi Andreas,

      Ich habe noch nie hassio am laufen gehabt, und muss da erstmal rein schauen. Den udev Schritt kannst du dir sparen, wenn du herausfindest wie das device in hass.io heißt (typischerweise /dev/ttyUSB0 oder so). Der Schritt ist hauptsächlich für den Fall da dass man mehrere USB-Serial sticks hat (der duofernstick ist ein solcher). Dann kann es nämlich passieren dass bei einem boot der eine “/dev/ttyUSB0” heißt, beim nächsten boot aber der andere. Über udev kann man das anhand der USB-Device id festlegen. Der trick wäre also, die config so zu schreiben, dass sie weiß wie der stick heißt, anstatt den stick so zu nennen wie es im config beispiel ist. Ich habe aber noch keine intuition dafür wie in hass.io serielle devices in den homeassistant container durchgeschleift werden – Mag sein dass dafür auch noch ein extraschritt erforderlich ist.

      Ich hab jetzt jedenfalls ein hassio installiert und werd schauen wie weit ich damit komme. Als ich mit Homeassistant angefangen habe gab es das noch nicht und jetzt ist mein ganzes Ökosystem auf raspbian basierend – da hatte ich bisher nicht die motivation auf hassio umzuziehen, auch wenn ich die Architektur interessant finde. Aber ein zweiter raspi zum basteln fliegt hier rum, da kann ich es zumindest anspielen.

      Hier zumindest schon mal jemand angedeutet, dass es bei ihm mit hassio funktioniert.
      Viele Grüße,
      Paul

      1. PS: gerade gesehen: das hassio command “hardware info” sollte eine liste der seriellen geräte anzeigen. Bei mir ist gerade kein Stick angeschlossen, deshalb steht da nur /dev/ttyAMA0, aber ich würde wetten, dass der stick da auch auftaucht, wenn er angeschlossen ist.

      2. Hallo Paul,
        ich bin mal in die tiefen des Scripts abgestiegen 🙂 und das Thema ist, dass die serial-Routine den port nicht findet bzw. die Abfrage für die Zuweisung nicht funktioniert. Ich denke mal hier ist die Syntax die ich oder das script verwendet nicht korrekt. Als device gebe ich /dev/ttyUSB0 an und den findet er nicht. Der Stick ist aber unter Hassio sichtbar und spreche ihn ihn z.B. über ZWAVE Integration an, dann funktioniert er – halt nur nicht mit Rademacher 🙂
        Kannst du mir einen Tipp geben was ich in die configuration.yaml eintragen kann bzw. wo im script ich den port am sinnvollsten hinterlegen kann? Irgendwie stehe ich hier auf dem Schlauch oder sehe den Syntaxfehler bei mir nicht.

        VG
        Andreas

        1. Hallo Andreas,

          Bei mir sieht die config so aus:

          cover:
            - platform: duofern
              config_file: /home/pi/homeassistant/dufoern.json
              code: ffff
              serial_port: /dev/duofernstick
          

          ich würd als versuch vorschlagen:

          cover:
            - platform: duofern
              config_file: 
              code: ffff
              serial_port: /dev/ttyUSB0
          

          Es könnte Fehlermeldungen geben wenn du in der duofern.json und der configuration.yaml unterschiedliche ports konfigurierst.

          Falls es damit nicht funktioniert: Könntest du die section aus deiner config und dein home-assistant logfile schicken?

          Viele Grüße,
          Paul

  2. Hallo Paul,

    danke für Dein super Script. Läuft hervorragend auf meinem Raspi 3 und z-way-server.
    Steuere die RolloTron Modelle 18xx, 14xx, 25xx sowie den RolloPort SX5.

    Viele Grüße
    N3tt1

  3. Habe aktuell noch einen Pie mit FHEM am laufen. Nun hab ich das entdeckt… Mehr als genial. Kann mir jemand sagen, bevor ich mit dem rademacher Stick zu HA umziehe, welche Geräte schon unterstützt werden?

  4. Hallo, ich suche immer mal wieder nach Hausautomationssystemen, die Rademacher Duofern unterstützen und bin jetzt auf diesen Beitrag gestoßen und daher an HomeAssistant mit dem Rademacher Modul von Dir interessiert. Ich habe allerdings nich eine Frage: werden alle Duofern Geräte unterstützt? Falls nicht, wird der Umweltsensor/Wetterstation unterstützt?

  5. Hey, ich habe die Installationsanleitung auf Bitbucket gesehen.
    Soweit ich das aber sehe, ist die Anleitung nicht für HassOS gedacht, oder? Falls ja: wie führe ich die ersten Schritte dann aus?

    1. Hallo David, so weit ich weiß gibt es auch bei hassos wege, custom components zu installieren.

      Wenn du es probieren willst, müsstest du nach “hassos” “custom components” suchen, ich habe hassos selbst noch nicht groß benutzt.

      Um den richtigen Start zu finden, solltest du lieber die Anleitung auf pypi oder github verwenden, ich bin vor einiger Zeit von bitbucket auf github umgezogen und habe wohl vergessen den Link zu aktualisieren. (https://github.com/gluap/pyduofern)

  6. Hallo Paul,
    nach dem update auf die 34.1 sind bei den “cover” in homeassistant die slider weg und es wird nur noch der Status “auf” oder “zu” angezeigt. Wird der Rolladen teilgefahren, dann kann homeassistant das nicht mehr anzeigen. Auch fehlt im entity der Eintrag für die aktuelle Position – so wie es vorher war. Lässt sich das wieder einschalten? Aktuell kann ein teilgefahrener Rolladen nicht mehr gesteuert werden bzw. für eine Automatisierung abgefragt werden.
    Gruß
    Andreas

  7. Hi i would like to buy some rollotron for home. What is scaring me is i’m a noob in home assistant. How’s going your work to make it more easily. Thanks. Best

  8. Hallo Paul,
    ich nutze bisher die FHEM-Integration. Diese habe ich an Home Assistant über MQTT ca. 2 Jahren ohne große Probleme angebunden. Jetzt wollte ich mittels dieser HA-hacs-Integration direkt auf HA umsteigen (ich nutze HA Docker).
    Da ein freundlicher (mir unbekannter) Nachbar das Wettermodul betreibt, zapfe ich dieses an (ohne dieses je gepairt zu haben). Kann ich die Wetterstation grundsätzlich und ohne Code aktivieren?
    Aus meiner Sicht fehlt neben einem Test noch ein Skript für Sensoren und Binärsensoren für HA. Wäre das viel Aufwand diese zu erstellen?
    Ich könnte gerne als Tester fungieren. Was meinst du?

    1. Hi Sascha, neue Geräte hinzuzufügen ist relativ schwierig wenn man sie nicht zum testen herumliegen hat (leider selbst wenn sich freundliche Tester finden). Normalerweise braucht man mindestens 10-20 Versuche wenn es gut läuft bis ein Gerät halbwegs funktioniert. Das ist mit Remote testing schwer zu machen. Das ganze ist aber ja auf github, du könntest also durchaus selber mal schauen ob du etwas hinzufügen kannst.

      Viele Grüße,
      Paul

  9. im obigen Text steht: “Das Ergebnis findet sich als pyduofern auf meinem bitbucket”
    das pyduofern ist verlinkt, aber der Link enthaelt einen Syntaxerror (2 “h” am Anfang)

    FYI.

Comments are closed.