I can already read data with an ESP Microcontroller Board running https://github.com/gskjold/AmsToMqttBridge.
I am also interested in reading with DLMSDirector, but did not really succeed yet.
I can see raw data coming in in a terminal program when connecting through an FTDI Cable.
I see data in DLMSDirector coming in, in the trace- and notifications- panes.
I can even decode the notifications to XML, if i paste it into DLMS Translator when i have set INTERFACE to HLDC.
What am i missing to get the decoded data directly in Director?
Have you read the association view with GXDLMSDirector? You need to establish the connection for the meter with the correct settings. Check the Interface and client and server address and connect for the meter. GXDLMSDirector reads the association view automatically after a successful connection.
Ah, thanks. Association view... No, did not know about that one. Now i found a chapter about it in the help: https://www.gurux.fi/GXDLMSDirectorHelp#:~:text=Reading%20available%20o…
The mentioned Refresh option is not in the tools menu for me, but in File... (is the Help outdated?)
And it is grayed out, so can't use it.
There are other things greyed out too, eg. disconnect. Even after i connect.
Explanation of what i see:
Opening GXDirector, all actions related to a meter like connect..... delete are greyed out.
After loading my config, Connect and Delete are available.
After i Connect, i see the data coming in as HEX in the Trace window, and Notifications as HEX or XML.
Connect is now greyed out too (makes sense as i am connected), a bit illogical, also disconnect is still greyed out, but ok, Cancel is available to close the connection.
Also in the File Menu, Refresh F5 is still greyed out.
Interface is set to HDLC
Client and Server Adress? Not sure where that's set and what to put...
Seems not to make sense for data pushed over serial...
In the settings, i tried 0 and 1 for logical and physical Server and for client.
That did not make a difference.
PS:
Another strange looking detail, but i think it's not causing problems:
In settings, the serial port is set to 2400b, yet the shown commandline says 9600b.
You can't establish the connection for the meter. I believe that one of your settings is invalid or you can't establish the connection for security reasons.
The data you received is a push message. This is the message that the meter is sending periodically. You can just listen to the serial port and parse the received push messages. It's the easy way to get the besic readings from this meter.
>I believe that one of your settings is invalid
what setting(s) could that be?
I assume everything about server/client address has no meaning in the context of reading push from com port, right?
>or you can't establish the connection for security reasons.
what kind of security reasons are u thinking of? you mean something within GXDirector?
There is no other "connection" thing going on than opening the com port and listining for data in my case...
I did enter the cipher and auth keys, and this enables me to decode the data in the DLMS Translator Tool.
After i click "Connect", Data coming in on the COM port IS seen by DXDirector. I see it every 10s arriving line by line in the trace panel, and then after all data is arrived, a whole block of hex is shown at once in the notifications pane.
So, the part of reading from the com port works perfectly fine.
Also, manual decode works, i just had to set the crypto and auth keys.
What is not working is the automatic processing of the received data every 10s.
>The data you received is a push message. This is the message that the meter is sending periodically. You can just listen to the serial port
Yes, i am aware the meter is not listening at all (rx pin is not even connected), it is just pushing the data every 10sec.
>and parse the received push messages
How should/could i parse the data, besides what i already did?
That is, i copy the output from the message window to the DLMS Translator and click the loupe.
I would wish this decode was done automatically after each receive.
Also, the XML output from the translator is still only partially decoded, the reading of 1.8.0 is still in hex, not decoded to decimal:
# 1.1.1.8.0.255
<OctetString Value="0101010800FF" />
<UInt32 Value="0003ECA3" />
Can this be decoded too, to get a simple output like so?
1.8.0 = 257187
You don't need client or server address for push messages, but they must be correct if you want to establish the connection for the meter.
Several electric utilizers don't allow establishing the connection for the meter for security reasons. Meters are just sending push messages. If client can establish the connection, it's always possible to affect the meter.
It's not possible to use simpler output because data can be anything. Some meters are sending structures, etc. but you can easily convert data for outpost you want to.
I believe that it's easiest if you download Push listener and modify it for your needs.
Hi,
Hi,
Have you read the association view with GXDLMSDirector? You need to establish the connection for the meter with the correct settings. Check the Interface and client and server address and connect for the meter. GXDLMSDirector reads the association view automatically after a successful connection.
BR,
Mikko
Ah, thanks. Association view.
Ah, thanks. Association view... No, did not know about that one. Now i found a chapter about it in the help:
https://www.gurux.fi/GXDLMSDirectorHelp#:~:text=Reading%20available%20o…
The mentioned Refresh option is not in the tools menu for me, but in File... (is the Help outdated?)
And it is grayed out, so can't use it.
There are other things greyed out too, eg. disconnect. Even after i connect.
Explanation of what i see:
Opening GXDirector, all actions related to a meter like connect..... delete are greyed out.
After loading my config, Connect and Delete are available.
After i Connect, i see the data coming in as HEX in the Trace window, and Notifications as HEX or XML.
Connect is now greyed out too (makes sense as i am connected), a bit illogical, also disconnect is still greyed out, but ok, Cancel is available to close the connection.
Also in the File Menu, Refresh F5 is still greyed out.
Interface is set to HDLC
Client and Server Adress? Not sure where that's set and what to put...
Seems not to make sense for data pushed over serial...
In the settings, i tried 0 and 1 for logical and physical Server and for client.
That did not make a difference.
PS:
Another strange looking detail, but i think it's not causing problems:
In settings, the serial port is set to 2400b, yet the shown commandline says 9600b.
Data decoded my Translator:
<HDLC len="1E8" >
<TargetAddress Value="20" />
<SourceAddress Value="1" />
<!-- Notification frame. -->
<FrameType Value="13" />
<PDU>
<!-- DLMS system title:
Manufacturer Code: KAM
Serial number: 820477
-->
<!-- Invocation Counter: 108965 -->
<!-- Decrypt data: 0F 00 00 00 00 0C 07 E6 0B 08 02 15 38 1E FF 80 00 00 02 41 0A 0E 4B 61 6D 73 74 72
...
etc.
3D 08 00 FF 06 00 00 71 21
<DataNotification>
# Invoke ID: 0
<LongInvokeIdAndPriority Value="00000000" />
# 08.11.2022 21:56:30
<DateTime Value="07E60B080215381EFF800000" />
<NotificationBody>
<DataValue>
<Structure Qty="41" >
<String Value="Kamstrup_V0001" />
# 1.1.1.8.0.255
<OctetString Value="0101010800FF" />
<UInt32 Value="0003ECA3" />
Hi,
Hi,
You can't establish the connection for the meter. I believe that one of your settings is invalid or you can't establish the connection for security reasons.
The data you received is a push message. This is the message that the meter is sending periodically. You can just listen to the serial port and parse the received push messages. It's the easy way to get the besic readings from this meter.
BR,
Mikko
>I believe that one of your
>I believe that one of your settings is invalid
what setting(s) could that be?
I assume everything about server/client address has no meaning in the context of reading push from com port, right?
>or you can't establish the connection for security reasons.
what kind of security reasons are u thinking of? you mean something within GXDirector?
There is no other "connection" thing going on than opening the com port and listining for data in my case...
I did enter the cipher and auth keys, and this enables me to decode the data in the DLMS Translator Tool.
After i click "Connect", Data coming in on the COM port IS seen by DXDirector. I see it every 10s arriving line by line in the trace panel, and then after all data is arrived, a whole block of hex is shown at once in the notifications pane.
So, the part of reading from the com port works perfectly fine.
Also, manual decode works, i just had to set the crypto and auth keys.
What is not working is the automatic processing of the received data every 10s.
>The data you received is a push message. This is the message that the meter is sending periodically. You can just listen to the serial port
Yes, i am aware the meter is not listening at all (rx pin is not even connected), it is just pushing the data every 10sec.
>and parse the received push messages
How should/could i parse the data, besides what i already did?
That is, i copy the output from the message window to the DLMS Translator and click the loupe.
I would wish this decode was done automatically after each receive.
Also, the XML output from the translator is still only partially decoded, the reading of 1.8.0 is still in hex, not decoded to decimal:
# 1.1.1.8.0.255
<OctetString Value="0101010800FF" />
<UInt32 Value="0003ECA3" />
Can this be decoded too, to get a simple output like so?
1.8.0 = 257187
Hi,
Hi,
You don't need client or server address for push messages, but they must be correct if you want to establish the connection for the meter.
Several electric utilizers don't allow establishing the connection for the meter for security reasons. Meters are just sending push messages. If client can establish the connection, it's always possible to affect the meter.
It's not possible to use simpler output because data can be anything. Some meters are sending structures, etc. but you can easily convert data for outpost you want to.
I believe that it's easiest if you download Push listener and modify it for your needs.
https://github.com/Gurux/Gurux.DLMS.Net/tree/master/Gurux.DLMS.Push.Lis…
BR,
Mikko