2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 14:04:15 +00:00

reset hung ec3000 sketch by closeing and reopening device

git-svn-id: https://svn.fhem.de/fhem/trunk@5999 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2014-05-29 10:03:42 +00:00
parent 1f3887058b
commit 507ab030a3

View File

@ -17,6 +17,7 @@ sub JeeLink_Ready($);
sub JeeLink_Write($$);
sub JeeLink_SimpleWrite(@);
sub JeeLink_ResetDevice($);
my $clientsJeeLink = ":PCA301:EC3000:RoomNode:LaCrosse:ETH200comfort:CUL_IR:HX2272:FS20:AliRF";
@ -167,7 +168,7 @@ JeeLink_Set($@)
my $arg = join(" ", @a);
my $list = "beep raw led:on,off led-on-for-timer LaCrossePairForSec setReceiverMode:LaCrosse,HX2272,FS20";
my $list = "beep raw led:on,off led-on-for-timer reset LaCrossePairForSec setReceiverMode:LaCrosse,HX2272,FS20";
return $list if( $cmd eq '?' || $cmd eq '');
@ -250,6 +251,9 @@ JeeLink_Set($@)
Log3 $name, 4, "Follow: +$to setstate $name off";
CommandDefine(undef, $name."_timer at +$to {fhem(\"set $name led" ." off\")}");
} elsif ($cmd =~ m/reset/i) {
return JeeLink_ResetDevice($hash);
} else {
return "Unknown argument $cmd, choose one of ".$list;
}
@ -594,7 +598,16 @@ JeeLink_Parse($$$$)
return;
} elsif( $dmsg =~ m/drecvintr exit/ ) {
JeeLink_SimpleWrite($hash, "ec",1);
# command "ec" will not work with the EC3000, use reset instead
Log3 $hash, 0, "$name: drecvintr detected";
JeeLink_ResetDevice($hash);
#JeeLink_SimpleWrite($hash, "ec",1);
} elsif( $dmsg =~ m/RFM12 hang/ ) {
# EC3000 seems not to recover from an RFM12 hang, so do a reset
Log3 $hash, 0, "$name: RFM12 hang detected";
JeeLink_ResetDevice($hash);
return;
}
@ -718,6 +731,17 @@ JeeLink_SimpleWrite(@)
# Some linux installations are broken with 0.001, T01 returns no answer
select(undef, undef, undef, 0.01);
}
sub
JeeLink_ResetDevice($)
{
my ($hash) = @_;
DevIo_CloseDev($hash);
my $ret = DevIo_OpenDev($hash, 0, "JeeLink_DoInit");
return $ret;
}
sub
JeeLink_Attr(@)
@ -843,7 +867,9 @@ sub JeeLink_getIndexOfArray($@) {
<ul>
<li>raw &lt;datar&gt;<br>
send &lt;data&gt; as a raw message to the JeeLink to be transmitted over the RF link.
</li><br>
</li>
<li>reset<br>
force a device reset closing and reopening the device.</li>
<li>LaCrossePairForSec &lt;sec&gt; [ignore_battery]<br>
enable autocreate of new LaCrosse sensors for &lt;sec&gt; seconds. if ignore_battery is not given only sensors
sending the 'new battery' flag will be created.