diff --git a/Arduino Code/AmsToMqttBridge/AmsToMqttBridge.ino b/Arduino Code/AmsToMqttBridge/AmsToMqttBridge.ino index b5a184cd..2f2184b0 100644 --- a/Arduino Code/AmsToMqttBridge/AmsToMqttBridge.ino +++ b/Arduino Code/AmsToMqttBridge/AmsToMqttBridge.ino @@ -184,7 +184,7 @@ void readHanPort() void readHanPort_Aidon(int listSize) { - if (listSize == (int)Aidon::List1 || listSize == (int)Aidon::List2 || listSize == (int)Aidon::List3) + if (listSize == (int)Aidon::List1 || listSize == (int)Aidon::List2 || listSize == (int)Aidon::List3 || listSize == (int)Aidon::List2_p1 ||) { if (listSize == (int)Aidon::List2) { @@ -235,6 +235,16 @@ void readHanPort_Aidon(int listSize) data["U2"] = ((double) hanReader.getInt((int)Aidon_List2::VoltageL2)) / 10; data["U3"] = ((double) hanReader.getInt((int)Aidon_List2::VoltageL3)) / 10; } + else if (listSize == (int)Aidon::List2_p1) + { + data["lv"] = hanReader.getString((int)Aidon_List2_p1::ListVersionIdentifier); + data["id"] = hanReader.getString((int)Aidon_List2_p1::MeterID); + data["type"] = hanReader.getString((int)Aidon_List2_p1::MeterType); + data["P"] = hanReader.getInt((int)Aidon_List2_p1::ActiveImportPower); + data["Q"] = hanReader.getInt((int)Aidon_List2_p1::ReactiveExportPower); + data["I1"] = ((double) hanReader.getInt((int)Aidon_List2_p1::Current)) / 10; + data["U1"] = ((double) hanReader.getInt((int)Aidon_List2_p1::Voltage)) / 10; + } else if (listSize == (int)Aidon::List3) { data["lv"] = hanReader.getString((int)Aidon_List3::ListVersionIdentifier); diff --git a/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h b/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h index c00e905f..f7b98e6f 100644 --- a/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h +++ b/Arduino Code/Arduino Libraries/HanReader/src/Aidon.h @@ -8,6 +8,7 @@ enum class Aidon { List1 = 0x01, List2 = 0x0D, + List2_p1 = 0x09, List3 = 0x12 }; @@ -97,6 +98,56 @@ enum class Aidon_List2 VoltageL3Enum }; +enum class Aidon_List2_1p +{ + ListSize, + IGN_0, + ListVersionIdentifier_OBIS, + ListVersionIdentifier, + IGN_1, + MeterID_OBIS, + MeterID, + IGN_2, + MeterType_OBIS, + MeterType, + IGN_3, + ActiveImportPower_OBIS, + ActiveImportPower, + IGN_4, + ActiveImportPowerInt8, + ActiveImportPowerEnum, + IGN_5, + ActiveExportPower_OBIS, + ActiveExportPower, + IGN_6, + ActiveExportPowerInt8, + ActiveExportPowerEnum, + IGN_7, + ReactiveImportPower_OBIS, + ReactiveImportPower, + IGN_8, + ReactiveImportPowerInt8, + ReactiveImportPowerEnum, + IGN_9, + ReactiveExportPower_OBIS, + ReactiveExportPower, + IGN_10, + ReactiveExportPowerInt8, + ReactiveExportPowerEnum, + IGN_11, + Current_OBIS, + Current, + IGN_12, + CurrentInt8, + CurrentEnum, + IGN_13, + Voltage_OBIS, + Voltage, + IGN_14, + VoltageInt8, + VoltageEnum +}; + enum class Aidon_List3 { ListSize,