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.

8 Gedanken zu “Duofern Rolladenmotoren mit 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

Schreibe einen Kommentar

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

nine + one =