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

ht_proxy.py never recovers from USB disconnect #23

Open
joed74 opened this issue Nov 2, 2022 · 4 comments
Open

ht_proxy.py never recovers from USB disconnect #23

joed74 opened this issue Nov 2, 2022 · 4 comments

Comments

@joed74
Copy link

joed74 commented Nov 2, 2022

I am using a pitiny adapter with an ttl USB converter.
I am using an udev-rule so that the USB device always shows up as /dev/heatronic3 symlink.

If i disconnect the USB port and reconnect it, ht_proxy just freezes and i must restart ht_proxy and ht_collgate.

Would be nice, if ht_proxy could try to reconnect every second or so...

@norberts1 norberts1 added the bug label Nov 3, 2022
@norberts1
Copy link
Owner

I'll check this. Best to throw an exception and try to reconnect that interface n-times.

@norberts1
Copy link
Owner

@joed74
Please update your system with that modified files:

  1. ~/HT3/sw/lib/ht_proxy_if.py
  2. ~/HT3/sw/lib/ht_release.py

After this update stop and restart that processes with:

  1. sudo systemctl stop ht_collgate.service
  2. sudo systemctl stop ht_proxy.service
  3. sudo systemctl start ht_proxy.service
  4. sudo systemctl start ht_collgate.service

Above mentioned problem is fixed with this modification.
Please check it out at your system.
Keep in mind that:
After disconnection and reconnecting the USB port the ht_proxy.py will restart and reopen that serial USBport connection and RESTART also that TCPServer.
So you have to reconnect all previously connected proxy-clients.

@joed74
Copy link
Author

joed74 commented Dec 15, 2022

Above mentioned problem is fixed with this modification.

ht_proxy now connects wonderfully again, but the basic problem that no more graphs are drawn and no more data is transmitted via mqtt is still there as before ;(

So you have to reconnect all previously connected proxy-clients.

What is the difference between:

before: USB disconnect, reconnect ht_proxy_if.py stops working, ht_collgate.py stops working -> no graphs update, no mqtt upate (frozen)

now: USB disconnect, reconnect ht_proxy_if.py still working, ht_collgate.py stops working -> no graphs update, no mqtt update (frozen)

Isn't it possible to hold the client connections up and running an only reconnect to the USB data source?

Additional observation: The status in the MQTT remains online, although no data has been sent for half an hour...

@norberts1
Copy link
Owner

Additional observation: The status in the MQTT remains online, although no data has been sent for half an hour...

The MQTT-status 'online' is assigned to the MQTT-client availabilty itself and not to any data-transfer. The 'ht_collgate.py' and it's included mqtt-client are still running, so that MQTT-status must be 'online'.

Isn't it possible to hold the client connections up and running an only reconnect to the USB data source?

Yes, this should be possible and a solution. But keep in mind also that socket- and thread-handling is my aim to be improved.
This takes a bit time, so in the meantime don't disconnect that USB-port and use it as a stable connected serial interface.

@norberts1 norberts1 added enhancement and removed bug labels Jul 31, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants