cdpuk/ha-bestway

API Comm Problems (Hydrojet)

Closed this issue · 3 comments

Home Assistant version: 2023.8.4
HACS version: 1.32.1
Bestway HACS custom component version: v1.2.0

Bestway Lay-Z Spa: Dominica HydroJet

WiFi: Setup and working
Bestway app: set up and working seamless

Location: Germany
API: EU

Problem

I have successfully installed the custom component into HACS and HA. The component seems to connect to the API and creates a devices with five entities:

Bildschirmfoto 2023-09-01 um 13 12 50

However, no further entities created.

Logs

While initially five entities are available....

Bildschirmfoto 2023-09-01 um 13 19 52

...
...... they become unavailable after a few minutes...

Bildschirmfoto 2023-09-01 um 13 15 10

Edit: Found some traces in the log…

Logs

This error originated from a custom integration.

Logger: custom_components.bestway.bestway.api
Source: custom_components/bestway/bestway/api.py:248
Integration: Bestway (documentation, issues)
First occurred: September 1, 2023 at 17:49:13 (1427 occurrences)
Last logged: 05:43:43

Status for unknown device type 'Hydrojet' returned: {"E19": 0, "E18": 0, "E32": 0, "E31": 0, "E30": 0, "E11": 0, "E10": 0, "E13": 0, "E12": 0, "E15": 0, "E14": 0, "E17": 0, "E16": 0, "word5": 0, "word4": 0, "word7": 27, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 27, "option7": 10260, "option4": 60, "option5": 27176, "option2": 0, "option3": 30, "option0": 59940, "option1": 59940, "E24": 0, "E25": 0, "E26": 0, "E27": 0, "E20": 0, "E21": 0, "E08": 0, "E09": 0, "E06": 0, "E07": 0, "E04": 0, "E05": 0, "E02": 0, "E03": 0, "E01": 0, "bit7": 0, "heat": 0, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 38, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
Status for unknown device type 'Hydrojet' returned: {"E19": 0, "E18": 0, "E32": 0, "E31": 0, "E30": 0, "E11": 0, "E10": 0, "E13": 0, "E12": 0, "E15": 0, "E14": 0, "E17": 0, "E16": 0, "word5": 0, "word4": 0, "word7": 27, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 26, "option7": 10260, "option4": 60, "option5": 27176, "option2": 0, "option3": 30, "option0": 59940, "option1": 59940, "E24": 0, "E25": 0, "E26": 0, "E27": 0, "E20": 0, "E21": 0, "E08": 0, "E09": 0, "E06": 0, "E07": 0, "E04": 0, "E05": 0, "E02": 0, "E03": 0, "E01": 0, "bit7": 0, "heat": 0, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 38, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
Status for unknown device type 'Hydrojet' returned: {"E19": 0, "E18": 0, "E32": 0, "E31": 0, "E30": 0, "E11": 0, "E10": 0, "E13": 0, "E12": 0, "E15": 0, "E14": 0, "E17": 0, "E16": 0, "word5": 0, "word4": 0, "word7": 26, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 26, "option7": 10260, "option4": 60, "option5": 27176, "option2": 0, "option3": 30, "option0": 59940, "option1": 59940, "E24": 0, "E25": 0, "E26": 0, "E27": 0, "E20": 0, "E21": 0, "E08": 0, "E09": 0, "E06": 0, "E07": 0, "E04": 0, "E05": 0, "E02": 0, "E03": 0, "E01": 0, "bit7": 0, "heat": 0, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 38, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
Status for unknown device type 'Hydrojet' returned: {"E19": 0, "E18": 0, "E32": 0, "E31": 0, "E30": 0, "E11": 0, "E10": 0, "E13": 0, "E12": 0, "E15": 0, "E14": 0, "E17": 0, "E16": 0, "word5": 0, "word4": 0, "word7": 26, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 25, "option7": 10260, "option4": 60, "option5": 27176, "option2": 0, "option3": 30, "option0": 59940, "option1": 59940, "E24": 0, "E25": 0, "E26": 0, "E27": 0, "E20": 0, "E21": 0, "E08": 0, "E09": 0, "E06": 0, "E07": 0, "E04": 0, "E05": 0, "E02": 0, "E03": 0, "E01": 0, "bit7": 0, "heat": 0, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 38, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
Status for unknown device type 'Hydrojet' returned: {"E19": 0, "E18": 0, "E32": 0, "E31": 0, "E30": 0, "E11": 0, "E10": 0, "E13": 0, "E12": 0, "E15": 0, "E14": 0, "E17": 0, "E16": 0, "word5": 0, "word4": 0, "word7": 25, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 25, "option7": 10260, "option4": 60, "option5": 27176, "option2": 0, "option3": 30, "option0": 59940, "option1": 59940, "E24": 0, "E25": 0, "E26": 0, "E27": 0, "E20": 0, "E21": 0, "E08": 0, "E09": 0, "E06": 0, "E07": 0, "E04": 0, "E05": 0, "E02": 0, "E03": 0, "E01": 0, "bit7": 0, "heat": 0, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 38, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}

Further Logging

This error originated from a custom integration.

Logger: custom_components.bestway.coordinator
Source: custom_components/bestway/coordinator.py:35
Integration: Bestway (documentation, issues)
First occurred: 03:52:27 (1 occurrences)
Last logged: 03:52:27

Data update failed
Traceback (most recent call last):
File "/config/custom_components/bestway/coordinator.py", line 37, in _async_update_data
return await self.api.fetch_data()
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/bestway/bestway/api.py", line 166, in fetch_data
latest_data = await self._do_get(
^^^^^^^^^^^^^^^^^^^
File "/config/custom_components/bestway/bestway/api.py", line 392, in _do_get
response = await self._session.get(url, headers=headers)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/client.py", line 560, in _request
await resp.start(conn)
File "/usr/local/lib/python3.11/site-packages/aiohttp/client_reqrep.py", line 899, in start
message, payload = await protocol.read() # type: ignore[union-attr]
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/aiohttp/streams.py", line 616, in read
await self._waiter
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/config/custom_components/bestway/coordinator.py", line 35, in _async_update_data
async with async_timeout.timeout(10):
File "/usr/local/lib/python3.11/site-packages/async_timeout/init.py", line 129, in aexit
self._do_exit(exc_type)
File "/usr/local/lib/python3.11/site-packages/async_timeout/init.py", line 212, in _do_exit
raise asyncio.TimeoutError
TimeoutError

I think the "Hydrojet" is not implemented at this time, would be great if someone cann add this device!

I know, but I thought that I could view/control all other entities, like current temperature, target temperature, heating and filtering.

Hope, that someone is able to implement support for HydroJet models.

cdpuk commented

I'm going to close this as a duplicate of #16. Adding support should not be difficult, but there are some questions in that discussion that can only be answered by an owner of such a model. Basically the spa needs to be manually changed between all possible states one at a time using its own controls (or the app), then capture the integration log output that reports how the various states are represented via the API.