Somfy pos0 fährt auf go-my

Begonnen von asydow, 04 Juni 2016, 10:48:17

Vorheriges Thema - Nächstes Thema

asydow

Hallo.
Ich habe bei mir einen Sonnenschutz programmiert, welcher sich in einem Reading die "position" der Somfyrolladen merkt, bevor er die Rolladen auf 80% fährt.
Damit kann ich nach dem Sonnenschutz die alte Position wieder herstellen.
Jetzt kommt es aber vor, dass wenn die vorherige Position 0 war, nach dem Sonnenschutz der Rolladen erst hoch und dann wieder in die go-my Position gefahren wird.
Ursache ist, dass der Rolladen zuerst selber abschaltet wenn er oben ist und dann das Stop vom FHEM bekommt. Das wird dann als go-my interpretiert.
Meine Lösung ist jetzt, dass ich die gesamten go-my Positionen gelöscht habe.

Jetzt zu meiner eigentlichen Fragen  :)
Könnte man in der 10_SOMFY.pm nicht generell pos 0 durch das normale off ersetzen? Pos 0 ist ja ganz oben. Damit würde der Stop nicht gesendet und bei einer programmierten go-my in den Motoren würde der Rolladen auch oben bleiben.

Das gleiche Problem besteht auch, wenn der Rolladen komplett geschlossen ist. Die Position ist dann 200. Und "pos 200" kann ich ja nicht absetzen.
Würde es Sinn machen, "pos 200" zu erlauben und dann durch "on" zu ersetzen?

Ok, ich gebe zu dass ich das auch programmieren kann, müsste aber dann bei jedem Rolladen zwei if Abfrage einbauen.
Oder jemand hat eine andere Lösung.
An bei mal der Code des DoIf:
([SONNE_WG_T1_T2:temperature] >= 2.5 and [Sonnenwaechter:state] eq "an") (
    setreading wg_rollo_1 posprev [wg_rollo_1:position],
    set wg_rollo_1 pos 70,
    setreading wg_rollo_2 posprev [wg_rollo_2:position],
    set wg_rollo_2 pos 100,
    setreading wg_rollo_3 posprev [wg_rollo_3:position],
    set wg_rollo_3 pos 100)
DOELSEIF ([SONNE_WG_T1_T2:temperature] < 2.5 and [Sonnenwaechter:state] eq "an") (
    set wg_rollo_1 pos [wg_rollo_1:posprev],
    set wg_rollo_2 pos [wg_rollo_2:posprev],
    set wg_rollo_3 pos [wg_rollo_3:posprev])
DOELSE

Gruß
Axel