From d2d08d0ed4f6429f9e79afe783732463148b514c Mon Sep 17 00:00:00 2001 From: Wzut <> Date: Fri, 22 May 2020 05:06:17 +0000 Subject: [PATCH] 14_CUL_MAX.pm: add state reading git-svn-id: https://svn.fhem.de/fhem/trunk@21994 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/14_CUL_MAX.pm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/fhem/FHEM/14_CUL_MAX.pm b/fhem/FHEM/14_CUL_MAX.pm index 73451da18..300cd06aa 100644 --- a/fhem/FHEM/14_CUL_MAX.pm +++ b/fhem/FHEM/14_CUL_MAX.pm @@ -576,6 +576,9 @@ sub CUL_MAX_Parse return $shash->{NAME}; } + + readingsSingleUpdate($shash, 'state', get_CUL_States($shash), 1); + #convert adresses to lower case $src = lc($src); $dst = lc($dst); @@ -1251,6 +1254,8 @@ sub CUL_MAX_SQH IOWrite($hash, '', ($needPreamble ? 'Zs' : 'Zf') . $packet->{packet}); Log3 $hash, 4, $name.', Send Queue packet send : '.($needPreamble ? 'Zs' : 'Zf').$packet->{packet}.' to '.$packet->{dst_name}.' with '.$io_name; + readingsSingleUpdate($hash, 'state', get_CUL_States($hash), 1); + if ($packet->{dst} ne '000000') { $packet->{sent} = 1; @@ -1329,6 +1334,28 @@ sub CUL_MAX_SQH return; } +sub get_CUL_States { + + my $hash = shift; + my $ret = ''; + my $iodev; + my $state = sub {return (ReadingsVal(shift, 'state', '???') eq 'Initialized') ? 'ok' : 'UAS'}; + + $iodev = $hash->{IODev}{NAME} if(exists($hash->{IODev}{NAME})); + $ret = $iodev.':'.&$state($iodev) if ($iodev); + + if (exists($hash->{IOgrp})) { + foreach my $cul (split(',' , $hash->{IOgrp})) { + next if (!$cul || ($cul eq $iodev)); + $ret .= ',' if ($ret); + $ret .= "$cul:".&$state($cul); + } + $ret .= " Last:$hash->{LASTInputDev}" if (exists($hash->{LASTInputDev})); + } + + return ($ret) ? $ret : '???'; +} + sub CUL_MAX_RenameFn { my $new = shift;