From 09924f251d3b9c9f36c15c327ad06ccfc9cc9ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Wed, 6 Oct 2021 16:02:18 +0200 Subject: [PATCH] SunSpec: Fix energy values for solar edge battery --- sunspec/integrationpluginsunspec.json | 4 ++-- sunspec/solaredgebattery.cpp | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sunspec/integrationpluginsunspec.json b/sunspec/integrationpluginsunspec.json index 6b54c7f..00246de 100644 --- a/sunspec/integrationpluginsunspec.json +++ b/sunspec/integrationpluginsunspec.json @@ -1501,7 +1501,7 @@ "displayName": "Rated energy", "displayNameEvent": "Rated energy changed", "type": "double", - "unit": "Watt", + "unit": "KiloWattHour", "defaultValue": 0.00 }, { @@ -1546,7 +1546,7 @@ "displayName": "Maximum energy", "displayNameEvent": "Maximum energy changed", "type": "double", - "unit": "Watt", + "unit": "KiloWattHour", "defaultValue": 0.00 }, { diff --git a/sunspec/solaredgebattery.cpp b/sunspec/solaredgebattery.cpp index e0e5441..f14aa20 100644 --- a/sunspec/solaredgebattery.cpp +++ b/sunspec/solaredgebattery.cpp @@ -234,13 +234,13 @@ void SolarEdgeBattery::onBlockDataUpdated() m_thing->setStateValue(solarEdgeBatteryBatteryCriticalStateTypeId, (m_batteryData.stateOfEnergy < 5) && chargingState != "charging"); m_thing->setStateValue(solarEdgeBatteryBatteryLevelStateTypeId, m_batteryData.stateOfEnergy); m_thing->setStateValue(solarEdgeBatteryChargingStateStateTypeId, chargingState); - m_thing->setStateValue(solarEdgeBatteryRatedEnergyStateTypeId, m_batteryData.ratedEnergy); + m_thing->setStateValue(solarEdgeBatteryRatedEnergyStateTypeId, m_batteryData.ratedEnergy / 1000.0); // kWh m_thing->setStateValue(solarEdgeBatteryAverageTemperatureStateTypeId, m_batteryData.averageTemperature); m_thing->setStateValue(solarEdgeBatteryInstantaneousVoltageStateTypeId, m_batteryData.instantaneousVoltage); m_thing->setStateValue(solarEdgeBatteryInstantaneousCurrentStateTypeId, m_batteryData.instantaneousCurrent); m_thing->setStateValue(solarEdgeBatteryCurrentPowerStateTypeId, m_batteryData.instantaneousPower); - m_thing->setStateValue(solarEdgeBatteryMaxEnergyStateTypeId, m_batteryData.maxEnergy); - m_thing->setStateValue(solarEdgeBatteryCapacityStateTypeId, m_batteryData.availableEnergy); + m_thing->setStateValue(solarEdgeBatteryMaxEnergyStateTypeId, m_batteryData.maxEnergy / 1000.0); // kWh + m_thing->setStateValue(solarEdgeBatteryCapacityStateTypeId, m_batteryData.availableEnergy / 1000.0); // kWh m_thing->setStateValue(solarEdgeBatteryStateOfHealthStateTypeId, m_batteryData.stateOfHealth); m_thing->setStateValue(solarEdgeBatteryVersionStateTypeId, m_batteryData.firmwareVersion); } @@ -261,8 +261,8 @@ QDebug operator<<(QDebug debug, const SolarEdgeBattery::BatteryData &batteryData debug << " - Instantuouse Voltage" << batteryData.instantaneousVoltage << "V" << endl; debug << " - Instantuouse Current" << batteryData.instantaneousCurrent << "A" << endl; debug << " - Instantuouse Power" << batteryData.instantaneousPower << "W" << endl; - debug << " - Max energy" << batteryData.maxEnergy << "W" << endl; - debug << " - Available energy" << batteryData.availableEnergy << "W" << endl; + debug << " - Max energy" << batteryData.maxEnergy << "W * H" << endl; + debug << " - Available energy" << batteryData.availableEnergy << "W * H" << endl; debug << " - State of health" << batteryData.stateOfHealth << "%" << endl; debug << " - State of energy" << batteryData.stateOfEnergy << "%" << endl; debug << " - Battery status" << batteryData.batteryStatus << endl;