mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-16 10:46:03 +00:00
improve event fot TC/VD/LED16
git-svn-id: https://svn.fhem.de/fhem/trunk@2024 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7f59b5f34b
commit
40d33549ff
@ -422,7 +422,7 @@ CUL_HM_Parse($$)
|
|||||||
}
|
}
|
||||||
elsif($model eq "HM-CC-TC") { ####################################
|
elsif($model eq "HM-CC-TC") { ####################################
|
||||||
my ($sType,$chn) = ($1,$2) if($p =~ m/^(..)(..)/);
|
my ($sType,$chn) = ($1,$2) if($p =~ m/^(..)(..)/);
|
||||||
if($cmd eq "8670" && $p =~ m/^(....)(..)/) {# weather event
|
if($msgType eq "70" && $p =~ m/^(....)(..)/) {# weather event
|
||||||
$chn = '01'; # fix definition
|
$chn = '01'; # fix definition
|
||||||
my ( $t, $h) = (hex($1), hex($2));# temp is 15 bit signed
|
my ( $t, $h) = (hex($1), hex($2));# temp is 15 bit signed
|
||||||
$t = ($t & 0x3fff)/10*(($t & 0x4000)?-1:1);
|
$t = ($t & 0x3fff)/10*(($t & 0x4000)?-1:1);
|
||||||
@ -430,22 +430,23 @@ CUL_HM_Parse($$)
|
|||||||
push @event, "measured-temp:$t";
|
push @event, "measured-temp:$t";
|
||||||
push @event, "humidity:$h";
|
push @event, "humidity:$h";
|
||||||
}
|
}
|
||||||
elsif($cmd eq "A258" && $p =~ m/^(..)(..)/) {#climate event
|
elsif($msgType eq "58" && $p =~ m/^(..)(..)/) {#climate event
|
||||||
$chn = '02'; # fix definition
|
$chn = '02'; # fix definition
|
||||||
my ( $d1, $vp) = # adjust_command[0..4] adj_data[0..250]
|
my ( $d1, $vp) = # adjust_command[0..4] adj_data[0..250]
|
||||||
( $1, hex($2));
|
( $1, hex($2));
|
||||||
$vp = int($vp/2.56+0.5); # valve position in %
|
$vp = int($vp/2.56+0.5); # valve position in %
|
||||||
push @event, "actuator:$vp %";
|
#push @event, "actuator:$vp %";remove from TC
|
||||||
|
|
||||||
# Set the valve state too, without an extra trigger
|
# Set the valve state too, without an extra trigger
|
||||||
if($dhash) {
|
if($dhash) {
|
||||||
|
DoTrigger($dname,'ValvePosition: changeTo '.$vp.'%');
|
||||||
$dhash->{STATE} = "$vp %";
|
$dhash->{STATE} = "$vp %";
|
||||||
$dhash->{READINGS}{state}{TIME} = $tn;
|
$dhash->{READINGS}{state}{TIME} = $tn;
|
||||||
$dhash->{READINGS}{state}{VAL} = "$vp %";
|
$dhash->{READINGS}{state}{VAL} = "$vp %";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
# 0403 167DE9 01 05 05 16 0000 windowopen-temp chan 03, dev 167DE9 on slot 01
|
# 0403 167DE9 01 05 05 16 0000 windowopen-temp chan 03, dev 167DE9 on slot 01
|
||||||
elsif($cmd eq "A410" && $p =~ m/^0403(......)(..)0505(..)0000/) {
|
elsif($msgType eq "10" && $p =~ m/^0403(......)(..)0505(..)0000/) {
|
||||||
# change of chn 3(window) list 5 register 5 - a peer window changed!
|
# change of chn 3(window) list 5 register 5 - a peer window changed!
|
||||||
my ( $tdev, $tchan, $v1) = (($1), hex($2), hex($3));
|
my ( $tdev, $tchan, $v1) = (($1), hex($2), hex($3));
|
||||||
push @event, sprintf("windowopen-temp-%d: %.1f (sensor:%s)"
|
push @event, sprintf("windowopen-temp-%d: %.1f (sensor:%s)"
|
||||||
@ -453,7 +454,7 @@ CUL_HM_Parse($$)
|
|||||||
}
|
}
|
||||||
# idea: remember all possible 24 value-pairs per day and reconstruct list
|
# idea: remember all possible 24 value-pairs per day and reconstruct list
|
||||||
# everytime new values are set or received.
|
# everytime new values are set or received.
|
||||||
elsif($cmd eq "A410" &&
|
elsif($msgType eq "10" &&
|
||||||
$p =~ m/^0402000000000(.)(..)(..)(..)(..)(..)(..)(..)(..)/) {
|
$p =~ m/^0402000000000(.)(..)(..)(..)(..)(..)(..)(..)(..)/) {
|
||||||
# param list 5 or 6, 4 value pairs.
|
# param list 5 or 6, 4 value pairs.
|
||||||
my ($plist, $o1, $v1, $o2, $v2, $o3, $v3, $o4, $v4) =
|
my ($plist, $o1, $v1, $o2, $v2, $o3, $v3, $o4, $v4) =
|
||||||
@ -504,7 +505,7 @@ CUL_HM_Parse($$)
|
|||||||
push @event, $msg; # generate one event per day entry
|
push @event, $msg; # generate one event per day entry
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif($cmd eq "A410" && $p =~ m/^04020000000005(..)(..)/) {
|
elsif($msgType eq "10" && $p =~ m/^04020000000005(..)(..)/) {
|
||||||
my ( $o1, $v1) = (hex($1),hex($2));# only parse list 5 for chn 2
|
my ( $o1, $v1) = (hex($1),hex($2));# only parse list 5 for chn 2
|
||||||
my $msg;
|
my $msg;
|
||||||
my @days = ("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri");
|
my @days = ("Sat", "Sun", "Mon", "Tue", "Wed", "Thu", "Fri");
|
||||||
@ -525,16 +526,16 @@ CUL_HM_Parse($$)
|
|||||||
push @event,'param-change: offset='.$o1.', value='.$v1;
|
push @event,'param-change: offset='.$o1.', value='.$v1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif($cmd eq "A001" && $p =~ m/^01080900(..)(..)/) {
|
elsif($msgType eq "01"){
|
||||||
# channel is in sType for this message
|
if($p =~ m/^010809(..)0A(..)/) { # TC set valve for VD => post events to VD
|
||||||
my ( $of, $vep) =
|
my ( $of, $vep) = (hex($1), hex($2));
|
||||||
(hex($1), hex($2));
|
DoTrigger($dname,'ValveErrorPosition: changeTo '.$vep.'%');
|
||||||
push @event, "ValveErrorPosition for $dname: $vep %";
|
DoTrigger($dname,'ValveOffset: changeTo '.$of.'%');
|
||||||
push @event, "ValveOffset for $dname: $of %";
|
push @event,""; # nothing to report for TC
|
||||||
#set the condition in destination
|
}
|
||||||
DoTrigger($dname,'ValveErrorPosition: changeTo '.$vep.'%');
|
elsif($p =~ m/^010[56]/){ # 'prepare to set' or 'end set'
|
||||||
DoTrigger($dname,'ValveOffset: changeTo '.$of.'%');
|
push @event,""; #
|
||||||
push @event,""; # nothing to report for TC
|
}
|
||||||
}
|
}
|
||||||
# ($cmd eq "A112" && $p =~ m/^0202(..)$/)) { # Set desired temp
|
# ($cmd eq "A112" && $p =~ m/^0202(..)$/)) { # Set desired temp
|
||||||
elsif(($msgType eq '02' &&$sType eq '01')|| # ackStatus
|
elsif(($msgType eq '02' &&$sType eq '01')|| # ackStatus
|
||||||
@ -753,7 +754,7 @@ CUL_HM_Parse($$)
|
|||||||
my $devState = $shash->{READINGS}{color}{VAL};
|
my $devState = $shash->{READINGS}{color}{VAL};
|
||||||
$devState = "00000000" if (!$devState);
|
$devState = "00000000" if (!$devState);
|
||||||
if($parse eq "powerOn"){# reset LEDs after power on
|
if($parse eq "powerOn"){# reset LEDs after power on
|
||||||
CUL_HM_PushCmdStack($shash,'++A011'.$id.$src.'%s%s8100'.$devState);
|
CUL_HM_PushCmdStack($shash,'++A011'.$id.$src."8100".$devState);
|
||||||
CUL_HM_ProcessCmdStack($shash);
|
CUL_HM_ProcessCmdStack($shash);
|
||||||
}
|
}
|
||||||
else {# just update datafields in storage
|
else {# just update datafields in storage
|
||||||
|
Loading…
x
Reference in New Issue
Block a user