diff --git a/fhem/CHANGED b/fhem/CHANGED
index d5110ebfd..7ed8c09e7 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII
- SVN
+ - feature: setreading command added
- change: DbLog: by using DbLog a new Attribute DbLogExclude will be propagated
to all Devices. DbLogExclue will work as regexp to exclude
defined readings to log
diff --git a/fhem/docs/commandref_frame.html b/fhem/docs/commandref_frame.html
index d7ab55d91..5973018a3 100644
--- a/fhem/docs/commandref_frame.html
+++ b/fhem/docs/commandref_frame.html
@@ -56,6 +56,7 @@
save
set
setdefaultattr
+ setreading
setstate
shutdown
sleep
@@ -257,6 +258,7 @@ A line ending with \ will be concatenated with the next one, so long lines
get,
list,
set,
+ setreading,
setstate,
trigger
can take a more complex device specification as argument, which will be
@@ -936,15 +938,31 @@ A line ending with \ will be concatenated with the next one, so long lines
+
+
setreading
+
+ setreading <devspec> <reading> <value>
+
+ Set the reading <reading> for the device <name>
to
+ <value> without sending out commands to the device, but triggering
+ events and eventMap/stateFormat transformations as usual.
+
+ Examples:
+
+ setreading lamp state on
+
+
+
setstate
setstate <devspec> <value>
- Set the "STATE" for <name>
as shown in paranthesis in the
- list command
- to <value>
without sending any signals to the device
- itself. This command is also used in the statefile.
+ Set the STATE entry for the device specified by <devspec>
,
+ which is used for displaying the device state in different frontends.
+ No signals will be sent to the device, no events will be generated, and no
+ eventMap or stateFormat translation will be done either.
+ This command is also used in the statefile.
See the Device specification section for details on
<devspec>.
@@ -952,11 +970,6 @@ A line ending with \ will be concatenated with the next one, so long lines
- Note:
-
- - The statefile uses another version of this command, don't be surprised.
-
-
diff --git a/fhem/docs/commandref_frame_DE.html b/fhem/docs/commandref_frame_DE.html
index a5845d3df..96acc4853 100644
--- a/fhem/docs/commandref_frame_DE.html
+++ b/fhem/docs/commandref_frame_DE.html
@@ -55,6 +55,7 @@
save
set
setdefaultattr
+ setreading
setstate
shutdown
sleep
@@ -981,26 +982,40 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.
+
+setreading
+
+ setstate <devspec> <reading> <value>
+
+ Der Befehl setzt das Reading <reading> auf den Wert <value> ohne
+ Signale an das betroffene Gerät zu senden, generiert aber Ereignisse und
+ die übliche eventMap und stateFormat Umwandlung wird auch
+ durchgeführt.
+
+ Siehe den Abschnitt über Geräte-Spezifikation
+ für Details der <devspec>.
+
+ Beispiel:
+
+ setreading lampe state on
+
+
+
setstate
setstate <devspec> <value>
- Der Befehl setzt den "STATUS" für <name>
, wie im Befehl
- list beschrieben, auf den Wert <value>
- ohne an das Gerät ein Signal zu senden. Dieser Befehl wird auch im statefile
- benutzt.
+ Der Befehl setzt den STATE Eintrag des Ger&aauml;tes direkt, ohne Ereignisse zu
+ generieren oder ein Signal an das Gerät zu senden. Dieser Eintrag ist
+ maßgebend für die Status-Anzeige in diversen Frontends.
+ Dieser Befehl wird auch im statefile benutzt.
Siehe den Abschnitt über Geräte-Spezifikation
für Details der <devspec>.
- Examples:
+ Beispiel:
- Note:
-
- - The statefile uses another version of this command, don't be surprised.
-
+ setstate lampe An
@@ -1025,9 +1040,11 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.
trigger
- trigger <devspec> <state>
+ trigger <devspec> <event>
- Triggert eine notify Definition.
+ Generiert das Ereignis <event>, was z.Bsp. ein notify anstoßen kann, oder den FileLog zum
+ protokollieren dieser Zeile bewegen kann.
Siehe den Abschnitt über Geräte-Spezifikation
für Details der <devspec>.
diff --git a/fhem/fhem.pl b/fhem/fhem.pl
index 164c56586..1e101b35f 100755
--- a/fhem/fhem.pl
+++ b/fhem/fhem.pl
@@ -267,6 +267,8 @@ $readingFnAttributes = "event-on-change-reading event-on-update-reading ".
Hlp=>"[configfile],write the configfile and the statefile" },
"set" => { Fn=>"CommandSet",
Hlp=>" ,transmit code for " },
+ "setreading" => { Fn=>"CommandSetReading",
+ Hlp=>" ,set reading for " },
"setstate"=> { Fn=>"CommandSetstate",
Hlp=>" ,set the state shown in the command list" },
"setdefaultattr" => { Fn=>"CommandDefaultAttr",
@@ -1595,6 +1597,27 @@ CommandDeleteReading($$)
return join("\n", @rets);
}
+sub
+CommandSetReading($$)
+{
+ my ($cl, $def) = @_;
+
+ my @a = split(" ", $def, 3);
+ return "Usage: setreading \n$namedef" if(@a != 3);
+
+ my @rets;
+ foreach my $sdev (devspec2array($a[0])) {
+
+ if(!defined($defs{$sdev})) {
+ push @rets, "Please define $sdev first";
+ next;
+ }
+ readingsSingleUpdate($defs{$sdev}, $a[1], $a[2], 1);
+ }
+ return undef;
+}
+
+
#############
sub
PrintHash($$)