diff --git a/lang/es.lang.json b/lang/es.lang.json index 21da623..d56748c 100644 --- a/lang/es.lang.json +++ b/lang/es.lang.json @@ -45,7 +45,9 @@ "Refreshing": "Refrescando", "Pull": "Tira hacia abajo para refrescar", "Release": "Soltar para refrescar", - "Close": "Cerrar" + "Close": "Cerrar", + "Yes": "Yes", + "No": "No" }, "wait": { "NotReady": "OpenDTU is not yet ready", @@ -193,7 +195,10 @@ "FirmwareVersion": "Versión del firmware", "FirmwareBuildDate": "Fecha de construcción del firmware", "HardwarePartNumber": "Número de parte de hardware", - "HardwareVersion": "Versión de hardware" + "HardwareVersion": "Versión de hardware", + "SupportsPowerDistributionLogic": "'Power Distribution Logic' supported", + "Yes": "@:base.Yes", + "No": "@:base.No" }, "gridprofile": { "NoInfo": "@:devinfo.NoInfo", diff --git a/lang/it.lang.json b/lang/it.lang.json index 8fe013d..8eefc64 100644 --- a/lang/it.lang.json +++ b/lang/it.lang.json @@ -45,7 +45,9 @@ "Refreshing": "Aggiorna", "Pull": "Trascina in basso per aggiornare", "Release": "Rilascia per aggiornare", - "Close": "Chiudi" + "Close": "Chiudi", + "Yes": "Yes", + "No": "No" }, "wait": { "NotReady": "OpenDTU is not yet ready", @@ -193,7 +195,10 @@ "FirmwareVersion": "Versione Firmware", "FirmwareBuildDate": "Data Firmware", "HardwarePartNumber": "Hardware Part Number", - "HardwareVersion": "Hardware Version" + "HardwareVersion": "Hardware Version", + "SupportsPowerDistributionLogic": "'Power Distribution Logic' supported", + "Yes": "@:base.Yes", + "No": "@:base.No" }, "gridprofile": { "NoInfo": "@:devinfo.NoInfo", diff --git a/lib/Hoymiles/src/inverters/HMS_4CH.cpp b/lib/Hoymiles/src/inverters/HMS_4CH.cpp index 60a59d8..a833801 100644 --- a/lib/Hoymiles/src/inverters/HMS_4CH.cpp +++ b/lib/Hoymiles/src/inverters/HMS_4CH.cpp @@ -75,3 +75,10 @@ uint8_t HMS_4CH::getByteAssignmentSize() const { return sizeof(byteAssignment) / sizeof(byteAssignment[0]); } + +bool HMS_4CH::supportsPowerDistributionLogic() +{ + // This feature was added in inverter firmware version 01.01.12 and + // will limit the AC output instead of limiting the DC inputs. + return DevInfo()->getFwBuildVersion() >= 10112U; +} diff --git a/lib/Hoymiles/src/inverters/HMS_4CH.h b/lib/Hoymiles/src/inverters/HMS_4CH.h index 9d49de0..545f91a 100644 --- a/lib/Hoymiles/src/inverters/HMS_4CH.h +++ b/lib/Hoymiles/src/inverters/HMS_4CH.h @@ -10,4 +10,5 @@ public: String typeName() const; const byteAssign_t* getByteAssignment() const; uint8_t getByteAssignmentSize() const; -}; \ No newline at end of file + bool supportsPowerDistributionLogic() final; +}; diff --git a/lib/Hoymiles/src/inverters/HM_Abstract.cpp b/lib/Hoymiles/src/inverters/HM_Abstract.cpp index 5fd0b27..d58324d 100644 --- a/lib/Hoymiles/src/inverters/HM_Abstract.cpp +++ b/lib/Hoymiles/src/inverters/HM_Abstract.cpp @@ -219,3 +219,8 @@ bool HM_Abstract::sendGridOnProFileParaRequest() return true; } + +bool HM_Abstract::supportsPowerDistributionLogic() +{ + return false; +} diff --git a/lib/Hoymiles/src/inverters/HM_Abstract.h b/lib/Hoymiles/src/inverters/HM_Abstract.h index 491149d..9f5c4b3 100644 --- a/lib/Hoymiles/src/inverters/HM_Abstract.h +++ b/lib/Hoymiles/src/inverters/HM_Abstract.h @@ -16,6 +16,7 @@ public: bool sendRestartControlRequest(); bool resendPowerControlRequest(); bool sendGridOnProFileParaRequest(); + bool supportsPowerDistributionLogic() override; private: uint8_t _lastAlarmLogCnt = 0; @@ -23,4 +24,4 @@ private: PowerLimitControlType _activePowerControlType = PowerLimitControlType::AbsolutNonPersistent; uint8_t _powerState = 1; -}; \ No newline at end of file +}; diff --git a/lib/Hoymiles/src/inverters/InverterAbstract.h b/lib/Hoymiles/src/inverters/InverterAbstract.h index 29fba12..10da4d6 100644 --- a/lib/Hoymiles/src/inverters/InverterAbstract.h +++ b/lib/Hoymiles/src/inverters/InverterAbstract.h @@ -103,6 +103,9 @@ public: virtual bool sendChangeChannelRequest(); virtual bool sendGridOnProFileParaRequest() = 0; + // This feature will limit the AC output instead of limiting the DC inputs. + virtual bool supportsPowerDistributionLogic() = 0; + HoymilesRadio* getRadio(); AlarmLogParser* EventLog(); diff --git a/src/WebApi_devinfo.cpp b/src/WebApi_devinfo.cpp index 449cd17..45078ff 100644 --- a/src/WebApi_devinfo.cpp +++ b/src/WebApi_devinfo.cpp @@ -35,6 +35,7 @@ void WebApiDevInfoClass::onDevInfoStatus(AsyncWebServerRequest* request) root["hw_model_name"] = inv->DevInfo()->getHwModelName(); root["max_power"] = inv->DevInfo()->getMaxPower(); root["fw_build_datetime"] = inv->DevInfo()->getFwBuildDateTimeStr(); + root["pdl_supported"] = inv->supportsPowerDistributionLogic(); } WebApi.sendJsonResponse(request, response, __FUNCTION__, __LINE__); diff --git a/webapp/src/components/DevInfo.vue b/webapp/src/components/DevInfo.vue index 7a998e1..da2d81a 100644 --- a/webapp/src/components/DevInfo.vue +++ b/webapp/src/components/DevInfo.vue @@ -46,6 +46,12 @@