Hallo, hier meine Lösung zum Abgleich der fhem-devices von Somfy, wenn die Rolladen über Hand/Wandsender verfahren werden:
Der Trick liegt in einer Namenskonvention.
Das fhem-Device heisst z.B. Wz_TRolladen und der dazugehörige Wandsender Wz_FB_TRoll.
Man definiert sich z.B ein notify:
define Roll_FB_not notify .._FB.Roll:.* {Roll_FB_not($NAME,$EVENT)}
Die sub sieht dann bei mir so aus:
sub Roll_FB_not($$)
{
my($fb,$event) = @_;
Log3($rolladenselektor,1,"Roll_FB_not: $fb event $event");
my ($rd,$val) = split(' ',$event);
return undef if($fb eq 'ExtMarkise');
return if($rd ne 'parsestate:');
# fb format is: xx_FB_[TF]Roll
# T = door, F = window FB = remote
# xx shortcut for room
# Somfy device for send
# xx_[TF]Rolladen
# example:
# FB: Wz_FB_TRoll
# Somfy: Wz_TRolladen
my $d = $fb . 'aden';
$d =~s/FB_//; # transform name
Log3($rolladenselektor,1,"set $d virtual $val");
fhem("set $d virtual $val");
return undef;
} # end sub Roll_FB_not
Der Trick liegt darin, die set - Funktion von Somfy mit "virtual" aufzurufen, dann wird kein Kommando gesendet, aber die Position korrekt berechnet.
Elektrolurch