Somfy Empfang über separates Arduino-Modul möglich

Begonnen von viegener, 08 März 2015, 18:41:34

Vorheriges Thema - Nächstes Thema

viegener

Oops, ich habe auch gerade erst angefangen und schon eine Frage (also eigentlich mehrere)...

Ich habe (u.a.) einen CUL433 mit FHEM am Laufen, der auch wunderbar meine SOMFY RTS Rolläden fahren lassen kann. In FHEM habe ich dafür andere "Adressen" für die Steuerung angelernt als die bisherigen Handsender verwendet haben (wg. Rolling Code etc). Nachwievor werden diese Handsender, die überall im ganzen Haus an der Wand hängen, weiter verwendet. Damit läuft aber der reale Stand der Rolläden und der Status in FHEM auseinander.

Da ich die CULFW nicht anpassen will und kann, hatte ich überlegt ein eigenen Arduino mit 433Mhz-EMpfänger so zu programmieren, dass er die COdes von den SOMFY-Handsendern decodiert und über USB an FHEM meldet, sodass dort der Zustand aktualisiert werden kann. Also sozusagen wie ein SOMFY-FHEMDuino-Modul und natürlich brauche ich noch ein dazugehöriges FHEM-Modul...

Zumindest den Code zum Empfangen und Decodieren der SOMFY-Signale habe ich bereits auf dem Arduino am Laufen, dieser müsste also nur noch ins FHEMDuino-Gerüst eingepasst werden...

Jetzt die Fragen:
1) Habe ich hier als Anfänger einen Denkfehler und irgendwas Entscheidendes übersehen, dass dieses Unterfangen unmöglich macht?
2) Hat vielleicht jemand soetwas schon angefangen oder durchgeführt?
3) Geht es einfacher?

Danke schonmal für Eure Hilfe...


Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Inzwischen habe ich mir es ja selbst beantwortet --> siehe im Somfy-Thread:

http://forum.fhem.de/index.php/topic,24158.msg290863.html#msg290863

Zitat von: viegener am 01 Mai 2015, 13:28:31
Ich habe inzwischen mal ein Empfangsmodul für SOMFY in FHEMDUINO-Implementiert und auch 10_SOMFY soweit erweitert, dass man existierende Somfy-FBs weiterverwenden kann und der Status entsprechend in den SOMFY-Devices korrekt angepasst wird. Bei mir funktioniert das mit meinen Rolläden inzwischen recht gut. Ich wäre aber schon interessiert noch weitere Tester zu haben.

Allerdings braucht man einen FHEMDuino am FHEM, da ich mich nicht direkt an CULFW-Erweiterungen gewagt habe  ;D

Quellen für das angepasste Somfy-Modul sind hier: https://github.com/viegener/somfy-rts-fhem

Die entsprechenden FHEMDuino-Änderungen und Module sind inzwischen auch in die offiziellen repositories übernommen worden:
https://github.com/mdorenkamp/fhemduino_modules
https://github.com/mdorenkamp/fhemduino



Tester willkommen...

Gruss,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

tomatic

Hallo,

ich habe eben meinen FHEMduino mit der Somfy-Erweiterung neu geflasht und konnte auch prompt die Fernbedienung meiner Wintergarten-Markise "finden" (siehe Screenshot)
Ich würde zunächst (bis ich meinen Ersatz-CUL fertig habe) einfach den Status in FHEM darstellen. Aber ich finde die Befehlsinterpretation etwas verwirrend. Wenn ich "runter" drücke kommt command 40, bei "hoch" 20, diese Zahl steht dann auch bei state. Muss ich da noch etwas anpassen?
An sich würde ich bei command "on/off" etc. erwarten und bei state die Position? Oder funktioniert das Modul nur mit den Rolläden?

Danke in jedem Fall für die Einbindung! Wieder etwas zum rumspielen ...

Gruss, Thomas
Inzwischen nur noch Raspimatic/CuxD, Hue und Homebridge

viegener

Hallo Thomas,
das FHEMduino_SomfyR Modul bildet erstmal nur die Fernbedienung nach und hat als Status deshalb auch den letzten Befehl. Der eigentliche FHEM-Aktor (und damit der Rolladen/die Markise oder ähnliches) ist getrennt davon und wird als SOMFY-Device angelegt.

Grund dafür ist eine Besonderheit des Somfy-Protokolls. Für jede Fernbedienung wird ein sogenannter RollingCode verwendet, der in der Fernbedienung und im Aktor bei jedem Befehl um jeweils eins hochgezählt wird. Wenn jetzt FHEM-Somfy und Deine Fernbedienung dieselbe Adresse verwenden würden, kämen die ROllingcodes durcheinander. Angenommen beide starten bei 100. Sobald in FHEM der SOMFY-Device betätigt wird, wird die 100 gesendet und der aktuelle Code im Aktor und in FHEM auf 101 gesetzt. In der Fernbedienung wird aber beim nächsten Mal wieder die 100 gesendet und die Markise/Rolladen bewegt sich nicht, erst beim 2. Betätigen wird die 101 gesendet, dann wird aber in FHEM das nächste Mal die bereits verbrauchte 101 gesendet und es passiert nichts. Bei mehrmaligem Betätigen kann das natürlich noch schlimmer werden...

Deshalb müssen 2 getrennte Devices
ein  FHEMduino_Somfy für die manuelle Fernbedienung
und ein SOMFY für die automatische Steuerung angelegt werden.
Als Verbindung muss im FHEMduino_SomfyR die Adresse des SOMFY-Aktors als Attribut rawDevice hinterlegt werden. Also z.B.


attr FHEMduino_SomfyR_D19A2F rawDevice 123456
define markise SOMFY 123456 A0 0001


Solange Du noch Deinen CUL nicht in Betrieb hast, reicht dies aus. Der Status findet sich dann am SOMFY-Device markise, der oben angelegt wurde.

Um dann mit FHEM die Markise zu steuern muss 123456 eine Adresse als weitere Bedienung bei Deiner Markise angelernt sein.

Dies geht übrigens recht einfach (hier mal die Folge für meine Rolläden)


  • Somfy-Gerät in FHEM anlegen - Das muss natürlich einen IODevice haben
  • Rolladen in den Prog Modus bringen mit der existierenden Fernbedienung - das steht beim entsprechenden SOMFY-Aktor beschrieben
  • Befehl Prog in FHEM aus dem SOMFY-Gerät auslösen
  • Prog-Modus verlassen
  • Prüfen ob Rolladen sich aus FHEM bewegen lässt

Da ich momentan nicht weiss, ob der letzte Satnd von 10_SOMFY bereits als update geliefert wird, hier ist der letzte Stand, den ich seit ein paar Wochen stabil in Betrieb habe.

Gruss,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

tomatic

Danke für die ausführliche Beschreibung!
Ich hatte das Add-on Board schon mal als Fernbedienung angelernt, hat problemlos geklappt, passt nur leider nicht auf mein USV board des Raspi...
Die Trennung zwischen Fernbedienung und Status war mir nicht klar, das werde ich heute abend gleich mal umsetzen.
Danke!
Inzwischen nur noch Raspimatic/CuxD, Hue und Homebridge

viegener

Gern geschehen!
Inzwischen scheint dieser Beitrag allerdings nicht mehr ganz passend für den Anfängerfragen-Thread   :)

Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

simonberry

Hallo,

erstmal danke und "Coole Arbeit"!

Das mit dem rawDevice habe ich gerade erst gelesen, das macht es ja richtig interessant!

Dazu meine Frage:
Würde das auch über FHEM2FHEM funktionieren?
Ich habe 2 RPis mit FHEM: 1 im Keller mit nem CUL433 der meine Rolläden schalten, und eine im Wohnzimmer mit dem FHEMduino, der die original FBs mitlauscht.
Im Momenet habe ich mir das selbst mit notify und setstate zusammen frickelt, aber wenn ich das so lese, kann ich mir das evtl. sparen, oder?

Falls es nicht klappt und jemand das gleich sucht, hier meine Lösung:
Notify auf Haupt FHEM

Somfy.* {
  my $nstate = "xx";

  if ($EVENT eq "11")
  {
    $nstate = "schatten";
  }
  elsif ($EVENT eq "20")
  {
    $nstate = "auf";
  }
  elsif ($EVENT eq "40")
  {
    $nstate = "ab";
  }
  if ($nstate ne "xx")
  {
    if (($NAME eq "Somfy_FB_2") ||
        ($NAME eq "Somfy_FB_5") ||
        ($NAME eq "Somfy_WZ_L"))
    { 
      Log 3,"setstate RolladenWZL $nstate";
      fhem ("setstate RolladenWZL $nstate;");
    }
    if (($NAME eq "Somfy_FB_3") ||
        ($NAME eq "Somfy_FB_5") ||
        ($NAME eq "Somfy_WZ_R"))
    {
      Log 3,"setstate RolladenWZR $nstate";
      fhem ("setstate RolladenWZR $nstate;");
    }
    if ($NAME eq "Somfy_FB_1")
    {
      Log 3,"setstate Markise $nstate";
      fhem ("setstate Markise $nstate;");
    }
    if (($NAME eq "Somfy_FB_4") ||
        ($NAME eq "Somfy_FB_5"))
    {
# Hinweis Das ist ein HomeMatic, deswegen wird er im NOtify auch per set gestartet, damit er sich bewegt. Der Kanal war auf meiner FB noch frei.
      Log 3,"set RolladenWC $nstate";
      fhem ("set RolladenWC $nstate;");
    }
  }
}

FHEM2FHEM Device im Haupt FHEM

DEF WZBERRY FHEM2FHEM 192.168.6.13:7072 LOG:Somfy_.*

Somfy Fernbedienungen im Wohnzimmer


define Somfy_FB_1 FHEMduino_SomfyR 3CDB5A
define Somfy_FB_2 FHEMduino_SomfyR 3CDB5B
define Somfy_FB_3 FHEMduino_SomfyR 3CDB5C
define Somfy_FB_4 FHEMduino_SomfyR 3CDB5D
define Somfy_FB_5 FHEMduino_SomfyR 3CDB5E
define Somfy_WZ_L FHEMduino_SomfyR 67F720
define Somfy_WZ_R FHEMduino_SomfyR 67F725


Rolläden im Haupt FHEM:

define RolladenWZL SOMFY 000001
attr RolladenWZL eventMap ,off:auf,on:ab,pos 40:schatten
define RolladenWZR SOMFY 000002
attr RolladenWZR eventMap ,off:auf,on:ab,pos 40:schatten
define Markise SOMFY 000003
attr Markise eventMap ,off:auf,on:ab,pos 40:schatten

# Hinweis Das ist ein HomeMatic, deswegen wird er im NOtify auch per set gestartet, damit er sich bewegt. Der Kanal war auf meiner FB noch frei.
define RolladenWC CUL_HM 26D017
attr RolladenWC eventMap on:auf off:ab 60:schatten


Viele Grüße

Simonberry
NUC5i3RYK#DBLOG; MYSQL; LIRC; MPD; HM-CFG-HM-USB-2: HM-divers; MQTT2; Signalduino; Shelly; Sonoff; dash_dhcp; FS20; IT; FroniusWR; Somfy RTS; NFS-Server
Rpi B#: nfsmount; ser2net CUL868; CUL433; GPIO4:DS18B20; WEMOS-D1-MINI#JVC-via-IR;

viegener

Hallo Simonberry,
Ich habe selber keine fhem2fhem-installation, aber wenn es nicht funktionieren sollte, kann ich versuchen das mitaufzunehmen. Wg empfangsproblemen im Dachgeschoss hatte ich das auch schon als loesung angedacht.

Also probier es bei Dir doch mal aus, wenn es nicht gehen sollte muesste ich vermutlich auf ein anderes modell zwischen remote und somfy umstelle . Das waere sicher machbar.

Gruss,
Johannes
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Heiner

Hi,

ich bin noch recht frisch in Bezug auf Somfy deshalb bitte ich schon mal um Nachsicht.

Ich habe mir mit einem Arduino Nano eine 433 MHZ CUL gebastelt und kann damit meine beiden Somfy Markisen auch ansteuern.

Nun muesste ich noch die Somfy-Remote einbinden.

Da meine "SendeCUL " ja schon ein FHEMdruino ist, stellt sihc die Frage ob das Ding auch fuer die Remote benutzt werden kann.
Ich kapier auch nicht wie exakt ich jetzt die Remote als Device in FHEM definiere.

Danke fuer die Hilfe



Heiner
--------------------------------
fhem auf Pi3+
CUL 868MHz, Signalduino 434MHz, HM-CFG-USB
HM, THZ, Kostal, Somfy, Conbee, Pytonbinding, FritzBox, FTUI, MQTT2

viegener

Achtung: CUL ist weder Hardware noch Softwaretechnisch gleich zum FHEMDUINO.
Also wenn Du einen CUL hast --> Momentan nur Senden
Wenn Du einen FHEMDUino hast --> Nur Empfangen

Eine genauere Vorgehensweise wenn man beide hat ist hier: https://forum.fhem.de/index.php/topic,24158.msg394931.html#msg394931
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

mhoellein

Hallo,

da stell ich doch gleich mal meine Frage mit hier ein.

Folgendes Setup:

mehrere Rollläden mit SIMU Fernbedienungen und einer Mehrkanalfernbedienung.
FHEM mit original CUL V3 von Busware 868MHz, FHEMduino mit 433MHz und nanoCUL mit 433MHz.

FHEM an allen Rollläden als zusätzliche Fernbedienung angelernt, funktioniert auch ohne Probleme. Leider kann ich seit ein paar Tagen mit der Mehrkanalbedienung den Rollladen 2 nicht mehr steuern. Ein erneutes Anlernen bzw. Ablernen der Mehrkanalfernbedienung geht auf dem gespeicherten Platz auch nicht mehr. Originale und FHEM funktionieren noch.
Nun wollte ich eigentlich mit Hilfe des FHEMduino die Mehrkanalbedienung "sniffen" um den Code sowie aktuell gesendeten Rollcode zu finden. Leider funktioniert das irgendwie nicht.
Ich habe ein FHEMduino_SomfyR angelegt und hoffte jetzt, dass zumindest ein "undefined sensor detected" kommt. Leider passiert aber nichts! Ich habe keine Ahnung wo der Fehler liegt.

Danke schon mal...

Mario

viegener

Zitat von: mhoellein am 15 März 2016, 13:30:55
Hallo,

da stell ich doch gleich mal meine Frage mit hier ein.

Folgendes Setup:

mehrere Rollläden mit SIMU Fernbedienungen und einer Mehrkanalfernbedienung.
FHEM mit original CUL V3 von Busware 868MHz, FHEMduino mit 433MHz und nanoCUL mit 433MHz.

FHEM an allen Rollläden als zusätzliche Fernbedienung angelernt, funktioniert auch ohne Probleme. Leider kann ich seit ein paar Tagen mit der Mehrkanalbedienung den Rollladen 2 nicht mehr steuern. Ein erneutes Anlernen bzw. Ablernen der Mehrkanalfernbedienung geht auf dem gespeicherten Platz auch nicht mehr. Originale und FHEM funktionieren noch.
Nun wollte ich eigentlich mit Hilfe des FHEMduino die Mehrkanalbedienung "sniffen" um den Code sowie aktuell gesendeten Rollcode zu finden. Leider funktioniert das irgendwie nicht.
Ich habe ein FHEMduino_SomfyR angelegt und hoffte jetzt, dass zumindest ein "undefined sensor detected" kommt. Leider passiert aber nichts! Ich habe keine Ahnung wo der Fehler liegt.

Danke schon mal...

Mario

@mhoellein - Ein fhemduino_SomfyR muss eigentlich nicht angelegt werden. Allerdings muss autocreate eingeschaltet sein, dann wird bei Empfang eines neuen Somfy-Codes über den fhemduino auch automatisch ein device dafür angelegt. Wird denn vom fhemduino wirklich etwas empfangen?

Wenn das nicht sicher ist, am besten mal auf dem fhemduino mal verbose 5 einschalten und im logfile von fhem nach Einträgen schauen. Diesen log-Ausschnitt kannst Du auch gerne hier posten, damit man schauen kann was/ob etwas empfangen wird.

Warum die Mehrkanalfernbedienung jetzt nicht funktioniert kann ich nicht sagen, da ich selber keine entsprechende Mehfachbedienung habe.



Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

mhoellein

Alles klar, ich vermute auch fast das was faul ist. Ich habe gestern schon den Arduino getauscht und neu geflasht, kein Erfolg. Ich werde wohl heute Abend mal das Oszi aus dem Keller holen.
Vielen Dank erst mal, ich melde mich wenn ich was in Erfahrung gebracht habe.

VG
Mario

viegener

@mhoellein: Was für ein Funkmodul verwendest Du für den fhemduino? Ich frage deshalb, weil es die günstigen Arten gibt, die offensichtlich für den fhemduino Zweck nicht funktionieren (Reichweite Empfang teilweise wenige Zentimeter) und die sogenannten "superheterodyne" Module.

Beispiel: http://www.ebay.com/itm/433Mhz-WL-RF-Transmitter-Receiver-Module-Link-Kit-for-Arduino-ARM-MCU-Wireless-/380717845396
Wenn es so ähnlich aussieht ist das FUnkmodul das Problem.

Du findest dazu auch einige Links hier im Forum.

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können