From 1c45a5678e9bfd89252e51159967d0d85ee7dca1 Mon Sep 17 00:00:00 2001 From: rudolfkoenig <> Date: Thu, 19 Jan 2012 19:10:05 +0000 Subject: [PATCH] Kai's diff tuned and added git-svn-id: https://svn.fhem.de/fhem/trunk/fhem@1191 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- FHEM/14_CUL_TX.pm | 51 ++++++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/FHEM/14_CUL_TX.pm b/FHEM/14_CUL_TX.pm index 328c48344..bc2c3d703 100644 --- a/FHEM/14_CUL_TX.pm +++ b/FHEM/14_CUL_TX.pm @@ -58,7 +58,7 @@ CUL_TX_Parse($$) { my ($hash, $msg) = @_; $msg = substr($msg, 1); - # Msg format: taTHHXYZXY, see http://www.f6fbb.org/domo/sensors/tx3_th.php + # Msg format: TXTHHXYZXY, see http://www.f6fbb.org/domo/sensors/tx3_th.php my @a = split("", $msg); my $id2 = hex($a[4]) & 1; #meaning unknown my $id3 = (hex($a[3])<<3) + (hex($a[4])>>1); @@ -79,36 +79,51 @@ CUL_TX_Parse($$) my $ll4 = GetLogLevel($name,4); Log $ll4, "CUL_TX $name $id3 ($msg)"; - my ($devtype, $val, $no); + my ($msgtype, $val, $changedTxt); my $valraw = ($a[5].$a[6].".".$a[7]); my $type = $a[2]; if($type eq "0") { - $devtype = "temperature"; - $val = sprintf("%2.1f", ($valraw - 50 + $def->{corr}) ); - Log $ll4, "CUL_TX $devtype $name $id3 T: $val F: $id2"; - $no = "temperature: $val"; + $msgtype = "temperature"; + $val = sprintf("%2.1f", ($valraw - 50 + $def->{corr}) ); + Log $ll4, "CUL_TX $msgtype $name $id3 T: $val F: $id2"; + $changedTxt = "temperature: $val"; } elsif ($type eq "E") { - $devtype = "humidity"; - $val = $valraw; - Log $ll4, "CUL_TX $devtype $name $id3 H: $val F: $id2"; - $no = "humidity: $val"; + $msgtype = "humidity"; + $val = $valraw; + Log $ll4, "CUL_TX $msgtype $name $id3 H: $val F: $id2"; + $changedTxt = "humidity: $val"; } else { - my $ll2 = GetLogLevel($name,4); - Log $ll2, "CUL_TX $type $name $id3 ($msg) unknown type"; - return ""; + my $ll2 = GetLogLevel($name,4); + Log $ll2, "CUL_TX $type $name $id3 ($msg) unknown type"; + return ""; + + } + + + my $state=""; + my $t = ReadingsVal($name, "temperature", undef); + my $h = ReadingsVal($name, "humidity", undef); + if(defined($t) && defined($h)) { + $state="T: $t H: $h"; + + } elsif(defined($t)) { + $state="T: $t"; + + } elsif(defined($h)) { + $state="H: $h"; } my $tn = TimeNow(); - $def->{STATE} = $no; + $def->{STATE} = $state; $def->{READINGS}{state}{TIME} = $tn; - $def->{READINGS}{state}{VAL} = $val; - $def->{CHANGED}[0] = $no; + $def->{READINGS}{state}{VAL} = $state; + $def->{CHANGED}[0] = $changedTxt; - $def->{READINGS}{$devtype}{VAL} = $val; - $def->{READINGS}{$devtype}{TIME} = $tn; + $def->{READINGS}{$msgtype}{VAL} = $val; + $def->{READINGS}{$msgtype}{TIME} = $tn; DoTrigger($name, undef) if($init_done); return $name;