mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-04-20 13:26:02 +00:00
10_FBDECT.pm: some new device types added (Forum #111667)
git-svn-id: https://svn.fhem.de/fhem/trunk@22083 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
7cfec6a64b
commit
97d43ea3b7
@ -88,6 +88,7 @@ FBDECT_SetHttp($@)
|
|||||||
my ($hash, @a) = @_;
|
my ($hash, @a) = @_;
|
||||||
my %cmd;
|
my %cmd;
|
||||||
my $p = $hash->{props};
|
my $p = $hash->{props};
|
||||||
|
my $unittype = ReadingsVal($hash->{NAME}, "unittype", "");
|
||||||
|
|
||||||
if($p =~ m/switch/) {
|
if($p =~ m/switch/) {
|
||||||
$cmd{off} = $cmd{on} = $cmd{toggle} = "noArg";
|
$cmd{off} = $cmd{on} = $cmd{toggle} = "noArg";
|
||||||
@ -96,6 +97,12 @@ FBDECT_SetHttp($@)
|
|||||||
$cmd{"desired-temp"} = "slider,7.5,0.5,28.5,1";
|
$cmd{"desired-temp"} = "slider,7.5,0.5,28.5,1";
|
||||||
$cmd{open} = $cmd{closed} = "noArg";
|
$cmd{open} = $cmd{closed} = "noArg";
|
||||||
}
|
}
|
||||||
|
if($p =~ m/dimmer/) {
|
||||||
|
$cmd{"dim"} = "slider,0,1,255,1";
|
||||||
|
}
|
||||||
|
if($p =~ m/HANFUNUnit/ && $unittype eq "BLIND") {
|
||||||
|
$cmd{open} = $cmd{closed} = $cmd{stop} = "noArg";
|
||||||
|
}
|
||||||
if(!$cmd{$a[1]}) {
|
if(!$cmd{$a[1]}) {
|
||||||
my $cmdList = join(" ", map { "$_:$cmd{$_}" } sort keys %cmd);
|
my $cmdList = join(" ", map { "$_:$cmd{$_}" } sort keys %cmd);
|
||||||
return SetExtensions($hash, $cmdList, @a)
|
return SetExtensions($hash, $cmdList, @a)
|
||||||
@ -114,7 +121,7 @@ FBDECT_SetHttp($@)
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
if($cmd =~ m/^(open|closed|desired-temp)$/) {
|
if($cmd =~ m/^(open|closed|desired-temp)$/ && $p =~ m/actuator/) {
|
||||||
if($cmd eq "desired-temp") {
|
if($cmd eq "desired-temp") {
|
||||||
return "Usage: set $name desired-temp value" if(int(@a) != 3);
|
return "Usage: set $name desired-temp value" if(int(@a) != 3);
|
||||||
return "desired-temp must be between 7.5 and 28.5"
|
return "desired-temp must be between 7.5 and 28.5"
|
||||||
@ -126,6 +133,19 @@ FBDECT_SetHttp($@)
|
|||||||
IOWrite($hash, ReadingsVal($name,"AIN",0),"sethkrtsoll¶m=$val");
|
IOWrite($hash, ReadingsVal($name,"AIN",0),"sethkrtsoll¶m=$val");
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($cmd eq "dim") {
|
||||||
|
return "Usage: set $name dim value"
|
||||||
|
if(int(@a) != 3 || $a[2] !~ m/^\d+$/ || !($a[2]>=0 && $a[2]<=100));
|
||||||
|
IOWrite($hash, ReadingsVal($name,"AIN",0),"setlevelpercentage&level=$a[2]");
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($cmd =~ m/^(open|closed|stop)$/ &&
|
||||||
|
$p =~ m/HANFUNUnit/ && $unittype eq "BLIND") {
|
||||||
|
IOWrite($hash, ReadingsVal($name,"AIN",0),"setblind¶m=$cmd");
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
###################################
|
###################################
|
||||||
@ -220,11 +240,14 @@ my %fbhttp_readings = (
|
|||||||
batterylow => '"batterylow:$val"',
|
batterylow => '"batterylow:$val"',
|
||||||
celsius => 'sprintf("temperature:%.1f C (measured)", $val/10)',
|
celsius => 'sprintf("temperature:%.1f C (measured)", $val/10)',
|
||||||
energy => 'sprintf("energy:%d Wh", $val)',
|
energy => 'sprintf("energy:%d Wh", $val)',
|
||||||
|
etsideviceid => '"etsideviceid:$val"',
|
||||||
functionbitmask => '"FBPROP:$fbprop"',
|
functionbitmask => '"FBPROP:$fbprop"',
|
||||||
fwversion => '"fwversion:$val"',
|
fwversion => '"fwversion:$val"',
|
||||||
id => '"ID:$val"',
|
id => '"ID:$val"',
|
||||||
identifier => '"AIN:$val"',
|
identifier => '"AIN:$val"',
|
||||||
komfort => 'sprintf("day-temp:%.1f C", $val/2)',
|
komfort => 'sprintf("day-temp:%.1f C", $val/2)',
|
||||||
|
level => '"level:$val"',
|
||||||
|
levelpercentage => '"dim:$val"',
|
||||||
lock => '"locked:".($val ? "yes":"no")',
|
lock => '"locked:".($val ? "yes":"no")',
|
||||||
mode => '"mode:$val"',
|
mode => '"mode:$val"',
|
||||||
name => '"FBNAME:$val"',
|
name => '"FBNAME:$val"',
|
||||||
@ -238,6 +261,7 @@ my %fbhttp_readings = (
|
|||||||
tsoll => 'sprintf("desired-temp:%s", $val)',
|
tsoll => 'sprintf("desired-temp:%s", $val)',
|
||||||
members => '"members:$val"',
|
members => '"members:$val"',
|
||||||
devicelock => '"devicelock:".($val ? "yes":"no")',
|
devicelock => '"devicelock:".($val ? "yes":"no")',
|
||||||
|
unittype => '"unittype:".($unittype{$val} ? $unittype{$val} : $val)',
|
||||||
errorcode => '"errorcode:".($ecTxt{$val} ? $ecTxt{$val} : ">$val<")',
|
errorcode => '"errorcode:".($ecTxt{$val} ? $ecTxt{$val} : ">$val<")',
|
||||||
windowopenactiv => '"windowopenactiv:".($val ? "yes":"no")',
|
windowopenactiv => '"windowopenactiv:".($val ? "yes":"no")',
|
||||||
battery => 'sprintf("battery:%s %%", $val)',
|
battery => 'sprintf("battery:%s %%", $val)',
|
||||||
@ -284,14 +308,19 @@ FBDECT_ParseHttp($$$)
|
|||||||
|
|
||||||
my %ll = (
|
my %ll = (
|
||||||
0 => "HANFUN",
|
0 => "HANFUN",
|
||||||
|
2 => "lightSwitch",
|
||||||
4 => "alarmSensor",
|
4 => "alarmSensor",
|
||||||
|
5 => "avmButton",
|
||||||
6 => "actuator",
|
6 => "actuator",
|
||||||
7 => "powerMeter",
|
7 => "powerMeter",
|
||||||
8 => "tempSensor",
|
8 => "tempSensor",
|
||||||
9 => "switch",
|
9 => "switch",
|
||||||
10 => "repeater",
|
10 => "repeater",
|
||||||
11 => "microphone",
|
11 => "microphone",
|
||||||
13 => "HANFUN2"
|
13 => "HANFUNUnit",
|
||||||
|
15 => "switch",
|
||||||
|
16 => "dimmer",
|
||||||
|
17 => "colorswitch",
|
||||||
);
|
);
|
||||||
my %ecTxt = (0 => "noError (0)",
|
my %ecTxt = (0 => "noError (0)",
|
||||||
1 => "notMounted (1)",
|
1 => "notMounted (1)",
|
||||||
@ -300,6 +329,29 @@ FBDECT_ParseHttp($$$)
|
|||||||
4 => "installationPreparation (4)",
|
4 => "installationPreparation (4)",
|
||||||
5 => "installationInProgress (5)",
|
5 => "installationInProgress (5)",
|
||||||
6 => "installationIsAdapting (6)");
|
6 => "installationIsAdapting (6)");
|
||||||
|
my %unittype = (
|
||||||
|
273 => "SIMPLE_BUTTONAHA-HTTP-API",
|
||||||
|
256 => "SIMPLE_ON_OFF_SWITCHABLE",
|
||||||
|
257 => "SIMPLE_ON_OFF_SWITCH",
|
||||||
|
262 => "AC_OUTLET",
|
||||||
|
263 => "AC_OUTLET_SIMPLE_POWER_METERING",
|
||||||
|
264 => "SIMPLE_LIGHT",
|
||||||
|
265 => "DIMMABLE_LIGHT",
|
||||||
|
266 => "DIMMER_SWITCH",
|
||||||
|
277 => "COLOR_BULB",
|
||||||
|
278 => "DIMMABLE_COLOR_BULB",
|
||||||
|
281 => "BLIND",
|
||||||
|
282 => "LAMELLAR",
|
||||||
|
512 => "SIMPLE_DETECTOR",
|
||||||
|
513 => "DOOR_OPEN_CLOSE_DETECTOR",
|
||||||
|
514 => "WINDOW_OPEN_CLOSE_DETECTOR",
|
||||||
|
515 => "MOTION_DETECTOR",
|
||||||
|
518 => "FLOOD_DETECTOR",
|
||||||
|
519 => "GLAS_BREAK_DETECTOR",
|
||||||
|
520 => "VIBRATION_DETECTOR",
|
||||||
|
640 => "SIREN",
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
my $lsn = int($h{functionbitmask});
|
my $lsn = int($h{functionbitmask});
|
||||||
my @fb;
|
my @fb;
|
||||||
@ -587,11 +639,20 @@ FBDECT_Undef($$)
|
|||||||
|
|
||||||
<a name="FBDECTset"></a>
|
<a name="FBDECTset"></a>
|
||||||
<b>Set</b>
|
<b>Set</b>
|
||||||
|
Note: not all commands are supported for all devices.
|
||||||
<ul>
|
<ul>
|
||||||
<li>on/off<br>
|
<li>on/off<br>
|
||||||
set the device on or off.
|
set the device on or off.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>dim <value><br>
|
||||||
|
dim the device (if it is supported), value is between 0 and 100 (in %)
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>open/close/stop<br>
|
||||||
|
set the blind correspondingly
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>desired-temp <value><br>
|
<li>desired-temp <value><br>
|
||||||
set the desired temp on a Comet DECT (FBAHAHTTP IOdev only). The value 7.5
|
set the desired temp on a Comet DECT (FBAHAHTTP IOdev only). The value 7.5
|
||||||
corresponds to off, and 28.5 to on.
|
corresponds to off, and 28.5 to on.
|
||||||
@ -691,6 +752,15 @@ FBDECT_Undef($$)
|
|||||||
Gewünschte Temperatur beim Comet DECT setzen. 7.5 entspricht aus, 28.5
|
Gewünschte Temperatur beim Comet DECT setzen. 7.5 entspricht aus, 28.5
|
||||||
bedeutet an.
|
bedeutet an.
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li>dim <value><br>
|
||||||
|
Helligkeit oder Rolladenstand (zwischen 0 und 100, in Prozent) setzen.
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li>open/close/stop<br>
|
||||||
|
Rollade öffnen, schließen oder stoppen.
|
||||||
|
</li>
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
Die <a href="#setExtensions">set extensions</a> werden
|
Die <a href="#setExtensions">set extensions</a> werden
|
||||||
unterstützt.
|
unterstützt.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user