Merge PR #37: Update to new energystorage interface

master
Jenkins nymea 2021-12-13 00:48:07 +01:00
commit a2d2b62d9d
5 changed files with 47 additions and 45 deletions

View File

@ -1425,7 +1425,7 @@
"displayName": "SolarEdge battery", "displayName": "SolarEdge battery",
"id": "7900471a-da3f-4f03-98be-3e3d9c841546", "id": "7900471a-da3f-4f03-98be-3e3d9c841546",
"createMethods": [ "Auto" ], "createMethods": [ "Auto" ],
"interfaces": ["battery", "connectable"], "interfaces": ["energystorage", "connectable"],
"paramTypes": [ "paramTypes": [
{ {
"id": "7413cce6-48c1-4924-89bc-915beed67b57", "id": "7413cce6-48c1-4924-89bc-915beed67b57",
@ -1488,19 +1488,12 @@
}, },
{ {
"id": "815b0826-c392-4249-a271-19e92ebe46e0", "id": "815b0826-c392-4249-a271-19e92ebe46e0",
"name": "charging", "name": "chargingState",
"displayName": "Charging", "displayName": "Charging state",
"displayNameEvent": "Charging changed", "displayNameEvent": "Charging state changed",
"type": "bool", "type": "QString",
"defaultValue": false "possibleValues": ["idle", "charging", "discharging"],
}, "defaultValue": "idle"
{
"id": "3a0ee6f1-8a49-431d-9e6f-774cdfa8ae1a",
"name": "discharging",
"displayName": "Discharging",
"displayNameEvent": "Discharging changed",
"type": "bool",
"defaultValue": false
}, },
{ {
"id": "f6c6f548-8a12-4a62-a641-08bb003c55fa", "id": "f6c6f548-8a12-4a62-a641-08bb003c55fa",
@ -1540,7 +1533,7 @@
}, },
{ {
"id": "caccf9fd-0f83-4dd5-ae48-a497f13d2a2e", "id": "caccf9fd-0f83-4dd5-ae48-a497f13d2a2e",
"name": "instantaneousPower", "name": "currentPower",
"displayName": "Instantaneous power", "displayName": "Instantaneous power",
"displayNameEvent": "Instantaneous power changed", "displayNameEvent": "Instantaneous power changed",
"type": "double", "type": "double",
@ -1558,11 +1551,11 @@
}, },
{ {
"id": "7ac7ccd1-b5d1-488b-a99b-98ef000b7d03", "id": "7ac7ccd1-b5d1-488b-a99b-98ef000b7d03",
"name": "availableEnergy", "name": "capacity",
"displayName": "Available energy", "displayName": "Available energy",
"displayNameEvent": "Available energy changed", "displayNameEvent": "Available energy changed",
"type": "double", "type": "double",
"unit": "Watt", "unit": "KiloWattHour",
"defaultValue": 0.00 "defaultValue": 0.00
}, },
{ {

View File

@ -194,63 +194,53 @@ void SolarEdgeBattery::onBlockDataUpdated()
if (!m_thing) if (!m_thing)
return; return;
bool charging = false; QString chargingState = "idle";
bool discharging = false;
switch (m_batteryData.batteryStatus) { switch (m_batteryData.batteryStatus) {
case SolarEdgeBattery::Off: case SolarEdgeBattery::Off:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Off"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Off");
break; break;
case SolarEdgeBattery::Standby: case SolarEdgeBattery::Standby:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Standby"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Standby");
break; break;
case SolarEdgeBattery::Init: case SolarEdgeBattery::Init:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Init"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Init");
break; break;
case SolarEdgeBattery::Charge: case SolarEdgeBattery::Charge:
charging = true; chargingState = "charging";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Charging"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Charging");
break; break;
case SolarEdgeBattery::Discharge: case SolarEdgeBattery::Discharge:
charging = false; chargingState = "discharging";
discharging = true;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Discharging"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Discharging");
break; break;
case SolarEdgeBattery::Fault: case SolarEdgeBattery::Fault:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Fault"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Fault");
break; break;
case SolarEdgeBattery::Holding: case SolarEdgeBattery::Holding:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Holding"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Holding");
break; break;
case SolarEdgeBattery::Idle: case SolarEdgeBattery::Idle:
charging = false; chargingState = "idle";
discharging = false;
m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Idle"); m_thing->setStateValue(solarEdgeBatteryBatteryStatusStateTypeId, "Idle");
break; 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(solarEdgeBatteryBatteryLevelStateTypeId, m_batteryData.stateOfEnergy);
m_thing->setStateValue(solarEdgeBatteryDischargingStateTypeId, discharging); m_thing->setStateValue(solarEdgeBatteryChargingStateStateTypeId, chargingState);
m_thing->setStateValue(solarEdgeBatteryChargingStateTypeId, charging);
m_thing->setStateValue(solarEdgeBatteryRatedEnergyStateTypeId, m_batteryData.ratedEnergy); m_thing->setStateValue(solarEdgeBatteryRatedEnergyStateTypeId, m_batteryData.ratedEnergy);
m_thing->setStateValue(solarEdgeBatteryAverageTemperatureStateTypeId, m_batteryData.averageTemperature); m_thing->setStateValue(solarEdgeBatteryAverageTemperatureStateTypeId, m_batteryData.averageTemperature);
m_thing->setStateValue(solarEdgeBatteryInstantaneousVoltageStateTypeId, m_batteryData.instantaneousVoltage); m_thing->setStateValue(solarEdgeBatteryInstantaneousVoltageStateTypeId, m_batteryData.instantaneousVoltage);
m_thing->setStateValue(solarEdgeBatteryInstantaneousCurrentStateTypeId, m_batteryData.instantaneousCurrent); 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(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(solarEdgeBatteryStateOfHealthStateTypeId, m_batteryData.stateOfHealth);
m_thing->setStateValue(solarEdgeBatteryVersionStateTypeId, m_batteryData.firmwareVersion); m_thing->setStateValue(solarEdgeBatteryVersionStateTypeId, m_batteryData.firmwareVersion);
} }

View File

@ -96,6 +96,25 @@
"name": "firmwareVersion", "name": "firmwareVersion",
"type": "QString", "type": "QString",
"defaultValue": "" "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"
} }
] ]
} }

View File

@ -384,7 +384,7 @@ void IntegrationPluginWebasto::onReceivedRegister(Webasto::TqModbusRegister modb
return; return;
int power = (static_cast<quint32>(data[0])<<16 | data[1]); int power = (static_cast<quint32>(data[0])<<16 | data[1]);
qCDebug(dcWebasto()) << " - Active power:" << power; qCDebug(dcWebasto()) << " - Active power:" << power;
thing->setStateValue(liveWallboxPowerConsumptionStateTypeId, power); thing->setStateValue(liveWallboxCurrentPowerStateTypeId, power);
} break; } break;
case Webasto::TqEnergyMeter: { case Webasto::TqEnergyMeter: {
if (data.count() < 2) if (data.count() < 2)

View File

@ -127,11 +127,11 @@
}, },
{ {
"id": "b20a46ee-0f22-4096-a348-34e68e99e0be", "id": "b20a46ee-0f22-4096-a348-34e68e99e0be",
"name": "powerConsumption", "name": "currentPower",
"displayName": "Power consumption", "displayName": "Current power consumption",
"displayNameEvent": "Power consumtion changed", "displayNameEvent": "Current power consumtion changed",
"type": "double", "type": "double",
"unit": "KiloWatt", "unit": "Watt",
"defaultValue": 0.00 "defaultValue": 0.00
}, },
{ {