diff --git a/fhem/CHANGED b/fhem/CHANGED
index 8d1f0fc22..76af0c193 100644
--- a/fhem/CHANGED
+++ b/fhem/CHANGED
@@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
+ - feature: 30_HUEBridge: enable autocreation of sensors for deconz
- new: lib/FHEM/Core/Password/Utils.pm: new modul for developer to save
passwords or passphrase in fhem keystore
- bugfix: 98_WeekdayTimer: don't enable disabled WDT in group par. setting
diff --git a/fhem/FHEM/30_HUEBridge.pm b/fhem/FHEM/30_HUEBridge.pm
index 9b14a83cf..db85179b4 100644
--- a/fhem/FHEM/30_HUEBridge.pm
+++ b/fhem/FHEM/30_HUEBridge.pm
@@ -646,9 +646,9 @@ HUEBridge_Set($@)
return "starting update";
} elsif($cmd eq 'autocreate') {
- return "usage: autocreate" if( @args != 0 );
+ return "usage: autocreate [sensors]" if( $arg && $arg ne 'sensors' );
- return HUEBridge_Autocreate($hash,1);
+ return HUEBridge_Autocreate($hash,1,$arg);
} elsif($cmd eq 'autodetect') {
return "usage: autodetect" if( @args != 0 );
@@ -1514,9 +1514,9 @@ HUEBridge_Parse($$)
}
sub
-HUEBridge_Autocreate($;$)
+HUEBridge_Autocreate($;$$)
{
- my ($hash,$force)= @_;
+ my ($hash,$force,$sensors)= @_;
my $name = $hash->{NAME};
if( !$force ) {
@@ -1578,7 +1578,7 @@ HUEBridge_Autocreate($;$)
my $cmdret= CommandDefine(undef,$define);
if($cmdret) {
- Log3 $name, 1, "$name: Autocreate: An error occurred while creating device for id '$id': $cmdret";
+ Log3 $name, 1, "$name: Autocreate: An error occurred while creating group for id '$id': $cmdret";
} else {
$cmdret= CommandAttr(undef,"$devname alias ".$result->{$id}{name});
$cmdret= CommandAttr(undef,"$devname room HUEDevice");
@@ -1592,6 +1592,40 @@ HUEBridge_Autocreate($;$)
}
}
+ if( $sensors || $hash->{websocket} ) {
+ $result = HUEBridge_Call($hash,undef, 'sensors', undef);
+ foreach my $key ( keys %{$result} ) {
+ my $id= $key;
+
+ my $code = $name ."-S". $id;
+ if( defined($modules{HUEDevice}{defptr}{$code}) ) {
+ Log3 $name, 5, "$name: id '$id' already defined as '$modules{HUEDevice}{defptr}{$code}->{NAME}'";
+ next;
+ }
+
+ my $devname= "HUESensor" . $id;
+ $devname = $name ."_". $devname if( $hash->{helper}{count} );
+ my $define= "$devname HUEDevice sensor $id IODev=$name";
+
+ Log3 $name, 4, "$name: create new sensor '$devname' for address '$id'";
+
+ my $cmdret= CommandDefine(undef,$define);
+ if($cmdret) {
+ Log3 $name, 1, "$name: Autocreate: An error occurred while creating sensor for id '$id': $cmdret";
+ } else {
+ $cmdret= CommandAttr(undef,"$devname alias ".$result->{$id}{name});
+ $cmdret= CommandAttr(undef,"$devname room HUEDevice");
+ $cmdret= CommandAttr(undef,"$devname group HUESensor");
+ $cmdret= CommandAttr(undef,"$devname IODev $name");
+
+ HUEDeviceSetIcon($devname);
+ $defs{$devname}{helper}{fromAutocreate} = 1 ;
+
+ $autocreated++;
+ }
+ }
+ }
+
if( $autocreated ) {
Log3 $name, 2, "$name: autocreated $autocreated devices";
CommandSave(undef,undef) if( AttrVal( "autocreate", "autosave", 1 ) );
@@ -2177,7 +2211,7 @@ HUEBridge_Attr($$$)
The actual hue bulbs, living colors or living whites devices are defined as HUEDevice devices.
- All newly found devices and groups are autocreated at startup and added to the room HUEDevice.
+ All newly found lights and groups are autocreated at startup and added to the room HUEDevice.
Notes:
@@ -2234,8 +2268,8 @@ HUEBridge_Attr($$$)
Set
get <bridge> devices and the corresponding fhem devices