Erweiterung CULFW um Somfy/Simu

Begonnen von thdankert, 31 Mai 2014, 14:20:23

Vorheriges Thema - Nächstes Thema

Dumbo

Den Fehler

Illegal division by zero at ./FHEM/10_SOMFY.pm line 394.


konnte ich mit folgender Änderung der Zeile 394 beheben:

if(($t1upopen - $t1up100)>0) { $newpos = $oldpos - (100 * $dt / ($t1upopen - $t1up100)); }

Bungi

Hallo,

als mein erster Eintrag im Forum möchte ich mich bei den Entwicklern für die Integration von Somfy bedanken!

Obwohl ich einen CUL868 verwende, funktioniert es bei mir bestens. Die weiteste probierte Entfernung sind ca. 12m durch unser Bungalow.

Hier noch ein paar Tipps an denen ich etwas knobeln musste:

1) Bei der Telis 4 RTS (meine ist von 2012) steht im Manual, dass die Up-Down-Knöpfe gedrückt werden müssen, um den Motor in den Einlernmodus zu bringen. Das ist aber falsch. Man muss die hintere Prog Taste drücken.

2) mit der Culfw 1.61 vom Juni 2014 erscheinen Fehlermeldungen wie:

CUL1: Unknown code YsA5EDEDE8EEEEEE, help me!

und es werden ab und zu neue SOMFY Geräte erkannt (was ja nicht sein kann):

SOMFY Unknown device 999999, please define it
autocreate: define SOMFY_999999 SOMFY 999999

Beide Meldungen gehen weg, wenn ein CULflash gemacht wird. Anscheinend wird hier eine "neuere" 1.61 geladen.

Viele Grüße!

thdankert

Zitat von: Bungi am 23 Dezember 2014, 20:21:48
1) Bei der Telis 4 RTS (meine ist von 2012) steht im Manual, dass die Up-Down-Knöpfe gedrückt werden müssen, um den Motor in den Einlernmodus zu bringen. Das ist aber falsch. Man muss die hintere Prog Taste drücken.

Mit up-down kann man bei meinen Motoren (Simu) die Endlagen programmieren, vielleicht ist das bei dir auch so.
Die Prog-Taste hat bisher bei allen funktioniert :-)

Zitat
2) mit der Culfw 1.61 vom Juni 2014 erscheinen Fehlermeldungen wie:

CUL1: Unknown code YsA5EDEDE8EEEEEE, help me!

und es werden ab und zu neue SOMFY Geräte erkannt (was ja nicht sein kann):

SOMFY Unknown device 999999, please define it
autocreate: define SOMFY_999999 SOMFY 999999

Beide Meldungen gehen weg, wenn ein CULflash gemacht wird. Anscheinend wird hier eine "neuere" 1.61 geladen.
Genau so ist es... Ich habe Ende Oktober noch eine Änderung an der CULFW vorgenommen, aber es gibt noch keine neue offizielle Version.
Mit culflash gibt es einen aktuellen Entwicklungsstand, der nach 1.61 ist.

Steht auch ein paar Seiten früher hier im Thread, aber eigentlich gehört das ins Wiki.
Vielleicht schaff ich das über die Feiertage :-)

Grüße und frohes Fest!
Thomas
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

Pjg

#423
Da muss ich dann manuell den Rolling-Code und den Encryption-Key in FHEM hochzählen.

Wie geht das?
Bei mir funktioniert es jetzt leider mit umstellen von Auto auf manuell nicht mehr.
Danke


Und wofür ist der neue Parameter Z_CUSTOM da?
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

thdankert

Zitat von: Pjg am 27 Dezember 2014, 16:02:23
Da muss ich dann manuell den Rolling-Code und den Encryption-Key in FHEM hochzählen.

Wie geht das?
Der Rolling-Code und Encryption-Key können als Attribute gesetzt werden (enc-key und rolling-code).
Einmal gesetzt, werden sie beim nächsten Befehl (up/down, etc) genutzt und danach als Reading gespeichert.

Zitat
Und wofür ist der neue Parameter Z_CUSTOM da?
Der ist eher zu Testzwecken, damit kann man eigene Befehle (als Hex-Code, von 0 bis F) senden.
Da Somfy keine Informationen zu ihrem Protokoll herausgibt, ist leider nicht ganz klar, welcher Befehl welche Funktion hat.

Damit kann man z.B. den Wind- und Sonnensensor aktivieren und deaktivieren, wenn vorhanden.
Oder die Motorlimits einstellen...

Wie gesagt, das ist eher zum Probieren... sobald neue Codes bekannt sind, aktualisiere ich das Somfy-Modul wieder.

Grüße,
Thomas
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

Pjg

Danke. Auf Attribut hätte man auch kommen können...
Funktioniert tadellos.
Danke nochmal für das tolle Modul.
BananaPI, CUL 433, Somfy RTS, Hue LWL001, Hue LWB004, HM-CFG-LAN, HM-LC-SW2-FM

Matthias76

Ich habe nun nach einigen Wochen mal wieder ein FHEM-Update gemacht.
Prompt fuhren meine Rollos nicht mehr hoch und runter.

Ich fand heraus, dass der rfmode somfy aus der Config rausgeflogen ist.
Ich wollte ihn neu hinzufügen, habe ihn aber nicht in der Liste.
Dort steht nur noch
SlowRF
Homematic
MAX
WMBus_T und
WMBus_S

Ist Somfy jetzt in einer dieser aufgegangen oder war das von vorne herein so und ich erinnere mich nur nicht?
Jedenfalls gehts so jetzt nicht mehr.
CULv3-Hex ist immer noch von November (in FHEM-Firware = mein Flashstand)

Matthias76

#427
Ach so, das ist anscheinend gar nicht nötig, es reicht das festgelegte Attribut "IODev CUL_0" am Device.
Dennoch funktioniert es nicht.

Nach wie vor stehen die Attribute:
Attributes
IODev CUL_0 deleteattr
devStateIcon on:fts_shutter_100:stop stop:fts_shutter_manual:off off:fts_shutter_10:on deleteattr
drive-down-time-to-100 15 deleteattr
drive-down-time-to-close 20 deleteattr
drive-up-time-to-100 4 deleteattr
drive-up-time-to-open 20 deleteattr
room Wohnzimmer deleteattr
webCmd on:stop:off
deleteattr


Im Logfile sehe ich nur das:
2015.01.17 14:41:43 3: CUL_0: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2015.01.17 14:41:59 3: SOMFY_set: RolloWohnS -> state update in 20 sec
2015.01.17 14:41:59 2: SOMFY set RolloWohnS on: sA5400135000005
2015.01.17 14:42:00 3: CUL_0: Unknown code YsA5490135050000, help me!
2015.01.17 14:42:02 3: SOMFY_set: Warning: go-my/stop will mess up correct positioning! Please use pos <value> instead.
2015.01.17 14:42:02 1: SOMFY_set: Error - drivetime and updatetime = 0
2015.01.17 14:42:02 2: SOMFY set RolloWohnS stop: sA6110136000005
2015.01.17 14:42:03 3: CUL_0: Unknown code YsA61C0136050000, help me!
2015.01.17 14:42:03 3: SOMFY_set: RolloWohnS -> state update in 25 sec
2015.01.17 14:42:03 2: SOMFY set RolloWohnS off: sA7200137000005
2015.01.17 14:42:04 3: CUL_0: Unknown code YsA72F0137050000, help me!


Wie geschrieben, vor dem Fhem-Update heute morgen haben meine Timer oder manuelle Aktionen die Rollos bewegt, jetzt nicht mehr.
Was kann da sein?

Nachtrag: Ich habe zur Sicherheit auch mal die letzte CUL-Version 1.62 von Rudolfkoenig geflashed (http://sourceforge.net/p/culfw/code/HEAD/tree/trunk/culfw/Devices/CUL/CUL_V3.hex), brachte aber auch nichts.

Merlin1

Huhu zusammen,

ich hatte gestern einen Stromausfall, sprich der kleine Rapsberry mußte zwei Mal hart neu gestartet werden. Einmal ist er selbst nachdem der Strom wieder da wieder wieder heraufgefahren. Da war aber noch kein WLAN da. Da mußte ich ihn dann nochmal unsanft rebooten.

Danach läuft aber fast alles zum Glück wieder mit wenigen Ausnahmen:

- die meisten SOMFY Verbindungen funktionieren nicht mehr, obwohl in und um den Stromausfall sicherlich nicht direkt im Einsatz gewesen.
Natürlich da die Frage, warum ist das so?

- Und dann, ein direktes neues Prog funktioniert auch nicht? Also einfach die existierenden Verbindungen wieder mit "SET PROG" und natürlich vorher das gleiche an den Komponenten.
Was ist da noch zu tun? Manuell die Rolling Codes löschen, damit das wieder geht?

VG Mathias

thdankert

#429
Zitat von: Matthias76 am 17 Januar 2015, 16:59:11
Ach so, das ist anscheinend gar nicht nötig, es reicht das festgelegte Attribut "IODev CUL_0" am Device.
Dennoch funktioniert es nicht.
Hallo,

das IODev ist wichtig, damit der richtige (433MHz) CUL genommen wird - als RFMode solltest du SlowRF einstellen.

Zitat
Im Logfile sehe ich nur das:

2015.01.17 14:42:02 2: SOMFY set RolloWohnS stop: sA6110136000005
2015.01.17 14:42:03 3: CUL_0: Unknown code YsA61C0136050000, help me!
2015.01.17 14:42:03 3: SOMFY_set: RolloWohnS -> state update in 25 sec
2015.01.17 14:42:03 2: SOMFY set RolloWohnS off: sA7200137000005
2015.01.17 14:42:04 3: CUL_0: Unknown code YsA72F0137050000, help me!


Wie geschrieben, vor dem Fhem-Update heute morgen haben meine Timer oder manuelle Aktionen die Rollos bewegt, jetzt nicht mehr.
Was kann da sein?

Das sieht so aus, als weiß das CUL-Modul mit den Kommandos nichts anzufangen - das sollte nicht passieren.
Ich versuche das mal auf meiner Testumgebung nachzustellen und melde mich dann.

Grüße,
Thomas

EDIT: Habe gerade meine FHEM-Umgebung aktualisiert, die Rollos fahren ohne Probleme (und ohne diese Fehlermeldung im Log).
Die Meldung kommt nur, wenn das Somfy-Modul nicht korrekt als Client des CUL eingetragen ist.
Welchen RFMode hast du genommen? Somfy ist nur mit SlowRF möglich.
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

thdankert

Hallo Mathias,

Zitat von: Merlin1 am 19 Januar 2015, 08:24:44
- die meisten SOMFY Verbindungen funktionieren nicht mehr, obwohl in und um den Stromausfall sicherlich nicht direkt im Einsatz gewesen.
Natürlich da die Frage, warum ist das so?

das könnte daran liegen, dass FHEM die aktuellen Rolling-Codes nicht mehr speichern konnte, weil der Strom weg war.
Die werden im Statefile gesichert, aber vielleicht wurde das nicht mehr gespeichert.

Gibt es ein "Muster", bei welchen Rollos es nicht mehr klappt? (lange nicht mehr genutzt, oder kurz vor dem Stromausfall noch gefahren?)

Zitat
- Und dann, ein direktes neues Prog funktioniert auch nicht? Also einfach die existierenden Verbindungen wieder mit "SET PROG" und natürlich vorher das gleiche an den Komponenten.
Was ist da noch zu tun? Manuell die Rolling Codes löschen, damit das wieder geht?

Meine Rolläden sind da sehr "empfindlich"... während der Encryption Key bei einem neuen Prog egal ist, muss der Rolling Code stimmen, sonst passiert da nichts.

Wenn es nicht alle Rolläden betrifft, kannst du mal versuchen, mehrfach ein Kommando (z.B. up/down) zu senden, bis sich ein Laden bewegt.
Merk dir vorher den Startwert für Rolling Code und Encryption Key.

Dann siehst du das Delta, und kannst bei den anderen die werte für enc-key und rolling-code entsprechend korrigieren (als Attribut setzen).

Die sind beide Hexadezimal, der enc-key fängt nach AF wieder bei A0 an, der Rolling Code zählt einfach immer 1 weiter (theoretisch fängt er auch nach 0xFFFF, also 65.535, wieder von vorn an).

Grüße,
Thomas
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

Merlin1

Zitat von: thdankert am 19 Januar 2015, 09:00:16
das könnte daran liegen, dass FHEM die aktuellen Rolling-Codes nicht mehr speichern konnte, weil der Strom weg war.
Die werden im Statefile gesichert, aber vielleicht wurde das nicht mehr gespeichert.

Gibt es ein "Muster", bei welchen Rollos es nicht mehr klappt? (lange nicht mehr genutzt, oder kurz vor dem Stromausfall noch gefahren?)
Es waren die, die öfter benutzt werden. Aber auch schon Stunden her, bestimmt >8 Stunden, evtl. sogar noch länger.
Ich merkte dann auch, daß andere Geräte noch gingen, die richtig lange nicht angesteuert wurden.
Hab es dann probiert, etliche Kommandos abzusetzen. Das Delta konnte ich mir leider nicht mehr notieren, dafür hatte ich schon zu viel rumgespielt.
Aber manuell konnte man durch viele Kommandos (danke für den Tip!!!) so dann wieder alle Geräte in-sync bekommen.

Ist es möglich, daß schreiben des Statefiles einmal am Tag oder so zu forcieren? Das scheint länger nicht geschrieben zu werden.

VG Mathias

thdankert

Ich habe bei mir ein at definiert, welches alle paar Stunden (ich glaube alle 8 ) ein "fhem save" macht.

Damit wird neben der Config auch das Statefile gespeichert.

Das hat bisher gut funktioniert, ob es aber einen Befehl nur für das Statefile gibt, weiß ich nicht.

Grüße,
Thomas
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

Merlin1

Das habe ich jetzt auch mal eingerichtet. Guter Tip.




_Markus_

Hallo zusammen,

zunächst Danke für das Modul!

Ich habe ein merkwürdiges Problem mit dem SOMFY Modul, das ich nicht lösen kann: Es laufen in der aktuelle Konfiguration etwa 12 Somfy RTS Motoren. Alle Motoren kann ich auch einzeln hervorragend ansteuern. Leider habe ich Probleme bei der Nutzung von Structures und Zeit-gesteuerten Befehlen (at). Häufig bewegen sich dann nur ein bis zwei der Rollos.

Beispiel: Der Befehl

set Rollo_Wohnzimmer_Tuer down; set Rollo_Wohnzimmer_Fenster down; set Rollo_Buero down; set Rollo_Esszimmer_Garten down; set Rollo_Schlafzimmer down; set Rollo_Kueche down

schließt nur die beiden Wohnzimmer Rollos.

Im Log sieht dieses Phänomen wie folgt aus (Achtung, ich habe noch ein paar zusätzliche Logs eingefügt um Code-Ausstiege auszuschließen):
2015.02.08 13:56:32.697 1: SOMFY cmd: on, hash: HASH(0x119cec8)
2015.02.08 13:56:32.699 2: SendCommand Rollo_Wohnzimmer_Tuer on
2015.02.08 13:56:32.701 2: SendCommand command 40
2015.02.08 13:56:32.704 2: SOMFY set Rollo_Wohnzimmer_Tuer on: sA7400027000004
2015.02.08 13:56:32.706 1: IOWrite running for Rollo_Wohnzimmer_Tuer
2015.02.08 13:56:32.721 1: IOWrite for Rollo_Wohnzimmer_Tuer returned 0
2015.02.08 13:56:32.724 2: SOMFY message sA7400027000004 sent vi IOWrite
2015.02.08 13:56:32.782 1: SOMFY cmd: on, hash: HASH(0x119d1c8)
2015.02.08 13:56:32.784 2: SendCommand Rollo_Wohnzimmer_Fenster on
2015.02.08 13:56:32.786 2: SendCommand command 40
2015.02.08 13:56:32.789 2: SOMFY set Rollo_Wohnzimmer_Fenster on: sAE40001E000005
2015.02.08 13:56:32.791 1: IOWrite running for Rollo_Wohnzimmer_Fenster
2015.02.08 13:56:32.805 1: IOWrite for Rollo_Wohnzimmer_Fenster returned 0
2015.02.08 13:56:32.807 2: SOMFY message sAE40001E000005 sent vi IOWrite
2015.02.08 13:56:32.865 1: SOMFY cmd: on, hash: HASH(0x11708c0)
2015.02.08 13:56:32.868 2: SendCommand Rollo_Buero on
2015.02.08 13:56:32.870 2: SendCommand command 40
2015.02.08 13:56:32.873 2: SOMFY set Rollo_Buero on: sA9400019000007
2015.02.08 13:56:32.875 1: IOWrite running for Rollo_Buero
2015.02.08 13:56:32.889 1: IOWrite for Rollo_Buero returned 0
2015.02.08 13:56:32.891 2: SOMFY message sA9400019000007 sent vi IOWrite
2015.02.08 13:56:32.924 1: SOMFY cmd: on, hash: HASH(0x119cb98)
2015.02.08 13:56:32.926 2: SendCommand Rollo_Esszimmer_Garten on
2015.02.08 13:56:32.929 2: SendCommand command 40
2015.02.08 13:56:32.932 2: SOMFY set Rollo_Esszimmer_Garten on: sA8400028000003
2015.02.08 13:56:32.935 1: IOWrite running for Rollo_Esszimmer_Garten
2015.02.08 13:56:32.948 1: IOWrite for Rollo_Esszimmer_Garten returned 0
2015.02.08 13:56:32.950 2: SOMFY message sA8400028000003 sent vi IOWrite
2015.02.08 13:56:32.984 1: SOMFY cmd: on, hash: HASH(0x1170ec0)
2015.02.08 13:56:32.986 2: SendCommand Rollo_Schlafzimmer on
2015.02.08 13:56:32.988 2: SendCommand command 40
2015.02.08 13:56:32.991 2: SOMFY set Rollo_Schlafzimmer on: sA7400017000009
2015.02.08 13:56:32.994 1: IOWrite running for Rollo_Schlafzimmer
2015.02.08 13:56:33.007 1: IOWrite for Rollo_Schlafzimmer returned 0
2015.02.08 13:56:33.009 2: SOMFY message sA7400017000009 sent vi IOWrite
2015.02.08 13:56:33.042 1: SOMFY cmd: on, hash: HASH(0x103c3e0)
2015.02.08 13:56:33.044 2: SendCommand Rollo_Kueche on
2015.02.08 13:56:33.046 2: SendCommand command 40
2015.02.08 13:56:33.049 2: SOMFY set Rollo_Kueche on: sA9400019000001
2015.02.08 13:56:33.052 1: IOWrite running for Rollo_Kueche
2015.02.08 13:56:33.065 1: IOWrite for Rollo_Kueche returned 0
2015.02.08 13:56:33.067 2: SOMFY message sA9400019000001 sent vi IOWrite


Wenn ich eines der Rollos einzeln ansteuere (etwa das voher nicht zu bewegende Küchenrollo), dann sieht das Logfile wie folgt aus:
2015.02.08 13:58:55.709 1: SOMFY_set: Error - drivetime and updatetime = 0
2015.02.08 13:58:55.711 1: SOMFY cmd: off, hash: HASH(0x103c3e0)
2015.02.08 13:58:55.713 2: SendCommand Rollo_Kueche off
2015.02.08 13:58:55.715 2: SendCommand command 20
2015.02.08 13:58:55.718 2: SOMFY set Rollo_Kueche off: sAA20001A000001
2015.02.08 13:58:55.721 1: IOWrite running for Rollo_Kueche
2015.02.08 13:58:55.734 1: IOWrite for Rollo_Kueche returned 0
2015.02.08 13:58:55.736 2: SOMFY message sAA20001A000001 sent vi IOWrite
2015.02.08 13:58:56.690 3: SOMFY Parse HASH(0x10241e8) YsAA28001A010000
2015.02.08 13:58:56.693 3: SOMFY HASH(0x10241e8) 000001
2015.02.08 13:58:56.695 3: SOMFY cmd HASH(0x10241e8) 20
2015.02.08 13:58:56.697 3: SOMFY cmd2 HASH(0x10241e8) 20
2015.02.08 13:58:56.699 3: SOMFY newstate HASH(0x10241e8) off
2015.02.08 13:58:56.702 3: SOMFY def1 HASH(0x116f7b8)
2015.02.08 13:58:56.705 3: SOMFY def2 HASH(0x116f7b8)
2015.02.08 13:58:56.707 3: SOMFY name Rollo_Kueche
2015.02.08 13:58:56.711 3: SOMFY Rollo_Kueche off


Hier folgt dem SOMFY_Send auch ein SOMFY_Parse. Ist dieses notwendig? Kann aus dem Fehlen des SOMFY_Parse geschlossen werden, dass etwas schiefgelaufen ist?

Danke für Eure Hilfe!

Markus