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)