MecMeter: Reduce some load by uncaching and rounding some states

pull/607/head
Michael Zanetti 2022-09-23 09:31:31 +02:00
parent f0abb00942
commit 71fbb899a7
2 changed files with 20 additions and 14 deletions

View File

@ -298,8 +298,8 @@ void IntegrationPluginMecMeter::refresh(Thing *thing)
// Total energy / power
thing->setStateValue(mecMeterTotalEnergyConsumedStateTypeId, dataMap.value("EFAT").toDouble() / 1000.0);
thing->setStateValue(mecMeterTotalEnergyProducedStateTypeId, dataMap.value("ERAT").toDouble() / 1000.0);
thing->setStateValue(mecMeterTotalEnergyConsumedStateTypeId, 0.001 * qRound(dataMap.value("EFAT").toDouble()));
thing->setStateValue(mecMeterTotalEnergyProducedStateTypeId, 0.001 * qRound(dataMap.value("ERAT").toDouble()));
thing->setStateValue(mecMeterCurrentPowerStateTypeId, dataMap.value("PT").toDouble());
// thing->setStateValue(mecMeterTotalForwardeReactiveEnergyStateTypeId, dataMap.value("EFRT").toDouble());
@ -322,14 +322,14 @@ void IntegrationPluginMecMeter::refresh(Thing *thing)
// thing->setStateValue(mecMeterFrequencyStateTypeId, dataMap.value("F").toDouble());
// Energy consumed
thing->setStateValue(mecMeterEnergyConsumedPhaseAStateTypeId, dataMap.value("EFAA").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyConsumedPhaseBStateTypeId, dataMap.value("EFAB").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyConsumedPhaseCStateTypeId, dataMap.value("EFAC").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyConsumedPhaseAStateTypeId, 0.001 * qRound(dataMap.value("EFAA").toDouble()));
thing->setStateValue(mecMeterEnergyConsumedPhaseBStateTypeId, 0.001 * qRound(dataMap.value("EFAB").toDouble()));
thing->setStateValue(mecMeterEnergyConsumedPhaseCStateTypeId, 0.001 * qRound(dataMap.value("EFAC").toDouble()));
// Energy produced
thing->setStateValue(mecMeterEnergyProducedPhaseAStateTypeId, dataMap.value("ERAA").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyProducedPhaseBStateTypeId, dataMap.value("ERAB").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyProducedPhaseCStateTypeId, dataMap.value("ERAC").toDouble() / 1000.0);
thing->setStateValue(mecMeterEnergyProducedPhaseAStateTypeId, 0.001 * qRound(dataMap.value("ERAA").toDouble() / 1000.0));
thing->setStateValue(mecMeterEnergyProducedPhaseBStateTypeId, 0.001 * qRound(dataMap.value("ERAB").toDouble() / 1000.0));
thing->setStateValue(mecMeterEnergyProducedPhaseCStateTypeId, 0.001 * qRound(dataMap.value("ERAC").toDouble() / 1000.0));
});
}

View File

@ -101,7 +101,8 @@
"displayNameEvent": "Phase A consumed energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
},
{
"id": "b454057d-8e97-4f96-b0c3-7e4cbf4044c0",
@ -110,7 +111,8 @@
"displayNameEvent": "Phase A returned energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
},
{
"id": "90fc6894-044a-45ec-83f4-f38134f35018",
@ -150,7 +152,8 @@
"displayNameEvent": "Phase B consumed energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
},
{
"id": "a0407475-e770-4a74-b4b4-34b458a26801",
@ -159,7 +162,8 @@
"displayNameEvent": "Phase B returned energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
},
{
"id": "ec0ed738-0e79-4db9-83df-746ec18d25f3",
@ -199,7 +203,8 @@
"displayNameEvent": "Phase C consumed energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
},
{
"id": "6b08f113-204c-45c9-9b1a-118416aefcd7",
@ -208,7 +213,8 @@
"displayNameEvent": "Phase C returned energy changed",
"type": "double",
"unit": "KiloWattHour",
"defaultValue": 0
"defaultValue": 0,
"cached": false
}
]
}