From 343e3e1803e7b3750115c87b69386ae3b44763a7 Mon Sep 17 00:00:00 2001 From: fhemzap Date: Thu, 21 Jan 2016 17:56:51 +0000 Subject: [PATCH] HMCCUDEV: Added experimental attribute controldatapoint git-svn-id: https://svn.fhem.de/fhem/trunk@10585 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/HMCCU/88_HMCCUDEV.pm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/fhem/contrib/HMCCU/88_HMCCUDEV.pm b/fhem/contrib/HMCCU/88_HMCCUDEV.pm index ba137776c..ebe8be502 100644 --- a/fhem/contrib/HMCCU/88_HMCCUDEV.pm +++ b/fhem/contrib/HMCCU/88_HMCCUDEV.pm @@ -64,7 +64,7 @@ sub HMCCUDEV_Initialize ($) $hash->{GetFn} = "HMCCUDEV_Get"; $hash->{AttrFn} = "HMCCUDEV_Attr"; - $hash->{AttrList} = "IODev ccureadingfilter ccureadingformat:name,address ccureadings:0,1 ccustate ccuget:State,Value statevals substitute statechannel statedatapoint stripnumber:0,1,2 loglevel:0,1,2,3,4,5,6 ". $readingFnAttributes; + $hash->{AttrList} = "IODev ccureadingfilter ccureadingformat:name,address ccureadings:0,1 ccustate ccuget:State,Value statevals substitute statechannel statedatapoint controldatapoint stripnumber:0,1,2 loglevel:0,1,2,3,4,5,6 ". $readingFnAttributes; } ##################################### @@ -195,6 +195,7 @@ sub HMCCUDEV_Set ($@) my $statechannel = AttrVal ($name, "statechannel", ''); my $statedatapoint = AttrVal ($name, "statedatapoint", 'STATE'); my $statevals = AttrVal ($name, "statevals", ''); + my $controldatapoint = AttrVal ($name, "controldatapoint", ''); my $hmccu_hash = $hash->{IODev}; my $hmccu_name = $hash->{IODev}->{NAME}; @@ -224,6 +225,16 @@ sub HMCCUDEV_Set ($@) HMCCU_SetState ($hash, "OK"); return undef; } + elsif ($opt eq 'control') { + return HMCCUDEV_SetError ($hash, "Attribute control datapoint not set") if ($controldatapoint eq ''); + my $objvalue = shift @a; + my $objname = $hash->{ccuif}.'.'.$hash->{ccuaddr}.':'.$controldatapoint; + $rc = HMCCU_SetDatapoint ($hash, $objname, $objvalue); + return HMCCUDEV_SetError ($hash, $rc) if ($rc < 0); + + HMCCU_SetState ($hash, "OK"); + return undef; + } elsif ($opt =~ /^($hash->{statevals})$/) { my $cmd = $1; my $objvalue = ($cmd ne 'devstate') ? $cmd : join ('%20', @a); @@ -258,7 +269,7 @@ sub HMCCUDEV_Set ($@) return undef; } else { - my $retmsg = "HMCCUDEV: Unknown argument $opt, choose one of config datapoint"; + my $retmsg = "HMCCUDEV: Unknown argument $opt, choose one of config control datapoint"; return undef if ($hash->{statevals} eq 'readonly'); if ($statechannel ne '') {