mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-20 07:16:03 +00:00
30_DUOFERN: add set time/reset command; bug fix smoke detector
git-svn-id: https://svn.fhem.de/fhem/trunk@11511 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
e8cd3fa6bd
commit
1b04b29879
@ -151,6 +151,8 @@ my %commands = (
|
|||||||
"stairwellFunction" => {"on" => "081400FD000000",
|
"stairwellFunction" => {"on" => "081400FD000000",
|
||||||
"off" => "081400FE000000"},
|
"off" => "081400FE000000"},
|
||||||
"stairwellTime" => {"value2" => "08140000wwww00"},
|
"stairwellTime" => {"value2" => "08140000wwww00"},
|
||||||
|
"reset" => {"settings" => "0815CB00000000",
|
||||||
|
"full" => "0815CC00000000"},
|
||||||
"10minuteAlarm" => {"on" => "081700FD000000",
|
"10minuteAlarm" => {"on" => "081700FD000000",
|
||||||
"off" => "081700FE000000"},
|
"off" => "081700FE000000"},
|
||||||
"automaticClosing" => {"off" => "08180000000000",
|
"automaticClosing" => {"off" => "08180000000000",
|
||||||
@ -217,6 +219,7 @@ my %commandsStatus = (
|
|||||||
|
|
||||||
my %setsDefaultRollerShutter = (
|
my %setsDefaultRollerShutter = (
|
||||||
"getStatus:noArg" => "",
|
"getStatus:noArg" => "",
|
||||||
|
"reset:settings,full" => "",
|
||||||
"up:noArg" => "",
|
"up:noArg" => "",
|
||||||
"down:noArg" => "",
|
"down:noArg" => "",
|
||||||
"stop:noArg" => "",
|
"stop:noArg" => "",
|
||||||
@ -271,6 +274,7 @@ my %setsBlinds = (
|
|||||||
|
|
||||||
my %setsSwitchActor = (
|
my %setsSwitchActor = (
|
||||||
"getStatus:noArg" => "",
|
"getStatus:noArg" => "",
|
||||||
|
"reset:settings,full" => "",
|
||||||
"dawnAutomatic:on,off" => "",
|
"dawnAutomatic:on,off" => "",
|
||||||
"duskAutomatic:on,off" => "",
|
"duskAutomatic:on,off" => "",
|
||||||
"manualMode:on,off" => "",
|
"manualMode:on,off" => "",
|
||||||
@ -290,6 +294,7 @@ my %setsSwitchActor = (
|
|||||||
|
|
||||||
my %setsUmweltsensor = (
|
my %setsUmweltsensor = (
|
||||||
"getStatus:noArg" => "",
|
"getStatus:noArg" => "",
|
||||||
|
"reset:settings,full" => "",
|
||||||
"getWeather:noArg" => "",
|
"getWeather:noArg" => "",
|
||||||
"getTime:noArg" => "",
|
"getTime:noArg" => "",
|
||||||
);
|
);
|
||||||
@ -304,6 +309,7 @@ my %setsUmweltsensor00 = (
|
|||||||
"latitude" => "",
|
"latitude" => "",
|
||||||
"longitude" => "",
|
"longitude" => "",
|
||||||
"timezone" => "",
|
"timezone" => "",
|
||||||
|
"time:noArg" => "",
|
||||||
"triggerDawn" => "",
|
"triggerDawn" => "",
|
||||||
"triggerDusk" => "",
|
"triggerDusk" => "",
|
||||||
"triggerRain:on,off" => "",
|
"triggerRain:on,off" => "",
|
||||||
@ -325,6 +331,7 @@ my %setsUmweltsensor01 = (
|
|||||||
|
|
||||||
my %setsSX5 = (
|
my %setsSX5 = (
|
||||||
"getStatus:noArg" => "",
|
"getStatus:noArg" => "",
|
||||||
|
"reset:settings,full" => "",
|
||||||
"up:noArg" => "",
|
"up:noArg" => "",
|
||||||
"down:noArg" => "",
|
"down:noArg" => "",
|
||||||
"stop:noArg" => "",
|
"stop:noArg" => "",
|
||||||
@ -344,6 +351,7 @@ my %setsSX5 = (
|
|||||||
|
|
||||||
my %setsDimmer = (
|
my %setsDimmer = (
|
||||||
"getStatus:noArg" => "",
|
"getStatus:noArg" => "",
|
||||||
|
"reset:settings,full" => "",
|
||||||
"level:slider,0,1,100" => "",
|
"level:slider,0,1,100" => "",
|
||||||
"on:noArg" => "",
|
"on:noArg" => "",
|
||||||
"off:noArg" => "",
|
"off:noArg" => "",
|
||||||
@ -370,6 +378,7 @@ my $duoStatusRequest = "0DFFnn400000000000000000000000000000yyyyyy01";
|
|||||||
my $duoCommand = "0Dccnnnnnnnnnnnnnn000000000000zzzzzzyyyyyy00";
|
my $duoCommand = "0Dccnnnnnnnnnnnnnn000000000000zzzzzzyyyyyy00";
|
||||||
my $duoWeatherConfig = "0D001B400000000000000000000000000000yyyyyy00";
|
my $duoWeatherConfig = "0D001B400000000000000000000000000000yyyyyy00";
|
||||||
my $duoWeatherWriteConfig = "0DFF1Brrnnnnnnnnnnnnnnnnnnnn00000000yyyyyy00";
|
my $duoWeatherWriteConfig = "0DFF1Brrnnnnnnnnnnnnnnnnnnnn00000000yyyyyy00";
|
||||||
|
my $duoSetTime = "0D0110800001mmmmmmmmnnnnnn0000000000yyyyyy00";
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
sub
|
sub
|
||||||
@ -463,6 +472,22 @@ DUOFERN_Set($@)
|
|||||||
delete $hash->{READINGS}{configModified};
|
delete $hash->{READINGS}{configModified};
|
||||||
return undef;
|
return undef;
|
||||||
|
|
||||||
|
} elsif ($cmd eq "time") {
|
||||||
|
my $buf = $duoSetTime;
|
||||||
|
|
||||||
|
my ($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime;
|
||||||
|
|
||||||
|
$wday = ($wday==0 ? 7 : $wday-1);
|
||||||
|
my $m = sprintf("%02d%02d%02d%02d", $year-100, $month+1,$wday, $mday);
|
||||||
|
my $n = sprintf("%02d%02d%02d", $hour, $min, $sec);
|
||||||
|
|
||||||
|
$buf =~ s/mmmmmmmm/$m/;
|
||||||
|
$buf =~ s/nnnnnn/$n/;
|
||||||
|
$buf =~ s/yyyyyy/$code/;
|
||||||
|
|
||||||
|
IOWrite( $hash, $buf );
|
||||||
|
return undef;
|
||||||
|
|
||||||
} elsif (exists $wCmds{$cmd}) {
|
} elsif (exists $wCmds{$cmd}) {
|
||||||
return "This command is not allowed for this device." if ($hash->{CODE} !~ /^69....00/);
|
return "This command is not allowed for this device." if ($hash->{CODE} !~ /^69....00/);
|
||||||
|
|
||||||
@ -1120,17 +1145,17 @@ DUOFERN_Parse($$)
|
|||||||
|
|
||||||
#Wandtaster, Funksender UP, Sensoren
|
#Wandtaster, Funksender UP, Sensoren
|
||||||
} elsif ($msg =~ m/0FFF07.{38}/) {
|
} elsif ($msg =~ m/0FFF07.{38}/) {
|
||||||
if($msg =~ m/0FFF070801FF.*/) {
|
if($msg =~ m/0FFF0708.*/) {
|
||||||
readingsSingleUpdate($hash, "event", "beginnSun", 1);
|
readingsSingleUpdate($hash, "event", "beginnSun", 1);
|
||||||
} elsif($msg =~ m/0FFF070901FF.*/) {
|
} elsif($msg =~ m/0FFF0709.*/) {
|
||||||
readingsSingleUpdate($hash, "event", "dusk", 1);
|
readingsSingleUpdate($hash, "event", "dusk", 1);
|
||||||
} elsif($msg =~ m/0FFF070A0100.*/) {
|
} elsif($msg =~ m/0FFF070A.*/) {
|
||||||
readingsSingleUpdate($hash, "event", "endSun", 1);
|
readingsSingleUpdate($hash, "event", "endSun", 1);
|
||||||
} elsif($msg =~ m/0FFF071301FF.*/) {
|
} elsif($msg =~ m/0FFF0713.*/) {
|
||||||
readingsSingleUpdate($hash, "event", "dawn", 1);
|
readingsSingleUpdate($hash, "event", "dawn", 1);
|
||||||
} elsif($msg =~ m/0FFF071E01FF.*/) {
|
} elsif($msg =~ m/0FFF071E.*/) {
|
||||||
readingsSingleUpdate($hash, "state", "off", 1);
|
readingsSingleUpdate($hash, "state", "off", 1);
|
||||||
} elsif($msg =~ m/0FFF071F01FF.*/) {
|
} elsif($msg =~ m/0FFF071F.*/) {
|
||||||
readingsSingleUpdate($hash, "state", "on", 1);
|
readingsSingleUpdate($hash, "state", "on", 1);
|
||||||
|
|
||||||
} elsif($msg =~ m/0FFF07(1A|18|19|01|02|03).*/) {
|
} elsif($msg =~ m/0FFF07(1A|18|19|01|02|03).*/) {
|
||||||
@ -1468,7 +1493,11 @@ DUOFERN_StatusTimeout($)
|
|||||||
the roller shutter will move to the sunPosition or a switch/dimming
|
the roller shutter will move to the sunPosition or a switch/dimming
|
||||||
actor will shut off.
|
actor will shut off.
|
||||||
</li><br>
|
</li><br>
|
||||||
|
<li><b>reset [settings|full]</b><br>
|
||||||
|
settings: Clear all settings and endpoints of the actor.<br>
|
||||||
|
full: Complete reset of the actor including pairs.
|
||||||
|
</li><br>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
<b>Roller shutter actor commands:</b><br><br>
|
<b>Roller shutter actor commands:</b><br><br>
|
||||||
<ul>
|
<ul>
|
||||||
@ -1634,6 +1663,9 @@ DUOFERN_StatusTimeout($)
|
|||||||
<li><b>DCF [on|off]</b><br>
|
<li><b>DCF [on|off]</b><br>
|
||||||
Switch the DCF receiver on or off.
|
Switch the DCF receiver on or off.
|
||||||
</li><br>
|
</li><br>
|
||||||
|
<li><b>time</b><br>
|
||||||
|
Set the current system time to the weather sensor.
|
||||||
|
</li><br>
|
||||||
<li><b>interval <value></b><br>
|
<li><b>interval <value></b><br>
|
||||||
Set the interval time for automatic transmittion of the weather data.<br>
|
Set the interval time for automatic transmittion of the weather data.<br>
|
||||||
<value>: off or 1 to 100 minutes
|
<value>: off or 1 to 100 minutes
|
||||||
|
Loading…
x
Reference in New Issue
Block a user