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.

8 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

Leave a Reply

Your email address will not be published. Required fields are marked *

forty three − 39 =