2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 09:16:53 +00:00

93_FHEM2FHEM.pm: add setState Attribute (Forum #118707)

git-svn-id: https://svn.fhem.de/fhem/trunk@23722 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2021-02-11 20:16:27 +00:00
parent d1a3496cf9
commit a4a858c5a7

View File

@ -33,7 +33,8 @@ FHEM2FHEM_Initialize($)
$hash->{DefFn} = "FHEM2FHEM_Define"; $hash->{DefFn} = "FHEM2FHEM_Define";
$hash->{UndefFn} = "FHEM2FHEM_Undef"; $hash->{UndefFn} = "FHEM2FHEM_Undef";
$hash->{AttrList}= "addStateEvent:1,0 dummy:1,0 disable:0,1 ". $hash->{AttrList}= "addStateEvent:1,0 dummy:1,0 disable:0,1 ".
"disabledForIntervals eventOnly:1,0 excludeEvents"; "disabledForIntervals eventOnly:1,0 excludeEvents ".
"setState";
} }
##################################### #####################################
@ -177,7 +178,11 @@ FHEM2FHEM_Read($)
if($msg =~ m/^([^:]*): (.*)$/) { if($msg =~ m/^([^:]*): (.*)$/) {
readingsSingleUpdate($defs{$rname}, $1, $2, 1); readingsSingleUpdate($defs{$rname}, $1, $2, 1);
} else { } else {
readingsSingleUpdate($defs{$rname}, "state", $msg, 1); if(AttrVal($name,"setState",0)) {
AnalyzeCommand($hash, "set $rname $msg");
} else {
readingsSingleUpdate($defs{$rname}, "state", $msg, 1);
}
} }
} }
@ -338,7 +343,7 @@ FHEM2FHEM_Attr(@)
my ($type, $devName, $attrName, @param) = @_; my ($type, $devName, $attrName, @param) = @_;
my $hash = $defs{$devName}; my $hash = $defs{$devName};
return undef if($attrName ne "addStateEvent"); return undef if($attrName && $attrName ne "addStateEvent");
$attr{$devName}{$attrName} = 1; $attr{$devName}{$attrName} = 1;
FHEM2FHEM_CloseDev($hash); FHEM2FHEM_CloseDev($hash);
FHEM2FHEM_OpenDev($hash, 1); FHEM2FHEM_OpenDev($hash, 1);
@ -450,19 +455,23 @@ FHEM2FHEM_Attr(@)
<li><a href="#dummy">dummy</a></li> <li><a href="#dummy">dummy</a></li>
<li><a href="#disable">disable</a></li> <li><a href="#disable">disable</a></li>
<li><a href="#disabledForIntervals">disabledForIntervals</a></li> <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
<li><a name="#eventOnly">eventOnly</a><br> <li><a name="#FHEM2FHEMeventOnly">eventOnly</a><br>
if set, generate only events, do not set corresponding readings. if set, generate only events, do not set corresponding readings.
This is a compatibility feature, available only for LOG-Mode. This is a compatibility feature, available only for LOG-Mode.
</li> </li>
<li><a name="#addStateEvent">addStateEvent</a><br> <li><a name="#FHEM2FHEMaddStateEvent">addStateEvent</a><br>
if set, state events are transmitted correctly. Notes: this is relevant if set, state events are transmitted correctly. Notes: this is relevant
only with LOG mode, setting it will generate an additional "reappeared" only with LOG mode, setting it will generate an additional "reappeared"
Log entry, and the remote FHEM must support inform onWithState (i.e. must Log entry, and the remote FHEM must support inform onWithState (i.e. must
be up to date). be up to date).
</li> </li>
<li><a name="#excludeEvents">excludeEvents &lt;regexp&gt;</a> <li><a name="#FHEM2FHEMexcludeEvents">excludeEvents &lt;regexp&gt;</a>
do not publish events matching &lt;regexp&gt; do not publish events matching &lt;regexp&gt;
</li> </li>
<li><a name="#FHEM2FHEMsetState">setState</a>
if set to 1, and there is a local device with the same name, then remote
set commands will be executed for the local device.
</li>
</ul> </ul>
</ul> </ul>
@ -579,20 +588,25 @@ FHEM2FHEM_Attr(@)
<li><a href="#dummy">dummy</a></li> <li><a href="#dummy">dummy</a></li>
<li><a href="#disable">disable</a></li> <li><a href="#disable">disable</a></li>
<li><a href="#disabledForIntervals">disabledForIntervals</a></li> <li><a href="#disabledForIntervals">disabledForIntervals</a></li>
<li><a name="#eventOnly">eventOnly</a><br> <li><a name="#FHEM2FHEMeventOnly">eventOnly</a><br>
falls gesetzt, werden nur die Events generiert, und es wird kein falls gesetzt, werden nur die Events generiert, und es wird kein
Reading aktualisiert. Ist nur im LOG-Mode aktiv. Reading aktualisiert. Ist nur im LOG-Mode aktiv.
</li> </li>
<li><a name="#addStateEvent">addStateEvent</a><br> <li><a name="#FHEM2FHEMaddStateEvent">addStateEvent</a><br>
falls gesetzt, werden state Events als solche uebertragen. Zu beachten: falls gesetzt, werden state Events als solche uebertragen. Zu beachten:
das Attribut ist nur f&uuml;r LOG-Mode relevant, beim Setzen wird eine das Attribut ist nur f&uuml;r LOG-Mode relevant, beim Setzen wird eine
zus&auml;tzliche reopened Logzeile generiert, und die andere Seite muss zus&auml;tzliche reopened Logzeile generiert, und die andere Seite muss
aktuell sein. aktuell sein.
</li> </li>
<li><a name="#excludeEvents">excludeEvents &lt;regexp&gt;</a> <li><a name="#FHEM2FHEMexcludeEvents">excludeEvents &lt;regexp&gt;</a>
die auf das &lt;regexp&gt; zutreffende Events werden nicht die auf das &lt;regexp&gt; zutreffende Events werden nicht
bereitgestellt. bereitgestellt.
</li> </li>
<li><a name="#FHEM2FHEMsetState">setState</a>
falls gesetzt (auf 1), und ein lokales Ger&auml;t mit dem gleichen Namen
existiert, dann werden set Befehle vom entfernten Ger&auml;t als Solches
&uuml;bertragen.
</li>
</ul> </ul>
</ul> </ul>