diff --git a/fhem/FHEM/76_SMAInverter.pm b/fhem/FHEM/76_SMAInverter.pm index 4b0685b02..52a41a162 100644 --- a/fhem/FHEM/76_SMAInverter.pm +++ b/fhem/FHEM/76_SMAInverter.pm @@ -32,6 +32,7 @@ eval "use FHEM::Meta;1" or my $modMetaAbsent = 1; # Versions History by DS_Starter our %SMAInverter_vNotesIntern = ( + "2.23.3" => "19.06.2023 buxfix DC-Power", "2.23.2" => "20.05.2023 add new SMAInverter_StatusText", "2.23.1" => "19.05.2023 add String 3 (only STP X Inverter)", "2.23.0" => "14.05.2023 read firmware version", @@ -1172,7 +1173,7 @@ sub SMAInverter_getstatusDoParse($) { my $cnt15 = int(900/$interval); # Anzahl der Zyklen innerhalb 15 Minuten = Summe aller Messzyklen my $cntsum = $cnt15+1; # Sicherheitszuschlag Summe Anzahl aller Zyklen my @averagebuf; - if ($sup_TypeLabel && $sup_EnergyProduction && $inv_CLASS =~ /8001|8002|8007|8009/xs) { + if ($sup_TypeLabel && $sup_SpotACTotalPower && $inv_CLASS =~ /8001|8002|8007|8009/xs) { my $power = $inv_SPOT_PACTOT; $power = $inv_SPOT_PDC if($inv_CLASS =~ /8009/xs); #DC Leistung bei Hybrid verwenden @@ -2170,9 +2171,9 @@ sub SMAInverter_SMAcommand($$$$$) { if($size < 90) {$inv_SPOT_PDC2 = "-"; } else {$inv_SPOT_PDC2 = unpack("l*", substr $data, 90, 4); } # catch short response, in case PDC2 not supported if($size < 118) {$inv_SPOT_PDC3 = "-"; } else {$inv_SPOT_PDC3 = unpack("l*", substr $data, 118, 4); } # catch short response, in case PDC3 not supported - $inv_SPOT_PDC1 = ($inv_SPOT_PDC1 eq 2147483648) ? 0 : $inv_SPOT_PDC1; - $inv_SPOT_PDC2 = ($inv_SPOT_PDC2 eq 2147483648) ? 0 : $inv_SPOT_PDC2; - $inv_SPOT_PDC3 = ($inv_SPOT_PDC3 eq 2147483648) ? 0 : $inv_SPOT_PDC3; + $inv_SPOT_PDC1 = (abs($inv_SPOT_PDC1) eq 2147483648) ? 0 : $inv_SPOT_PDC1; + $inv_SPOT_PDC2 = (abs($inv_SPOT_PDC2) eq 2147483648) ? 0 : $inv_SPOT_PDC2; + $inv_SPOT_PDC3 = (abs($inv_SPOT_PDC3) eq 2147483648) ? 0 : $inv_SPOT_PDC3; Log3 $name, 5, "$name - Found Data SPOT_PDC1=$inv_SPOT_PDC1, SPOT_PDC2=$inv_SPOT_PDC2 and SPOT_PDC3=$inv_SPOT_PDC3"; return (1,$inv_SPOT_PDC1,$inv_SPOT_PDC2,$inv_SPOT_PDC3,$inv_susyid,$inv_serial); } @@ -3121,7 +3122,6 @@ The retrieval of the inverter will be executed non-blocking. You can adjust the
  • SPOT_IAC3 / phase_3_iac : Grid current phase L3
  • SPOT_IDC1 / string_1_idc : DC current input
  • SPOT_IDC2 / string_2_idc : DC current input
  • -
  • SPOT_IDC3 / string_3_idc : DC current input
  • SPOT_OPERTM / operation_time : Operation Time
  • SPOT_PAC1 / phase_1_pac : Power L1
  • SPOT_PAC2 / phase_2_pac : Power L2
  • @@ -3129,7 +3129,6 @@ The retrieval of the inverter will be executed non-blocking. You can adjust the
  • SPOT_PACTOT / total_pac : Total Power
  • SPOT_PDC1 / string_1_pdc : DC power input 1
  • SPOT_PDC2 / string_2_pdc : DC power input 2
  • -
  • SPOT_PDC3 / string_3_pdc : DC power input 3
  • SPOT_PDC / strings_pds : DC power summary (only Hybrid-Inverter)
  • SPOT_UAC1 / phase_1_uac : Grid voltage phase L1
  • SPOT_UAC2 / phase_2_uac : Grid voltage phase L2
  • @@ -3139,7 +3138,6 @@ The retrieval of the inverter will be executed non-blocking. You can adjust the
  • SPOT_UAC3_1 / phase_3_1_uac : Grid voltage phase L3-L1
  • SPOT_UDC1 / string_1_udc : DC voltage input
  • SPOT_UDC2 / string_2_udc : DC voltage input
  • -
  • SPOT_UDC3 / string_3_udc : DC voltage input
  • SUSyID / susyid : Inverter SUSyID
  • INV_TEMP / device_temperature : Inverter temperature
  • INV_TYPE / device_type : Inverter Type
  • @@ -3396,7 +3394,6 @@ Die Abfrage des Wechselrichters wird non-blocking ausgeführt. Der Timeoutwert f
  • SPOT_IAC3 / phase_3_iac : Netz Strom phase L3
  • SPOT_IDC1 / string_1_idc : DC Strom Eingang 1
  • SPOT_IDC2 / string_2_idc : DC Strom Eingang 2
  • -
  • SPOT_IDC3 / string_3_idc : DC Strom Eingang 3
  • SPOT_OPERTM / operation_time : Betriebsstunden
  • SPOT_PAC1 / phase_1_pac : Leistung L1
  • SPOT_PAC2 / phase_2_pac : Leistung L2
  • @@ -3404,7 +3401,6 @@ Die Abfrage des Wechselrichters wird non-blocking ausgeführt. Der Timeoutwert f
  • SPOT_PACTOT / total_pac : Gesamtleistung
  • SPOT_PDC1 / string_1_pdc : DC Leistung Eingang 1
  • SPOT_PDC2 / string_2_pdc : DC Leistung Eingang 2
  • -
  • SPOT_PDC2 / string_3_pdc : DC Leistung Eingang 3
  • SPOT_PDC / strings_pds : DC Leistung gesamt (bei Hybridwechselrichtern)
  • SPOT_UAC1 / phase_1_uac : Netz Spannung phase L1
  • SPOT_UAC2 / phase_2_uac : Netz Spannung phase L2
  • @@ -3414,7 +3410,6 @@ Die Abfrage des Wechselrichters wird non-blocking ausgeführt. Der Timeoutwert f
  • SPOT_UAC3_1 / phase_3_1_uac : Netz Spannung phase L3-L1
  • SPOT_UDC1 / string_1_udc : DC Spannung Eingang 1
  • SPOT_UDC2 / string_2_udc : DC Spannung Eingang 2
  • -
  • SPOT_UDC3 / string_3_udc : DC Spannung Eingang 3
  • SUSyID / susyid : Wechselrichter SUSyID
  • INV_TEMP / device_temperature : Wechselrichter Temperatur
  • INV_TYPE / device_type : Wechselrichter Typ
  • @@ -3471,7 +3466,7 @@ Die Abfrage des Wechselrichters wird non-blocking ausgeführt. Der Timeoutwert f "PV", "inverter" ], - "version": "v2.23.2", + "version": "v2.23.0", "release_status": "stable", "author": [ "Maximilian Paries",