2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-01-31 06:39:11 +00:00

sleep parameter quiet

git-svn-id: https://svn.fhem.de/fhem/trunk@3498 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2013-07-25 07:35:49 +00:00
parent 79d919b38f
commit 47dfb2f143
4 changed files with 56 additions and 38 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII
- SVN
- feature: optional sleep parameter quiet
- feature: additional buttons for use with 95_remotecontrol
- feature: new module 71_LISTENLIVE.pm for use with media players (betateilchen)
- feature: use xhr for colorupdates by colorpicker and rgb presets

View File

@ -948,18 +948,24 @@ A line ending with \ will be concatenated with the next one, so long lines
<a name="sleep"></a>
<h3>sleep</h3>
<ul>
<code>sleep &lt;sec&gt;</code>
<code>sleep &lt;sec&gt; [quiet]</code>
<br><br>
Sleep for a given amount, millisecond accuracy.
Sleep for a given amount, millisecond accuracy.<br>
When called in a notify/at/etc, then nonempty return values of the following
commands is logged to the global logfile with loglevel 2.<br>
If quiet is specified, then skip this logging.
<br><br>
Example:
<ul>
<code>sleep 0.5</code><br>
<code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp toggle</code>
<code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
toggle</code><br>
<code>define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
Windsensor 1w_temp</code>
</ul>
<br>
Note: sleep followed by another command and issued in at/notify/etc is not
blocking fhem.<br>
blocking fhem<br>
</ul>
<a name="version"></a>

View File

@ -958,9 +958,9 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
<ul>
<code>shutdown [restart]</code>
<br><br>
Der Befehl f&auml;hrt den Server herunter (nach dem sichern der <a href="#statefile">state information
</a>). Er triggert das global:SHUTDOWN Ereignis. Wenn der optionale
Parameterv restart angegeben, versucht FHEM von selbst wieder zu starten.
Der Befehl f&auml;hrt den Server herunter (nach dem sichern aller <a
href="#statefile">Ger&auml;testati</a>). Er triggert das global:SHUTDOWN
Ereignis. Mit der optionalen Parameter restart startet FHEM danach neu.
<br><br>
Beispiel:
<ul>
@ -976,10 +976,8 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
<code>trigger &lt;devspec&gt; &lt;state&gt;</code>
<br><br>
Triggert eine <a href="#notify">notify</a> Definition.
Lesen Sie bitte den Abschnitt <a href="#devspec">Device specification</a>&nbsp; f&uuml;r
Details zu
&lt;devspec&gt;.
Siehe <a href="#devspec">Ger&auml;te-Spezifikation (devspec)</a>&nbsp;
f&uuml;r Details zu &lt;devspec&gt;.
<br><br>
Beispiel:
<ul>
@ -990,18 +988,25 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
<a name="sleep"></a>
<h3>sleep</h3>
<ul>
<code>sleep &lt;sec&gt;</code>
<code>sleep &lt;sec&gt; [quiet]</code>
<br><br>
Stoppt die Befehlsabarbeitung f&uuml;r die angegebene Anzahl von Millisekunden.
Wartet f&uuml;r die angegebene Anzahl von Millisekunden.<br>
Falls sleep in at/notify/etc aufgerufen wurde, und die nachfolgenden
Kommandos einen nicht leeren Text zur&uuml;ckgeliefert haben, dann wird dieser
Text mit loglevel 2 protokolliert.<br>
quiet vermeidet diese Protokollierung.
<br><br>
Beispiel:
Beispiele:
<ul>
<code>sleep 0.5</code><br>
<code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp toggle</code>
<code>define n3 notify btn3.* set lamp toggle;;sleep 0.5;;set lamp
toggle</code><br>
<code>define a3 at +*00:05 set Windsensor 1w_measure;; sleep 2 quiet;; get
Windsensor 1w_temp</code>
</ul>
<br>
Bemerkung: sleep gefolgt von einem weiteren Befehl und angegeben in at/notify/etc
blockiert die Abarbeitung von FHHM nicht.<br>
Bemerkung: sleep gefolgt von weiteren Befehlen und aufgerufen in
at/notify/etc blockiert die Abarbeitung von FHEM nicht.<br>
</ul>
<a name="version"></a>
@ -1223,9 +1228,9 @@ Zeilen erstreckende Befehle, indem man keine \ am Zeilenende eingeben muss.</p>
<a name="statefile"></a>
<li>statefile<br>
Dieses Attribut legt den Namen der Datei fest, in die
Statusinformationen und verschiedene <a href="#at">at</a> Information
gespeichert werden&nbsp; bevor der Server heruntergefahren wird. Fall diese
Datei nicht angegeben wird, so werden keinerlei Informationen gesichert.
Statusinformationen aller Ger&auml;te gespeichert werden&nbsp; bevor der
Server heruntergefahren wird. Falls diese Datei nicht angegeben wird, so
werden keinerlei Informationen gesichert.
</li><br>
<a name="title"></a>

View File

@ -265,7 +265,7 @@ $readingFnAttributes = "event-on-change-reading event-on-update-reading ".
"shutdown"=> { Fn=>"CommandShutdown",
Hlp=>"[restart],terminate the server" },
"sleep" => { Fn=>"CommandSleep",
Hlp=>"<sec>,sleep for sec, 3 decimal places" },
Hlp=>"<sec> [quiet],sleep for sec, 3 decimal places" },
"trigger" => { Fn=>"CommandTrigger",
Hlp=>"<devspec> <state>,trigger notify command" },
"update" => {
@ -2070,21 +2070,37 @@ CommandInform($$)
}
#####################################
sub
WakeUpFn($)
{
my $h = shift;
$evalSpecials = $h->{evalSpecials};
my $ret = AnalyzeCommandChain(undef, $h->{cmd});
Log 2, "After sleep: $ret" if($ret && !$h->{quiet});
}
sub
CommandSleep($$)
{
my ($cl, $param) = @_;
my ($sec, $quiet) = split(" ", $param);
return "Cannot interpret $param as seconds" if($param !~ m/^[0-9\.]+$/);
Log 4, "sleeping for $param";
return "Argument missing" if(!defined($sec));
return "Cannot interpret $sec as seconds" if($sec !~ m/^[0-9\.]+$/);
return "Second parameter must be quiet" if($quiet && $quiet ne "quiet");
if(!$cl && @cmdList && $param && $init_done) {
my %h = (cmd=>join(";", @cmdList), evalSpecials=>$evalSpecials);
InternalTimer(gettimeofday()+$param, "WakeUpFn", \%h, 0);
Log 4, "sleeping for $sec";
if(!$cl && @cmdList && $sec && $init_done) {
my %h = (cmd => join(";", @cmdList),
evalSpecials => $evalSpecials,
quiet => $quiet);
InternalTimer(gettimeofday()+$sec, "WakeUpFn", \%h, 0);
@cmdList=();
} else {
select(undef, undef, undef, $param);
select(undef, undef, undef, $sec);
}
return undef;
@ -2113,16 +2129,6 @@ CommandVersion($$)
}
}
sub
WakeUpFn($)
{
my $h = shift;
$evalSpecials = $h->{evalSpecials};
my $ret = AnalyzeCommandChain(undef, $h->{cmd});
Log 2, "After sleep: $ret" if($ret);
}
#####################################
# Return the time to the next event (or undef if there is none)
# and call each function which was scheduled for this time