From 48aeac0c195d54aad300c3bed93ff43f5ea16862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Fri, 10 Dec 2021 13:43:59 +0100 Subject: [PATCH] Update charging state of energystorage --- fronius/froniusstorage.cpp | 11 ++++++++--- fronius/integrationpluginfronius.json | 23 ++++++++--------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/fronius/froniusstorage.cpp b/fronius/froniusstorage.cpp index d162a550..2119c148 100644 --- a/fronius/froniusstorage.cpp +++ b/fronius/froniusstorage.cpp @@ -86,7 +86,7 @@ void FroniusStorage::updateThingInfo(const QByteArray &data) // copy retrieved information to thing states if (storageInfoMap.contains("StateOfCharge_Relative")) { pluginThing()->setStateValue(storageBatteryLevelStateTypeId, storageInfoMap.value("StateOfCharge_Relative").toInt()); - if (!pluginThing()->stateValue(storageChargingStateTypeId).toBool() && (storageInfoMap.value("StateOfCharge_Relative").toInt() < 5)) { + if (pluginThing()->stateValue(storageChargingStateStateTypeId).toString() == "charging" && (storageInfoMap.value("StateOfCharge_Relative").toInt() < 5)) { pluginThing()->setStateValue(storageBatteryCriticalStateTypeId, true); } else { pluginThing()->setStateValue(storageBatteryCriticalStateTypeId, false); @@ -126,6 +126,11 @@ void FroniusStorage::updateActivityInfo(const QByteArray &data) QVariantMap dataMap = jsonDoc.toVariant().toMap().value("Body").toMap().value("Data").toMap(); float charge_akku = dataMap.value("Site").toMap().value("P_Akku").toFloat(); pluginThing()->setStateValue(storageCurrentPowerStateTypeId, charge_akku); - pluginThing()->setStateValue(storageDischargingStateTypeId, charge_akku < 0); - pluginThing()->setStateValue(storageChargingStateTypeId, charge_akku > 0); + if (charge_akku < 0) { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "discharging"); + } else if (charge_akku > 0) { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "charging"); + } else { + pluginThing()->setStateValue(storageChargingStateStateTypeId, "idle"); + } } diff --git a/fronius/integrationpluginfronius.json b/fronius/integrationpluginfronius.json index 4bc3dfbd..f637e5bc 100644 --- a/fronius/integrationpluginfronius.json +++ b/fronius/integrationpluginfronius.json @@ -384,7 +384,7 @@ "name": "storage", "displayName": "Fronius solar storage", "createMethods": ["auto"], - "interfaces": [ "energystorage", "connectable" ], + "interfaces": [ "energystorage"], "paramTypes": [ { "id": "49087f31-abf5-4bb8-946b-a3626ee80566", @@ -414,20 +414,13 @@ "cached": false }, { - "id": "2de34a1f-de2e-43ad-8998-8a5460dff9ae", - "name": "charging", - "displayName": "Charging", - "displayNameEvent": "Charging changed", - "type": "bool", - "defaultValue": false - }, - { - "id": "be90d35c-081c-485b-b4cc-8271e7da5796", - "name": "discharging", - "displayName": "Discharging", - "displayNameEvent": "Discharging changed", - "type": "bool", - "defaultValue": false + "id": "7a045257-d829-4e58-a769-047b3aeec7c5", + "name": "chargingState", + "displayName": "Charging state", + "displayNameEvent": "Charging state changed", + "type": "QString", + "possibleValues": ["idle", "charging", "discharging"], + "defaultValue": "idle" }, { "id": "5a89cd3f-3abf-4f51-ab2b-4039f1d211d9",