Somfy IO Homebridge interface

Begonnen von klaute, 17 Juni 2021, 15:21:55

Vorheriges Thema - Nächstes Thema

klaute

Hallo,

da über einen SIGNALduino die Kommunikation mit einem Somfy Gerät nicht kommuniziert habe ich eine andere Lösung erstellt.

Die Lösung ist losgelöst von FHEM aber sicher auch für einige hier interessant.

Einkaufsliste:
- Somfy Origin io Wandsender mit Drucktasten, die IO fähige Version (ca 38€ bei Ebay)
- Ardunio pro micro oder z.B. Wemod D1 Mini (je für unter 5€ von Aliexpress) oder eben etwas ähnliches.

1. Koppelt das Gerät mit dem Somfy IO kompatiblen Motor / in meine Fall eine Markise
2. Entnehmt die Batterie wieder
3. Schraubt das Gehäuse auf und entnehmt die Platine
4. Lötet 5 Drähte auf, am besten Kupferlackdraht. Siehe rote Markierungen in den Fotos. Ich habe in die Leitungen noch jeweils einen 2,2kOhm Widerstand eingelötet.
5. Verbindet die Kabel mit dem Wemos D1 Mini / Arduino pro micro

Im Anhang findet Ihr das Python-Script das ich zum bedienen implementiert habe, und auch das Arduino .ino-File um den Arduino / das Wemos D1 mini flashen zu können.

Um dann mit Homebridge.io die Markise, das Somfy IO Gerät, steuern zu können müsst ihr also nur noch den Microcontroller über die Arduino IDE flashen. Dazu verwendet Ihr das .ino-File das ihr in einem gleichnamigen Ordner legt.
Darin sind oben die Pins für das Wemos D1 Mini konfiguriert. Für einen anderen Microkontroller müsst ihr das umkonfigurieren.
Wichtig ist das ihr keine Pins verwendet die mit einen PullUp-/PullDown-Widerstand verbunden sind.

Im Python-Script müsst ihr oben noch das USB-Serial Device angeben.
Das Script habe ich nicht unter Windows getestet. Bei mir läuft alles auf einem alten Cubietruck it armbian.

Zum testen folgendes eingeben:
python ./somfyIOctrl.py up
python ./somfyIOctrl.py my
python ./somfyIOctrl.py down


Es muss zuvor das Python-Modul "pyserial" installiert werden.

Hier sollte sich dann bereits etwas an dem Somfy Gerät bewegen.

In Homebridge verwende ich das Plugin homebridge-cmdswitch2.

Hier meine Beispielkonfiguration:

        {
            "platform": "cmdSwitch2",
            "name": "CMD switch",
            "switches": [
                {
                    "name": "markise_up",
                    "on_cmd": "python2 /opt/somfyIOctrl.py up",
                    "off_cmd": "echo done",
                    "state_cmd": "exit 1",
                    "polling": true,
                    "interval": 5
                },
                {
                    "name": "markise_down",
                    "on_cmd": "python2 /opt/somfyIOctrl.py down",
                    "off_cmd": "echo done",
                    "state_cmd": "exit 1",
                    "polling": true,
                    "interval": 5
                },
                {
                    "name": "markise_my",
                    "on_cmd": "python2 /opt/somfyIOctrl.py my",
                    "off_cmd": "echo done",
                    "state_cmd": "exit 1",
                    "polling": true,
                    "interval": 5
                }
            ]
        }


Bei Fragen und Anregungen bitte melden.

Grüße
klaute