Feature: Detect if inverter supports 'Power Distribution Logic'
The detection of 'Power Distribution Logic' is based on the firmware version for specific models and is needed to disable any means of overscaling, as it simply does not work when 'Power Distrbution Logic' is available. Based on the code from @AndreasBoehm
This commit is contained in:
parent
c37397acca
commit
a0e6942537
@ -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",
|
||||
|
||||
@ -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",
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -10,4 +10,5 @@ public:
|
||||
String typeName() const;
|
||||
const byteAssign_t* getByteAssignment() const;
|
||||
uint8_t getByteAssignmentSize() const;
|
||||
};
|
||||
bool supportsPowerDistributionLogic() final;
|
||||
};
|
||||
|
||||
@ -219,3 +219,8 @@ bool HM_Abstract::sendGridOnProFileParaRequest()
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool HM_Abstract::supportsPowerDistributionLogic()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
};
|
||||
};
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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__);
|
||||
|
||||
@ -46,6 +46,12 @@
|
||||
<td>{{ $t('devinfo.HardwareVersion') }}</td>
|
||||
<td>{{ devInfoList.hw_version }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>{{ $t('devinfo.SupportsPowerDistributionLogic') }}</td>
|
||||
<td>
|
||||
<StatusBadge :status="devInfoList.pdl_supported" true_text="devinfo.Yes" false_text="devinfo.No" />
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</template>
|
||||
@ -53,6 +59,7 @@
|
||||
<script lang="ts">
|
||||
import BootstrapAlert from '@/components/BootstrapAlert.vue';
|
||||
import type { DevInfoStatus } from '@/types/DevInfoStatus';
|
||||
import StatusBadge from '@/components/StatusBadge.vue';
|
||||
import { BIconInfoSquare } from 'bootstrap-icons-vue';
|
||||
import { defineComponent, type PropType } from 'vue';
|
||||
|
||||
@ -60,6 +67,7 @@ export default defineComponent({
|
||||
components: {
|
||||
BootstrapAlert,
|
||||
BIconInfoSquare,
|
||||
StatusBadge,
|
||||
},
|
||||
props: {
|
||||
devInfoList: { type: Object as PropType<DevInfoStatus>, required: true },
|
||||
|
||||
@ -30,7 +30,9 @@
|
||||
"Refreshing": "Aktualisieren",
|
||||
"Pull": "Zum Aktualisieren nach unten ziehen",
|
||||
"Release": "Loslassen zum Aktualisieren",
|
||||
"Close": "Schließen"
|
||||
"Close": "Schließen",
|
||||
"Yes": "Ja",
|
||||
"No": "Nein"
|
||||
},
|
||||
"wait": {
|
||||
"NotReady": "OpenDTU ist noch nicht bereit",
|
||||
@ -179,7 +181,10 @@
|
||||
"FirmwareVersion": "Firmware-Version",
|
||||
"FirmwareBuildDate": "Firmware-Erstellungsdatum",
|
||||
"HardwarePartNumber": "Hardware-Teilenummer",
|
||||
"HardwareVersion": "Hardware-Version"
|
||||
"HardwareVersion": "Hardware-Version",
|
||||
"SupportsPowerDistributionLogic": "'Power Distribution Logic' unterstützt",
|
||||
"Yes": "@:base.Yes",
|
||||
"No": "@:base.No"
|
||||
},
|
||||
"gridprofile": {
|
||||
"NoInfo": "@:devinfo.NoInfo",
|
||||
|
||||
@ -30,7 +30,9 @@
|
||||
"Refreshing": "Refreshing",
|
||||
"Pull": "Pull down to refresh",
|
||||
"Release": "Release to refresh",
|
||||
"Close": "Close"
|
||||
"Close": "Close",
|
||||
"Yes": "Yes",
|
||||
"No": "No"
|
||||
},
|
||||
"wait": {
|
||||
"NotReady": "OpenDTU is not yet ready",
|
||||
@ -179,7 +181,10 @@
|
||||
"FirmwareVersion": "Firmware Version",
|
||||
"FirmwareBuildDate": "Firmware Build Date",
|
||||
"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",
|
||||
|
||||
@ -30,7 +30,9 @@
|
||||
"Refreshing": "Refreshing",
|
||||
"Pull": "Pull down to refresh",
|
||||
"Release": "Release to refresh",
|
||||
"Close": "Fermer"
|
||||
"Close": "Fermer",
|
||||
"Yes": "Yes",
|
||||
"No": "No"
|
||||
},
|
||||
"wait": {
|
||||
"NotReady": "OpenDTU is not yet ready",
|
||||
@ -179,7 +181,10 @@
|
||||
"FirmwareVersion": "Version du firmware",
|
||||
"FirmwareBuildDate": "Date de création du firmware",
|
||||
"HardwarePartNumber": "Numéro d'article matériel",
|
||||
"HardwareVersion": "Version du matériel"
|
||||
"HardwareVersion": "Version du matériel",
|
||||
"SupportsPowerDistributionLogic": "'Power Distribution Logic' supported",
|
||||
"Yes": "@:base.Yes",
|
||||
"No": "@:base.No"
|
||||
},
|
||||
"gridprofile": {
|
||||
"NoInfo": "@:devinfo.NoInfo",
|
||||
|
||||
@ -8,4 +8,5 @@ export interface DevInfoStatus {
|
||||
hw_version: number;
|
||||
hw_model_name: string;
|
||||
max_power: number;
|
||||
pdl_supported: boolean;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user