Closed dsammaritano closed 10 months ago
My spa is now back up and running for the summer, however I see no trace of this error. It looks like perhaps the API returned a bad result. Was this a one-off or do you continue to see issues?
Hello, I have the same error with my Bestway hot tub. Connection to the Bestway app works flawlessly.
my model is the "santorini" whirlpool with Hydrojet pro
When connecting to Home Assistant, I also get the error message: Error communicating with API: 'system_err1'
LOG: 2023-05-17 13:20:11.068 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1' 2023-05-17 13:20:11.072 WARNING (MainThread) [homeassistant.config_entries] Config entry 'm*@m.com' for bestway integration not ready yet: Error communicating with API: 'system_err1'; Retrying in background 2023-05-17 13:20:16.664 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1'
Please try the newly released v1.1.5 which will produce a useful log message next time this happens.
2023-05-17 20:32:39.345 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''not_here'' while decoding device attributes {"system_err2": 0, "wave_appm_min": 59940, "heat_timer_min": 0, "heat_power": 0, "earth": 0, "wave_timer_min": 59940, "system_err6": 0, "system_err7": 0, "system_err4": 0, "system_err5": 0, "heat_temp_reach": 0, "system_err3": 0, "system_err1": 0, "system_err8": 0, "system_err9": 0, "filter_timer_min": 0, "heat_appm_min": 0, "power": 1, "temp_set_unit": "\u6444\u6c0f", "filter_appm_min": 0, "temp_now": 28, "wave_power": 0, "locked": 1, "filter_power": 0, "temp_set": 30}
Drop the log entry on here and we'll know more.
even with version v1.1.5 I don't get any other log for me
2023-05-18 08:06:07.863 ERROR (MainThread) [frontend.js.latest.202305033] :0:0 Script error. 2023-05-18 08:06:36.298 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1' 2023-05-18 08:06:36.299 WARNING (MainThread) [homeassistant.config_entries] Config entry 'm**@***.com' for bestway integration not ready yet: Error communicating with API: 'system_err1'; Retrying in background 2023-05-18 08:06:41.849 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1' 2023-05-18 08:06:52.265 INFO (MainThread) [custom_components.bestway] Reusing existing access token 2023-05-18 08:06:52.351 DEBUG (MainThread) [custom_components.bestway.bestway] New data received for device 6YHnG491PpzozpLifqXJ4T 2023-05-18 08:06:52.351 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1' 2023-05-18 08:06:52.356 DEBUG (MainThread) [custom_components.bestway] Finished fetching Bestway API data in 0.090 seconds (success: False)
Hi guys I have update the integration to 1.1.15 as well, right now no connection error but SPA look like disconnect same log, if this can help
2023-05-19 07:24:29.485 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 21, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 704, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:24:59.438 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 22, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 705, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:25:29.444 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 22, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 705, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:25:59.416 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 23, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 706, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:26:29.529 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 23, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 706, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:26:59.418 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 24, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 707, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:27:29.455 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 24, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 707, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:27:59.435 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 25, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 708, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:29:00.713 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 26, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 709, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:29:30.662 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 27, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 710, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0} 2023-05-19 07:29:47.737 ERROR (MainThread) [custom_components.bestway.bestway] Unexpected missing key ''system_err1'' while decoding device attributes {"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": 27, "word4": 0, "word7": 31, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 710, "option6": 10244, "ver": 12614, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 31, "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": 1, "heat": 3, "Tunit": 1, "wave": 0, "word3": 0, "Tset": 34, "filter": 2, "E28": 0, "bit6": 0, "bit5": 1, "bit4": 0, "bit3": 1, "bit2": 0}
It looks like this model is using a completely different protocol.
I see @ocramgf is using a Santorini. What Spa do you have @dsammaritano?
Someone will need to decode enough of the values in that output to make sense of the values. This normally means changing one control at a time via the normal spa controls, then grabbing one of those lines of output to see what changed. This isn't something I can do without owning one of these newer devices.
In the mean time I will add some additional sensors to read out version numbers. There is something that appears to be a protocol version field. My spa claims version 3, so I'm hoping this output is being generated by something other than that.
Hi Sorry for delay, quite busy ...
I'm using Model Santorini, this have another pump named HydroJet Pro There is 2 modes for "Bubble" and another button "Jet"
This one should th last version provide by Bestway right now on model Santorini, Maldive, San Francisco ...
Give instructions if you need help
Questions that need answering by someone with a HydroJet Pro and these logs:
heat=3
where I'd expect to see a simple boolean value. What other values are possible? What does on/off look like? Do we get different values depending on whether the spa is actively heating or not?filter=2
instead of a boolean. What does filter on/off look like?Hi, On the pump itself the buttons look like another pump, but for Bubble there is 2 modes and that switch between full / half / off May be for that other switches use multi-value
There is now v1.4.0-alpha1 published as a beta release via HACS. This groups together a bunch of tasks around device support, and should add support for any Airjet_V01 or Hydrojet devices. The data to get this working has been scraped together from a number of different sources and combined with a bit of guesswork.
I'd very much appreciate some testing against real devices to confirm what's working, in particular:
Debug logging has also been extended to print out those attribute collections for known devices (previous this only happened for unrecognised devices). If anything doesn't work as expected, capturing these messages before and after device state changes will be essential.
SUCCESS I have had installed the integration quite a while ago, but didn’t had the time to track down the issues it had with my Hydrojet spa. Now I installed v1.4.0-alpha2 and it works for me!
Very happy right now! Thanks so much.
Details of my environment and test Spa: Bestway Lay-Z-Spa Dominica HydroJet, 2023 model (*1) Reference: https://www.bestwaycorp.com/Product/Item?id=1060165XXX23 **Location of operation: Germany
Test Cases
Turning Filter to ON and OFF Both commands work without issues. The pumps starts immediately after changing the state in Home Assistant (HA), but the switch in HA turns back to OFF-state and then its turns automatically back to ON after approx. 10 seconds. I assume this has to do with lag times in API communication in receiving an update of the state by the API.
Turning Spa Bubbles to ON, MEDIUM, MAX All three commands work as expected! Very nice. It activates the so called Airjet Massage (*2)
Temperature, Heating up
Remarks (1) This spa is according documentation NOT a Hydrojet Pro, but simply a Hydrojet (2) It turns on the Air Bubbles not the Hydrojet Massage, which is totally correct (*3) Did not test until now if the heating automatically stops when STP is reached, since it is fucking cold outside and want to prevent by power bill to explode… ;-)
Debug Logs
... as attachment debug.log
Thanks for the thorough testing and feedback 😄
I've just published v1.4.0-alpha3 to tweak a few things:
The thermostat is set by the integration but it's over to the spa when it comes to stopping when it reaches temperature. It'll almostly certainly be fine.
Can you explain the bubbles / airjets / hydrojets in this spa as I'm not familiar with them? Sounds great that the OFF/MEDIUM/MAX setting works as expected. Is there also a hydrojet massage system that the integration can't currently control?
Thanks, @cdpuk, for the super fast response. I am currently off-site so that I am not able to re-test, but will do on the weekend and will come back. Your statement re Set Point Temperature makes totally sense. Thx as well.
Regarding your question: There are two types of massage functions in Bestways Spas:
a) Airjet - produces air bubbles.I believe all Bestway Spas do have this feature. It is that function, that your integration triggers, when you turn on “bubbles”.
b) Hydrojet - produces a water jet at two or more places in the pool sidewalls (under water). I guess you do not utilize this functions currently with your intergration at all.
Functions (a) and (b) can be triggered by buttons on the Spa’s screen or the original Bestway app (see screenshot).
Hydrojet can be turned ON / OFF only. It can be combined with AirJet.
If you wish, I can send you some log HA output of a session when I turn Hydrojet ON and OFF. I would need then to know, where and what exactly to log….
Thanks for the explanation.
Debug logs should be possible via Settings > Devices & Services > Bestway, then "Enable Debug Logging" for a bit, and then "Disable Debug Logging" should trigger a log download.
The following should create enough information to understand how the Hydrojet switch works:
I just followed your suggested protocol. Here is the debug log output:
2024-01-13 15:47:36.373 DEBUG (MainThread) [custom_components.bestway.bestway.api] New data received for device 32okaUoeb1CaHv5kWlTaNk
2024-01-13 15:47:36.374 DEBUG (MainThread) [custom_components.bestway.bestway.api] Status for 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": 7, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 7, "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": 37, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
2024-01-13 15:47:36.374 DEBUG (MainThread) [custom_components.bestway.coordinator] Finished fetching Bestway API data in 0.113 seconds (success: True)
2024-01-13 15:48:06.379 DEBUG (MainThread) [custom_components.bestway.bestway.api] New data received for device 32okaUoeb1CaHv5kWlTaNk
2024-01-13 15:48:06.380 DEBUG (MainThread) [custom_components.bestway.bestway.api] Status for 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": 7, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 7, "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": 37, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
2024-01-13 15:48:06.380 DEBUG (MainThread) [custom_components.bestway.coordinator] Finished fetching Bestway API data in 0.119 seconds (success: True)
2024-01-13 15:48:36.372 DEBUG (MainThread) [custom_components.bestway.bestway.api] New data received for device 32okaUoeb1CaHv5kWlTaNk
2024-01-13 15:48:36.373 DEBUG (MainThread) [custom_components.bestway.bestway.api] Status for 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": 8, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 1, "E23": 0, "power": 1, "Tnow": 7, "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": 37, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
2024-01-13 15:48:36.373 DEBUG (MainThread) [custom_components.bestway.coordinator] Finished fetching Bestway API data in 0.112 seconds (success: True)
2024-01-13 15:49:06.369 DEBUG (MainThread) [custom_components.bestway.bestway.api] New data received for device 32okaUoeb1CaHv5kWlTaNk
2024-01-13 15:49:06.370 DEBUG (MainThread) [custom_components.bestway.bestway.api] Status for 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": 8, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 1, "E23": 0, "power": 1, "Tnow": 7, "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": 37, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
2024-01-13 15:49:06.370 DEBUG (MainThread) [custom_components.bestway.coordinator] Finished fetching Bestway API data in 0.109 seconds (success: True)
2024-01-13 15:49:36.388 DEBUG (MainThread) [custom_components.bestway.bestway.api] New data received for device 32okaUoeb1CaHv5kWlTaNk
2024-01-13 15:49:36.389 DEBUG (MainThread) [custom_components.bestway.bestway.api] Status for 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": 9, "word6": 0, "word1": 0, "word0": 0, "E29": 0, "word2": 0, "option6": 10244, "ver": 982, "E22": 0, "jet": 0, "E23": 0, "power": 1, "Tnow": 9, "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": 37, "filter": 0, "E28": 0, "bit6": 0, "bit5": 0, "bit4": 0, "bit3": 0, "bit2": 1}
2024-01-13 15:49:36.389 DEBUG (MainThread) [custom_components.bestway.coordinator] Finished fetching Bestway API data in 0.127 seconds (success: True)
Ah, there's a jet
property that's either 0
or 1
. Easy enough to add. Thanks for the logs.
v1.4.0-alpha5 is now available for testing jets control
Great. Hope I can do it latest on the weekend. Keep you posted.
Really great news. Did some testing: Works like charm!
Anyhow, I will take a closer look on this when it gets warmer and when we use the pool more frequently...
Keep you posted.
Many thanks for your work on this integration.
Bodo
Since things sound mostly there, I've released this as v1.4.0. Please report any problems as separate issues.
Custom integration done in EU API server, with login/pass and reboot I got that message : Error communicating with API: 'system_err1'
LOG
2023-04-24 08:18:05.269 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1' 2023-04-24 08:18:05.289 WARNING (MainThread) [homeassistant.config_entries] Config entry 'd****@w****.fr' for bestway integration not ready yet: Error communicating with API: 'system_err1'; Retrying in background 2023-04-24 08:18:28.591 ERROR (MainThread) [custom_components.bestway] Data update failed Traceback (most recent call last): File "/config/custom_components/bestway/init.py", line 140, in _async_update_data return await self.api.fetch_data() File "/config/custom_components/bestway/bestway.py", line 226, in fetch_data if device_attrs[f"system_err{err_num}"] == 1: KeyError: 'system_err1'