Somfy Funkrollo-Steuerung per Arduino-Fernbedienung

Das ist eine gute Frage, ich dachte, ich hätte die aus dem Datenblatt. Aber da stehen 10 mA ...

Das wären dann also eher ~ 350 Ohm.

Danke für den aufmerksamen Hinweis! (Ich staune immer wieder, wie ahnungslos ich beim Thema Elektronik bin ...) :fearful:

Ein Widerstand unter 100 Ohm an einem Arduino -Ausgang ist immer sehr verdächtig, unter 300 Ohm sollte man genau überlegen ...

Ein Optokoppler überlebt vielleicht IFmax = 50 mA, aber er braucht sie nicht. ( Und ein Arduino verträgt sie nicht.)
Auf der Ausgangsseite ist ein normaler Optokoppler ja kein Leistungstransistor, hoffentlich ist das nicht seine Aufgabe :wink:
Versteh ich das richtig, dass du da einen Taster überbrücken willst ?

Da die Schalter via Pullup ausgelesen werden dürften

... sollte auch im eingeschalteten Zustand kaum ein nennenswerter Strom fliessen, meint Manawyrm.

Genau, es geht um Taster - die, die auf den Bildern (weiter oben im Thread) gelb eingekastelt sind.

Hallo Manawyrm,

richtig der Portpin wird von Hochohmig auf Masse geschalten und ist somit kein Problem.
Auch bei der Kanal abfrage der Telis 4 über die LED Ausgänge der Telis reichen die 3 Volt aus um dies mit dem Arduino sauber auszuwerten.
Ansonsten sollte es auch kein Problem sein die Taster mit einen Optokoppler zu Überbrücken.

Gruß, Peter

Hallo,
vielleicht mal ein anderer Ansatz:
Der Schalter ist doch nichts anderes als eine 433 MHz Fernbedienung, wie sie z.B. auch für Funksteckdosen genutzt wird. Sicher ist das Protokoll ein anderes, aber das lässt sich ja rausfinden. Ähnlich wie in diesem Projekt http://blog.sui.li/2011/04/12/low-cost-funksteckdosen-arduino/ könnte man dann ein 433 MHz Sendemodul direkt am Arduino betreiben. Einzige Vorraussetzung: das Signal müsste amplitudenmoduliert sein.
Hat jemand schon mal versucht herauszufinden, wie das Signal kodiert ist?
Gruß
Reinhard

Hey, das sieht ziemlich interessant aus, jedoch lässt sich Somfy, was die Codierung angeht, afaik nicht wirklich in die Karten schauen. Wobei das natürlich die allerallerallerattraktivste Lösung wäre ...

Genau das möchte ich doch schon lange machen :wink:

Deswegen hätte ich ja auch gerne ein Bild vom Innenleben.
Ich glaube nicht wirklich dass Somfy eigene Chips verwendet.

Das wird wahrs. 0815 Zeug sein, und da kann man dann sicherlich im Datenblatt auch das Protokoll nachlesen^^

Ein Foto des Innenlebens des Empfängers wäre sicher nicht schlecht, besser aber noch eine Messung des Signals am Empfänger.
Ich habe sowas mal an einer fernsteuerbaren Steckdose - in Ermangelung eines DigitalScopes - mit dem Analogeingang der Soundkarte und Audacity gemacht.
Zumindest sieht man dann schon mal die Taktrate, die Wiederholrate und wenn man Glück hat, kann man anhand der Signale auf die Codierung schliessen.

Huh, Leute, da muss ich euch leider enttäuschen. Mir fehlen sowohl das Equipment wie auch die Kenntnisse, um aus den Somfy-Empfängern irgendetwas herauszumessen. Und da die Teile in den Rollomotoren integriert sind, scheue ich mich auch davor, diese auszubauen und aufzumachen.

Btw.: Ende der Woche habe ich die Optokoppler, dann versuche ich das ganze mal an einen Arduino zu hängen und per HTTP-Request fernzusteuern. Dann muss ich nur noch herausfinden, wie ich das Ganze mit der Homematic-Zentrale zusammenbringe.

So, Optokoppler sind da, jedoch hab ich gestern wohl beim Löten gemurkst - jedenfalls lässt sich nur einer der drei Buttons per Arduino auslösen. Dabei sehen die Lötstellen eigentlich allesamt gut aus - wie empfindlich ist denn so ein Optokoppler, was Lötkolbenhitze angeht? :astonished:

Naja, ich werd' dann morgen alles neu verlöten und es noch einmal probieren ...

So, jetzt ist dann der Zeitpunkt, an dem ich anfange, zu verzweifeln. Ich habe jetzt zig mal neu verlötet, umgesteckt, umkonfiguriert, immer mit demselben Ergebnis: Ich kann im besten Fall einen der drei Schalter per Arduino auslösen. Entweder habe ich also die anderen Optokoppler bereits verheizt oder irgendetwas an der Kombination aus Koppler und Vorwiderstand passt nicht ...

Alle Lötstellen habe ich mehrfach (meist mit Hilfe einer LED) überprüft. Ebenso den Code im Arduino. Die Schalter lassen sich auch wunderbar von Hand überbrücken, wenn ich die angelöteten Kabel zusammenführe. Ich habe keine Ahnung, was ich jetzt noch ausprobieren soll - ich hab sogar schon andere Widerstände versucht (240 Ohm und 600 Ohm). Habt ihr vielleicht eine Idee? Oder eine definitiv passende Kombination von Koppler und Widerstand (gerne von Reichelt)?

Die Verkabelung sieht so aus:

[b]Arduino:[/b]                       [b]Optokoppler:[/b]       [b]Somfy-Funkschalter:[/b]
Digital Out --- [360 Ohm] ----- 1       6
GND --------------------------- 2       5 ---------- 1
                                3       4 ---------- 2

Boah! Das Forum hat mein Posting gefressen! :frowning:

Also nochmal: Die Beschaltung sieht soweit ganz gut aus, ist das ein CNY17, den du verwendest? hast du mal versucht, die Zuleitungen zum Taster von Pin 4 und 5 zu tauschen? Hintergrund ist, dass du einen Transistor als Schalter verwendest, und das funktioniert prinzipbedingt nur unidirektional.
Lötest du direkt oder bastelst du das erst auf dem Steckbrett zusammen?

Als brutaler Anfänger löte ich natürlich direkt (was ich im Nachhinein betrachtet wohl lieber hätte lassen sollen ...) - und ja, das ist ein CNY17-3.

Auf die Idee, 4 und 5 zu tauschen, bin ich in der Tat noch nicht gekommen, ich dachte, dabei wäre die Polung egal => wird aber SOFORT ausprobiert. Ich melde mich wieder!

(Müsste allerdings mit dem Teufel zugehen, wenn ich bei den ganzen Neuverlötungen die Kabel nicht schon einmal versehentlich getauscht hätte ... egal, wird trotzdem versucht!)

Mal abgesehen davon, dass ich mir jetzt ein kleines bisschen doof vorkomme: SUPER, ES GEHT!

Ich danke euch allen!

Jetzt muss ich nur meinen Arduino-Code etwas bereinigen ...

Es ist keine Schande, etwas nicht zu wissen. Wichtig ist, das man gewillt ist weiter zu lernen. Und das hast du sicher bei deinem Projekt auch getan. :smiley:

Ansonsten: Immer ran mit mehr Informationen, Codezeilen, Bilder und Videos vom Projekt! :wink:

Liefere ich asap nach!

Entschuldigt bitte, dass es so lange gedauert hat, dafür ist die Beschreibung der ganzen Bastelaktion auch etwas ausführlicher geworden. Viel Spaß damit: www.es-ist-ein-krauss.de/Somfydunio.pdf

Hallo zusammen,

ich hole den Thread einfach mal nach oben, weil ich im Prinzip genau das gleiche vorhabe.

Ich werde zwei Somfy RTS Fünf-Kanal-Fernbedienungen mit einem Arduino ansteuern, insgesamt werden 9 Rolladen kontrolliert.
Die Fernbedienungen werden direkt über den 3,3V-Pin mit Spannung versorgt, so dass GND überall gleich ist.
Die Ansteuerung der Taster durch die Outputpins des Arduino könnte also direkt erfolgen, wären da nicht die unterschiedlichen HIGH-Pegel (5V Arduino, 3,3V Somfy).
Vermutlich würde es trotzdem funktionieren, aber ganz sauber wäre es nicht. Daher werde ich die Ansteuerung der Taster über NPN-Darlington-Arrays realisieren.
Die sind günstig, es sind alle nötigen Widerstände drin und ich muss nicht mit umgedrehter Logik arbeiten.

Damit das ganze aufbaumäßig einigermaßen sauber wird, werde ich wo es eben geht PSK-Steckverbinder einsetzen und das ganze in ein Kunststoffgehäuse einbauen, aus denen ich USB und Ethernet des Arduinos herausführe.

Auf der Software-Seite habe ich für den Arduino auf den Code von juekr aufgesetzt, allerdings mit ein paar Ergänzungen. Die nötige Anzahl von Klicks auf den Kanalwechsel-Schalter wird berechnet und ausgeführt, der aktuelle Kanal wird nach Kanalwechseln gespeichert. Außerdem gibt es noch eine Logik zur Unterscheidung der beiden Fernbedienungen.

Die Ansteuerung des Arduinos über UDP übernimmt bei mir kein Webserver, sondern ein Python-Skript, das auf einem Raspberry Pi läuft. Das wiederum nimmt UDP-Befehle von anderen Stellen entgegen und leitet sie, nach entsprechender Anpassung, an den Arduino weiter. Außerdem spult es ein vorgegebenes Programm ab (nach dem Motto: abends runter, morgens hoch). Das ganze soll noch jahreszeitenabhängig werden, sich an Sonnenauf- und -untergängen orientieren und eine gewisse Zufallskomponente einbringen.

Es wird eine Android-App geben, um unsere Smartphones zu Fernbedienungen zu machen.

Später sollen auf gleiche Weise unsere Velux-Dachflächen-Fenster inkl. Jalousien eingebunden werden. Hier soll dann auch eine Steuerung übers Internet realisiert werden. Da ich ungern irgendwelche Ports an meinem Router öffne, wird das ganze frei nach dem Motto "Security by Obscurity" über eMails funktionieren, die das Python-Skript entgegen nimmt, den Absender und einen Code überprüft, dann die Aktion auslöst und darauf hin auch Bestätigungsmails versenden.

Die restlichen Teile kommen heute per Post, am Wochenende finde ich evtl. Zeit alles zusammenzubauen. Dann werde ich wieder berichten.

Gruß,
Max

Ich kram einfach diesen Thread noch einmal hervor, weil mein Setup noch mehr oder weniger dasselbe ist (außer, dass ich den Arduino mittlerweile durch einen Raspberry Pi ersetzt habe). Mein Problem: Seit ich die Funksteuerung in ein Gehäuse verfrachtet habe, reagieren die Motoren nur noch sporadisch (mal drei von fünf, mal alle fünf, mal nur einer). Ich vermute, dass das Funksignal einfach zu schwach ist. Da ich nicht alles wieder offen rumliegen haben möchte, die Frage: Lässt sich das Signal irgendwie verstärken?

Ich mit meinem beschränkten Elektronikfachwissen könnte mir das auf zwei Arten vorstellen:

  • Mehr Power: Würde eine leichte Spannungserhöhung (z.B. statt 3-V-Batterie 3,5 V vom Raspberry) hierbei einen Unterschied machen? Oder würde es eher das Gerät schrotten?

  • Mehr Antenne: Könnte man dem Teil irgendwie eine (Art) externe Antenne verpassen? Wo genau kommt denn das Funksignal aus dem Wandschalter heraus? An der Spule (angehängtes Bild)? Kann man das irgendwie anzapfen bzw. nach draußen legen?

Was meint ihr?