From 6fd2c49f4d1cbcf46937e5cefe81ab85f9033ace Mon Sep 17 00:00:00 2001 From: fhemzap <> Date: Tue, 1 Dec 2015 15:30:38 +0000 Subject: [PATCH] HMCCU: Enhanced get channel command git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@10065 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- contrib/HMCCU/88_HMCCUDEV.pm | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/contrib/HMCCU/88_HMCCUDEV.pm b/contrib/HMCCU/88_HMCCUDEV.pm index c23e13052..98d603d26 100644 --- a/contrib/HMCCU/88_HMCCUDEV.pm +++ b/contrib/HMCCU/88_HMCCUDEV.pm @@ -21,6 +21,7 @@ # get channel [.] # # attr ccureadings { 0 | 1 } +# attr ccureadingformat { address | name } # attr statechannel # attr statedatapoint # attr statevals :[,...] @@ -56,7 +57,7 @@ sub HMCCUDEV_Initialize ($) $hash->{GetFn} = "HMCCUDEV_Get"; $hash->{AttrFn} = "HMCCUDEV_Attr"; - $hash->{AttrList} = "IODev ccureadingformat:name,address,datapoint ccureadings:0,1 statevals substitute statechannel statedatapoint loglevel:0,1,2,3,4,5,6 ". $readingFnAttributes; + $hash->{AttrList} = "IODev ccureadingformat:name,address ccureadings:0,1 statevals substitute statechannel statedatapoint loglevel:0,1,2,3,4,5,6 ". $readingFnAttributes; } ##################################### @@ -297,13 +298,16 @@ sub HMCCUDEV_Get ($@) return $ccureadings ? undef : $result; } elsif ($opt eq 'channel') { - my $objname = shift @a; - if (!defined ($objname) || $objname !~ /^[0-9]+/) { - return HMCCUDEV_SetError ($hash, "Usage: get > channel [.]"); + my @chnlist; + foreach my $objname (@a) { + last if (!defined ($objname)); + return HMCCUDEV_SetError ($hash, "Invalid channel number: $objname") if ($objname !~ /^[0-9]+/); + push (@chnlist, $hash->{ccuif}.'.'.$hash->{ccuaddr}.':'.$objname); + } + if (@chnlist == 0) { + return HMCCUDEV_SetError ($hash, "Usage: get $name channel {channel-number}[.{datapoint-expr}] [...]"); } - $objname = $hash->{ccuif}.'.'.$hash->{ccuaddr}.':'.$objname; - my @chnlist = ($objname); ($rc, $result) = HMCCU_GetChannel ($hash, \@chnlist); return HMCCUDEV_SetError ($hash, $rc) if ($rc < 0); return $ccureadings ? undef : $result; @@ -432,6 +436,10 @@ sub HMCCUDEV_SetError ($$)
If set to 1 values read from CCU will be stored as readings.
+
  • ccureadingformat <address | name> +
    + Set format of readings. Default is 'name'. +

  • statechannel <channel-number>
    Channel for setting device state by devstate command.