diff --git a/sunspec/integrationpluginsunspec.json b/sunspec/integrationpluginsunspec.json index 61a718e..6b54c7f 100644 --- a/sunspec/integrationpluginsunspec.json +++ b/sunspec/integrationpluginsunspec.json @@ -1425,7 +1425,7 @@ "displayName": "SolarEdge battery", "id": "7900471a-da3f-4f03-98be-3e3d9c841546", "createMethods": [ "Auto" ], - "interfaces": ["battery", "connectable"], + "interfaces": ["energystorage", "connectable"], "paramTypes": [ { "id": "7413cce6-48c1-4924-89bc-915beed67b57", @@ -1488,19 +1488,12 @@ }, { "id": "815b0826-c392-4249-a271-19e92ebe46e0", - "name": "charging", - "displayName": "Charging", - "displayNameEvent": "Charging changed", - "type": "bool", - "defaultValue": false - }, - { - "id": "3a0ee6f1-8a49-431d-9e6f-774cdfa8ae1a", - "name": "discharging", - "displayName": "Discharging", - "displayNameEvent": "Discharging changed", - "type": "bool", - "defaultValue": false + "name": "chargingState", + "displayName": "Charging state", + "displayNameEvent": "Charging state changed", + "type": "QString", + "possibleValues": ["idle", "charging", "discharging"], + "defaultValue": "idle" }, { "id": "f6c6f548-8a12-4a62-a641-08bb003c55fa", @@ -1540,7 +1533,7 @@ }, { "id": "caccf9fd-0f83-4dd5-ae48-a497f13d2a2e", - "name": "instantaneousPower", + "name": "currentPower", "displayName": "Instantaneous power", "displayNameEvent": "Instantaneous power changed", "type": "double", @@ -1558,11 +1551,11 @@ }, { "id": "7ac7ccd1-b5d1-488b-a99b-98ef000b7d03", - "name": "availableEnergy", + "name": "capacity", "displayName": "Available energy", "displayNameEvent": "Available energy changed", "type": "double", - "unit": "Watt", + "unit": "KiloWattHour", "defaultValue": 0.00 }, { diff --git a/sunspec/solaredgebattery.cpp b/sunspec/solaredgebattery.cpp index c492fe4..e0e5441 100644 --- a/sunspec/solaredgebattery.cpp +++ b/sunspec/solaredgebattery.cpp @@ -194,63 +194,53 @@ void SolarEdgeBattery::onBlockDataUpdated() if (!m_thing) return; - bool charging = false; - bool discharging = false; + QString chargingState = "idle"; switch (m_batteryData.batteryStatus) { case SolarEdgeBattery::Off: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Off"); break; case SolarEdgeBattery::Standby: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Standby"); break; case SolarEdgeBattery::Init: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Init"); break; case SolarEdgeBattery::Charge: - charging = true; - discharging = false; + chargingState = "charging"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Charging"); break; case SolarEdgeBattery::Discharge: - charging = false; - discharging = true; + chargingState = "discharging"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Discharging"); break; case SolarEdgeBattery::Fault: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Fault"); break; case SolarEdgeBattery::Holding: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Holding"); break; case SolarEdgeBattery::Idle: - charging = false; - discharging = false; + chargingState = "idle"; m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Idle"); break; } - m_thing->setStateValue(solarEdgeBatteryBatteryCriticalStateTypeId, (m_batteryData.stateOfEnergy < 5) && !charging); + m_thing->setStateValue(solarEdgeBatteryBatteryCriticalStateTypeId, (m_batteryData.stateOfEnergy < 5) && chargingState != "charging"); m_thing->setStateValue(solarEdgeBatteryBatteryLevelStateTypeId, m_batteryData.stateOfEnergy); - m_thing->setStateValue(solarEdgeBatteryDischargingStateTypeId, discharging); - m_thing->setStateValue(solarEdgeBatteryChargingStateTypeId, charging); + m_thing->setStateValue(solarEdgeBatteryChargingStateStateTypeId, chargingState); m_thing->setStateValue(solarEdgeBatteryRatedEnergyStateTypeId, m_batteryData.ratedEnergy); m_thing->setStateValue(solarEdgeBatteryAverageTemperatureStateTypeId, m_batteryData.averageTemperature); m_thing->setStateValue(solarEdgeBatteryInstantaneousVoltageStateTypeId, m_batteryData.instantaneousVoltage); m_thing->setStateValue(solarEdgeBatteryInstantaneousCurrentStateTypeId, m_batteryData.instantaneousCurrent); - m_thing->setStateValue(solarEdgeBatteryInstantaneousPowerStateTypeId, m_batteryData.instantaneousPower); + m_thing->setStateValue(solarEdgeBatteryCurrentPowerStateTypeId, m_batteryData.instantaneousPower); m_thing->setStateValue(solarEdgeBatteryMaxEnergyStateTypeId, m_batteryData.maxEnergy); - m_thing->setStateValue(solarEdgeBatteryAvailableEnergyStateTypeId, m_batteryData.availableEnergy); + m_thing->setStateValue(solarEdgeBatteryCapacityStateTypeId, m_batteryData.availableEnergy); m_thing->setStateValue(solarEdgeBatteryStateOfHealthStateTypeId, m_batteryData.stateOfHealth); m_thing->setStateValue(solarEdgeBatteryVersionStateTypeId, m_batteryData.firmwareVersion); } diff --git a/wallbe/integrationpluginwallbe.json b/wallbe/integrationpluginwallbe.json index 83608f0..e968af2 100644 --- a/wallbe/integrationpluginwallbe.json +++ b/wallbe/integrationpluginwallbe.json @@ -96,6 +96,25 @@ "name": "firmwareVersion", "type": "QString", "defaultValue": "" + }, + { + "id": "9198152b-deb4-413a-86ce-b01231c11d44", + "name": "totalEnergyConsumed", + "displayName": "TODO! Total consumed energy", + "displayNameEvent": "Total consumed energy changed", + "type": "double", + "unit": "KiloWattHour", + "defaultValue": 0 + }, + { + "id": "74523f7e-5d63-4e01-a64d-e3aa35358f6a", + "name": "currentPower", + "displayName": "TODO! Current power usage", + "displayNameEvent": "Current power usage changed", + "type": "double", + "unit": "Watt", + "defaultValue": 0, + "filter": "adaptive" } ] } diff --git a/webasto/integrationpluginwebasto.cpp b/webasto/integrationpluginwebasto.cpp index 5e25778..7b37899 100644 --- a/webasto/integrationpluginwebasto.cpp +++ b/webasto/integrationpluginwebasto.cpp @@ -384,7 +384,7 @@ void IntegrationPluginWebasto::onReceivedRegister(Webasto::TqModbusRegister modb return; int power = (static_cast(data[0])<<16 | data[1]); qCDebug(dcWebasto()) << " - Active power:" << power; - thing->setStateValue(liveWallboxPowerConsumptionStateTypeId, power); + thing->setStateValue(liveWallboxCurrentPowerStateTypeId, power); } break; case Webasto::TqEnergyMeter: { if (data.count() < 2) diff --git a/webasto/integrationpluginwebasto.json b/webasto/integrationpluginwebasto.json index 824bb22..c1717a2 100644 --- a/webasto/integrationpluginwebasto.json +++ b/webasto/integrationpluginwebasto.json @@ -127,11 +127,11 @@ }, { "id": "b20a46ee-0f22-4096-a348-34e68e99e0be", - "name": "powerConsumption", - "displayName": "Power consumption", - "displayNameEvent": "Power consumtion changed", + "name": "currentPower", + "displayName": "Current power consumption", + "displayNameEvent": "Current power consumtion changed", "type": "double", - "unit": "KiloWatt", + "unit": "Watt", "defaultValue": 0.00 }, {