diff --git a/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h b/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h index 2c536284..9f577dda 100644 --- a/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h +++ b/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h @@ -6,10 +6,11 @@ enum class Aidon { - List1 = 0x01, - List21 = 0x09, - List2 = 0x0D, - List3 = 0x12 + List1 = 0x01, + List1PhaseShort = 0x09, + List1PhaseLong = 0xff, // TODO: Need sample + List3PhaseShort = 0x0D, + List3PhaseLong = 0x12 }; enum class Aidon_List1 @@ -24,7 +25,7 @@ enum class Aidon_List1 }; -enum class Aidon_List2 +enum class Aidon_List1Phase { ListSize, IGN_0, @@ -67,38 +68,14 @@ enum class Aidon_List2 CurrentL1Int8, CurrentL1Enum, IGN_13, - CurrentL2_OBIS, - CurrentL2, - IGN_14, - CurrentL2Int8, - CurrentL2Enum, - IGN_15, - CurrentL3_OBIS, - CurrentL3, - IGN_16, - CurrentL3Int8, - CurrentL3Enum, - IGN_17, VoltageL1_OBIS, VoltageL1, - IGN_18, + IGN_14, VoltageL1Int8, VoltageL1Enum, - IGN_19, - VoltageL2_OBIS, - VoltageL2, - IGN_20, - VoltageL2Int8, - VoltageL2Enum, - IGN_21, - VoltageL3_OBIS, - VoltageL3, - IGN_22, - VoltageL3Int8, - VoltageL3Enum }; -enum class Aidon_List3 +enum class Aidon_List3Phase { ListSize, IGN_0, diff --git a/Arduino Code/Arduino Libraries/HanReader/src/Kaifa.h b/Arduino Code/Arduino Libraries/HanReader/src/Kaifa.h index c52be58d..01bcb1d7 100644 --- a/Arduino Code/Arduino Libraries/HanReader/src/Kaifa.h +++ b/Arduino Code/Arduino Libraries/HanReader/src/Kaifa.h @@ -2,11 +2,11 @@ #define _KAIFA_h enum class Kaifa : byte { - List1 = 0x01, - List21 = 0x09, // list 2 for 1 fase - List2 = 0x0D, // list 2 for 3 fase - List31 = 0x0E, // list 3 for 1 fase - List3 = 0x12 // list 3 for 3 fase + List1 = 0x01, + List1PhaseShort = 0x09, + List3PhaseShort = 0x0D, + List1PhaseLong = 0x0E, + List3PhaseLong = 0x12 }; enum class Kaifa_List1 { @@ -14,55 +14,7 @@ enum class Kaifa_List1 { ActivePowerImported }; -enum class Kaifa_List21 { - ListSize, - ListVersionIdentifier, - MeterID, - MeterType, - ActiveImportPower, - ActiveExportPower, - ReactiveImportPower, - ReactiveExportPower, - CurrentL1, - VoltageL1 -}; - -enum class Kaifa_List2 { - ListSize, - ListVersionIdentifier, - MeterID, - MeterType, - ActiveImportPower, - ActiveExportPower, - ReactiveImportPower, - ReactiveExportPower, - CurrentL1, - CurrentL2, - CurrentL3, - VoltageL1, - VoltageL2, - VoltageL3 -}; - -enum class Kaifa_List31 { - ListSize, - ListVersionIdentifier, - MeterID, - MeterType, - ActiveImportPower, - ActiveExportPower, - ReactiveImportPower, - ReactiveExportPower, - CurrentL1, - VoltageL1, - MeterClock, - CumulativeActiveImportEnergy, - CumulativeActiveExportEnergy, - CumulativeReactiveImportEnergy, - CumulativeReactiveExportEnergy -}; - -enum class Kaifa_List3 { +enum class Kaifa_List3Phase { ListSize, ListVersionIdentifier, MeterID, @@ -84,7 +36,7 @@ enum class Kaifa_List3 { CumulativeReactiveExportEnergy }; -enum class Kaifa_List4 { // TODO: Stop using list size like this? Only really need a single long list. +enum class Kaifa_List1Phase { ListSize, ListVersionIdentifier, MeterID, @@ -94,7 +46,12 @@ enum class Kaifa_List4 { // TODO: Stop using list size like this? Only really ne ReactiveImportPower, ReactiveExportPower, CurrentL1, - CurrentL2, + VoltageL1, + MeterClock, + CumulativeActiveImportEnergy, + CumulativeActiveExportEnergy, + CumulativeReactiveImportEnergy, + CumulativeReactiveExportEnergy }; #endif diff --git a/Arduino Code/Arduino Libraries/HanReader/src/Kamstrup.h b/Arduino Code/Arduino Libraries/HanReader/src/Kamstrup.h index 49427a17..9eef8cb8 100644 --- a/Arduino Code/Arduino Libraries/HanReader/src/Kamstrup.h +++ b/Arduino Code/Arduino Libraries/HanReader/src/Kamstrup.h @@ -6,44 +6,13 @@ enum class Kamstrup { - List1 = 0x19, - List2 = 0x23, - List3 = 0x11, - List4 = 0x1B + List3PhaseShort = 0x19, + List3PhaseLong = 0x23, + List1PhaseShort = 0x11, + List1PhaseLong = 0x1B }; -enum class Kamstrup_List1 -{ - ListSize, - ListVersionIdentifier, - MeterID_OBIS, - MeterID, - MeterType_OBIS, - MeterType, - ActiveImportPower_OBIS, - ActiveImportPower, - ActiveExportPower_OBIS, - ActiveExportPower, - ReactiveImportPower_OBIS, - ReactiveImportPower, - ReactiveExportPower_OBIS, - ReactiveExportPower, - CurrentL1_OBIS, - CurrentL1, - CurrentL2_OBIS, - CurrentL2, - CurrentL3_OBIS, - CurrentL3, - VoltageL1_OBIS, - VoltageL1, - VoltageL2_OBIS, - VoltageL2, - VoltageL3_OBIS, - VoltageL3 -}; - - -enum class Kamstrup_List2 +enum class Kamstrup_List3Phase { ListSize, ListVersionIdentifier, @@ -83,29 +52,7 @@ enum class Kamstrup_List2 CumulativeReactiveExportEnergy }; -enum class Kamstrup_List3 -{ - ListSize, - ListVersionIdentifier, - MeterID_OBIS, - MeterID, - MeterType_OBIS, - MeterType, - ActiveImportPower_OBIS, - ActiveImportPower, - ActiveExportPower_OBIS, - ActiveExportPower, - ReactiveImportPower_OBIS, - ReactiveImportPower, - ReactiveExportPower_OBIS, - ReactiveExportPower, - CurrentL1_OBIS, - CurrentL1, - VoltageL1_OBIS, - VoltageL1 -}; - -enum class Kamstrup_List4 +enum class Kamstrup_List1Phase { ListSize, ListVersionIdentifier, diff --git a/Arduino Code/Arduino Libraries/HanToJson/src/HanToJson.cpp b/Arduino Code/Arduino Libraries/HanToJson/src/HanToJson.cpp index bf434dbd..8ede513a 100644 --- a/Arduino Code/Arduino Libraries/HanToJson/src/HanToJson.cpp +++ b/Arduino Code/Arduino Libraries/HanToJson/src/HanToJson.cpp @@ -6,49 +6,49 @@ static void hanToJsonKaifa3phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) { - if (listSize >= (int)Kaifa::List2) + if (listSize >= (int)Kaifa::List3PhaseShort) { - data["lv"] = hanReader.getString( (int)Kaifa_List3::ListVersionIdentifier); - data["id"] = hanReader.getString( (int)Kaifa_List3::MeterID); - data["type"] = hanReader.getString( (int)Kaifa_List3::MeterType); - data["P"] = hanReader.getInt( (int)Kaifa_List3::ActiveImportPower); - data["Q"] = hanReader.getInt( (int)Kaifa_List3::ReactiveImportPower); - data["I1"] = hanReader.getInt( (int)Kaifa_List3::CurrentL1); - data["I2"] = hanReader.getInt( (int)Kaifa_List3::CurrentL2); - data["I3"] = hanReader.getInt( (int)Kaifa_List3::CurrentL3); - data["U1"] = hanReader.getInt( (int)Kaifa_List3::VoltageL1); - data["U2"] = hanReader.getInt( (int)Kaifa_List3::VoltageL2); - data["U3"] = hanReader.getInt( (int)Kaifa_List3::VoltageL3); + data["lv"] = hanReader.getString( (int)Kaifa_List3Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Kaifa_List3Phase::MeterID); + data["type"] = hanReader.getString( (int)Kaifa_List3Phase::MeterType); + data["P"] = hanReader.getInt( (int)Kaifa_List3Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Kaifa_List3Phase::ReactiveImportPower); + data["I1"] = hanReader.getInt( (int)Kaifa_List3Phase::CurrentL1); + data["I2"] = hanReader.getInt( (int)Kaifa_List3Phase::CurrentL2); + data["I3"] = hanReader.getInt( (int)Kaifa_List3Phase::CurrentL3); + data["U1"] = hanReader.getInt( (int)Kaifa_List3Phase::VoltageL1); + data["U2"] = hanReader.getInt( (int)Kaifa_List3Phase::VoltageL2); + data["U3"] = hanReader.getInt( (int)Kaifa_List3Phase::VoltageL3); } - if (listSize >= (int)Kaifa::List3) + if (listSize >= (int)Kaifa::List3PhaseLong) { - data["tPI"] = hanReader.getInt( (int)Kaifa_List3::CumulativeActiveImportEnergy); - data["tPO"] = hanReader.getInt( (int)Kaifa_List3::CumulativeActiveExportEnergy); - data["tQI"] = hanReader.getInt( (int)Kaifa_List3::CumulativeReactiveImportEnergy); - data["tQO"] = hanReader.getInt( (int)Kaifa_List3::CumulativeReactiveExportEnergy); + data["tPI"] = hanReader.getInt( (int)Kaifa_List3Phase::CumulativeActiveImportEnergy); + data["tPO"] = hanReader.getInt( (int)Kaifa_List3Phase::CumulativeActiveExportEnergy); + data["tQI"] = hanReader.getInt( (int)Kaifa_List3Phase::CumulativeReactiveImportEnergy); + data["tQO"] = hanReader.getInt( (int)Kaifa_List3Phase::CumulativeReactiveExportEnergy); } } static void hanToJsonKaifa1phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) { - if (listSize >= (int)Kaifa::List21) + if (listSize >= (int)Kaifa::List1PhaseShort) { - data["lv"] = hanReader.getString( (int)Kaifa_List31::ListVersionIdentifier); - data["id"] = hanReader.getString( (int)Kaifa_List31::MeterID); - data["type"] = hanReader.getString( (int)Kaifa_List31::MeterType); - data["P"] = hanReader.getInt( (int)Kaifa_List31::ActiveImportPower); - data["Q"] = hanReader.getInt( (int)Kaifa_List31::ReactiveImportPower); - data["I1"] = hanReader.getInt( (int)Kaifa_List31::CurrentL1); - data["U1"] = hanReader.getInt( (int)Kaifa_List31::VoltageL1); + data["lv"] = hanReader.getString( (int)Kaifa_List1Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Kaifa_List1Phase::MeterID); + data["type"] = hanReader.getString( (int)Kaifa_List1Phase::MeterType); + data["P"] = hanReader.getInt( (int)Kaifa_List1Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Kaifa_List1Phase::ReactiveImportPower); + data["I1"] = hanReader.getInt( (int)Kaifa_List1Phase::CurrentL1); + data["U1"] = hanReader.getInt( (int)Kaifa_List1Phase::VoltageL1); } - if (listSize >= (int)Kaifa::List31) + if (listSize >= (int)Kaifa::List1PhaseLong) { - data["tPI"] = hanReader.getInt( (int)Kaifa_List31::CumulativeActiveImportEnergy); - data["tPO"] = hanReader.getInt( (int)Kaifa_List31::CumulativeActiveExportEnergy); - data["tQI"] = hanReader.getInt( (int)Kaifa_List31::CumulativeReactiveImportEnergy); - data["tQO"] = hanReader.getInt( (int)Kaifa_List31::CumulativeReactiveExportEnergy); + data["tPI"] = hanReader.getInt( (int)Kaifa_List1Phase::CumulativeActiveImportEnergy); + data["tPO"] = hanReader.getInt( (int)Kaifa_List1Phase::CumulativeActiveExportEnergy); + data["tQI"] = hanReader.getInt( (int)Kaifa_List1Phase::CumulativeReactiveImportEnergy); + data["tQO"] = hanReader.getInt( (int)Kaifa_List1Phase::CumulativeReactiveExportEnergy); } } @@ -64,11 +64,11 @@ static void hanToJsonKaifa(JsonObject& data, HanReader& hanReader, Stream *debug } switch (listSize) { - case (int)Kaifa::List2: - case (int)Kaifa::List3: + case (int)Kaifa::List3PhaseShort: + case (int)Kaifa::List3PhaseLong: return hanToJsonKaifa3phase(listSize, data, hanReader, debugger); - case (int)Kaifa::List21: - case (int)Kaifa::List31: + case (int)Kaifa::List1PhaseShort: + case (int)Kaifa::List1PhaseLong: return hanToJsonKaifa1phase(listSize, data, hanReader, debugger); default: if (debugger) debugger->printf("Warning: Unknown listSize %d\n", listSize); @@ -76,6 +76,51 @@ static void hanToJsonKaifa(JsonObject& data, HanReader& hanReader, Stream *debug } } + +static void hanToJsonAidon3phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) +{ + if (listSize >= (int)Aidon::List3PhaseShort) + { + data["lv"] = hanReader.getString( (int)Aidon_List3Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Aidon_List3Phase::MeterID); + data["type"] = hanReader.getString( (int)Aidon_List3Phase::MeterType); + data["P"] = hanReader.getInt( (int)Aidon_List3Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Aidon_List3Phase::ReactiveExportPower); + data["I1"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::CurrentL1)) / 10; + data["I2"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::CurrentL2)) / 10; + data["I3"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::CurrentL3)) / 10; + data["U1"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::VoltageL1)) / 10; + data["U2"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::VoltageL2)) / 10; + data["U3"] = ((double) hanReader.getInt( (int)Aidon_List3Phase::VoltageL3)) / 10; + } + + if (listSize >= (int)Aidon::List3PhaseShort) + { + data["tPI"] = hanReader.getInt( (int)Aidon_List3Phase::CumulativeActiveImportEnergy); + data["tPO"] = hanReader.getInt( (int)Aidon_List3Phase::CumulativeActiveExportEnergy); + data["tQI"] = hanReader.getInt( (int)Aidon_List3Phase::CumulativeReactiveImportEnergy); + data["tQO"] = hanReader.getInt( (int)Aidon_List3Phase::CumulativeReactiveExportEnergy); + } + + // TODO Aidon::List3PhaseLong + // TODO: Do not divide Aidon values by 10! +} + +static void hanToJsonAidon1phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) +{ + if (listSize >= (int)Aidon::List1PhaseShort) + { + data["lv"] = hanReader.getString( (int)Aidon_List1Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Aidon_List1Phase::MeterID); + data["type"] = hanReader.getString( (int)Aidon_List1Phase::MeterType); + data["P"] = hanReader.getInt( (int)Aidon_List1Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Aidon_List1Phase::ReactiveExportPower); + data["I1"] = ((double) hanReader.getInt( (int)Aidon_List1Phase::CurrentL1)) / 10; + data["U1"] = ((double) hanReader.getInt( (int)Aidon_List1Phase::VoltageL1)) / 10; + } + +} + static void hanToJsonAidon(JsonObject& data, HanReader& hanReader, Stream *debugger) { int listSize = hanReader.getListSize(); @@ -89,79 +134,64 @@ static void hanToJsonAidon(JsonObject& data, HanReader& hanReader, Stream *debug return; } - if (listSize >= (int)Aidon::List21) - { - data["lv"] = hanReader.getString( (int)Aidon_List3::ListVersionIdentifier); - data["id"] = hanReader.getString( (int)Aidon_List3::MeterID); - data["type"] = hanReader.getString( (int)Aidon_List3::MeterType); - data["P"] = hanReader.getInt( (int)Aidon_List3::ActiveImportPower); - data["Q"] = hanReader.getInt( (int)Aidon_List3::ReactiveExportPower); - data["I1"] = ((double) hanReader.getInt( (int)Aidon_List3::CurrentL1)) / 10; - data["I2"] = ((double) hanReader.getInt( (int)Aidon_List3::CurrentL2)) / 10; - } - - if (listSize >= (int)Aidon::List2) - { - data["I3"] = ((double) hanReader.getInt( (int)Aidon_List3::CurrentL3)) / 10; - data["U1"] = ((double) hanReader.getInt( (int)Aidon_List3::VoltageL1)) / 10; - data["U2"] = ((double) hanReader.getInt( (int)Aidon_List3::VoltageL2)) / 10; - data["U3"] = ((double) hanReader.getInt( (int)Aidon_List3::VoltageL3)) / 10; - } - - if (listSize >= (int)Aidon::List3) - { - data["tPI"] = hanReader.getInt( (int)Aidon_List3::CumulativeActiveImportEnergy); - data["tPO"] = hanReader.getInt( (int)Aidon_List3::CumulativeActiveExportEnergy); - data["tQI"] = hanReader.getInt( (int)Aidon_List3::CumulativeReactiveImportEnergy); - data["tQO"] = hanReader.getInt( (int)Aidon_List3::CumulativeReactiveExportEnergy); + switch (listSize) { + case (int)Aidon::List3PhaseShort: + case (int)Aidon::List3PhaseLong: + return hanToJsonAidon3phase(listSize, data, hanReader, debugger); + case (int)Aidon::List1PhaseShort: + case (int)Aidon::List1PhaseLong: + return hanToJsonAidon1phase(listSize, data, hanReader, debugger); + default: + if (debugger) debugger->printf("Warning: Unknown listSize %d\n", listSize); + return; } } static void hanToJsonKamstrup3phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) { - if (listSize >= (int)Kamstrup::List1) + if (listSize >= (int)Kamstrup::List3PhaseShort) { - data["lv"] = hanReader.getString( (int)Kamstrup_List2::ListVersionIdentifier); - data["id"] = hanReader.getString( (int)Kamstrup_List2::MeterID); - data["type"] = hanReader.getString( (int)Kamstrup_List2::MeterType); - data["P"] = hanReader.getInt( (int)Kamstrup_List2::ActiveImportPower); - data["Q"] = hanReader.getInt( (int)Kamstrup_List2::ReactiveImportPower); - data["I1"] = hanReader.getInt( (int)Kamstrup_List2::CurrentL1); - data["I2"] = hanReader.getInt( (int)Kamstrup_List2::CurrentL2); - data["I3"] = hanReader.getInt( (int)Kamstrup_List2::CurrentL3); - data["U1"] = hanReader.getInt( (int)Kamstrup_List2::VoltageL1); - data["U2"] = hanReader.getInt( (int)Kamstrup_List2::VoltageL2); - data["U3"] = hanReader.getInt( (int)Kamstrup_List2::VoltageL3); + data["lv"] = hanReader.getString( (int)Kamstrup_List3Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Kamstrup_List3Phase::MeterID); + data["type"] = hanReader.getString( (int)Kamstrup_List3Phase::MeterType); + data["P"] = hanReader.getInt( (int)Kamstrup_List3Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Kamstrup_List3Phase::ReactiveImportPower); + data["I1"] = hanReader.getInt( (int)Kamstrup_List3Phase::CurrentL1); + data["I2"] = hanReader.getInt( (int)Kamstrup_List3Phase::CurrentL2); + data["I3"] = hanReader.getInt( (int)Kamstrup_List3Phase::CurrentL3); + data["U1"] = hanReader.getInt( (int)Kamstrup_List3Phase::VoltageL1); + data["U2"] = hanReader.getInt( (int)Kamstrup_List3Phase::VoltageL2); + data["U3"] = hanReader.getInt( (int)Kamstrup_List3Phase::VoltageL3); } - if (listSize >= (int)Kamstrup::List2) + if (listSize >= (int)Kamstrup::List3PhaseLong) { - data["tPI"] = hanReader.getInt( (int)Kamstrup_List2::CumulativeActiveImportEnergy); - data["tPO"] = hanReader.getInt( (int)Kamstrup_List2::CumulativeActiveExportEnergy); - data["tQI"] = hanReader.getInt( (int)Kamstrup_List2::CumulativeReactiveImportEnergy); - data["tQO"] = hanReader.getInt( (int)Kamstrup_List2::CumulativeReactiveExportEnergy); + data["tPI"] = hanReader.getInt( (int)Kamstrup_List3Phase::CumulativeActiveImportEnergy); + data["tPO"] = hanReader.getInt( (int)Kamstrup_List3Phase::CumulativeActiveExportEnergy); + data["tQI"] = hanReader.getInt( (int)Kamstrup_List3Phase::CumulativeReactiveImportEnergy); + data["tQO"] = hanReader.getInt( (int)Kamstrup_List3Phase::CumulativeReactiveExportEnergy); } } static void hanToJsonKamstrup1phase(int listSize, JsonObject& data, HanReader& hanReader, Stream *debugger) { - if (listSize >= (int)Kamstrup::List3) + if (listSize >= (int)Kamstrup::List1PhaseShort) { - data["lv"] = hanReader.getString( (int)Kamstrup_List4::ListVersionIdentifier); - data["id"] = hanReader.getString( (int)Kamstrup_List4::MeterID); - data["type"] = hanReader.getString( (int)Kamstrup_List4::MeterType); - data["P"] = hanReader.getInt( (int)Kamstrup_List4::ActiveImportPower); - data["Q"] = hanReader.getInt( (int)Kamstrup_List4::ReactiveImportPower); - data["I1"] = hanReader.getInt( (int)Kamstrup_List4::CurrentL1); - data["U1"] = hanReader.getInt( (int)Kamstrup_List4::VoltageL1); + data["lv"] = hanReader.getString( (int)Kamstrup_List1Phase::ListVersionIdentifier); + data["id"] = hanReader.getString( (int)Kamstrup_List1Phase::MeterID); + data["type"] = hanReader.getString( (int)Kamstrup_List1Phase::MeterType); + data["P"] = hanReader.getInt( (int)Kamstrup_List1Phase::ActiveImportPower); + data["Q"] = hanReader.getInt( (int)Kamstrup_List1Phase::ReactiveImportPower); + data["I1"] = hanReader.getInt( (int)Kamstrup_List1Phase::CurrentL1); + data["U1"] = hanReader.getInt( (int)Kamstrup_List1Phase::VoltageL1); } - if (listSize >= (int)Kamstrup::List4) + if (listSize >= (int)Kamstrup::List1PhaseLong) { - data["tPI"] = hanReader.getInt( (int)Kamstrup_List4::CumulativeActiveImportEnergy); - data["tPO"] = hanReader.getInt( (int)Kamstrup_List4::CumulativeActiveExportEnergy); - data["tQI"] = hanReader.getInt( (int)Kamstrup_List4::CumulativeReactiveImportEnergy); - data["tQO"] = hanReader.getInt( (int)Kamstrup_List4::CumulativeReactiveExportEnergy); + data["tPI"] = hanReader.getInt( (int)Kamstrup_List1Phase::CumulativeActiveImportEnergy); + data["tPO"] = hanReader.getInt( (int)Kamstrup_List1Phase::CumulativeActiveExportEnergy); + data["tQI"] = hanReader.getInt( (int)Kamstrup_List1Phase::CumulativeReactiveImportEnergy); + data["tQO"] = hanReader.getInt( (int)Kamstrup_List1Phase::CumulativeReactiveExportEnergy); } } @@ -170,11 +200,11 @@ static void hanToJsonKamstrup(JsonObject& data, HanReader& hanReader, Stream *de int listSize = hanReader.getListSize(); switch (listSize) { - case (int)Kamstrup::List1: - case (int)Kamstrup::List2: + case (int)Kamstrup::List3PhaseShort: + case (int)Kamstrup::List3PhaseLong: return hanToJsonKamstrup3phase(listSize, data, hanReader, debugger); - case (int)Kamstrup::List3: - case (int)Kamstrup::List4: + case (int)Kamstrup::List1PhaseShort: + case (int)Kamstrup::List1PhaseLong: return hanToJsonKamstrup1phase(listSize, data, hanReader, debugger); default: if (debugger) debugger->printf("Warning: Unknown listSize %d\n", listSize);