This doesn't look like any protocol that I know. I believe that your serial port settings are different than the meter uses.
Try to start the app with
python main.py -s /dev/ttyUSB0:B8:14400
OR
python main.py -s /dev/ttyUSB0:B8:19200
OR
python main.py -s /dev/ttyUSB0:B8:38400
OR
python main.py -s /dev/ttyUSB0:B8:56000
OR
python main.py -s /dev/ttyUSB0:B8:57600
The app is using different baud rates. You should see a message that starts with 7E. Your serial port settings are correct when you see that.
So far no luck with any of the mentioned serial port settings.
I also tried (and failed) Gurux.DLMS.Client.Example.python with the following output.
Maybe Finnish meters cannot be read?
```
$ python main.py -t Verbose -S /dev/ttyUSB0
gurux_dlms version: 1.0.139
gurux_net version: 1.0.19
gurux_serial version: 1.0.20
Authentication: Authentication.NONE
ClientAddress: 0x10
ServerAddress: 0x1
Standard: Standard.DLMS
TX: 19:31:15 7E A0 07 03 21 93 0F 01 7E
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
RX: 19:31:45 00 00 FF F0 F8 50 F6 FB 3C C8 15 FF F0 F8 50 F6 FB 3C 88 FC FF F0 F8 50 F6 FB 3C C8 15
DisconnectRequest
Traceback (most recent call last):
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/main.py", line 112, in main
reader.readAll(settings.outputFile)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 532, in readAll
self.initializeConnection()
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 306, in initializeConnection
self.readDLMSPacket(data, reply)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 118, in readDLMSPacket
self.readDLMSPacket2(data, reply)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 169, in readDLMSPacket2
raise e
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 162, in readDLMSPacket2
raise TimeoutException("Failed to receive reply from the device in given time.")
gurux_common.TimeoutException.TimeoutException: Failed to receive reply from the device in given time.
Ended. Press any key to continue.
```
If the meter sends push messages you don't establish the connection for the meter or read anything. You just wait for the data the meter sends.
I found 3 pcs of Echelon 83332 meters from the shelf. They are older and they don't send push messages and they don't use DLMS. I sent an email to Echelon and asked if the new firmware can be send so this can be tested.
A reply is usually coming in a few days. I'll inform you as soon as I have more information about this.
Hi,
Hi,
If you add a received push message as a hex string so I can check if the push message is sent as DLMS and what are the settings.
BR,
Mikko
Hi Mikko,
Hi Mikko,
Thanks for such a quick reply!
Here's the output from Push Listener Example.
Push messages are sent/received every five seconds and split to two rows.
```
gurux_dlms version: 1.0.139
gurux_net version: 1.0.19
gurux_serial version: 1.0.20
/dev/ttyUSB0:9600 8NONE1
Press any key to close the application.
Media state changed. MediaState.OPENING
trace:10:23:23 TraceTypes.INFO Settings: Port: /dev/ttyUSB0 Baud Rate: BaudRate.BAUD_RATE_9600 Data Bits: 8 Parity: Parity.NONE Stop Bits: StopBits.ONE Eop:126
Media state changed. MediaState.OPEN
New data is received. /dev/ttyUSB0:00 59 00 00 4E 00 00 00 00 00 00
New data is received. /dev/ttyUSB0:00 00 61 B8 7B 0B 00 01 00 00 00 00 00 00 00 03 00 00 00 00 08 00 00 00 00 00 00 00 E2 0A 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 00 00 00 00 00 00 B1 00 00 00 00 E4 4F DF 51 22 22 E0 5C
New data is received. /dev/ttyUSB0:00 59 00 00 4E 00 00 00 00 00 00 00 00 65 B8
New data is received. /dev/ttyUSB0:7B 0B 00 01 00 00 00 00 00 00 00 03 00 00 00 00 08 00 00 00 00 00 00 00 E0 0A 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 00 00 00 00 00 00 B3 00 00 00 00 15 91 A6 FF 07 A9 34 AF
New data is received. /dev/ttyUSB0:00 59 00 00 4E
New data is received. /dev/ttyUSB0:00 00 00 00 00 00 00 00 69 B8 7B 0B 00 01 00 00 00 00 00 00 00 03 00 00 00 00 08 00 00 00 00 00 00 00 E6 0A 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 00 00 00 00 00 00 B1 00 00 00 00 F0 ED 7B C2 07 21 29 74
New data is received. /dev/ttyUSB0:00 59 00 00 4E 00 00 00 00 00 00 00 00 6D
New data is received. /dev/ttyUSB0:B8 7B 0B 00 01 00 00 00 00 00 00 00 03 00 00 00 00 08 00 00 00 00 00 00 00 FA 0A 00 00 00 09 00 00 00 00 00 00 00 00 00 00 00 00 0A 00 00 00 00 00 00 00 00 00 00 00 00 0B 00 00 00 00 00 00 00 B1 00 00 00 00 BE 0A DD 9B 0E 0B F8 5F
```
Hi,
Hi,
This doesn't look like any protocol that I know. I believe that your serial port settings are different than the meter uses.
Try to start the app with
python main.py -s /dev/ttyUSB0:B8:14400
OR
python main.py -s /dev/ttyUSB0:B8:19200
OR
python main.py -s /dev/ttyUSB0:B8:38400
OR
python main.py -s /dev/ttyUSB0:B8:56000
OR
python main.py -s /dev/ttyUSB0:B8:57600
The app is using different baud rates. You should see a message that starts with 7E. Your serial port settings are correct when you see that.
BR,
Mikko
Many thanks for helping me
Many thanks for helping me out!
So far no luck with any of the mentioned serial port settings.
I also tried (and failed) Gurux.DLMS.Client.Example.python with the following output.
Maybe Finnish meters cannot be read?
```
$ python main.py -t Verbose -S /dev/ttyUSB0
gurux_dlms version: 1.0.139
gurux_net version: 1.0.19
gurux_serial version: 1.0.20
Authentication: Authentication.NONE
ClientAddress: 0x10
ServerAddress: 0x1
Standard: Standard.DLMS
TX: 19:31:15 7E A0 07 03 21 93 0F 01 7E
Data send failed. Try to resend 1/3
Data send failed. Try to resend 2/3
RX: 19:31:45 00 00 FF F0 F8 50 F6 FB 3C C8 15 FF F0 F8 50 F6 FB 3C 88 FC FF F0 F8 50 F6 FB 3C C8 15
DisconnectRequest
Traceback (most recent call last):
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/main.py", line 112, in main
reader.readAll(settings.outputFile)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 532, in readAll
self.initializeConnection()
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 306, in initializeConnection
self.readDLMSPacket(data, reply)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 118, in readDLMSPacket
self.readDLMSPacket2(data, reply)
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 169, in readDLMSPacket2
raise e
File "/home/pi/Gurux.DLMS.Python/Gurux.DLMS.Client.Example.python/GXDLMSReader.py", line 162, in readDLMSPacket2
raise TimeoutException("Failed to receive reply from the device in given time.")
gurux_common.TimeoutException.TimeoutException: Failed to receive reply from the device in given time.
Ended. Press any key to continue.
```
Hi,
Hi,
If the meter sends push messages you don't establish the connection for the meter or read anything. You just wait for the data the meter sends.
I found 3 pcs of Echelon 83332 meters from the shelf. They are older and they don't send push messages and they don't use DLMS. I sent an email to Echelon and asked if the new firmware can be send so this can be tested.
A reply is usually coming in a few days. I'll inform you as soon as I have more information about this.
BR,
Mikko
Thanks again. Amazing effort!
Thanks again. Amazing effort!
Just to let you know the exact model is Echelon 83332-3IHAH.
I contacted Caruna, my energy distribution company, and they were quite strict that optical port cannot be used by end customer. ¯\_(ツ)_/¯