Modul-Entwicklung: Somfy RTS

Begonnen von thdankert, 12 Juli 2014, 21:04:31

Vorheriges Thema - Nächstes Thema

Grafkox

Hallo zusammen,

zunächst einmal ein riesengroßes Lob und ein Danke für die tolle Arbeit in diesem Modul. Ich konnte es ohne Probleme einrichten und funktioniert auch seit einigen Wochen hervorragend.

Nun möchte ich ein wenig "weiter basteln" und habe zwei Anliegen, zu denen ich im Forum bislang nichts finden konnte:

1.) Ich habe wie scuba mehrere Rolläden in ein neues Device gepackt, da mir der nanoCUL bei Gruppen > 3 (bei repitition = default) und > 5 (bei repitition = 2) abschmiert. 
Zitat von: scuba am 25 Juli 2016, 16:28:01
Zusätzlich zu den 7 Einzeldevices hab ich in FHEM noch das Somfy Device "Alle Jallousien" engelegt und auf allen Motoren eingelernt.
Das hat nicht nur den Vorteil, dass die gesamte Front mit einem Tastendruck hoch/runter gefahren werden kann. FHEM sendet somit auch nicht 7 Einzelbefehle sondern nur einen an alle Motoren gemeinsam. Ergo fahren alle Motoren gleichzeitig an.
Diese Methode hat allerdings den Nachteil, dass in den Einzeldevices nicht der Status angepasst wird.
Ich habe fast alle Beiträge zu dem Modul durchforstet und habe auch in Post #670 in "Erweiterung CULFW um Somfy/Simu" gesehen, dass es mit externen Fernbedienungen geht, aber finde nichts dazu für einen "Sammeldevice" in Fhem selbst. Habe ich ggf. etwas überlesen?

2) Wenn ich die Rolladen auf "MY-Position" fahre, weiß FHEM ja nicht mehr den korrekten Status, da die Position bei den RTS-Motoren im Motor gespeichert ist.
Bestünde ggf. die Möglichkeit in Fhem einen Wert für die MY-Position festzulegen, damit Fhem auch die Position kennt?

Eine Einstellung könnte dann wie folgt laufen: Rolladen mit Fhem in die gewünschte Positions fahren und den Wert in Position ablesen und als Wert für die MY-Position hinterlegen. Mit der Somfy-Fernbedienung dann die My-Position festlegen.

Kommt jetzt per Fernbedienung oder aus FHEM der Befehl go-my und der Rolladen läuft ohne ein weiteres go-my zwecks stoppen in diese Postition, ist der Wert auch in FHEM hinterlegt.

Ich bin leider kein Programmierer und wüsste nicht wie ich das umsetzen könnte, stünde aber jederzeit gerne für Tests zur Verfügung.

Wenn die Themen hier im Entwicklungsthread nix zu suchen haben, mache ich auch gerne nochmals Einzelthemen auf.

Vielen Dank schonmals und viele Grüße

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

Ellert

ZitatDiese Methode hat allerdings den Nachteil, dass in den Einzeldevices nicht der Status angepasst wird.

Hier könntest Du ein notify nutzen und mit setstate, setreading den Status der Einzelgeräte nachziehen.

Eventuell kannst Du auch das Attribut rawDevice nutzen.

ZitatWenn ich die Rolladen auf "MY-Position" fahre, weiß FHEM ja nicht mehr den korrekten Status, da die Position bei den RTS-Motoren im Motor gespeichert ist.
Bestünde ggf. die Möglichkeit in Fhem einen Wert für die MY-Position festzulegen, damit Fhem auch die Position kennt?

Auch hier könntest Du mit einem notify und mit setstate oder setreading die go-my Position setzen.

Die Fernbedienung wird z.Zt. nur vom SIGNALDuino oder FHEMduino empfangen.




Grafkox

Hallo Ellert,

vielen Dank für Deine schnelle Antwort.

Notify und setstate sind sicherlich eine machbare Lösung (werde ich mich mal mit auseinandersetzen).
Ich hätte bei den zusammengefassten Rollos nur gedacht, dass es analog des "rawdevices" Attributes im Modul 14_FHEMduino_SomfyR.pm auch möglich wäre den Status des Einzeldevices entsprechend der "Fahrzeit" des Sammeldevices anzupassen. Wenn ich das mit dem Notify richtig verstehe würde dann der Status vom Sammeldevice übernommen werden, der aber gar nicht wissen kann, in welcher Position der Einzeldevice zuvor war. (ich hoffe ich bin noch verständlich...)

Bislang habe ich noch keinen FHEMduino, aber werde mir den in kürze wohl noch zusammenbauen (es sei denn, die Entwicklung zum Empfangen der Somfy-Fernbedienungen über den nanoCUL ist in absehbarer Zeit abgeschlossen). Ist es dann so, dass der in FHEM angelegte Sammeldevice dann auch einmal als "Fernbedienung" angelegt werden kann und dann mit dem Attribut "rawdevices" die Verknüpfung zu den Einzeldevices hergestellt werden kann?

Viele Grüße

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

Ellert

ZitatBislang habe ich noch keinen FHEMduino
Der SignalDuino (SD) kann Somfy senden und empfangen im Zusammenspiel mit dem SOMFY-Modul, es kommt darauf an, was Du mit dem nanoCul noch alles empfangen willst, der SD ggf. könnte den nanoCul 433 ersetzen, das spart einen USB-Port.

Ich nutze nur die Positionen open, closed und go-my, mehr halte ich bei einem Sammel-Device mit unterschiedlichen Laufzeiten von Einzelgeräten nicht sinnvoll. Diese eindeutigen Positionen kann man, wie beschrieben nachziehen. Aber bei bekannten Positionen der Einzelgeräte und deren Laufzeiten und der Position, Richtung und Laufzeit des Sammelgerätes sollte sich auch per notify die nächste Position der Einzelgeräte bestimmen und setzen lassen.

Ich verwende kein Sammel-Device, da ich die Rolläden zeitversetzt ansteuere und daher auch kein zusätzliches IO-Device benötige. Mit dem RFXTRX ist die gleichzeitige Ansteuerung kein Problem, er  hängt sich auch nicht auf.

ZitatIst es dann so, dass der in FHEM angelegte Sammeldevice dann auch einmal als "Fernbedienung" angelegt werden kann und dann mit dem Attribut "rawdevices" die Verknüpfung zu den Einzeldevices hergestellt werden kann?
Da ich diese Konstellation nicht verwende, habe ich keine Erfahrungswerte, aber das Attribut ist ja dafür gemacht.




Grafkox

Zitat von: Ellert am 16 September 2016, 19:32:49
Der SignalDuino (SD) kann Somfy senden und empfangen im Zusammenspiel mit dem SOMFY-Modul,...
Das ist schon möglich  :P ?
In den somfy threads steht davon gar nichts :(

Dann werde ich mir mal die Teile bestellen, dann bekommt der nanoCUL ein 868er Funkmodul, wollte demnächst eh mit Homematic starten.

Muss dann noch etwas beim flashen (spezielle Version) beachtet werden?

Abermals ein riesen Dankeschön
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

viegener

Zitat von: Grafkox am 16 September 2016, 14:52:00
2) Wenn ich die Rolladen auf "MY-Position" fahre, weiß FHEM ja nicht mehr den korrekten Status, da die Position bei den RTS-Motoren im Motor gespeichert ist.
Bestünde ggf. die Möglichkeit in Fhem einen Wert für die MY-Position festzulegen, damit Fhem auch die Position kennt?

Eine Einstellung könnte dann wie folgt laufen: Rolladen mit Fhem in die gewünschte Positions fahren und den Wert in Position ablesen und als Wert für die MY-Position hinterlegen. Mit der Somfy-Fernbedienung dann die My-Position festlegen.

Kommt jetzt per Fernbedienung oder aus FHEM der Befehl go-my und der Rolladen läuft ohne ein weiteres go-my zwecks stoppen in diese Postition, ist der Wert auch in FHEM hinterlegt.

Ich bin leider kein Programmierer und wüsste nicht wie ich das umsetzen könnte, stünde aber jederzeit gerne für Tests zur Verfügung.

Wenn die Themen hier im Entwicklungsthread nix zu suchen haben, mache ich auch gerne nochmals Einzelthemen auf.

Vielen Dank schonmals und viele Grüße

Thorsten

Leider ist das mit dem go-my bei den Rolläden nicht so einfach. Die Somfy-steuerungen unetrstützen zwei getrennte my-position, eine die von unten und eine die von oben angesteuert wird. Ausserdem ist das Funkkommando zum Ansteuern der my-pos dasselbe wie den Rolladen zu stoppen. Ob gestoppt wird, einer der beiden my-pos angefahren wird oder gar nichts erfordert das Wissen üebr Position und Info ob der Motor noch läuft oder nicht. Da dadurch zuviele mögliche Fehler auftreten können und eine Kenntnis der Position vorausgesetzt wird habe ich keine sinnvolle Möglichkeit gefunden das ins Somfy-modul einzubauen.

Ich glaube das steht auch schon irgendwo in diesem Thread

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

Ellert

#111
Zitat von: Grafkox am 16 September 2016, 21:27:57
Das ist schon möglich  :P ?
In den somfy threads steht davon gar nichts :(

Dann werde ich mir mal die Teile bestellen, dann bekommt der nanoCUL ein 868er Funkmodul, wollte demnächst eh mit Homematic starten.

Muss dann noch etwas beim flashen (spezielle Version) beachtet werden?

Abermals ein riesen Dankeschön

Für den SD habe ich diese Version benutzt
update all https://raw.githubusercontent.com/RFD-FHEM/RFFHEM/dev-r32-mcspecial/controls_signalduino.txt

Von viegener gibt es eine angepasste SOMFY Version, den Link habe ich gerade nicht gefunden. Die vom mir benutzte Version habe ich angehängt.

Grafkox

Hallo Veigener,

auch dir danke für deine Antwort.

in #91 hattest du eine Testversion von 2015 mit wahrscheinlich genau dieser Funktion hinterlegt (hatte ich gerade noch beim Stöbern) gesehen. Ich zögere aber mit demeinem testen, da ich noch nicht so fit in fhem und einem evtl. Zurückdrehen bin. Werde aber morgen ein Backup machen und dann diese Version  mal testen, oder sind da signifikante Neuerungen nicht mehr drin vorhanden?


@Ellert:
Danke für die Info. Werde die die erforderlichen Sachen bestellen und dann berichten.

Gruß

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

viegener

@grafkox: Ja die testversion habe ich nicht weiter verfolgt, weil es aus den obigen Gründen nicht wirklich konsistent zu bekommen ist. Die Testversion von damals berücksichtig zum Beispiel nicht, dass es unterschiedliche my-pos von unten und von oben geben kann.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Grafkox

Hallo Johannes,

ich bin inzwischen auch ein Stück weiter gekommen und habe inzwischen auch meinen Fhemduino zusammengebaut und auch die Wand- und Handsender angelernt und mit den Fhem-Devices verknüpft.

Wie versprochen habe ich mal mit der Version vom 06 August 2015 rumgetestet und konnte in Bezug auf die My-Pos keine segnifikanten Unterschiede (korrekte zeitnahme beim "drive-..-time-to-..." vorausgesetzt), ob ich die My-Position von unten oder oben anfahre (Meine Frau war vom Kreppband an den Tür- und Fensterrahmen "begeistert") feststellen.
Der Status wird auch wunschgemäß beim Ansteuern über Fhem übernommen.

Von daher würde ich es begrüßen, wenn die Funktion fest ins Modul übernommen werden könnte.

Wenn diese Funktion dann übernommen werden würde, könnte dann auch aus dem FHEMduino_SomfyR-Device der "Befehl 11" für go-my übergeben werden?
Vielleicht als Ansatz: wenn nicht innerhalb von x Sekunden der Befehl 20 oder 40 abgesetzt wurde und der Befehl 11 abgesetzt wird = Fahre go-my,
ansonsten bedeutet Befehl 11 = Stopp (bzw. analog dem normalen Modul-Verhalten).

Wenn zu guter Letzt dann noch die Möglichkeit bestünde "normale" Sofmy Devices mit rawDevice mit anderen Somfy Devices zu verknüpfen (Analog FHEMduino_SomfyR) wären auch viele Eventualitäten von Gruppen-Devices abgedeckt. (Ich denke das Problem habe sicherlich nicht nur ich)

Somit müsste man sich nicht mit Notifys und Setstates etc behelfen (habe es heute nach Einlesen und 3h probieren erstmal aufgegeben).

Stehe natürlich gerne auch für ausführlichste Tests zur Verfügung.

Viele Grüße

Thorsten
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

viegener

Zitat von: Grafkox am 03 Oktober 2016, 22:21:13
Wenn zu guter Letzt dann noch die Möglichkeit bestünde "normale" Sofmy Devices mit rawDevice mit anderen Somfy Devices zu verknüpfen (Analog FHEMduino_SomfyR) wären auch viele Eventualitäten von Gruppen-Devices abgedeckt. (Ich denke das Problem habe sicherlich nicht nur ich)

Das geht jetzt schon, denn Du kannst Doch auch ein FHEMduino_SomfyR device anlegen für andere Somfy-Devices. Damit lassen sich auch rawDevices für normale FHEM Somfy-Devices anlegen.

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

Grafkox

Hallo Johannes und danke für die schnelle Antwort.

Hatte ich absolut nicht auf dem Schirm für den Somfy Device einen HEMduino_SomfyR device anzulegen.

Habe ich gerade bereits eingebaut und funktioniert wie gewünscht.

Wie siehst du die anderen beiden Punkte?
Raspberry Pi 3 mit Fhem 5.9, Tablet UI 2.6, SIGNALduino, Somfy RTS, Fritzbox 7490, IT-Steckdosen, Hikvision Kameras, Xiaomi Sensoren, Tecalor THZ, E3/DC

Elektrolurch

Hallo,

Zitat:
Der SignalDuino (SD) kann Somfy senden und empfangen

Dann werde ich mir mal die Teile bestellen, dann bekommt der nanoCUL ein 868er Funkmodul,

Frage:
Entweder suche ich falsch, aber wo gibt es das Teil zu bestellen und was brauche ich da noch? Ist das viel Bastelarbeit (mit Löten?)...

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Ellert

#118
Es gibt eine neue Version vom SIGNALduino per offiziellem Update (die Firmware läuft auf der FHEMduino Hardware), die kann SOMFY senden und empfangen. Auch diverse Temperatursensoren und IT-Protokolle werden bedient. Ich habe meinen nanoCUL und den FHEMduino durch den SD ersetzt, also nur umgeflasht und so einen USB-Steckplatz gewonnen.

Die durch das Somfy Modul angelegten Geräte können weiter genutzt werden, es muss nur das Attribut IODev auf den NAmen des SD gesetzt werden. Die Handsendergeräte werden wie gehabt angelegt.

Damit besteht allerdings das Problem weiterhin, dass das SOMFY-Modul die rawDevice-Funktionalität nicht besitzt. Hier ist dann weiterhin eine Lösung mit per notify und setreading <gerätename> state <parsestate vom zugehörigen Handsender> notwendig.

Hier mal das Gerüst des notify, das ich benutze:

SOMFY_(1B123|2C62D|3ABC3|54321).:parsestate:.(on|off|stop) {
# <Handsendergerätename> => <FHEM-Gerätename>
my %ger1 = (
  "SOMFY_1B1230" => "WZ__Fenster",
  "SOMFY_1B1231" => "WZ__Terasse",
  "SOMFY_1B1232" => "WZ__Erker_L",
  "SOMFY_1B1233" => "WZ__Erker_M",
  "SOMFY_1B1234" => "WZ__Erker_R",

  "SOMFY_2C62D1" => "OG__Schlafzimmer",
  "SOMFY_2C62D2" => "OG__Bad",
  "SOMFY_2C62D3" => "0",
  "SOMFY_2C62D4" => "WZ__Fenster,WZ__Terasse,WZ__Erker_L,WZ__Erker_M,WZ__Erker_R",
  "SOMFY_2C62D5" => "OG__Schlafzimmer,OG__Bad",

  "SOMFY_3ABC33" => "WZ__Aussen",
  "SOMFY_3ABC34" => "0",
  "SOMFY_3ABC35" => "WZ__Terasse",
  "SOMFY_3ABC36" => "OG__Schlafzimmer,OG__Bad",
  "SOMFY_3ABC37" => "0",
 
  "SOMFY_54321D" => "WZ__Fenster,WZ__Terasse,WZ__Erker_L,WZ__Erker_M,WZ__Erker_R"
  );
my %cmd1 = (
  "off"  => "open",
  "on"   => "closed",
  "stop" => "go-my"
#  "prog" => "prog"
  );
return undef unless ($ger1{$NAME} and $cmd1{$EVTPART1});
  fhem "setreading $ger1{$NAME} state $cmd1{$EVTPART1}";
#Log 1, "setreading $ger1{$NAME} state $cmd1{$EVTPART1}";
}


@viegener:
Wäre es möglich, das für den SD angepasste SOMFY-Modul  offiziell per Update bereitzustellen?

Ellert

@Elektrolurch

Fertig bestellbar habe ich noch keine gesehen.

Mit den Antennen sind 8 Drähte an den Arduino nano zu löten

Hier die links zum WIKI-Eintrag

http://www.fhemwiki.de/wiki/SIGNALduino

http://www.fhemwiki.de/wiki/FHEMduino