MTrab / pyworxcloud

PyPI module for integrating with Worx Cloud devices
GNU General Public License v3.0
22 stars 20 forks source link

Firmware version is no longer a floating point number and parsing fails as a result #172

Closed oakedcorn closed 1 year ago

oakedcorn commented 1 year ago

In the Worx app, the firmware is "3.32.0+1". pyworxcloud seems to parse this as "{:.2f}".format, which fails. Pyworxcloud version 3.1.14 (+ landroid_cloud version 3.0.5)

Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 388, in async_setup
    result = await component.async_setup_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/landroid_cloud/__init__.py", line 63, in async_setup_entry
    result = await _async_setup(hass, entry)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/landroid_cloud/__init__.py", line 206, in _async_setup
    await hass.async_add_executor_job(cloud.connect)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pyworxcloud/__init__.py", line 259, in connect
    self._fetch()
  File "/usr/local/lib/python3.11/site-packages/pyworxcloud/__init__.py", line 611, in _fetch
    self._mowers = self._api.get_mowers()
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/pyworxcloud/api.py", line 119, in get_mowers
    mower["firmware_version"] = "{:.2f}".format(mower["firmware_version"])
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ValueError: Unknown format code 'f' for object of type 'str'
kvj commented 1 year ago

:heavy_plus_sign: 1 to the report. I'm also affected

todely commented 1 year ago

same for me