2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-12 22:56:34 +00:00

feature: on-for-timer added for X10 modules

git-svn-id: https://svn.fhem.de/fhem/trunk@571 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
borisneubert 2010-02-06 17:07:09 +00:00
parent 382f0f9d0f
commit 44768e110f
4 changed files with 66 additions and 22 deletions

View File

@ -570,3 +570,4 @@
- bugfix: dummy/structure was listed twice in list and xmllist - bugfix: dummy/structure was listed twice in list and xmllist
- feature: 11_FHT.pm added new readings for warnings on battery, lowtemp, - feature: 11_FHT.pm added new readings for warnings on battery, lowtemp,
window and windowsensor (M.Fischer) window and windowsensor (M.Fischer)
- feature: on-for-timer added for X10 modules (Boris)

View File

@ -74,6 +74,7 @@ my %functions_set = ( "on" => 0,
"dimup" => 1, "dimup" => 1,
"dimdown" => 1, "dimdown" => 1,
"on-till" => 1, "on-till" => 1,
"on-for-timer" => 1,
); );
@ -102,7 +103,7 @@ X10_Initialize($)
$hash->{DefFn} = "X10_Define"; $hash->{DefFn} = "X10_Define";
$hash->{UndefFn} = "X10_Undef"; $hash->{UndefFn} = "X10_Undef";
$hash->{ParseFn} = "X10_Parse"; $hash->{ParseFn} = "X10_Parse";
$hash->{AttrList} = "IODev follow-on-for-timer:1,0 do_not_notify:1,0 " . $hash->{AttrList} = "IODev do_not_notify:1,0 " .
"dummy:1,0 showtime:1,0 model:lm12,lm15,am12,tm13 " . "dummy:1,0 showtime:1,0 model:lm12,lm15,am12,tm13 " .
"loglevel:0,1,2,3,4,5,6"; "loglevel:0,1,2,3,4,5,6";
@ -134,9 +135,38 @@ X10_Do_On_Till($@)
return ""; return "";
} }
if($modules{X10}{ldata}{$a[0]}) {
CommandDelete(undef, $a[0] . "_timer");
delete $modules{FS20}{ldata}{$a[0]};
}
$modules{X10}{ldata}{$a[0]} = "$hms_till";
my @b = ($a[0], "on"); my @b = ($a[0], "on");
X10_Set($hash, @b); X10_Set($hash, @b);
CommandDefine(undef, $hash->{NAME} . "_till at $hms_till set $a[0] off"); CommandDefine(undef, $hash->{NAME} . "_timer at $hms_till set $a[0] off");
}
#############################
sub
X10_Do_On_For_Timer($@)
{
my ($hash, @a) = @_;
return "Timespec (HH:MM[:SS]) needed for the on-for-timer command" if(@a != 3);
my ($err, $hr, $min, $sec, $fn) = GetTimeSpec($a[2]);
return $err if($err);
my $hms_for_timer = sprintf("+%02d:%02d:%02d", $hr, $min, $sec);
if($modules{X10}{ldata}{$a[0]}) {
CommandDelete(undef, $a[0] . "_timer");
delete $modules{FS20}{ldata}{$a[0]};
}
$modules{X10}{ldata}{$a[0]} = "$hms_for_timer";
my @b = ($a[0], "on");
X10_Set($hash, @b);
CommandDefine(undef, $hash->{NAME} . "_timer at $hms_for_timer set $a[0] off");
} }
@ -195,6 +225,11 @@ X10_Set($@)
# special for on-till # special for on-till
return X10_Do_On_Till($hash, @a) if($function eq "on-till"); return X10_Do_On_Till($hash, @a) if($function eq "on-till");
# special for on-for-timer
return X10_Do_On_For_Timer($hash, @a) if($function eq "on-for-timer");
# argument evaluation # argument evaluation
my $model= $hash->{MODEL}; my $model= $hash->{MODEL};

View File

@ -446,9 +446,9 @@
KS300 CUL_WS CUL_EM X10. KS300 CUL_WS CUL_EM X10.
- Mon Nov 16 2009 (MartinH) - Mon Nov 16 2009 (MartinH)
- pgm3: Google-Weather-Api added. Display of all Logs including the - pgm3: Google-Weather-Api added. Display of all Logs including the
FS20-devices (grep on fhem.log) The status of the batteries of FHT and HMS FS20-devices (grep on fhem.log) The status of the batteries of FHT and HMS
are shown in the graphics. php4 disabled. Now only php5 is supported. A are shown in the graphics. php4 disabled. Now only php5 is supported. A
lot of examples of the UserDefs are added. The pgm3-section of fhem.html was lot of examples of the UserDefs are added. The pgm3-section of fhem.html was
changed. changed.
@ -472,3 +472,6 @@
Webcam and Google-Weather. Output of html better formated and skinable -- Webcam and Google-Weather. Output of html better formated and skinable --
change the colors. change the colors.
- Sat Feb 6 2010 (Boris)
- feature: on-for-timer added for X10 modules and bug fixed for overlapping
on-till and on-for-timer commands (Boris)

View File

@ -500,7 +500,7 @@ A line ending with \ will be concatenated with the next one, so long lines
<devspec>. <devspec>.
<br> <br>
If value is specified, then output this property (like DEF, TYPE, etc) or If value is specified, then output this property (like DEF, TYPE, etc) or
reading (actuator, measured-temp) for all devices from the devspec. reading (actuator, measured-temp) for all devices from the devspec.
<br><br> <br><br>
Example: Example:
<pre><code> fhem> list <pre><code> fhem> list
@ -788,7 +788,7 @@ A line ending with \ will be concatenated with the next one, so long lines
<ul> <ul>
<a name="autoload_undefined_devices"></a> <a name="autoload_undefined_devices"></a>
<li>autoload_undefined_devices<br> <li>autoload_undefined_devices<br>
If set, automatically load the corresponding module when a message If set, automatically load the corresponding module when a message
of this type is received. This is used by the <a href="#autocreate"> of this type is received. This is used by the <a href="#autocreate">
autocreate</a> device, to automatically create a fhem device upon autocreate</a> device, to automatically create a fhem device upon
receiving a corresponding message. receiving a corresponding message.
@ -1521,7 +1521,7 @@ A line ending with \ will be concatenated with the next one, so long lines
<a name="CUL_FHTTK"></a> <a name="CUL_FHTTK"></a>
<h3>CUL_FHTTK</h3> <h3>CUL_FHTTK</h3>
<ul> <ul>
This module handles messages from the FHT80 TF "Fenster-Tür-Kontakt" (Window-Door-Contact) This module handles messages from the FHT80 TF "Fenster-T<EFBFBD>r-Kontakt" (Window-Door-Contact)
which are normally only acted upon by the <a href="#FHT">FHT80B</a>. With this module, which are normally only acted upon by the <a href="#FHT">FHT80B</a>. With this module,
FHT80 TFs are in a limited way (see <a href="http://fhz4linux.info/tiki-index.php?page=FHT+protocol">Wiki</a> FHT80 TFs are in a limited way (see <a href="http://fhz4linux.info/tiki-index.php?page=FHT+protocol">Wiki</a>
for detailed explanation of TF's mode of operation) usable similar to HMS100 TFK. The name for detailed explanation of TF's mode of operation) usable similar to HMS100 TFK. The name
@ -2322,6 +2322,7 @@ A line ending with \ will be concatenated with the next one, so long lines
off off
on on
on-till # Special, see the note on-till # Special, see the note
on-for-timer # Special, see the note
</pre> </pre>
Examples: Examples:
<ul> <ul>
@ -2329,6 +2330,7 @@ A line ending with \ will be concatenated with the next one, so long lines
<code>set lamp1,lamp2 off</code><br> <code>set lamp1,lamp2 off</code><br>
<code>set pump off</code><br> <code>set pump off</code><br>
<code>set lamp2 on-till 19:59</code><br> <code>set lamp2 on-till 19:59</code><br>
<code>set lamp2 on-for-timer 00:02:30</code><br>
</ul> </ul>
<br> <br>
Notes: Notes:
@ -2359,6 +2361,10 @@ A line ending with \ will be concatenated with the next one, so long lines
command is ignored, else an "on" command is generated, and for the command is ignored, else an "on" command is generated, and for the
given "till-time" an off command is scheduleld via the at command. given "till-time" an off command is scheduleld via the at command.
</li> </li>
<li><code>on-for-timer</code> requires a relative time in the "at" format
(HH:MM:SS, HH:MM) or { &lt;perl code&gt; }, where the perl code
returns a time specification).
</li>
</ul> </ul>
</ul> </ul>
<br> <br>
@ -2367,11 +2373,10 @@ A line ending with \ will be concatenated with the next one, so long lines
<b>Attributes</b> <b>Attributes</b>
<ul> <ul>
<li><a href="#follow-on-for-timer">follow-on-for-timer</a></li><br> <li><a href="#do_not_notify">do_not_notify</a></li>
<li><a href="#do_not_notify">do_not_notify</a></li><br> <li><a href="#attrdummy">dummy</a></li>
<li><a href="#attrdummy">dummy</a></li><br> <li><a href="#showtime">showtime</a></li>
<li><a href="#showtime">showtime</a></li><br> <li><a href="#model">model</a> (lm12,lm15,am12,tm13)</li>
<li><a href="#model">model</a> (lm12,lm15,am12,tm13)</li><br>
<li><a href="#loglevel">loglevel</a></li> <li><a href="#loglevel">loglevel</a></li>
<li><a href="#IODev">IODev</a></li><br> <li><a href="#IODev">IODev</a></li><br>
</ul> </ul>
@ -3094,7 +3099,7 @@ audio</pre>
Note:<br> Note:<br>
If the <code>owserver-ip:port</code> is called <code>none</code>, then If the <code>owserver-ip:port</code> is called <code>none</code>, then
no device will be opened, so you can experiment without hardware attached.<br><br> no device will be opened, so you can experiment without hardware attached.<br><br>
Example: Example:
<ul> <ul>
@ -3148,7 +3153,7 @@ audio</pre>
8-byte number (16 character hexidecimal) starting with family code FE.<br> 8-byte number (16 character hexidecimal) starting with family code FE.<br>
If no Link Locator is between the device and the master, the locator If no Link Locator is between the device and the master, the locator
field will be all FF. field will be all FF.
</li> </li>
<li><a name="owfs_present"></a> <li><a name="owfs_present"></a>
<code>present</code> (read-only)<br> <code>present</code> (read-only)<br>
Is the device currently present on the 1-wire bus? Is the device currently present on the 1-wire bus?
@ -3229,7 +3234,7 @@ audio</pre>
</ul> </ul>
Note:<br> Note:<br>
Currently supported <a href="#owfs_type">type</a>: <code>DS18S20</code>.<br><br> Currently supported <a href="#owfs_type">type</a>: <code>DS18S20</code>.<br><br>
Example: Example:
<ul> <ul>
@ -3247,7 +3252,7 @@ audio</pre>
<ul> <ul>
<li><a name="owtemp_templow"></a> <li><a name="owtemp_templow"></a>
<code>templow</code> (read-write)<br> <code>templow</code> (read-write)<br>
The upper limit for the low temperature alarm state. The upper limit for the low temperature alarm state.
</li> </li>
<li><a name="owtemp_temphigh"></a> <li><a name="owtemp_temphigh"></a>
<code>temphigh</code> (read-write)<br> <code>temphigh</code> (read-write)<br>
@ -3275,7 +3280,7 @@ audio</pre>
<li><a href="#owfs_crc8">crc8</a> (read-only)</li> <li><a href="#owfs_crc8">crc8</a> (read-only)</li>
<li><a href="#owfs_family">family</a> (read-only)</li> <li><a href="#owfs_family">family</a> (read-only)</li>
<li><a href="#owfs_id">id</a> (read-only)</li> <li><a href="#owfs_id">id</a> (read-only)</li>
<li><a href="#owfs_locator">locator</a> (read-only)</li> <li><a href="#owfs_locator">locator</a> (read-only)</li>
<li><a href="#owfs_present">present</a> (read-only)</li> <li><a href="#owfs_present">present</a> (read-only)</li>
<li><a name="owtemp_temperature"></a> <li><a name="owtemp_temperature"></a>
<code>temperature</code> (read-only)<br> <code>temperature</code> (read-only)<br>
@ -3566,7 +3571,7 @@ Forecast Cloudy</pre>
later would be possible to implement if neccessary, though. later would be possible to implement if neccessary, though.
<br><br> <br><br>
Implementation of WS3600.pm tries to be nice, that is it reads from the pipe only Implementation of WS3600.pm tries to be nice, that is it reads from the pipe only
non-blocking (== if there is data), so it should be safe even to use it via ssh or non-blocking (== if there is data), so it should be safe even to use it via ssh or
a netcat-pipe over the Internet, but this, as well, has not been tested yet. a netcat-pipe over the Internet, but this, as well, has not been tested yet.
<br><br> <br><br>
@ -3678,7 +3683,7 @@ Terminating
device ;) If autocreate is enabled, those should be autocreated for your convenience as device ;) If autocreate is enabled, those should be autocreated for your convenience as
soon as the first scan took place (30 seconds after the define). soon as the first scan took place (30 seconds after the define).
Implementation of SISPM.pm tries to be nice, that is it reads from the pipe only Implementation of SISPM.pm tries to be nice, that is it reads from the pipe only
non-blocking (== if there is data), so it should be safe even to use it via ssh or non-blocking (== if there is data), so it should be safe even to use it via ssh or
a netcat-pipe over the Internet, but this, as well, has not been tested extensively yet. a netcat-pipe over the Internet, but this, as well, has not been tested extensively yet.
<br><br> <br><br>
@ -4926,7 +4931,7 @@ isday</pre>
The Pachube-API-Key however is what you need in your code to authenticate your application's access the Pachube service.<br> The Pachube-API-Key however is what you need in your code to authenticate your application's access the Pachube service.<br>
Don't share this with anyone: it's just like any other password.<br> Don't share this with anyone: it's just like any other password.<br>
<a href=http://www.pachube.com>www.pachube.com</a><br> <a href=http://www.pachube.com>www.pachube.com</a><br>
</ul> </ul>
<br> <br>
@ -4953,7 +4958,7 @@ isday</pre>
<code>set &lt;NAME&gt; DEL &lt;FHEM-DEVICENAME&gt;</code><br><br> <code>set &lt;NAME&gt; DEL &lt;FHEM-DEVICENAME&gt;</code><br><br>
</ul> </ul>
<br> <br>
<b>Get</b> <ul>N/A</ul><br> <b>Get</b> <ul>N/A</ul><br>
<b>Attributes</b> <b>Attributes</b>
<ul> <ul>