Somfy RTS mit Signalduino über FHEM in Homekit einbinden

  • Beitrags-Kommentare:28 Kommentare

Im Jahr 2012 habe ich mich für Somfy RTS Rolladen Motoren entschieden. Ausschlaggebend waren zwei Gründe. Erstens war ich vom Somfy Ansatz angetan langfristig Hersteller zu motivieren Ihre Produkte für die Somfy Plattform zu entwicklen. Für mich damals der FHEM Ansatz. Zweitens wollte ich keine extra Kabel vom Rolladen zum Schalter verlegen, weshalb ich mich für Funk Rolläden entschieden habe.

Punkt zwei ist bis heute eine gute Entscheidung gewesen. Die Rollos lassen sich natürlich trotzdem per Taster bedienen, der an die Wand geschraubt oder geklebt werden kann. Hinsichtlich der Plattform tratt nach und nach Ernüchterung ein. Zum einen war es die Geschwindigkeit mit der Somfy Hersteller für seine Plattform begeistern konnte. Zum anderen die doch sehr eingeschränkte Produktpalette bis zum heutigen Tage. Qualitativ bin ich aber sehr zufrieden mit den Rollos. Auch die Programmierung ist sehr einfach ohne das man gleich den Fachbetrieb anrufen muss.

Damals wie heute war es für mich aber immer ein Ärgernis, dass jeder Hersteller beim Verkauf seiner Lösungen eigene Gateways, Bridges und so weiter mit verkaufte. Weit weg also von Standards. Mir war es aber schon immer wichtig meine Geräte auch von außerhalb überwachen und steuern zu können weshalb ich auf die Tahoma Box setzte. Die Box ist das Gateway ins eigen Heim.

Mit FHEM haben sich hier aber neue Wege eröffnet. Die Installation von FHEM beschreibe ich hier. Nun aber zum eigentlichen Projekt:

Welche Komponenten kommen zum Einsatz?

Als erstes habe ich die beiden alten Rolläden ausgebaut und eine neue Welle eingesetzt, die den Rohrmotor aufnehmen kann. Anschließend habe ich Kabel gezogen, um die Motoren mit Strom zu versorgen. An dieser Stelle sei erwähnt, dass nur geschulte Fachkräfte an Elektro Installationen Änderungen vornehmen sollten!

Einbau Rolladen Walze und Somfy RTS Funk Rolladen

Zum Schluss wurde der Kasten gedämmt und wieder verschlossen. Wie Eingangs erwähnt lassen sich meine Rolläden auch konventionell per Somfy Smoove Origin RTS Taster bedienen. Die Taster werden nach Inbetriebnahme des Rolladen angelernt.

Konfiguration des SIGNALduino in FHEM

Im nächsten Schritt habe ich den SIGNALduino Stick in FHEM eingebunden. Das komfortable an dem Stick ist, dass er bereits fertig geflasht geliefert wird. Da Somfy auf 433 MHz funkt müsst ihr aber beim Kauf darauf achten den richtigen auszuwählen. Es gibt auch noch einen 868 MHz Stick.

SIGNALduino in FHEM definieren

Bevor es los geht muss der SIGNALduino natürlich an einen freien Port des Raspberry angeschlossen werden. Anschließend muss der USB Port ausgelesen werden

ls -l /dev/serial/by-id

Das benötigte FHEM Modul wird per Update verteilt und auf dem aktuellen Stand gehalten. Aus diesem Grund nun FHEM updaten

Update

Jetzt kann schon der SIGNALduino mit den zuvor ermittelten USB Port Informationen definiert werden. Die Beispieldaten nun mit euren ersetzen

define eigener-Name SIGNALduino /dev/serial/by-id/usb-Unknown_radino_CC1101-if00

Hat alles soweit geklappt steht das neue Gerät nach kurzer Zeit in FHEM auf „Opened

Da auf 433 MHz allerdings zig Geräte unterschiedlichster Hersteller Funken werdet ihr nach Aktivierung des Sticks erstmal mit neuen Devices erschlagen. Um hier überflüssige Geräte des Nachbarn auszuschließen habe ich folgende Einstellungen vorgenommen:

Set radinoCC1101 cc1101_freq 433 

Zusätzlich zum setzen der Frequenz habe ich folgende Attribute gesetzt. Wer anhand des Artikels das ganze hier nachbaut muss natürlich die Blacklist_IDs durch seine eigens ermittelten IDs ersetzen soweit nötig.

Attributes:
   blacklist_IDs 649F08,47B086,5CC901,61CDFE
   hardware   radinoCC1101

Blacklist: Fremde Geräte, die immer noch eingefangen werden fange ich mit einer Blacklist ab.

Hardware: Festlegung es exakten Funkmoduls.

Jetzt kann es bereits mit dem Anlernen der SOMFY Rolladen los gehen.

SOMFY RTS Rolladen in FHEM anlernen

An dieser Stelle ist meine Empfehlung eine Liste der Rollos in eurem Heim zu erstellen und diesen einen HEX-Code zuzuweisen. Dieser muss natürlich einmalig sein pro Rolladen und darf nicht schon durch ein anderes Gerät, wie eine Funk Fernbedienung verwendet werden.

Anlegen des ersten Rolladen per Define

define Rollo_Wohnzimmer SOMFY EUER-Hex-Code

Damit das Gerät weiß über welches Gerät es kommunizieren soll wir das IO-Device, also der SIGNALduino per Attribut festgelegt

attr Rollo_Wohnzimmer IODev radinoCC1101

Nun muss der Rolladen über den Handsender in den Anlernmodus gebracht werden. Prog-Taste kurz gedrückt halten bis der Rollanden kurz runter/hoch fährt als Zeichen, dass er programmiert werden kann. Nun direkt in FHEM folgenden Befehl absetzen

set Rollo_Wohnzimmer prog

Bei Erfolg fährt der Rollo wieder kurz runter/hoch. Hat alles funktioniert ist euer Rolladen in FHEM angelernt und bereits steuerbar!

Einbindung in Homekit per Homebridge

Das schöne an FHEM ist auch, dass ihr den Sprachassistenten eurer Wahl mit den integrierten Geräten bedienen könnt. Ob Siri, Alexa oder der Google Assistant. Meine primäre Wahl fällt auf Apple Homekit und damit Siri. Seit neustem auch Alexa, um unabhängiger von den Geräten zur Sprachsteuerung zu werden. Dazu mehr in einem anderen Beitrag.

Um nun per Homekit und Siri steuern zu können benötigt ihr die Homebridge und das Homebridge-FHEM Plugin. Auch hierzu gibt e sehr gute Wiki Artikel beim FHEM. Nach langer Suche im FHEM Forum möchte ich hier mein funktionsfähiges Homebridge Mapping zeigen:

Attributes:
   IODev      radinoCC1101
   alexaName  lillyrollo
   alexaRoom  Lilly
   devStateIcon closed:fts_shutter_100 open:fts_shutter_10 my:fts_shutter_50
   eventMap   on:ab off:auf go-my:my on:close off:open
   genericDeviceType blind
   group      Rolladen
   homebridgeMapping clear
CurrentPosition=userposition,minValue=0,maxValue=100,minStep=50
TargetPosition=userposition,minValue=0,maxValue=100,minStep=50,cmds=0:close;;50:my;;100:open
   model      somfyshutter
   positionInverse 1
   room       Alexa,Homekit,Lilly,Somfy
   siriName   Lilly Rollo
   userReadings userposition {(ReadingsVal($NAME,"state","open") eq "open")?100:(ReadingsVal($NAME,"state","open") eq "go-my")?50:0}
   webCmd     auf:my:ab

In der Home App sieht das ganze wie folgt aus:

Home App Rolladen Device von SOMFY
SOMFY Rollo in der Home App

Ich bin mit dieser Lösung sehr zufrieden und sie funktioniert bis jetzt ohne Probleme. Werden die Rollos über FHEM geschaltet ändert sich auch der Status in der Home App und umgekehrt.

Ich habe dem ganzen dann eine Automation aufgesetzt, dass der Somfy Rolladen nur geschlossen werden soll, wenn der Homematic Fensterkontakt erkennt, dass die Balkontür geschlossen ist. So vermeide ich vor einem geschlossenen Rolladen bei geöffneter Balkontür zu stehen 🙂

Ich hoffe ich konnte euch zeigen, was in dieser Konstellation möglich ist und freue mich über Feedback.

Dieser Beitrag hat 28 Kommentare

  1. Carsten

    Hallo
    ich habe Deine Anleitung befolgt. Allerdings scheitere ich an FHEM. Ich kann den Signalduino sehen und er steht auf (open), allerdings ist dann Schluss. Gibt es eine chance das Du mir helfen kannst?

  2. Carsten

    Hallo,

    ich habe Deine Anleitung befolgt und ich bin bis FHEM gekommen. Ich habe den Signalduino an einem Rasperry PI mit Raspbian Buster. Fhem Läuft und ich kann den Signalduino als „open“ sehen. Allerdings habe ich keinerlei Geräte gelistet.
    Hast du einen Hinweis oder kannst Du mir weiterhelfen?

    1. Udo Berndt

      Hallo Carsten,
      für welche Geräte möchtest du den Stick einsetzen? Hast du z.B. auch einen Rollo angelernt. Das geht nicht automatisch!
      Was steht in den Readings des Signalduino?
      Gruß, Udo

      1. Carsten

        Hallo, nach langem suchen habe ich gefunden das der Stick die Frequenz genau bekommen muss. Problem 1 gelöst. Kann die Rollos nun auch sehen auch prima.

        Wir kann ich das Mapping in FHEM anlegen (ich denke mal das es in FHEM ist)?
        Du sprichst in Deinem Mapping von Lilly, ist das ein Raum? Vielen Dank !

        Carsten

  3. Carsten

    Update: Habe es geschafft. Allerdings habe ich ein neues Problem. ich habe eine falsche Anleitung befolgt (nicht die Progtaste sondern auf und ab). Somit funktioniert meine Remote nicht mehr. Weisst Du wie man das fixen könnte?

    1. Udo Berndt

      Super, dass es jetzt klappt. Zu deinem Problem da würde ich nach der Standard Somfy Anleitung für Remote Fernbedienungen vorgehen.

  4. Carsten

    Hier eine weitere Frage. Hast du eine Programmierung das du z.b. Ein Rollo nur zu 30% herunter fährst? Ich finde es etwas unzulänglich das man in HomeKit as default nur ganz runter oder ganz hoch fahren kann

    1. Udo Berndt

      Hab ich derzeit so gelöst mit 50% über das Homebridge Mapping
      CurrentPosition=userposition,minValue=0,maxValue=100,minStep=50
      TargetPosition=userposition,minValue=0,maxValue=100,minStep=50,cmds=0:close;;50:my;;100:open

      1. Bernd

        Hallo
        Ich kann das Rollo entweder nur öffnen oder schließen. So zwischdurch lässt sich Rollo nicht anhalten.

        Ach ja super Anleitung!

        Gruß
        Bernd

        1. Udo Berndt

          Hallo Bernd,
          wenn du die my Taste belegt hast, kannst du den Rollo noch automatisch auf diese Position fahren lassen.
          Schau auch mal in den Kommentar von Carsten vom 19. Oktober einen Post über deinem. Mit diesen Einstellungen kannst du den / die Rollos in 10ner Schritten fahren lassen.

          Viele Grüße,
          Udo

  5. Carsten

    Hi Udo,
    mir ist etwas sehr seltsames passiert. Ich kann auf einmal einige Rolladen nicht mehr über FHEM ansteuern. Andere schon. Habe schon probiert einen Reboot, und auch das Gerät näher an die Rolladen zu bringen. Hat nix gebracht.

    Überlege nun ob ich ggf einfach die Einträge nochmal aus Fhem löschen sollte und dann neu Anlernen? Wenn Du sonst eine Idee hast bin ich Dir sehr dankbar

    1. Udo Berndt

      Sorry für die späte Rückmeldung. Hast Fehlermeldungen im Logfile?

  6. LastOne

    Hi!

    Erst einmal vielen Dank für die tolle Anleitung! Das hat mir sehr geholfen und nun klappt auch alles mit meine Rollläden. Eine Frage habe ich aber noch. Wenn mein pi mal das wlan verliert (vermute jedenfalls das als Ursache) kommt homekit etc. mit dem Status der Rollläden durcheinander und meist hilft nur ein reboot des gesamten pi und einmal hoch / runterfahren klicken der Rollläden. Hast du das auch bzw wie hast du das gelöst?

    1. Udo Berndt

      Das Problem kenne ich und es hat mit dem Rolling Code zu tun. Warum es plötzlich auftritt habe ich bisher noch nicht verstanden. Als Workaround habe ich in FHEM folgendes Attribut bei jedem Rollo gesetzt: autoStoreRollingCode = 1

      1. LastOne

        Danke! Ich hab das Attribut nun gesetzt und werde beobachten. Hast du eine prozentuale Steuerung auch geschafft? Oder nur oben/unten my? Das wär noch ganz cool.

        1. Udo Berndt

          Nein, eine prozentuale Absenkung habe ich leider auch nicht. Wenn du was dazu findest gerne hier posten. Soweit ich weiß geht das aber auch nur mit den IO Motoren von Somfy. Hast du andere Hinweise?

          1. LastOne

            Bisher nicht. Aber ich frage mich ob man das nicht trotzdem umsetzen kann in begrenztem Maß. Die my taste stoppt ja den Rolladen. Vielleicht muss man nur ein paar Befehle kombinieren.

          2. Udo Berndt

            Ich denke das Problem mit der My Taste / Belegung ist, dass diese auch nur einen gespeicherten Zustand kennt. Hast du mal probiert, ob man direkt über Somfy verschiedene Zustände speichern und anfahren kann? Weil wenn es dort nicht geht geht es glaube ich über Signalduino auch nicht?

          3. LastOne

            Ich kann die Taste mit verschiedenen Werten belegen. Aber halt auch immer nur einen aktuell.

            Übrigens hatte ich wieder das Problem das die rolläden nicht reagiert haben nach Neustart des PI. Lösung diesmal: in FHEM so oft einen Rollladen ansteuern bis er sich bewegt. Dann gehen die anderen auch. Und in HomeKit musste ich dann zwei mal klicken bis es den Status wiederfand je Rolladen. Oben steht auch Raum Homebridge reagiert nicht

          4. Udo Berndt

            Ich denke das Thema ist im Weiteren etwas für den Entwickler des Moduls. Ich habe leider auch keine andere Lösung.

  7. LastOne

    Ja, vielleicht frag ich da mal nach. Bin dir auf jeden Fall sehr dankbar für deine Tips und Anleitung 🙂 Eine Frage hätt ich sogar noch: Erkennt HomeKit bei dir die Statusänderung des Rolladen wenn du den manuellen Taster nutzt? Im iPhone stand offen obwohl ich über handsender auf 50% fuhr

  8. Carsten

    Hallo, sehr beruhigt die kommentare von LastOne zu lesen. Bedeuted das ich nicht der einzige bin. Es gibt bei mir allerdings leider immer wieder Rolladen die ich aus dem Fhem verliere. Die sich einfach nicht mehr ansteuern lassen. Muss sie wohl nochmal neu programieren.

  9. Carsten

    Hi,

    ich habe endlich eines meiner grossen Probleme gelöst. Ich habe einen riesen Fehler gemacht.. Ich habe in FHEM die Hexcodes genommen die ich für meine Rollos gefunden habe. Allerdings waren es nicht die HEXcodes der Rollos sondern von meinen Handsendern. Folge:
    – Einige Handsender Funktionieren nicht mehr (nicht ganz so schlimm)
    – Rollos hörten immer wieder auf zu funktionieren

    Also ganz wichtig HEXcodes zu nutzen die NICHT in irgendeinerweise belegt sind. Ich kann auch sehr empfehlen die Sendelieistung der Signalduino hochzusetzen.

    Hast Du das auch mal mit einer Somfy Markise probiert?

    1. Udo Berndt

      Ja, das ist ganz wichtig und steht auch in meiner Anleitung im ersten Satz bei „SOMFY Rolladen in FHEM anlernern“ 😉
      Mit einer Markise habe ich es nicht probieren können, da ich keine habe.
      Danke für deinen Kommentar und das wichtige Feedback!

  10. Carsten

    Hier noch eine Frage an Dich.
    Ich habe in Fhem folgende Konfiguration
    „Internals:
    ADDRESS 15CA07
    DEF 15CA07
    FUUID 5f86d22e-f33f-fcf3-4589-bfefbb1536fd1ebb
    IODev Signalduino
    NAME Persiana_Puerta_Salon
    NR 393
    STATE open
    TYPE SOMFY
    move off
    CODE:
    1 15CA07
    READINGS:
    2020-10-19 08:59:30 enc_key A6
    2020-10-19 08:59:30 exact 0
    2020-10-19 08:59:30 position 0
    2020-10-19 08:59:30 rolling_code 0016
    2020-10-19 08:59:30 state open
    2020-10-19 08:59:30 userposition 100
    Attributes:
    IODev Signalduino
    devStateIcon closed:fts_shutter_100 open:fts_shutter_10 my:fts_shutter_50
    drive-down-time-to-100 21
    drive-down-time-to-close 24
    drive-up-time-to-100 3
    drive-up-time-to-open 24
    eventMap on:ab off:auf go-my:my on:close off:open
    genericDeviceType blind
    group Persianas
    homebridgeMapping clear CurrentPosition=userposition,minValue=0,maxValue=100,minStep=5 TargetPosition=userposition,minValue=0,maxValue=100,minStep=5,cmds=0:close;50:my;100:open
    icon fts_shutter_updown
    model somfyshutter
    room Homekit
    siriName Persiana Puerta Salon
    userReadings userposition {(ReadingsVal($NAME,“state“,“open“) eq „open“)?100:(ReadingsVal($NAME,“state“,“open“) eq „go-my“)?50:0}
    webCmd stop:on:90:80:70:60:50:40:30:20:10:off“

    Ich würde gerne mit Siri Shortcuts eine bestimmte Position anfahren. Hast Du das schonmal probiert / Erfahrungen?

    1. Udo Berndt

      Hi,
      mit Siri Shortcuts habe ich bisher wenig gespielt, daher keine bis wenig Erfahrung. Funktioniert es bei dir über FHEM mit den o.g. webCmd’S?
      Gruß
      Udo

      1. Bernd

        Hi,
        mit folgenden Attributen kann ich meine Rollos mit Siri bzw. HomeKit auf verschiedene Postionen einstellen.

        IODev sduino
        autoStoreRolling Code 1
        devStateIcon open:fts_shutter_10 10:fts_shutter_10 20:fts_shutter_20 30:fts_shutter_30 40:fts_shutter_40 50:fts_shutter_50 60:fts_shutter_60 70:fts_shutter_70 80:fts_shutter_80 90:fts_shutter_90 down:fts_shutter_100 closed:fts_shutter_100
        drive-down-time-to-100 23
        drive-down-time-to-close 27
        drive-up-time-to-100 4
        drive-up-time-to-open 23
        eventMap on:ab off:auf go-my:my on:close off:open
        genericDeviceType blind
        group Rollladen
        homebridgeMapping clear CurrentPosition=userposition,minValue=0,maxValue=100,minStep=10 TargetPosition=userposition,invert=1,minValue=0,maxValue=100,minStep=10,cmd=pos
        model somfyshutter
        room Homekit
        siriName Rollo Terrasse
        userReadings „userposition {(ReadingsVal($NAME,“state“,“open“) eq „open“)?0:
        (ReadingsVal($NAME,“state“,“open“) eq „closed“)?100:
        (ReadingsVal($NAME,“state“,“open“) eq „90“)?90:
        (ReadingsVal($NAME,“state“,“open“) eq „80“)?80:
        (ReadingsVal($NAME,“state“,“open“) eq „70“)?70:
        (ReadingsVal($NAME,“state“,“open“) eq „60“)?60:
        (ReadingsVal($NAME,“state“,“open“) eq „50“)?50:
        (ReadingsVal($NAME,“state“,“open“) eq „40“)?40:
        (ReadingsVal($NAME,“state“,“open“) eq „30“)?30:
        (ReadingsVal($NAME,“state“,“open“) eq „20“)?20:
        (ReadingsVal($NAME,“state“,“open“) eq „10“)?10:100}“
        webCmd stop:100:90:80:70:60:50:40:30:20:10:0

Schreibe einen Kommentar