From 3534c94909c9ead53e948568b6931fd80b9e13fe Mon Sep 17 00:00:00 2001 From: martinp876 <> Date: Sun, 29 Nov 2015 19:10:00 +0000 Subject: [PATCH] HMLan:AES handling git-svn-id: https://svn.fhem.de/fhem/trunk@10053 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/00_HMLAN.pm | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/fhem/FHEM/00_HMLAN.pm b/fhem/FHEM/00_HMLAN.pm index 8f976acf2..d160077a8 100755 --- a/fhem/FHEM/00_HMLAN.pm +++ b/fhem/FHEM/00_HMLAN.pm @@ -927,13 +927,26 @@ sub HMLAN_assignIDs($){ sub HMLAN_writeAesKey($) {##################################################### my ($name) = @_; return if (!$name || !$defs{$name} || $defs{$name}{TYPE} ne "HMLAN"); + my %keys = (); my $vccu = InternalVal($name,"owner_CCU",$name); $vccu = $name if(!AttrVal($vccu,"hmKey","")); foreach my $i (1..3){ my ($kNo,$k) = split(":",AttrVal($vccu,"hmKey".($i== 1?"":$i),"")); - HMLAN_SimpleWrite($defs{$name}, "Y0$i,".($k?"$kNo,$k":"00,")); - } - } + if (defined($kNo) && defined($k)) { + $keys{$kNo} = $k; + } + } + my @kNos = reverse(sort(keys(%keys))); + foreach my $i (1..3){ + my $k; + my $kNo; + if (defined($kNos[$i-1])) { + $kNo = $kNos[$i-1]; + $k = $keys{$kNo}; + } + HMLAN_SimpleWrite($defs{$name}, "Y0$i,".($k?"$kNo,$k":"00,")); + } +} sub HMLAN_KeepAlive($) {####################################################### my($in ) = shift;