sh00t2kill / dolphin-robot

A custom Home Assistant Component for WiFI enabled Maytronics Dolphin pool cleaner robots
45 stars 9 forks source link

Navigate feature format and usage for "pickup" function #223

Open gllmlbrt opened 1 month ago

gllmlbrt commented 1 month ago

Hi,

Thank you very much for your work to provide this integration. The login was complicated with the recent change but it worked like a charm. I have the following device: "DOLPHIN E35i EU CB", and notably this device does not have the pick-up function (and does not have LED or scheduling function and other advanced cleaning modes) but it has the manual navigtion function.

I would like to create an automation which when called repeatedly manual navigate foward to create a "pickup" situation where the robot is at the waterline waiting. Which is what the pickup function is.

So I have the following issue:

When trying to call the service in the developer i get the following error note as the service could not be called, whether I add the target vacuum or not. I have try several variation of indentations and formats: image image While I followed the format provided in the readme here, I cannot get it to fire.

I am probably doing something wrong, but I searched in the closed issues and elsewhere on this github and could not sort it out.


Interestingly also, the E35i is not supposed to have the advanced cleaning modes Ultra Clean, floor only etc.. but when calling them from the vacuum entity "fan speed" drop down they start and diplay correctly in the Dolphin app as "ultraclean), eventhough it is not selectable in the app and runs as expected, which proves that it is a software only restriction to push customers to buy the next model. So would it be a possibility to fire the "pick-up" function anyways despite it being removed from the app for this model ? I tried from the vacuum entity fan speed drop down and while it works for all the clearning mode, it does not for the pickup selection.

elad-bar commented 1 month ago

can you pls extract diagnsotic data and share it over my discord in DM? Invite for the Discord channel: https://discord.gg/uKm5uN8pjF

thanks

gllmlbrt commented 1 month ago

Hello. Thanks for the update. I did install the 1.0.20. Now it accepts the format. However I get errors whether I insert a target Entity_id as requires in the readme, or not as in the template in Hass.

2024-08-04 09:47:24.096 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Unexpected error for call_service at pos 1: 'ServiceCall' object has no attribute 'get'
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 527, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action
    return await long_task
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2731, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2774, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mydolphin_plus/managers/coordinator.py", line 841, in _service_navigate
    direction = data.get(CONF_DIRECTION)
                ^^^^^^^^
AttributeError: 'ServiceCall' object has no attribute 'get'
2024-08-04 09:47:24.101 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281472797617760] Error handling message: Unknown error (unknown_error) User from 127.0.0.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36)
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/decorators.py", line 28, in _handle_async_response
    await func(hass, connection, msg)
  File "/usr/src/homeassistant/homeassistant/components/websocket_api/commands.py", line 793, in handle_execute_script
    script_result = await script_obj.async_run(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 1770, in async_run
    return await asyncio.shield(create_eager_task(run.async_run()))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 465, in async_run
    await self._async_step(log_exceptions=False)
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 529, in _async_step
    self._handle_exception(
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 559, in _handle_exception
    raise exception
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 527, in _async_step
    await getattr(self, handler)()
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 764, in _async_call_service_step
    response_data = await self._async_run_long_action(
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/script.py", line 727, in _async_run_long_action
    return await long_task
           ^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2731, in async_call
    response_data = await coro
                    ^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/core.py", line 2774, in _execute_service
    return await target(service_call)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/mydolphin_plus/managers/coordinator.py", line 841, in _service_navigate
    direction = data.get(CONF_DIRECTION)
                ^^^^^^^^
AttributeError: 'ServiceCall' object has no attribute 'get

And when I add the robot as target entity, then nothing happens at all and get this error:


2024-08-04 09:49:21.549 ERROR (MainThread) [homeassistant.helpers.script.websocket_api_script] websocket_api script: Error executing script. Invalid data for call_service at pos 1: extra keys not allowed @ data['entity_id']
2024-08-04 09:49:21.549 ERROR (MainThread) [homeassistant.components.websocket_api.http.connection] [281472797617760] Error handling message: extra keys not allowed @ data['entity_id']. Got None (invalid_format) User from 127.0.0.1 (Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36)

So anyways, the readme should be revised. Happy to do a PR for that, but seems trivial at this point. Will do when all sorted out.