as result like this you get in https://www.miller-alex.de/WMbus?
I always get an error and if i do this by hand my result is an error because the package is bigger then the allowed size.
This is DLMS data in two MBus frames. You can use GXDLMSDirector to show the content of this. Select "Tools" and "DLMS Translator". Then set the block ciphering key and you can see the result.
Frames:
1: 68 FA FA 68 53 FF 00 01 67 DB 08 4B 46 4D 65 50 9A D8 81 81 F8 20 00 14 A8 CA 58 A7 CC 6B 0C 13 79 B6 C6 86 84 52 38 14 F6 86 84 B2 9E 0D 9C DB 79 DB B0 94 FB 25 FF C2 06 89 FE DB B6 0D F6 A1 CC 39 DA 26 A0 06 A9 82 DE 5C E3 F6 6A B6 EF FE 09 7F 35 93 F2 94 21 E7 A5 91 33 A5 0C 22 B5 E6 10 E0 90 E4 A4 0C 6A 71 0C 86 F0 68 99 99 23 F2 4A 44 20 72 C1 A3 B5 A6 09 99 09 7C 4B C5 29 41 A7 60 00 BD E5 8C C8 EC C2 9F DA BF 1D 9E 92 8B 1E 74 61 24 F6 DB C3 82 9C 8D 94 5B 1E BD 07 5C 8C 34 68 DA 76 28 D8 86 40 55 88 AE 2A 9A 97 B0 84 3D EA 8F 90 FD B4 5D 59 47 94 D8 4B BD 00 A3 C0 36 37 E1 76 9D D6 74 4E 21 32 DF DA AB BB 6A CE 95 C5 BD 5E 42 15 FB F9 A7 76 51 9F 97 28 B2 81 5B 66 C8 94 24 D2 36 11 2E A1 7C DB 4C 3B BA B5 C1 9C 63 34 3D 2C DE 30 D2 1F 3E E9 A2
<WiredMBus len="FE" >
<TargetAddress Value="67" />
<SourceAddress Value="1" />
<!-- Command: SndUd -->
<!-- A-Field: 255 -->
<!-- CI-Field: 0 -->
<!-- Primary station: 103 -->
<!-- Secondary station: 1 -->
<NextFrame Value="DB084B464D65509AD88181F8200014A8CA58A7CC6B0C1379B6C68684523814F68684B29E0D9CDB79DBB094FB25FFC20689FEDBB60DF6A1CC39DA26A006A982DE5CE3F66AB6EFFE097F3593F29421E7A59133A50C22B5E610E090E4A40C6A710C86F068999923F24A442072C1A3B5A60999097C4BC52941A76000BDE58CC8ECC29FDABF1D9E928B1E746124F6DBC3829C8D945B1EBD075C8C3468DA7628D886405588AE2A9A97B0843DEA8F90FDB45D594794D84BBD00A3C03637E1769DD6744E2132DFDAABBB6ACE95C5BD5E4215FBF9A776519F9728B2815B66C89424D236112EA17CDB4C3BBAB5C19C63343D2CDE30D21F3EE9A2" />
</WiredMBus>
2: 68 14 14 68 53 FF 11 01 67 88 DB 60 B8 05 0F F6 D6 69 50 CE B6 73 CD AE
<WiredMBus len="18" >
<TargetAddress Value="67" />
<SourceAddress Value="1" />
<!-- Command: SndUd -->
<!-- A-Field: 255 -->
<!-- CI-Field: 17 -->
<!-- Primary station: 103 -->
<!-- Secondary station: 1 -->
<NextFrame Value="88DB60B8050FF6D66950CEB673CDAE" />
</WiredMBus>
PDU from the two frames:
<!-- IDIS system title:
Manufacturer Code: KFM
Device type: IDIS package1 PLC polyphase meter
Function type: Disconnector, Multi Utility
Serial number: 10147969
-->
<GeneralGloCiphering>
<SystemTitle Value="4B464D65509AD881" />
<CipheredService Value="200014A8CA58A7CC6B0C1379B6C68684523814F68684B29E0D9CDB79DBB094FB25FFC20689FEDBB60DF6A1CC39DA26A006A982DE5CE3F66AB6EFFE097F3593F29421E7A59133A50C22B5E610E090E4A40C6A710C86F068999923F24A442072C1A3B5A60999097C4BC52941A76000BDE58CC8ECC29FDABF1D9E928B1E746124F6DBC3829C8D945B1EBD075C8C3468DA7628D886405588AE2A9A97B0843DEA8F90FDB45D594794D84BBD00A3C03637E1769DD6744E2132DFDAABBB6ACE95C5BD5E4215FBF9A776519F9728B2815B66C89424D236112EA17CDB4C3BBAB5C19C63343D2CDE30D21F3EE9A288DB60B8050FF6D66950CEB673CDAE" />
</GeneralGloCiphering>
ok, my documentation does not document a multi frame system.
I found a other project https://github.com/greenMikeEU/SmartMeterEVNKaifaMA309 . i have modify the source code, so he dont loop and read data from a fixed string.
Now i get the correct result.
--------------------------------
Wirkenergie+: 8960959
Wirkenergie: 0
MomentanleistungP+: 716
MomentanleistungP-: 0
Spannung L1: 238.4
Spannung L2: 237.7
Spannung L3: 238.9
Strom L1: 0.62
Strom L2: 1.65
Strom L3: 1.78
Leistungsfaktor: 0.899
Momentanleistung: 716
--------------------------------
I want do this on an Arduino ESP32. With your example i can receive the package but i always get error while receiving.
i have analyst the Arduino sampel from you. Which type of interface should i choose? I have test all type and Notify.GetData returns sometimes 0 but shown no data, sometime i get a number >250
Hi,
Hi,
This is DLMS data in two MBus frames. You can use GXDLMSDirector to show the content of this. Select "Tools" and "DLMS Translator". Then set the block ciphering key and you can see the result.
Frames:
1: 68 FA FA 68 53 FF 00 01 67 DB 08 4B 46 4D 65 50 9A D8 81 81 F8 20 00 14 A8 CA 58 A7 CC 6B 0C 13 79 B6 C6 86 84 52 38 14 F6 86 84 B2 9E 0D 9C DB 79 DB B0 94 FB 25 FF C2 06 89 FE DB B6 0D F6 A1 CC 39 DA 26 A0 06 A9 82 DE 5C E3 F6 6A B6 EF FE 09 7F 35 93 F2 94 21 E7 A5 91 33 A5 0C 22 B5 E6 10 E0 90 E4 A4 0C 6A 71 0C 86 F0 68 99 99 23 F2 4A 44 20 72 C1 A3 B5 A6 09 99 09 7C 4B C5 29 41 A7 60 00 BD E5 8C C8 EC C2 9F DA BF 1D 9E 92 8B 1E 74 61 24 F6 DB C3 82 9C 8D 94 5B 1E BD 07 5C 8C 34 68 DA 76 28 D8 86 40 55 88 AE 2A 9A 97 B0 84 3D EA 8F 90 FD B4 5D 59 47 94 D8 4B BD 00 A3 C0 36 37 E1 76 9D D6 74 4E 21 32 DF DA AB BB 6A CE 95 C5 BD 5E 42 15 FB F9 A7 76 51 9F 97 28 B2 81 5B 66 C8 94 24 D2 36 11 2E A1 7C DB 4C 3B BA B5 C1 9C 63 34 3D 2C DE 30 D2 1F 3E E9 A2
<WiredMBus len="FE" >
<TargetAddress Value="67" />
<SourceAddress Value="1" />
<!-- Command: SndUd -->
<!-- A-Field: 255 -->
<!-- CI-Field: 0 -->
<!-- Primary station: 103 -->
<!-- Secondary station: 1 -->
<NextFrame Value="DB084B464D65509AD88181F8200014A8CA58A7CC6B0C1379B6C68684523814F68684B29E0D9CDB79DBB094FB25FFC20689FEDBB60DF6A1CC39DA26A006A982DE5CE3F66AB6EFFE097F3593F29421E7A59133A50C22B5E610E090E4A40C6A710C86F068999923F24A442072C1A3B5A60999097C4BC52941A76000BDE58CC8ECC29FDABF1D9E928B1E746124F6DBC3829C8D945B1EBD075C8C3468DA7628D886405588AE2A9A97B0843DEA8F90FDB45D594794D84BBD00A3C03637E1769DD6744E2132DFDAABBB6ACE95C5BD5E4215FBF9A776519F9728B2815B66C89424D236112EA17CDB4C3BBAB5C19C63343D2CDE30D21F3EE9A2" />
</WiredMBus>
2: 68 14 14 68 53 FF 11 01 67 88 DB 60 B8 05 0F F6 D6 69 50 CE B6 73 CD AE
<WiredMBus len="18" >
<TargetAddress Value="67" />
<SourceAddress Value="1" />
<!-- Command: SndUd -->
<!-- A-Field: 255 -->
<!-- CI-Field: 17 -->
<!-- Primary station: 103 -->
<!-- Secondary station: 1 -->
<NextFrame Value="88DB60B8050FF6D66950CEB673CDAE" />
</WiredMBus>
PDU from the two frames:
<!-- IDIS system title:
Manufacturer Code: KFM
Device type: IDIS package1 PLC polyphase meter
Function type: Disconnector, Multi Utility
Serial number: 10147969
-->
<GeneralGloCiphering>
<SystemTitle Value="4B464D65509AD881" />
<CipheredService Value="200014A8CA58A7CC6B0C1379B6C68684523814F68684B29E0D9CDB79DBB094FB25FFC20689FEDBB60DF6A1CC39DA26A006A982DE5CE3F66AB6EFFE097F3593F29421E7A59133A50C22B5E610E090E4A40C6A710C86F068999923F24A442072C1A3B5A60999097C4BC52941A76000BDE58CC8ECC29FDABF1D9E928B1E746124F6DBC3829C8D945B1EBD075C8C3468DA7628D886405588AE2A9A97B0843DEA8F90FDB45D594794D84BBD00A3C03637E1769DD6744E2132DFDAABBB6ACE95C5BD5E4215FBF9A776519F9728B2815B66C89424D236112EA17CDB4C3BBAB5C19C63343D2CDE30D21F3EE9A288DB60B8050FF6D66950CEB673CDAE" />
</GeneralGloCiphering>
BR,
Mikko
ok, my documentation does not
ok, my documentation does not document a multi frame system.
I found a other project https://github.com/greenMikeEU/SmartMeterEVNKaifaMA309 . i have modify the source code, so he dont loop and read data from a fixed string.
Now i get the correct result.
--------------------------------
Wirkenergie+: 8960959
Wirkenergie: 0
MomentanleistungP+: 716
MomentanleistungP-: 0
Spannung L1: 238.4
Spannung L2: 237.7
Spannung L3: 238.9
Strom L1: 0.62
Strom L2: 1.65
Strom L3: 1.78
Leistungsfaktor: 0.899
Momentanleistung: 716
--------------------------------
I want do this on an Arduino ESP32. With your example i can receive the package but i always get error while receiving.
Peter
Hi Mikko,
Hi Mikko,
i have analyst the Arduino sampel from you. Which type of interface should i choose? I have test all type and Notify.GetData returns sometimes 0 but shown no data, sometime i get a number >250
Peter
Hi,
Hi,
Your interface must be WiredMBus. If your settings are not correct you don't get any output because the client can't parse the data.
Your example is using Gurux to parse the data. You must also set the Block cipher key to parsing the data.
BR,
Mikko