From 1e97ba3c508ec68cfa7695ffa320022d0e441de6 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Mon, 12 Jul 2021 12:37:08 +0200 Subject: [PATCH 1/4] Don't make energymeter inherit from smartmeterproducer/consumer --- libnymea/interfaces/energymeter.json | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libnymea/interfaces/energymeter.json b/libnymea/interfaces/energymeter.json index e357f964..7ef40c9a 100644 --- a/libnymea/interfaces/energymeter.json +++ b/libnymea/interfaces/energymeter.json @@ -1,7 +1,23 @@ { "description": "Energy meters measure electric power consumption/production on 3 phases. Often used as root measurements.", - "extends": [ "smartmeterconsumer", "smartmeterproducer" ], + "extends": [ "smartmeter" ], "states": [ + { + "name": "totalEnergyConsumed", + "type": "double", + "unit": "KiloWattHour" + }, + { + "name": "totalEnergyProduced", + "type": "double", + "unit": "KiloWattHour" + }, + { + "name": "currentPower", + "type": "double", + "unit": "Watt", + "logged": true + }, { "name": "energyConsumedPhaseA", "type": "double", From 65e1fb746bcadcd95176168a3c842a746ea4e906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 26 Aug 2021 08:58:34 +0200 Subject: [PATCH 2/4] Enable energymeter interface for single and split phase meters --- libnymea/interfaces/energymeter.json | 32 ++++++++++++++++++---------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/libnymea/interfaces/energymeter.json b/libnymea/interfaces/energymeter.json index 7ef40c9a..fa8287c9 100644 --- a/libnymea/interfaces/energymeter.json +++ b/libnymea/interfaces/energymeter.json @@ -1,5 +1,5 @@ { - "description": "Energy meters measure electric power consumption/production on 3 phases. Often used as root measurements.", + "description": "Energy meters measure electric power consumption/production on 1, 2 or 3 phases. Often used as root measurements.", "extends": [ "smartmeter" ], "states": [ { @@ -26,12 +26,14 @@ { "name": "energyConsumedPhaseB", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "energyConsumedPhaseC", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "energyProducedPhaseA", @@ -41,12 +43,14 @@ { "name": "energyProducedPhaseB", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "energyProducedPhaseC", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "currentPowerPhaseA", @@ -56,12 +60,14 @@ { "name": "currentPowerPhaseB", "type": "double", - "unit": "Watt" + "unit": "Watt", + "optional": true }, { "name": "currentPowerPhaseC", "type": "double", - "unit": "Watt" + "unit": "Watt", + "optional": true }, { "name": "currentPhaseA", @@ -71,12 +77,14 @@ { "name": "currentPhaseB", "type": "double", - "unit": "Ampere" + "unit": "Ampere", + "optional": true }, { "name": "currentPhaseC", "type": "double", - "unit": "Ampere" + "unit": "Ampere", + "optional": true }, { "name": "voltagePhaseA", @@ -86,12 +94,14 @@ { "name": "voltagePhaseB", "type": "double", - "unit": "Volt" + "unit": "Volt", + "optional": true }, { "name": "voltagePhaseC", "type": "double", - "unit": "Volt" + "unit": "Volt", + "optional": true } ] } From d15234f0869f244c4078be0953317fe3fdb6dde6 Mon Sep 17 00:00:00 2001 From: Michael Zanetti Date: Thu, 26 Aug 2021 12:08:28 +0200 Subject: [PATCH 3/4] enable logging for total consumption/production --- libnymea/interfaces/energymeter.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libnymea/interfaces/energymeter.json b/libnymea/interfaces/energymeter.json index fa8287c9..7eba41d0 100644 --- a/libnymea/interfaces/energymeter.json +++ b/libnymea/interfaces/energymeter.json @@ -5,12 +5,14 @@ { "name": "totalEnergyConsumed", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "logged": true }, { "name": "totalEnergyProduced", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "logged": true }, { "name": "currentPower", From 32cec935b4ff1835da70935470eae00606e27d7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20St=C3=BCrz?= Date: Thu, 26 Aug 2021 12:45:20 +0200 Subject: [PATCH 4/4] Better handling for single phase meters --- libnymea/interfaces/energymeter.json | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/libnymea/interfaces/energymeter.json b/libnymea/interfaces/energymeter.json index 7eba41d0..fd2669d4 100644 --- a/libnymea/interfaces/energymeter.json +++ b/libnymea/interfaces/energymeter.json @@ -1,5 +1,5 @@ { - "description": "Energy meters measure electric power consumption/production on 1, 2 or 3 phases. Often used as root measurements.", + "description": "Energy meters measure electric power consumption/production on 1, 2 or 3 phases. Often used as root measurements. If a meter uses more than 1 phase, as many states as possible for each phase shall be implemented. If there is only one phase, the total energy, total current etc. including voltage and current for phase A should be implemented.", "extends": [ "smartmeter" ], "states": [ { @@ -23,7 +23,8 @@ { "name": "energyConsumedPhaseA", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "energyConsumedPhaseB", @@ -40,7 +41,8 @@ { "name": "energyProducedPhaseA", "type": "double", - "unit": "KiloWattHour" + "unit": "KiloWattHour", + "optional": true }, { "name": "energyProducedPhaseB", @@ -57,7 +59,8 @@ { "name": "currentPowerPhaseA", "type": "double", - "unit": "Watt" + "unit": "Watt", + "optional": true }, { "name": "currentPowerPhaseB",