From 9b209968529cd429c118560d4f0655b25bc6e105 Mon Sep 17 00:00:00 2001 From: nasseeder1 Date: Sun, 18 Aug 2019 17:58:31 +0000 Subject: [PATCH] 76_SMAInverter.pm: contrib 2.12.0 git-svn-id: https://svn.fhem.de/fhem/trunk@20017 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/contrib/DS_Starter/76_SMAInverter.pm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/fhem/contrib/DS_Starter/76_SMAInverter.pm b/fhem/contrib/DS_Starter/76_SMAInverter.pm index 0f5ff5c6a..147bd01f1 100644 --- a/fhem/contrib/DS_Starter/76_SMAInverter.pm +++ b/fhem/contrib/DS_Starter/76_SMAInverter.pm @@ -1119,17 +1119,21 @@ sub SMAInverter_SMAcommand($$$$$) { Log3 $name, 5, "$name - Data identifier $data_ID"; if($data_ID eq 0x2601) { - eval { $inv_SPOT_ETOTAL = unpack("V*", substr($data, 62, 4)); }; - if ($@) { + if (length($data) >= 66){ + $inv_SPOT_ETOTAL = unpack("V*", substr($data, 62, 4)); + } else { Log3 $name, 3, "$name - WARNING - SPOT_ETOTAL wasn't deliverd ... set it to \"0\" !"; $inv_SPOT_ETOTAL = 0; - } - eval { $inv_SPOT_ETODAY = unpack("V*", substr $data, 78, 4); }; - if ($@) { + } + + if (length($data) >= 82){ + $inv_SPOT_ETODAY = unpack("V*", substr ($data, 78, 4)); + } else { Log3 $name, 3, "$name - WARNING - SPOT_ETODAY wasn't deliverd ... set it to \"0\" !"; $inv_SPOT_ETODAY = 0; - } - Log3 $name, 5, "$name - Found Data SPOT_ETOTAL=$inv_SPOT_ETOTAL and SPOT_ETODAY=$inv_SPOT_ETODAY"; + } + + Log3 $name, 5, "$name - Data SPOT_ETOTAL=$inv_SPOT_ETOTAL and SPOT_ETODAY=$inv_SPOT_ETODAY"; return (1,$inv_SPOT_ETODAY,$inv_SPOT_ETOTAL,$inv_susyid,$inv_serial); }