From c93082d2b35ed9b4bdfa493b306e4d081991b62d Mon Sep 17 00:00:00 2001 From: oskarfessel <> Date: Tue, 6 Mar 2012 12:29:06 +0000 Subject: [PATCH] improved status decoding for HM-CC-VD in 10_CUL_HM.pm git-svn-id: https://svn.fhem.de/fhem/trunk@1320 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/10_CUL_HM.pm | 17 +++++++++++------ fhem/docs/commandref.html | 19 ++++++++++--------- 2 files changed, 21 insertions(+), 15 deletions(-) diff --git a/fhem/FHEM/10_CUL_HM.pm b/fhem/FHEM/10_CUL_HM.pm index f87cd47a9..0f1fc2367 100755 --- a/fhem/FHEM/10_CUL_HM.pm +++ b/fhem/FHEM/10_CUL_HM.pm @@ -491,15 +491,20 @@ CUL_HM_Parse($$) # CMD:8202 SRC:13F251 DST:15B50D 010100002A # status ACK to controlling HM-CC-TC if($cmd eq "8202" && $p =~ m/^(..)(..)(..)(..)/) { - my ( $vp, $d1) = - (hex($3), $4); + my ( $vp, $st) = + (hex($3), hex($4)); $vp = int($vp)/2; # valve position in % push @event, "actuator:$vp %"; - # I think this is too much info: - # if($d1 eq "10") { push @event, "actuator:movement_open"; - # } elsif($d1 eq "20") { push @event, "actuator:movement_close"; - # } + # Status-Byte Auswertung + push @event, "motor:opening" if($st&0x10); + push @event, "motor:closing" if($st&0x20); + push @event, "motor:blocked" if($st&0x06) == 2; + push @event, "motor:loose" if($st&0x06) == 4; + push @event, "motor:adjusting range too small" if($st&0x06) == 6; + push @event, "motor:ok" if($st&0x06) == 0; + push @event, "battery:low" if($st&0x08); + push @event, "battery:ok" if(($st&0x08) == 0); } # CMD:A010 SRC:13F251 DST:5D24C9 0401000000000509000A070000 diff --git a/fhem/docs/commandref.html b/fhem/docs/commandref.html index 31ec6bd5b..6b2cae64c 100644 --- a/fhem/docs/commandref.html +++ b/fhem/docs/commandref.html @@ -3048,17 +3048,18 @@ A line ending with \ will be concatenated with the next one, so long lines temperature $t
humidity $h
actuator $vp %
- desired-temp: $t
- tempList$wd: hh:mm $t hh:mm $t ...
- ValveErrorPosition $dname: $vep %
- ValveOffset $dname: $of %
- windowopentemp-$tchan: $t (sensor:$tdev)
+ desired-temp $t
+ desired-temp-ack $t
+ tempList$wd hh:mm $t hh:mm $t ...
+ ValveErrorPosition $dname $vep %
+ ValveOffset $dname $of %
+ windowopentemp-$tchan $t (sensor:$tdev)
  • HM-CC-VD:
    actuator $vp %
    - actuator:movement_open
    - actuator:movement_close
    - ValveErrorPosition:$vep %
    - ValveOffset $dname: $of %
    + motor [opening|closing|blocked|loose|adjusting range too small|ok]
    + battery [low|ok]
    + ValveErrorPosition $vep %
    + ValveOffset $dname $of %
  • KFM100:
    rawValue $v
    Sequence $s