Erweiterung CULFW um Somfy/Simu

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

Vorheriges Thema - Nächstes Thema

thdankert

Zitat von: Elektrolurch am 07 Oktober 2014, 19:58:04
Wenn ich da auf einer Fernbedienung eine Taste drücke, kommt da aber nix. Ich war mir aber schon weiter oben nicht ganz sicher, ob das flashen des CUL_433 wirklich funktioniert hat...
(programmer failed to release device 0....)

Was mich auch gewundert hat, dass da in der parse-Funktion nichts von encrypt und rolling - code steht oder sind die Bestätigungssignale des Rolos unverschlüsselt?

Hallo Elektrolurch,

das liegt daran, dass der Empfang noch nicht in der CULFW implementiert ist.
SOMFY_Parse ist nur das Grundgerüst, das wertet bisher nur die Ausgaben der CULFW auf eingegebene Kommandos aus, und setzt den State entsprechend.

Das habe ich implementiert, damit statt CUL_Simplewrite IOWrite genutzt werden kann, und das Modul damit FHEM2FHEM-fähig wird.

Das Rollo selbst sendet keine Bestätigungssignale - soweit ich weiß, ist das Protokoll nicht bidirektional.
Wenn Empfang implementiert ist, wird direkt in der CULFW "entschlüsselt" (ist nur XOR), das FHEM-Modul muss dann nur noch auswerten,
ob es ein bekanntes Device oder ein neues ist.

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

Rose01

Hallo,

wie bekomme ich die Fehlermeldung im Log weg? :)

SOMFY_set: Error - drivetime and updatetime = 0

Gruss Roland

thdankert

Zitat von: Rose01 am 15 Oktober 2014, 07:17:51
wie bekomme ich die Fehlermeldung im Log weg? :)

SOMFY_set: Error - drivetime and updatetime = 0

Entweder durch setzen der drive-time- Attribute, oder abwarten, bis ich eine neue Version vom SOMFY-Modul fertig habe.
Der Fehler tritt auf, weil du vermutlich die Attribute nicht gesetzt hast/nicht nutzt, und die Rollos per on/off/stop fährst.
RPI mit FHEM, 2x Stackable CC (868 und 433MHz)

Rose01

Hallo Thomas

vielen Dank für die schnelle Antwort :)
Auf / Zu  geht ohne Fehler
Zwischenposition nicht.

Das reicht mir da ich die 15 Somfy Motore nur automatisch auf und zu mache..

Danke noch mals das du das Modul entwickelt hast.Da spreche ich bestimmt auch im Namen vieler Anwender :D


Gruss Roland

networker

#334
Hallo,

Ich kann meine Markise mit on stop off bewegen.
Weiters hab ich auch versucht mittels POS auf eine bestimmte Position zu fahren

Das ist meine Definition vom SCC und Markise

define SCC CUL /dev/ttyAMA0@38400 1234
attr SCC group CUL
attr SCC model CUL
attr SCC rfmode SlowRF
attr SCC room System
#attr SCC verbose 5

define markise SOMFY 000001
attr markise IODev SCC
attr markise devStateIcon on:fts_shutter_100:stop stop:fts_shutter_manual:off off:fts_shutter_10:on
attr markise drive-down-time-to-100 43
attr markise drive-down-time-to-close 43
attr markise drive-up-time-to-100 43
attr markise drive-up-time-to-open 43
attr markise room 9.15_Rollo_Steuerung,1.30_Wohnzimmer
attr markise webCmd stop:on:off


Ausgangslage: Markise ca. 50% ausgefahren.

Wenn ich die Markise auf POS 10 fahren lasse, erfolgt keine Bewegung der Markise.
Danach versuchte ich auf off zu fahren und dann tauchen in der Console folgende Meldungen auf bevor FHEM nicht mehr antwortet.
root@raspberrypi:/home/pi# Illegal division by zero at /opt/fhem/FHEM/10_SOMFY.pm line 394.
Can't use an undefined value as a symbol reference at /opt/fhem/FHEM/Blocking.pm line 132.


Im FHEM-Log ist folgendes zu sehen.
2014.10.18 21:40:40 1: SOMFY_set: Error - drivetime and updatetime = 0
2014.10.18 21:40:40 2: SOMFY set markise off 10: sA3200023000001
2014.10.18 21:41:00 3: SOMFY_set: markise -> state update in 12.5 sec
2014.10.18 21:41:00 2: SOMFY set markise off: sA4200024000001
2014.10.18 21:41:17 1: CallBlockingFn: Can't connect to localhost:7072: IO::Socket::INET: connect: Connection refused


Warum kommt die Fehlermeldung wenn doch die Attribute für die Fahrzeiten eingetragen sind?
2014.10.18 21:40:40 1: SOMFY_set: Error - drivetime and updatetime = 0

Warum kann die division durch null auftreten?
Illegal division by zero at /opt/fhem/FHEM/10_SOMFY.pm line 394

SCC-FW=V 1.61 CSM868

FHEM ist nur nach einem FHEM Neustart verwendbar.

Kann mir jemand weiterhelfen?

Danke
lG, Michael

Elektrolurch

Hallo,

Zitat:
attr markise drive-up-time-to-100 43
attr markise drive-up-time-to-open 43

Bitte mal die genaue Definition der Attribute nachlesen.
Hier wird davon ausgegangen, dass das Rollo 100 % das Fenster verdeckt, aber die Schlitze noch gesperrt sind. (attribute mit 100) Wenn das Rollo ganz geschlossen ist, so heitß das Attribut "close".
Bei Deiner Markise ist natürlich zwischen "close" und 100 die Fahrtzeit 0 und nicht 43.

attr markise drive-up-time-to-100 0
attr markise drive-up-time-to-open 43

Dann sollte es eigentlich korrekt funktionieren, zumindest was die Positioniererei angeht.

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Rose01

Hallo

ich hab da noch eine Fehlermeldung  im Log welche vermutlich mit dem Modul zusammenhängt.

2014.10.19 09:36:36 3: SOMFY_set: 3_Kueche_Sued -> state update in 25 sec
2014.10.19 09:36:36 2: SOMFY set 3_Kueche_Sued off: sA6200116000003
2014.10.19 09:36:37 4: SOMFY 3_Kueche_Sued off
2014.10.19 09:36:41 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2095.
2014.10.19 09:36:41 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2095.

Wie kann ich diese Fehlemeldung abstellen ?

####################################
define 3_Kueche_Sued SOMFY 000003
attr 3_Kueche_Sued IODev SCC
attr 3_Kueche_Sued drive-down-time-to-100 23
attr 3_Kueche_Sued drive-down-time-to-close 27
attr 3_Kueche_Sued drive-up-time-to-100 5
attr 3_Kueche_Sued drive-up-time-to-open 29
attr 3_Kueche_Sued eventMap off:Auf on:Zu stop:Stop go-my:Sonne
attr 3_Kueche_Sued room Rolladen
attr 3_Kueche_Sued verbose 4
attr 3_Kueche_Sued webCmd Auf: Stop: Zu:Sonne
####################################

Viele Grüsse

Roland


Elektrolurch

Hallo,

2014.10.19 09:36:36 3: SOMFY_set: 3_Kueche_Sued -> state update in 25 sec
Ich hatte das so implementiert, dass der state die Position enthält, wird auf offen oder geschlossen gefahren, so wird nach der berechneten Maximalzeit der richtige Status gesetzt. (Es könnte ja sein, dass zukünftig während des Verfahrens über eine Fernbedienung ein anderer Befehl ergeht...)
Leider wird das in der aktuellen Version durch die ParseFN nun überschrieben, so dass ich die in meienr Version auskommentiert habe. D.h. die ParseFN überschreibt die gesetzte state-Info für die Position einfach mit on/off/stop.

2014.10.19 09:36:36 2: SOMFY set 3_Kueche_Sued off: sA6200116000003
2014.10.19 09:36:37 4: SOMFY 3_Kueche_Sued off
Die Ausgaben bekomme ich auch nicht mit dem attr verbose weg....


2014.10.19 09:36:41 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2095.
Weiß ich nicht, sieht so aus, als würde was mit dem Parse des über den CUL empfangenen Strings nicht stimmen????
Bei mir kommt da immer (s.o.) eine Meldung:
Error: Canot load Somfy


2014.10.19 09:36:41 1: PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2095.

Kommentier mal die Zeile in der 10_SOMFY.pm aus, in der diein der SOMFY_Initialize - Sub-Routine die ParseFN definiert wird und mach ein
reload 10_SOMFY.pm

nach dem Abspeichern.

P.S.: Geht jetzt das Positionieren der Markise, nach dem das Attr korrekt gesetzt wurde?

Gruß

Elektrolurch
configDB und Windows befreite Zone!

Rose01

Hallo,

ich hab den Fehler

PERL WARNING: ^* matches null string many times in regex; marked by <-- HERE in m/^* <-- HERE $/ at ./FHEM/01_FHEMWEB.pm line 2095.

gefunden .. :)

Es lag nicht am Modul
sondern an

devStateIcon  *:weather_sun  => ein . davor und es war Ruhe

devStateIcon .*:weather_sun

Gruss Roland


networker

Hallo Elektrolurch,

wollte heute die beiden Werte auf 0 setzen, aber das lässt FHEM nicht zu.
SOMFY_attr: value must be >0 and <= 100

Ich werde mal testen wenn ich die auf 1 setzte.

lG, Michael

Elektrolurch

Hallo,

in der ursprünglichen Version wurde "pos 0" durch 'open' und "pos 100" durch "close" ersetzt. Da Thomas aber open/close wieder als gültige Werte entfernt hat, könnte darin der Fehler liegen.
Ich habe derzeit die ältere Version von Somfy.pm wieder installiert, da die aktuelle mir ständig Fehlermeldungen  der Form: Error: cannot Autoload Somfy...  bringt und ich nicht weiß, woher das kommt.
Mit der Vorgängerversion funktioniert bei mir alles richtig.

Gruß


Elektrolurch
configDB und Windows befreite Zone!

networker

Hallo Elektrolurch
Commandref hatte ich gelesen, aber anders interpretiert.
Habe nach deinem Denkanstoß das jetzt folgendermaßen verstanden

drive-down-time-to-100: Ist die Zeit Die der Rolli von ganz Offen nach "fast Zu (Schlitze offen)" braucht. (bei mir 43)

drive-down-time-to-100
The time the blind needs to drive down from "open" (pos 0) to pos 100.
In this position, the lower edge touches the window frame, but it is not completely shut.
For a mid-size window this time is about 12 to 15 seconds.


drive-down-time-to-close: Sollte demnach die Zeit von "fast Zu (Schlitze offen)" nach "ganz Zu (Schlitze zu)" braucht. (bei mir 1)

drive-down-time-to-close
The time the blind needs to drive down from "open" (pos 0) to "close", the end position of the blind.
This is about 3 to 5 seonds more than the "drive-down-time-to-100" value.


drive-up-time-to-100: Ist dann die Zeit von "ganz Zu (Schlitze zu)" bis "fast Zu (Schlitze offen)" (bei mir 1)

drive-up-time-to-100
The time the blind needs to drive up from "close" (endposition) to "pos 100".
This usually takes about 3 to 5 seconds.


drive-up-time-to-open: Ist die Zeit von "fast Zu (Schlitze offen)" bis ganz nach oben. (bei mir 43)

drive-up-time-to-open
The time the blind needs drive up from "close" (endposition) to "open" (upper endposition).
This value is usually a bit higher than "drive-down-time-to-close", due to the blind's weight.


In der Webansicht des Device (http://fhem.jpg)

in der Config hab ich jetzt folgendes eingetragen
define markise SOMFY 000001
attr markise IODev SCC
attr markise devStateIcon on:fts_shutter_100:stop stop:fts_shutter_manual:off off:fts_shutter_10:on
attr markise drive-down-time-to-100 43
attr markise drive-down-time-to-close 1
attr markise drive-up-time-to-100 1
attr markise drive-up-time-to-open 43
attr markise room 9.15_Rollo_Steuerung,1.30_Wohnzimmer
attr markise webCmd stop:on:off


aber im Weblink des Device werden die ATTR nicht richtig angezeigt (man kann sie auch nicht richtig setzen über die GUI)

(http://fhem.jpg)

lG, Michael

Elektrolurch

Leider immer noch nicht richtig:

Ich hatte doch die logische Vorgehensweise explizit beschrieben:
Man starte das Rollo von ganz offen und nehme eine Stoppuhr mit Zwischenspeicher.
Wenn das Rollo die "Schlitze noch offen Position" passiert, nimmt man die Zwischenzeit.
Wenn das Rollo "close" ist, stoppt man die Uhr.
In dem Fall der Markise sind beide Zeiten gleich.

Nun fährt man das Rollo wieder hoch und startet die Stoppuhr.
Wenn es die "Schlitze offen Position" passiert (einige wenige Sekunden) nimmt man die Zwischenzeit.
Wenn es "open" ist, stoppt man die Uhr.

attr markise drive-down-time-to-100 43
attr markise drive-down-time-to-close 43
attr markise drive-up-time-to-100 0
attr markise drive-up-time-to-open 43

Und wenn die Markise ein Rollo ist mit Lüftunschlitzen:


attr markise drive-down-time-to-100 43 # Zwischenzeit
attr markise drive-down-time-to-close 45 # Endzeit Stoppuhr
attr markise drive-up-time-to-100 3 # Zwischenzeit beim Hochfahren
attr markise drive-up-time-to-open 49 # Endzeit

Wegen dem Eigengewicht des Rollos dauert das Hochfahren länger, bei mir gibt es da teilweise Abweichungen von bis zu 20 %. Daher die Differenzierung in den Zeiten.
Das mit den Lüftungsschlitzen nutze ich Sommer/Winter. Wenn es draußen sehr kalt ist, wird ganz geschlossen, macht die von mir programmierte Automatik.
Daher die Differenzierung.
Stand aber im Prinzip alles oben schon in der Beschreibung.


Ich habe keine Probleme, die Werte in die fhem-Kommandozeile einzugeben oder sie im GUI für das Somfy-Device bei attr auszuwählen und einzugeben.

Gruß


Elektrolurch


configDB und Windows befreite Zone!

networker

Hallo Elektrolurch

Danke noch mal für deine Erklärung, hab sie jetzt versucht so einzutragen.

Problem bei "attr markise drive-up-time-to-100 0" --> SOMFY_attr: value must be >0 and <= 100

Habe ich jetzt auf 1 gesetzt.

Beim Eintragen in die GUI hab ich folgendes Problem:

Ich lösche die beiden Attribute "drive-down-time-to-100" und "drive-down-time-to-close"
Dann setze ich "drive-down-time-to-100 auf 43" und es wird auch  "drive-down-time-to-close" gleich mit auf 43 gesetzt.

Danke
lG Michael

Matthias76

Nochmal ein kleines Feedback:

Es lief jetzt seit Wochen perfekt bei mir.
Heute wunderte ich mich, warum ein Rollo noch unten war.
Ein Blick ins Logfile verriet, dass heute der CUL einmal ausgestiegen ist:

2014.10.19 23:35:00 2: SOMFY set Terrassentuer on: YsAA4000BA000008
2014.10.20 06:45:00 2: SOMFY set RolloKueche off: YsAC2000AC1A1A1A
2014.10.20 06:55:00 2: SOMFY set RolloWohnG off: YsAE20008E000007
2014.10.20 07:00:00 2: SOMFY set RolloWohnS off: YsA02000C0000005
2014.10.20 07:00:02 1: /dev/ttyACM0 disconnected, waiting to reappear (CUL_0)
2014.10.20 07:00:02 2: SOMFY IODev device didn't answer Ys command correctly:   raw => No answer
2014.10.20 07:00:07 3: Setting CUL_0 baudrate to 9600
2014.10.20 07:00:07 1: /dev/ttyACM0 reappeared (CUL_0)
2014.10.20 07:00:07 3: CUL_0: Possible commands: BbCFiAZEGMKUYRTVWXefmltux
2014.10.20 07:15:00 2: SOMFY set RolloEingang off: YsA5200075ABC666

"RolloWohnS" ist dann nicht hochgefahren, weil genau dann es plötzlich so war, als wenn der CUL rausgezogen worden wäre.
Der kam ja zum Glück von selbst wieder.
Komisch ist das trotzdem.