From 173974463cb2886538f551f749d67ccb8c7fbda3 Mon Sep 17 00:00:00 2001 From: T0RST3N Date: Wed, 22 Mar 2017 18:52:26 +0100 Subject: [PATCH] FIX Rename devices is now posible FIX: After rename a device the device now didnt create again. The new name is used. --- FHEM/71_XiaomiSmartHome.pm | 6 +++++- FHEM/71_XiaomiSmartHome_Device.pm | 12 ++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/FHEM/71_XiaomiSmartHome.pm b/FHEM/71_XiaomiSmartHome.pm index 21204c2..68795bb 100644 --- a/FHEM/71_XiaomiSmartHome.pm +++ b/FHEM/71_XiaomiSmartHome.pm @@ -490,9 +490,13 @@ sub XiaomiSmartHome_updateAllReadings($)

Example: define XiaomiSmartHome XiaomiSmartHome 192.168.1.xxx

-
+ Prerequisite + =end html diff --git a/FHEM/71_XiaomiSmartHome_Device.pm b/FHEM/71_XiaomiSmartHome_Device.pm index 3da5309..83c77d9 100644 --- a/FHEM/71_XiaomiSmartHome_Device.pm +++ b/FHEM/71_XiaomiSmartHome_Device.pm @@ -120,16 +120,16 @@ sub XiaomiSmartHome_Device_Parse($$) { my $model = $decoded->{'model'}; my $name = $io_hash->{NAME}; - if (my $hash = $modules{XiaomiSmartHome_Device}{defptr}{$sid}) + if (my $io_hash = $modules{XiaomiSmartHome_Device}{defptr}{$sid}) { Log3 $name, 4, "$name> IS DEFINED " . $model . " : " .$sid; - XiaomiSmartHome_Device_Read($hash, $msg, $name); + XiaomiSmartHome_Device_Read($io_hash, $msg, $name); } else { Log3 $name, 4, "$name> UNDEFINED " . $model . " : " .$sid; - return "UNDEFINED $sid XiaomiSmartHome_Device $model $name"; + return "UNDEFINED XMI_$sid XiaomiSmartHome_Device $sid $model $name"; } } ##################################### @@ -157,15 +157,15 @@ sub XiaomiSmartHome_Device_update($){ sub XiaomiSmartHome_Device_Define($$) { my ($hash, $def) = @_; - my ($name, $modul, $type, $iodev) = split("[ \t]+", $def); + my ($name, $modul, $sid, $type, $iodev) = split("[ \t]+", $def); #Log3 "test", 3, "Define status = " . $status; $hash->{TYPE} = $modul; $hash->{MODEL} = $type; - $hash->{SID} = $name; + $hash->{SID} = $sid; $hash->{NAME} = $name; $hash->{VERSION} = $version; $hash->{STATE} = 'initialized'; - $modules{XiaomiSmartHome_Device}{defptr}{$name} = $hash; + $modules{XiaomiSmartHome_Device}{defptr}{$sid} = $hash; AssignIoPort($hash,$iodev); if(defined($hash->{IODev}->{NAME})) {