diff --git a/CHANGED b/CHANGED index 8d01e8c0a..7d7318e57 100644 --- a/CHANGED +++ b/CHANGED @@ -515,3 +515,4 @@ - =DATE= (4.7) - bugfix: Reattached corrupted CUL device caused uninitialized message - bugfix: CUL/HMS changes, HMS cleanup + - bugfix: EM/EMWZ/EMGZ set changed to work in FHEMWEB diff --git a/FHEM/60_EM.pm b/FHEM/60_EM.pm index 7689575fe..20cd44e18 100755 --- a/FHEM/60_EM.pm +++ b/FHEM/60_EM.pm @@ -134,7 +134,7 @@ EM_Set($@) } else { - return "Unknown argument $a[1], choose one of reset,time" + return "Unknown argument $a[1], choose one of reset time" } return undef; diff --git a/FHEM/61_EMWZ.pm b/FHEM/61_EMWZ.pm index d53addceb..8c5765e58 100755 --- a/FHEM/61_EMWZ.pm +++ b/FHEM/61_EMWZ.pm @@ -125,31 +125,26 @@ sub EMWZ_Set($@) { my ($hash, @a) = @_; - my $u = "Usage: set , " . - " is one of price,alarm,rperkw"; - - return $u if(int(@a) != 3); my $name = $hash->{NAME}; - return "" if(IsIoDummy($name)); my $v = $a[2]; my $d = $hash->{DEVNR}; my $msg; - if($a[1] eq "price") { + if($a[1] eq "price" && int(@a) == 3) { $v *= 10000; # Make display and input the same $msg = sprintf("79%02x2f02%02x%02x", $d-1, $v%256, int($v/256)); - } elsif($a[1] eq "alarm") { + } elsif($a[1] eq "alarm" && int(@a) == 3) { $msg = sprintf("79%02x2d02%02x%02x", $d-1, $v%256, int($v/256)); - } elsif($a[1] eq "rperkw") { + } elsif($a[1] eq "rperkw" && int(@a) == 3) { $v *= 10; # Make display and input the same $msg = sprintf("79%02x3102%02x%02x", $d-1, $v%256, int($v/256)); } else { return "Unknown argument $a[1], choose one of price alarm rperkw"; } - + return "" if(IsIoDummy($name)); my $ret = IOWrite($hash, $msg); if(!defined($ret)) { my $msg = "EMWZ $name read error (Set)"; diff --git a/FHEM/63_EMGZ.pm b/FHEM/63_EMGZ.pm index 41ee5aac2..e5afdbbb0 100644 --- a/FHEM/63_EMGZ.pm +++ b/FHEM/63_EMGZ.pm @@ -103,12 +103,10 @@ EMGZ_Get($@) { my ($hash, @a) = @_; - return "argument is missing" if(int(@a) != 2); - my $d = $hash->{DEVNR}; my $msg; - if($a[1] ne "status") { + if($a[1] ne "status" && int(@a) != 2) { return "unknown get value, valid is status"; } $hash->{LOCAL} = 1; @@ -122,19 +120,13 @@ sub EMGZ_Set($@) { my ($hash, @a) = @_; - my $u = "Usage: set , " . - " is price"; - - return $u if(int(@a) != 3); - my $name = $hash->{NAME}; - return "" if(IsIoDummy($name)); my $v = $a[2]; my $d = $hash->{DEVNR}; my $msg; - if($a[1] eq "price") { + if($a[1] eq "price" && int(@a) != 3) { $v *= 10000; # Make display and input the same $msg = sprintf("79%02x2f02%02x%02x", $d-1, $v%256, int($v/256)); } else { @@ -142,6 +134,7 @@ EMGZ_Set($@) } + return "" if(IsIoDummy($name)); my $ret = IOWrite($hash, $msg); if(!defined($ret)) { $msg = "EMWZ $name read error (Set)";