From 779b68525b42d28797d7ed5a987c46fc56b75aac Mon Sep 17 00:00:00 2001 From: justme-1968 Date: Tue, 29 Dec 2015 20:18:55 +0000 Subject: [PATCH] 32_yowsup.pm: support new allowed modell (see forum: http://forum.fhem.de/index.php/topic,46380.msg381374.html#msg381374) git-svn-id: https://svn.fhem.de/fhem/trunk@10302 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/32_yowsup.pm | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/fhem/FHEM/32_yowsup.pm b/fhem/FHEM/32_yowsup.pm index 7eb544770..70c9311cb 100644 --- a/fhem/FHEM/32_yowsup.pm +++ b/fhem/FHEM/32_yowsup.pm @@ -450,8 +450,7 @@ yowsup_Parse($$) if( !$accept_from || $last_sender || ",$accept_from," =~/,$last_sender,/ ) { Log3 $name, 3, "$cname: received command: $cmd"; - my $allowed = AttrVal($cname, "allowedCommands", undef ); - my $ret = AnalyzeCommandChain( $hash, $cmd, $allowed ); + my $ret = AnalyzeCommandChain( $hash, $cmd ); Log3 $name, 4, "$cname: command result: $ret"; @@ -531,11 +530,21 @@ yowsup_Write($$) sub yowsup_Attr($$$) { - my ($cmd, $name, $attrName, $attrVal) = @_; + my ($cmd, $name, $attrName, @params) = @_; + my ($attrVal) = @params; my $orig = $attrVal; - if( $attrName eq "disable" ) { + if($attrName eq "allowedCommands" && $cmd eq "set") { + my $aName = "allowed_$name"; + my $exists = ($defs{$aName} ? 1 : 0); + AnalyzeCommand(undef, "defmod $aName allowed"); + AnalyzeCommand(undef, "attr $aName validFor $name"); + AnalyzeCommand(undef, "attr $aName $attrName ".join(" ",@params)); + return "$name: ".($exists ? "modifying":"creating"). + " device $aName for attribute $attrName"; + + } elsif( $attrName eq "disable" ) { my $hash = $defs{$name}; yowsup_Disconnect($hash); if( $cmd eq "set" && $attrVal ne "0" ) {