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",