mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
Modify added. - removed
git-svn-id: https://svn.fhem.de/fhem/trunk@55 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
9a4281059b
commit
6374ae2f9d
@ -324,4 +324,6 @@
|
|||||||
- ==DATE== (4.1)
|
- ==DATE== (4.1)
|
||||||
- doc: linux.html (private udev-rules, not 50-..., ATTRS)
|
- doc: linux.html (private udev-rules, not 50-..., ATTRS)
|
||||||
- bugfix: setting devices with "-" in their name did not work
|
- bugfix: setting devices with "-" in their name did not work
|
||||||
- doc: fhem.pl and commandref.html (notifyon -> notify, correction of examples)
|
- doc: fhem.pl and commandref.html (notifyon -> notify, correction of examples)
|
||||||
|
- feature: modify command added
|
||||||
|
- feature: The "-" in the name is not allowed any more
|
||||||
|
@ -25,7 +25,14 @@ at_Define($$)
|
|||||||
my ($hash, $def) = @_;
|
my ($hash, $def) = @_;
|
||||||
my ($name, undef, $tm, $command) = split("[ \t]+", $def, 4);
|
my ($name, undef, $tm, $command) = split("[ \t]+", $def, 4);
|
||||||
|
|
||||||
return "Usage: define <name> at <timespec> <command>" if(!$command);
|
if(!$command) {
|
||||||
|
if($hash->{CMD}) {
|
||||||
|
$command = $hash->{CMD}; # Called from modify
|
||||||
|
$hash->{DEF} = "$tm $command";
|
||||||
|
} else {
|
||||||
|
return "Usage: define <name> at <timespec> <command>";
|
||||||
|
}
|
||||||
|
}
|
||||||
return "Wrong timespec, use \"[+][*[{count}]]<time or func>\""
|
return "Wrong timespec, use \"[+][*[{count}]]<time or func>\""
|
||||||
if($tm !~ m/^(\+)?(\*({\d+})?)?(.*)$/);
|
if($tm !~ m/^(\+)?(\*({\d+})?)?(.*)$/);
|
||||||
my ($rel, $rep, $cnt, $tspec) = ($1, $2, $3, $4);
|
my ($rel, $rep, $cnt, $tspec) = ($1, $2, $3, $4);
|
||||||
|
@ -25,6 +25,14 @@ notify_Define($$)
|
|||||||
my ($hash, $def) = @_;
|
my ($hash, $def) = @_;
|
||||||
my ($type, $name, $re, $command) = split("[ \t]+", $def, 4);
|
my ($type, $name, $re, $command) = split("[ \t]+", $def, 4);
|
||||||
|
|
||||||
|
if(!$command) {
|
||||||
|
if($hash->{CMD}) {
|
||||||
|
$command = $hash->{CMD}; # Called from modify
|
||||||
|
$hash->{DEF} = "$re $command";
|
||||||
|
} else {
|
||||||
|
return "Usage: define <name> notify <regexp> <command>";
|
||||||
|
}
|
||||||
|
}
|
||||||
# Checking for misleading regexps
|
# Checking for misleading regexps
|
||||||
eval { "Hallo" =~ m/^$re$/ };
|
eval { "Hallo" =~ m/^$re$/ };
|
||||||
return "Bad regexp: $@" if($@);
|
return "Bad regexp: $@" if($@);
|
||||||
|
@ -87,3 +87,10 @@
|
|||||||
|
|
||||||
- Pest, Sun Apr 15 14:54:30 MEST 2007
|
- Pest, Sun Apr 15 14:54:30 MEST 2007
|
||||||
- doc: fhem.pl and commandref.html (notifyon -> notify, correction of examples)
|
- doc: fhem.pl and commandref.html (notifyon -> notify, correction of examples)
|
||||||
|
|
||||||
|
- Rudi, Tue Apr 24 08:10:43 MEST 2007
|
||||||
|
- feature: modify command added. It helps change e.g. only the time component
|
||||||
|
for an at command, without deleting and creating it again and then
|
||||||
|
reapplying all the attributes.
|
||||||
|
- feature: the "-" character is disallowed in defined names. Use dot (.) or _
|
||||||
|
instead. The - is used to separate ranges in the set command.
|
||||||
|
@ -10,6 +10,32 @@
|
|||||||
|
|
||||||
<h2>fhem.pl command reference</h2>
|
<h2>fhem.pl command reference</h2>
|
||||||
|
|
||||||
|
<a href="#intro">Introduction</a><br>
|
||||||
|
<a href="#help">?,help</a><br>
|
||||||
|
<a href="#attr">attr</a><br>
|
||||||
|
<a href="#defattr">defattr</a><br>
|
||||||
|
<a href="#define">define</a><br>
|
||||||
|
<a href="#delattr">delattr</a><br>
|
||||||
|
<a href="#delete">delete</a><br>
|
||||||
|
<a href="#get">get</a><br>
|
||||||
|
<a href="#include">include</a><br>
|
||||||
|
<a href="#inform">inform</a><br>
|
||||||
|
<a href="#list">list</a><br>
|
||||||
|
<a href="#modify">modify</a><br>
|
||||||
|
<a href="#quit">quit</a><br>
|
||||||
|
<a href="#reload">reload</a><br>
|
||||||
|
<a href="#rereadcfg">rereadcfg</a><br>
|
||||||
|
<a href="#save">save</a><br>
|
||||||
|
<a href="#set">set</a><br>
|
||||||
|
<a href="#setstate">setstate</a><br>
|
||||||
|
<a href="#shutdown">shutdown</a><br>
|
||||||
|
<a href="#trigger">trigger</a><br>
|
||||||
|
<a href="#sleep">sleep</a><br>
|
||||||
|
<a href="#xmllist">xmllist</a><br>
|
||||||
|
<a href="#perl">Perl specials</a><br>
|
||||||
|
|
||||||
|
<a name="intro"></a>
|
||||||
|
<h3>Introduction</h3>
|
||||||
You can use all of the following commands in in two ways:
|
You can use all of the following commands in in two ways:
|
||||||
<ul>
|
<ul>
|
||||||
<li>In the configuration file, which must be specified if you startup the
|
<li>In the configuration file, which must be specified if you startup the
|
||||||
@ -957,13 +983,33 @@ split in multiple lines<br><br>
|
|||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<a name="modify"></a>
|
||||||
|
<h3>modify</h3>
|
||||||
|
<ul>
|
||||||
|
<code>modify <name> <type-dependent-options></code>
|
||||||
|
<br><br>
|
||||||
|
|
||||||
|
Used to modify some definitions. Useful for changing some <a
|
||||||
|
href="#at">at</a> or <a href="#notify">notify</a> definitions. If specifying
|
||||||
|
one argument to an at type deinition, only the time part will be changed. In
|
||||||
|
case of a notify type definition, only the regex part will be changed. All
|
||||||
|
other values (state, attributes, etc) will remain intact.
|
||||||
|
<br><br>
|
||||||
|
Example:
|
||||||
|
<ul>
|
||||||
|
<code>define lampon at 19:00 set lamp on</code><br>
|
||||||
|
<code>modify lampon *19:00</code><br>
|
||||||
|
<code>modify lampon 19:00 set lamp on-for-timer 16</code><br>
|
||||||
|
</ul>
|
||||||
|
</ul>
|
||||||
|
|
||||||
<a name="quit"></a>
|
<a name="quit"></a>
|
||||||
<h3>quit</h3>
|
<h3>quit</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<code>quit</code>
|
<code>quit</code>
|
||||||
<br><br>
|
<br><br>
|
||||||
If used in a TCP/IP session, terminate the client session.<br>
|
If used in a TCP/IP session, terminate the client session.<br>
|
||||||
If used in a script, terminate the parsing of the script.
|
If used in a script, terminate the parsing of the current script.
|
||||||
<br><br>
|
<br><br>
|
||||||
Example:
|
Example:
|
||||||
<ul>
|
<ul>
|
||||||
|
@ -111,7 +111,7 @@ description and <a href="faq.html">faq.html</a> for the F.A.Q.
|
|||||||
See <a href="http://www.koeniglich.de/fhem/linux.html">
|
See <a href="http://www.koeniglich.de/fhem/linux.html">
|
||||||
http://www.koeniglich.de/fhem/linux.html</a><br>
|
http://www.koeniglich.de/fhem/linux.html</a><br>
|
||||||
For kernels older then 2.6.x apply the patch from the doc directory to your
|
For kernels older then 2.6.x apply the patch from the doc directory to your
|
||||||
kernel, recompile it kernel and reboot or load/reload the ftdi_sio module.
|
kernel, recompile it and reboot or load/reload the ftdi_sio module.
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>Perl modules</h3>
|
<h3>Perl modules</h3>
|
||||||
@ -140,7 +140,6 @@ description and <a href="faq.html">faq.html</a> for the F.A.Q.
|
|||||||
parameters.</li>
|
parameters.</li>
|
||||||
<li>Delete the savefile if you are upgrading from an older version.</li>
|
<li>Delete the savefile if you are upgrading from an older version.</li>
|
||||||
<li>Start the server with <code>fhem.pl <configfile></code></li>
|
<li>Start the server with <code>fhem.pl <configfile></code></li>
|
||||||
<li>For using the WS300, look into the contrib/ws300 directory.</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<h3>General Notes for Webfrontends:</h3>
|
<h3>General Notes for Webfrontends:</h3>
|
||||||
|
28
fhem/fhem.pl
28
fhem/fhem.pl
@ -73,6 +73,7 @@ sub CommandHelp($$);
|
|||||||
sub CommandInclude($$);
|
sub CommandInclude($$);
|
||||||
sub CommandInform($$);
|
sub CommandInform($$);
|
||||||
sub CommandList($$);
|
sub CommandList($$);
|
||||||
|
sub CommandModify($$);
|
||||||
sub CommandRereadCfg($$);
|
sub CommandRereadCfg($$);
|
||||||
sub CommandRename($$);
|
sub CommandRename($$);
|
||||||
sub CommandQuit($$);
|
sub CommandQuit($$);
|
||||||
@ -165,6 +166,8 @@ my %cmds = (
|
|||||||
Hlp=>"{on|off},echo all commands and events to this client" },
|
Hlp=>"{on|off},echo all commands and events to this client" },
|
||||||
"list" => { Fn=>"CommandList",
|
"list" => { Fn=>"CommandList",
|
||||||
Hlp=>"[device],list definitions and status info" },
|
Hlp=>"[device],list definitions and status info" },
|
||||||
|
"modify" => { Fn=>"CommandModify",
|
||||||
|
Hlp=>"device <options>,modify the definition (e.g. at, notify)" },
|
||||||
"quit" => { Fn=>"CommandQuit",
|
"quit" => { Fn=>"CommandQuit",
|
||||||
Hlp=>",end the client session" },
|
Hlp=>",end the client session" },
|
||||||
"reload" => { Fn=>"CommandReload",
|
"reload" => { Fn=>"CommandReload",
|
||||||
@ -884,8 +887,8 @@ CommandDefine($$)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return "$a[0] already defined, delete it first" if(defined($defs{$a[0]}));
|
return "$a[0] already defined, delete it first" if(defined($defs{$a[0]}));
|
||||||
return "Invalid characters in name (not A-Za-z0-9.:-): $a[0]"
|
return "Invalid characters in name (not A-Za-z0-9.:_): $a[0]"
|
||||||
if($a[0] !~ m/^[a-z0-9.:_-]*$/i);
|
if($a[0] !~ m/^[a-z0-9.:_]*$/i);
|
||||||
|
|
||||||
my %hash;
|
my %hash;
|
||||||
|
|
||||||
@ -910,6 +913,27 @@ CommandDefine($$)
|
|||||||
return $ret;
|
return $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#####################################
|
||||||
|
sub
|
||||||
|
CommandModify($$)
|
||||||
|
{
|
||||||
|
my ($cl, $def) = @_;
|
||||||
|
my @a = split("[ \t]+", $def, 2);
|
||||||
|
|
||||||
|
return "Usage: modify <name> <type dependent arguments>"
|
||||||
|
if(int(@a) < 2);
|
||||||
|
|
||||||
|
# Return a list of modules
|
||||||
|
return "Define $a[0] first" if(!defined($defs{$a[0]}));
|
||||||
|
my $hash = $defs{$a[0]};
|
||||||
|
|
||||||
|
my $odef = $hash->{DEF};
|
||||||
|
$hash->{DEF} = $a[1];
|
||||||
|
my $ret = CallFn($a[0], "DefFn", $hash, "$a[0] $hash->{TYPE} $a[1]");
|
||||||
|
$hash->{DEF} = $odef if($ret);
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# internal
|
# internal
|
||||||
sub
|
sub
|
||||||
|
@ -1,12 +1,13 @@
|
|||||||
#Sun Apr 15 13:56:14 2007
|
#Sun Apr 22 14:04:14 2007
|
||||||
setstate FHZ fhtbuf: 1c
|
setstate FHZ fhtbuf: 1c
|
||||||
setstate FHZ 2006-02-12 14:03:39 fhtbuf 23
|
setstate FHZ 2006-02-12 14:03:39 fhtbuf 23
|
||||||
setstate FHZ 2006-03-26 08:47:36 init2 deadbeefdeadbe
|
setstate FHZ 2006-03-26 08:47:36 init2 deadbeefdeadbe
|
||||||
setstate FHZ 2006-03-26 08:47:36 serial deadbeef
|
setstate FHZ 2006-03-26 08:47:36 serial deadbeef
|
||||||
|
setstate blink Next: 14:04:17
|
||||||
setstate btn4 on
|
setstate btn4 on
|
||||||
setstate btn4 2006-04-12 15:19:33 state on
|
setstate btn4 2006-04-12 15:19:33 state on
|
||||||
setstate cellar on
|
setstate cellar on-for-timer 2
|
||||||
setstate cellar 2007-04-15 13:53:21 state on
|
setstate cellar 2007-04-22 14:04:12 state on-for-timer 2
|
||||||
setstate fl measured-temp: 21.6 (Celsius)
|
setstate fl measured-temp: 21.6 (Celsius)
|
||||||
setstate fl 2006-03-29 23:02:30 actuator 00%
|
setstate fl 2006-03-29 23:02:30 actuator 00%
|
||||||
setstate fl 2006-03-26 08:50:54 day-temp 21.5 (Celsius)
|
setstate fl 2006-03-26 08:50:54 day-temp 21.5 (Celsius)
|
||||||
@ -32,11 +33,7 @@ setstate fl 2006-03-26 08:50:55 unknown_85 4
|
|||||||
setstate fl 2006-03-26 08:50:46 wed-from1 06:00
|
setstate fl 2006-03-26 08:50:46 wed-from1 06:00
|
||||||
setstate fl 2006-03-26 08:50:46 wed-to1 23:00
|
setstate fl 2006-03-26 08:50:46 wed-to1 23:00
|
||||||
setstate fl 2006-03-26 08:50:55 windowopen-temp 12.0 (Celsius)
|
setstate fl 2006-03-26 08:50:55 windowopen-temp 12.0 (Celsius)
|
||||||
setstate floor-lamp on
|
|
||||||
setstate floor-lamp 2006-03-29 12:05:34 state on
|
|
||||||
setstate global <no definition>
|
setstate global <no definition>
|
||||||
setstate living-light on
|
|
||||||
setstate living-light 2007-04-15 13:54:48 state on
|
|
||||||
setstate marqee on
|
setstate marqee on
|
||||||
setstate marqee 2006-04-01 12:46:02 state on
|
setstate marqee 2006-04-01 12:46:02 state on
|
||||||
setstate n_btn4 active
|
setstate n_btn4 active
|
||||||
@ -45,8 +42,6 @@ setstate tf1 2006-04-11 09:48:48 battery Bat: ok
|
|||||||
setstate tf1 2006-04-11 09:48:48 humidity 31.3 (%)
|
setstate tf1 2006-04-11 09:48:48 humidity 31.3 (%)
|
||||||
setstate tf1 2006-04-11 09:48:48 temperature 20.3 (Celsius)
|
setstate tf1 2006-04-11 09:48:48 temperature 20.3 (Celsius)
|
||||||
setstate tf1 2006-04-11 09:48:48 type HMS100TF
|
setstate tf1 2006-04-11 09:48:48 type HMS100TF
|
||||||
setstate window-lamp on
|
|
||||||
setstate window-lamp 2006-03-29 12:05:34 state on
|
|
||||||
setstate wz measured-temp: 22.4 (Celsius)
|
setstate wz measured-temp: 22.4 (Celsius)
|
||||||
setstate wz 2006-03-29 23:04:17 actuator 00%
|
setstate wz 2006-03-29 23:04:17 actuator 00%
|
||||||
setstate wz 2006-03-26 08:52:30 day-temp 22.0 (Celsius)
|
setstate wz 2006-03-26 08:52:30 day-temp 22.0 (Celsius)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user