strandborg / AlsavoCtrl

Alsavo Heat Pump control application
Other
11 stars 1 forks source link

Seems not to be compatible with actual mqtt in homie4 #25

Closed foehlmann closed 7 months ago

foehlmann commented 7 months ago

Created from Dockerfile on arm64 ->

AttributeError: 'Client' object has no attribute '_sock' Traceback (most recent call last): File "/app/alsavo.py", line 164, in main() File "/app/alsavo.py", line 156, in main ctrl = Device_Alsavo(f"{device_id}", f"{device_name}", mqtt_settings=mqtt_settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/app/alsavo.py", line 44, in init super().init(device_id, name, homie_settings, mqtt_settings) File "/usr/local/lib/python3.11/site-packages/homie/device_base.py", line 96, in init self.mqtt_client = connect_mqtt_client(self, mqtt_settings) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/homie/mqtt/homie_mqtt_client.py", line 65, in connect_mqtt_client mqtt_client.connect() File "/usr/local/lib/python3.11/site-packages/homie/mqtt/paho_mqtt_client.py", line 51, in connect self.mqtt_client = mqtt_client.Client( ^^^^^^^^^^^^^^^^^^^ TypeError: Client.init() missing 1 required positional argument: 'callback_api_version'

strandborg commented 7 months ago

Looks like paho-mqtt (a dependency of Homie4) was updated to version 2.0 while Homie4 is still using the earlier version. I have fixed the same issue in another project of mine, and copypasted the fix here as well: the main branch at 9ea7722ad1d19b997e52b7fe23b9a2814da0a07a should now contain a fix for this , hopefully; I have not tested this myself at all, please let me know if this fixes the issue for you.