From 635992b2e2af96a304140cca8f5d645d3ddea56f Mon Sep 17 00:00:00 2001 From: mgernoth <> Date: Mon, 17 Oct 2016 08:46:50 +0000 Subject: [PATCH] 00_HMUARTLGW.pm: add dummy attribute git-svn-id: https://svn.fhem.de/fhem/trunk@12359 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_HMUARTLGW.pm | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) diff --git a/fhem/FHEM/00_HMUARTLGW.pm b/fhem/FHEM/00_HMUARTLGW.pm index 0a6ca055d..b91b00b29 100644 --- a/fhem/FHEM/00_HMUARTLGW.pm +++ b/fhem/FHEM/00_HMUARTLGW.pm @@ -153,6 +153,7 @@ sub HMUARTLGW_Initialize($) "csmaCa:0,1 " . "qLen " . "logIDs ". + "dummy:1 ". $readingFnAttributes; } @@ -184,7 +185,6 @@ sub HMUARTLGW_DoInit($) delete($hash->{Helper}); delete($hash->{AssignedPeerCnt}); delete($hash->{msgLoadCurrent}); - delete($hash->{msgLoadCurrentRaw}); delete($hash->{msgLoadHistory}); delete($hash->{msgLoadHistoryAbs}); delete($hash->{owner}); @@ -266,6 +266,12 @@ sub HMUARTLGW_Define($$) $hash->{DeviceName} = $dev; + if (defined(AttrVal($name, "dummy", undef))) { + readingsSingleUpdate($hash, "state", "dummy", 1); + HMUARTLGW_updateCondition($hash); + return; + } + return DevIo_OpenDev($hash, 0, "HMUARTLGW_DoInit", \&HMUARTLGW_Connect); } @@ -284,7 +290,10 @@ sub HMUARTLGW_Undefine($$;$) $devcount--; } - DevIo_CloseDev($hash) if (!$noclose); + if (defined($hash->{FD}) && (!$noclose)) { + DevIo_CloseDev($hash); + Log3($hash, 3, "${name} device closed") if (!defined($hash->{FD})); + } $hash->{DevState} = HMUARTLGW_STATE_NONE; HMUARTLGW_updateCondition($hash); } @@ -1796,6 +1805,20 @@ sub HMUARTLGW_Attr(@) delete $attr{$hash->{keepAlive}->{NAME}}{$aName}; } } + } elsif ($aName eq "dummy") { + if ($cmd eq "set") { + if (!defined($attr{$name}{$aName})) { + HMUARTLGW_Undefine($hash, $name); + readingsSingleUpdate($hash, "state", "dummy", 1); + HMUARTLGW_updateCondition($hash); + $hash->{XmitOpen} = 0; + } + } else { + if (defined($attr{$name}{$aName})) { + delete $attr{$name}{$aName}; + DevIo_OpenDev($hash, 0, "HMUARTLGW_DoInit", \&HMUARTLGW_Connect); + } + } } return $retVal; @@ -1936,9 +1959,8 @@ sub HMUARTLGW_updateMsgLoad($$) { } } - if ((!defined($hash->{msgLoadCurrentRaw})) || - $hash->{msgLoadCurrentRaw} != $load) { - $hash->{msgLoadCurrentRaw} = $load; + if ((!defined($hash->{msgLoadCurrent})) || + $hash->{msgLoadCurrent} != $adjustedLoad) { $hash->{msgLoadCurrent} = $adjustedLoad; HMUARTLGW_updateCondition($hash); } @@ -2342,6 +2364,10 @@ sub HMUARTLGW_getVerbLvl($$$$) { avoidance), also known as listen-before-talk.
Default: 0 (disabled) +
  • dummy
    + Do not interact with the device at all, only define it.
    + Default: not set +
  • dutyCycle
    Enable or disable the duty-cycle check (1% rule) performed by the wireless module.