Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Socket Timeout #27

Open
gucluceyhan opened this issue Feb 14, 2022 · 3 comments
Open

Socket Timeout #27

gucluceyhan opened this issue Feb 14, 2022 · 3 comments

Comments

@gucluceyhan
Copy link

gucluceyhan commented Feb 14, 2022

Hello,

I am trying to implement this code but every time I try I am having 'Socket Timeout' warning.

The meter is Kohler AEL.TF.19 which is using IEC62056-21 protocol to communicate. I am sure that the both the meter and the modem are running perfectly since when I tried it with HW-Group's Hercules Software it connects and gets the data.

If you can help me about the process I'll be glad.

from iec62056_21.client import Iec6205621Client client = Iec6205621Client.with_tcp_transport(address=('5.26.220.136', 502), dev$ password_challange = client.access_programming_mode() client.send_password('00000000') # Common standard password data_answer = client.read_value('1.8.0')

@Krolken
Copy link
Contributor

Krolken commented Feb 14, 2022

OK. What happens when you just try to do a standard readout:

from iec62056_21.client import Iec6205621Client

client = Iec6205621Client.with_tcp_transport(address=('192.168.0.1', 8000), device_address='12345678', password='00000000')
client.connect()
print(client.standard_readout())

Also if you have some debug output that would be good.

@gucluceyhan
Copy link
Author

gucluceyhan commented Feb 14, 2022

14:53:54,32 DEBUG: Connecting to ('5.26.220.136', 502)
14:53:54,870 INFO: Staring init sequence
14:53:54,870 INFO: Sending request message: RequestMessage(device_address='51024441')
14:53:54,870 DEBUG: Sent b'/?510244418!\r\n' over transport: TcpTransport
14:53:54,870 DEBUG: Resting for 0.25 seconds
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/transports.py", line 339, in _recv
b = self.socket.recv(chars)
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/Users/gucluceyhan/test_sayac.py", line 13, in
print(client.standard_readout())
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/client.py", line 179, in standard_readout
self.startup()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/client.py", line 145, in startup
ident_msg = self.read_identification()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/client.py", line 247, in read_identification
data = self.transport.simple_read(start_char="/", end_char="\x0a")
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/transports.py", line 144, in simple_read
b = self.recv(1)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/transports.py", line 191, in recv
return self._recv(chars)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/iec62056_21/transports.py", line 341, in _recv
raise TransportError from e
iec62056_21.transports.TransportError

@Krolken
Copy link
Contributor

Krolken commented Feb 14, 2022

OK. So the device wont even reply.

First thing is to omitt the address. Just set it to "". This usually works for point-to-point interfaces.

It could also be that the modem does not do a conversion to 7E1 and you need to so that client side. See my answer here for more info: #16 (comment)

If your Hercules program have a communication log it would be good if you could add it to the issue to see if they are doing stuff in a weird way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants