From afa47ea633aa2417e06124ba69151794b58b9a29 Mon Sep 17 00:00:00 2001 From: Lasse Bang Mikkelsen Date: Fri, 16 Dec 2022 20:19:15 +0100 Subject: [PATCH 1/3] Use list type 4 when phase active import/export power is available --- src/IEC6205621.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/IEC6205621.cpp b/src/IEC6205621.cpp index ba848d4d..8261ec5d 100644 --- a/src/IEC6205621.cpp +++ b/src/IEC6205621.cpp @@ -136,6 +136,9 @@ IEC6205621::IEC6205621(const char* p) { l2current = (((activeImportPower - activeExportPower) * sqrt(3)) - (l1voltage * l1current) - (l3voltage * l3current)) / l2voltage; } } + + if (l1activeImportPower > 0 || l2activeImportPower > 0 || l3activeImportPower > 0 || l1activeExportPower > 0 || l2activeExportPower > 0 || l3activeExportPower > 0) + listType = 4; } String IEC6205621::extract(String payload, String obis) { From fabdfbadf4b973bf505c3f9002c7d07892f7ff93 Mon Sep 17 00:00:00 2001 From: Lasse Bang Mikkelsen Date: Fri, 16 Dec 2022 20:20:40 +0100 Subject: [PATCH 2/3] Add support for Landis+Gyr meters using "LGF" manufacturer ID --- src/IEC6205621.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/IEC6205621.cpp b/src/IEC6205621.cpp index 8261ec5d..f2e21843 100644 --- a/src/IEC6205621.cpp +++ b/src/IEC6205621.cpp @@ -33,6 +33,9 @@ IEC6205621::IEC6205621(const char* p) { } else if(listId.startsWith("Ene") || listId.startsWith("EST")) { meterType = AmsTypeSagemcom; listId = listId.substring(0,4); + } else if(listId.startsWith("LGF")) { + meterType = AmsTypeLandis; + listId = listId.substring(0,4); } else { meterType = AmsTypeUnknown; listId = listId.substring(0,4); From 5b4f68011415ab4571264b2b915564af571b5e39 Mon Sep 17 00:00:00 2001 From: Lasse Bang Mikkelsen Date: Sat, 17 Dec 2022 12:38:18 +0100 Subject: [PATCH 3/3] Align Landis+Gyr naming --- src/AmsData.h | 2 +- src/IEC6205621.cpp | 4 ++-- src/web/AmsWebServer.cpp | 2 +- web/application.js | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/AmsData.h b/src/AmsData.h index 9445472a..02e7df55 100644 --- a/src/AmsData.h +++ b/src/AmsData.h @@ -10,7 +10,7 @@ enum AmsType { AmsTypeKaifa = 0x02, AmsTypeKamstrup = 0x03, AmsTypeIskra = 0x08, - AmsTypeLandis = 0x09, + AmsTypeLandisGyr = 0x09, AmsTypeSagemcom = 0x0A, AmsTypeLng = 0x0B, AmsTypeCustom = 0x88, diff --git a/src/IEC6205621.cpp b/src/IEC6205621.cpp index f2e21843..f574f2d4 100644 --- a/src/IEC6205621.cpp +++ b/src/IEC6205621.cpp @@ -28,13 +28,13 @@ IEC6205621::IEC6205621(const char* p) { meterType = AmsTypeIskra; listId = listId.substring(0,5); } else if(listId.startsWith("XMX")) { - meterType = AmsTypeLandis; + meterType = AmsTypeLandisGyr; listId = listId.substring(0,6); } else if(listId.startsWith("Ene") || listId.startsWith("EST")) { meterType = AmsTypeSagemcom; listId = listId.substring(0,4); } else if(listId.startsWith("LGF")) { - meterType = AmsTypeLandis; + meterType = AmsTypeLandisGyr; listId = listId.substring(0,4); } else { meterType = AmsTypeUnknown; diff --git a/src/web/AmsWebServer.cpp b/src/web/AmsWebServer.cpp index 834dde87..6c9b2630 100644 --- a/src/web/AmsWebServer.cpp +++ b/src/web/AmsWebServer.cpp @@ -329,7 +329,7 @@ void AmsWebServer::configMeterHtml() { case AmsTypeIskra: manufacturer = F("Iskra"); break; - case AmsTypeLandis: + case AmsTypeLandisGyr: manufacturer = F("Landis+Gyr"); break; case AmsTypeSagemcom: diff --git a/web/application.js b/web/application.js index b29285ef..62885a3d 100644 --- a/web/application.js +++ b/web/application.js @@ -854,7 +854,7 @@ var fetch = function() { $('.jmt').html("Iskra"); break; case 9: - $('.jmt').html("Landis"); + $('.jmt').html("Landis+Gyr"); break; case 10: $('.jmt').html("Sagemcom");