diff --git a/fhem/CHANGED b/fhem/CHANGED index 7626b026d..dddbc623e 100644 --- a/fhem/CHANGED +++ b/fhem/CHANGED @@ -568,4 +568,5 @@ - feature: [pgm3] Skinable - change the colors. - feature: [pgm3] Rooms possible for Webcam and Google-Weather - bugfix: dummy/structure was listed twice in list and xmllist - + - feature: 11_FHT.pm added new readings for warnings on battery, lowtemp, + window and windowsensor (M.Fischer) diff --git a/fhem/FHEM/11_FHT.pm b/fhem/FHEM/11_FHT.pm index afe678e50..1183110f8 100755 --- a/fhem/FHEM/11_FHT.pm +++ b/fhem/FHEM/11_FHT.pm @@ -84,15 +84,19 @@ my %codes = ( my %cantset = ( "ack" => 1, "ack2" => 1, + "battery" => 1, "can-xmit" => 1, "can-rcv" => 1, "start-xmit" => 1, "end-xmit" => 1, + "lowtemp" => 1, "measured-temp" => 1, "measured-high" => 1, "measured-low" => 1, "warnings" => 1, + "window" => 1, + "windowsensor" => 1, ); @@ -370,6 +374,25 @@ FHT_Parse($$) my $tn = TimeNow(); + ########################### + # Set default values for battery, lowtemp, window and windowsensor warnings. + my $warnBattery = "ok"; + my $warnTempLow = "ok"; + my $warnWindowSensor = "ok"; + my $warnWindow = "closed"; + + $def->{READINGS}{'battery'}{TIME} = $tn; + $def->{READINGS}{'battery'}{VAL} = $warnBattery; + + $def->{READINGS}{'lowtemp'}{TIME} = $tn; + $def->{READINGS}{'lowtemp'}{VAL} = $warnTempLow; + + $def->{READINGS}{'window'}{TIME} = $tn; + $def->{READINGS}{'window'}{VAL} = $warnWindow; + + $def->{READINGS}{'windowsensor'}{TIME} = $tn; + $def->{READINGS}{'windowsensor'}{VAL} = $warnWindowSensor; + ########################### # Reformat the values so they are readable. # The first four are confirmation messages, so they must be converted to @@ -430,10 +453,30 @@ FHT_Parse($$) } elsif($cmd eq "warnings") { my $nVal; - if($val & 1) { $nVal = "Battery low"; } - if($val & 2) { $nVal .= "; " if($nVal); $nVal .= "Temperature too low"; } - if($val &32) { $nVal .= "; " if($nVal); $nVal .= "Window open"; } - if($val &16) { $nVal .= "; " if($nVal); $nVal .= "Fault on window sensor"; } + if($val & 1) { + $nVal = "Battery low"; + $warnBattery = "low"; + $def->{READINGS}{'battery'}{TIME} = $tn; + $def->{READINGS}{'battery'}{VAL} = $warnBattery; + } + if($val & 2) { + $nVal .= "; " if($nVal); $nVal .= "Temperature too low"; + $warnTempLow = "warn"; + $def->{READINGS}{'lowtemp'}{TIME} = $tn; + $def->{READINGS}{'lowtemp'}{VAL} = $warnTempLow; + } + if($val &32) { + $nVal .= "; " if($nVal); $nVal .= "Window open"; + $warnWindow = "open"; + $def->{READINGS}{'window'}{TIME} = $tn; + $def->{READINGS}{'window'}{VAL} = $warnWindow; + } + if($val &16) { + $nVal .= "; " if($nVal); $nVal .= "Fault on window sensor"; + $warnWindowSensor = "fault"; + $def->{READINGS}{'windowsensor'}{TIME} = $tn; + $def->{READINGS}{'windowsensor'}{VAL} = $warnWindowSensor; + } $val = $nVal? $nVal : "none"; } @@ -449,6 +492,18 @@ FHT_Parse($$) Log 4, "FHT $name $cmd: $val"; + if ($cmd eq "warnings") { + $def->{CHANGED}[1] = "battery: $warnBattery"; + Log 4, "FHT $name battery: $warnBattery"; + $def->{CHANGED}[2] = "lowtemp: $warnTempLow"; + Log 4, "FHT $name lowtemp: $warnTempLow"; + $def->{CHANGED}[3] = "window: $warnWindow"; + Log 4, "FHT $name window: $warnWindow"; + $def->{CHANGED}[4] = "windowsensor: $warnWindowSensor"; + Log 4, "FHT $name windowsensor: $warnWindowSensor"; + } + + ################################ # Softbuffer: delete confirmed commands if($confirm) { diff --git a/fhem/docs/commandref.html b/fhem/docs/commandref.html index 08bbac54a..e79b5fa4c 100644 --- a/fhem/docs/commandref.html +++ b/fhem/docs/commandref.html @@ -1341,8 +1341,15 @@ A line ending with \ will be concatenated with the next one, so long lines <ul> <li>warnings can contain following strings: none, Battery low,Temperature too low, Window open, - Fault on window sensor - </li> + Fault on window sensor.<br> + In addition, the current warnings are reported separately: + <ul> + <li>battery: ok / low</li> + <li>lowtemp: ok / low</li> + <li>window: open / closed</li> + <li>windowsensor: ok / fault</li> + </ul> + </li> <li>actuator (without a suffix) stands for all actuators. <li>actuator or actuator1..8 can take following values: <ul> @@ -1362,9 +1369,9 @@ A line ending with \ will be concatenated with the next one, so long lines <li>pair<br> The the FHT80b sent a "you-belong-to-me" to this actuator. </ul> - Note: </ul> - <br> + </li> + <br> <li>The FHT is very economical (or lazy), it accepts one message from the FHZ1x00 every 115+x seconds, where x depends on the housecode. Don't