2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-02-01 13:29:26 +00:00

36_Shelly.pm: Neue Version 2.02 mit einigen Fixes

git-svn-id: https://svn.fhem.de/fhem/trunk@19512 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
phenning 2019-06-01 07:38:07 +00:00
parent 6facc309f9
commit f2a8f599a5

View File

@ -57,7 +57,7 @@ my %setssw = (
"off-for-timer" => "E", "off-for-timer" => "E",
"config" => "K", "config" => "K",
"password" => "W", "password" => "W",
"xtrachannels" => "C" "xtrachannels:noArg" => "C"
); );
my %setsrol = ( my %setsrol = (
@ -213,7 +213,7 @@ sub Shelly_Attr(@) {
my $hash = $main::defs{$name}; my $hash = $main::defs{$name};
my $ret; my $ret;
my $model = AttrVal($name,"model","shelly1"); my $model = AttrVal($name,"model","");
my $mode = AttrVal($name,"mode",""); my $mode = AttrVal($name,"mode","");
#-- temporary code #-- temporary code
@ -228,42 +228,44 @@ sub Shelly_Attr(@) {
Log3 $name,1,"[Shelly_Attr] wrong value of model attribute, see documentation for possible values"; Log3 $name,1,"[Shelly_Attr] wrong value of model attribute, see documentation for possible values";
return return
} }
#-- only one relay if( $model =~ /shelly.*/ ){
if( $shelly_models{$model}[0] == 1){ #-- only one relay
fhem("deletereading ".$name." relay_.*"); if( $shelly_models{$model}[0] == 1){
fhem("deletereading ".$name." overpower_.*"); fhem("deletereading ".$name." relay_.*");
fhem("deletereading ".$name." button_.*"); fhem("deletereading ".$name." overpower_.*");
#-- no relay fhem("deletereading ".$name." button_.*");
}elsif( $shelly_models{$model}[0] == 0){ #-- no relay
fhem("deletereading ".$name." relay.*"); }elsif( $shelly_models{$model}[0] == 0){
fhem("deletereading ".$name." overpower.*"); fhem("deletereading ".$name." relay.*");
fhem("deletereading ".$name." button.*"); fhem("deletereading ".$name." overpower.*");
#-- other number fhem("deletereading ".$name." button.*");
}else{ #-- other number
fhem("deletereading ".$name." relay"); }else{
fhem("deletereading ".$name." overpower"); fhem("deletereading ".$name." relay");
fhem("deletereading ".$name." button"); fhem("deletereading ".$name." overpower");
} fhem("deletereading ".$name." button");
#-- no rollers }
if( $shelly_models{$model}[1] == 0){ #-- no rollers
fhem("deletereading ".$name." position.*"); if( $shelly_models{$model}[1] == 0){
fhem("deletereading ".$name." stop_reason.*"); fhem("deletereading ".$name." position.*");
fhem("deletereading ".$name." last_dir.*"); fhem("deletereading ".$name." stop_reason.*");
fhem("deletereading ".$name." pct.*"); fhem("deletereading ".$name." last_dir.*");
delete $hash->{MOVING}; fhem("deletereading ".$name." pct.*");
delete $hash->{DURATION}; delete $hash->{MOVING};
} delete $hash->{DURATION};
#-- no dimmers }
if( $shelly_models{$model}[2] == 0){ #-- no dimmers
fhem("deletereading ".$name." L-.*"); if( $shelly_models{$model}[2] == 0){
fhem("deletereading ".$name." rgb"); fhem("deletereading ".$name." L-.*");
fhem("deletereading ".$name." pct.*"); fhem("deletereading ".$name." rgb");
} fhem("deletereading ".$name." pct.*");
}
#-- always clear readings for meters #-- always clear readings for meters
fhem("deletereading ".$name." power.*"); fhem("deletereading ".$name." power.*");
fhem("deletereading ".$name." energy.*"); fhem("deletereading ".$name." energy.*");
fhem("deletereading ".$name." overpower.*"); fhem("deletereading ".$name." overpower.*");
}
#-- change attribute list for model 2/rgbw w. hidden AttrList #-- change attribute list for model 2/rgbw w. hidden AttrList
my $old = $modules{Shelly}{'AttrList'}; my $old = $modules{Shelly}{'AttrList'};
@ -276,7 +278,7 @@ sub Shelly_Attr(@) {
$new = $pre." mode:relay,roller ".$pos; $new = $pre." mode:relay,roller ".$pos;
}elsif( $model eq "shellyrgbw" ){ }elsif( $model eq "shellyrgbw" ){
$new = $pre." mode:white,color ".$pos; $new = $pre." mode:white,color ".$pos;
}else{ }elsif( $model =~ /shelly.*/){
$new = $pre." ".$pos; $new = $pre." ".$pos;
} }
$hash->{'.AttrList'} = $new; $hash->{'.AttrList'} = $new;