home-assistant / core

:house_with_garden: Open source home automation that puts local control and privacy first.
https://www.home-assistant.io
Apache License 2.0
69.94k stars 29.03k forks source link

Ecovacs Integration - DEEBOT OZMO Slim10 Series reported Unavailable even if present in the app #121328

Open msavazzi opened 1 week ago

msavazzi commented 1 week ago

The problem

I've created an automation to help me remind to put back the Ecovacs DEEBOT OZMO Slim10 Series to the base if it get stuck. I have another Ecovacs Deebot and use the same automation on both. The integration gets activated for the DEEBOT OZMO Slim10 Series even when is cleaning or is on it's base. While for the other one it works perfectly. Note that the DEEBOT OZMO Slim10 Series is reported correctly in the Ecovacs App.

What version of Home Assistant Core has the issue?

2024.7.1

What was the last working version of Home Assistant Core?

No response

What type of installation are you running?

Home Assistant OS

Integration causing the issue

Ecovacs

Link to integration documentation on our website

https://www.home-assistant.io/integrations/ecovacs

Diagnostics information

config_entry-ecovacs-5a1a0f67181efa21a70ab7e5426f8f3e.txt

Example YAML snippet

alias: Ecovacs Check
description: ""
trigger:
  - platform: time
    at: "16:00:00"
  - platform: event
    event_type: timer.finished
    event_data:
      entity_id: timer.ecovacs_check
condition:
  - condition: or
    conditions:
      - condition: or
        conditions:
          - condition: state
            entity_id: vacuum.arma_bianca
            state: unavailable
          - condition: state
            entity_id: vacuum.arma_bianca
            state: unknown
      - condition: or
        conditions:
          - condition: state
            entity_id: vacuum.Slim10 
            state: unavailable
          - condition: state
            entity_id: vacuum.Slim10 
            state: unknown
action:
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: vacuum.arma_bianca
            state: unavailable
          - condition: state
            entity_id: vacuum.arma_bianca
            state: unknown
    then:
      - service: notify.all_whatsapp
        data:
          message: Arma Bianca non alimentato, controllare e mettere a posto
      - service: timer.start
        metadata: {}
        data:
          duration: "00:30:00"
        target:
          entity_id: timer.ecovacs_check
  - if:
      - condition: or
        conditions:
          - condition: state
            entity_id: vacuum.Slim10 
            state: unavailable
          - condition: state
            entity_id: vacuum.Slim10 
            state: unknown
    then:
      - service: notify.all_whatsapp
        data:
          message: Slim10 non alimentato, controllare e mettere a posto
      - service: timer.start
        metadata: {}
        data:
          duration: "00:30:00"
        target:
          entity_id: timer.ecovacs_check
mode: single

Anything in the logs that might be useful for us?

No response

Additional information

No response

home-assistant[bot] commented 1 week ago

Hey there @mib1185, @edenhaus, @augar, mind taking a look at this issue as it has been labeled with an integration (ecovacs) you are listed as a code owner for? Thanks!

Code owner commands Code owners of `ecovacs` can trigger bot actions by commenting: - `@home-assistant close` Closes the issue. - `@home-assistant rename Awesome new title` Renames the issue. - `@home-assistant reopen` Reopen the issue. - `@home-assistant unassign ecovacs` Removes the current integration label and assignees on the issue, add the integration domain after the command. - `@home-assistant add-label needs-more-information` Add a label (needs-more-information, problem in dependency, problem in custom component) to the issue. - `@home-assistant remove-label needs-more-information` Remove a label (needs-more-information, problem in dependency, problem in custom component) on the issue.

(message by CodeOwnersMention)


ecovacs documentation ecovacs source (message by IssueLinks)

mib1185 commented 1 week ago

Please provide the trace of the automation when it is triggered false

msavazzi commented 6 days ago

Please provide the trace of the automation when it is triggered false

Sorry not sure I understood. There is a time trigger and an event trigger (timer).

The timer is always off, is activated if, at the designed time a device is not connected. I've run it manually now and: image

while the app reports: WhatsApp Image 2024-07-08 at 18 16 47_ef7229e1

here is the status as Device:

image
edenhaus commented 5 days ago

Please provide debug logs, when the slim bot is marked as unavailable and it should be online. At least 3 min of logs are required

msavazzi commented 5 days ago

here we go home-assistant_ecovacs_2024-07-09T14-35-20.241Z.log config_entry-ecovacs-5a1a0f67181efa21a70ab7e5426f8f3e.json

Market unavailable but present in app

edenhaus commented 4 days ago

Your bot is not answering and therefore HA marks it correctly as unavailable. In your log file, you have a many lines like:

[deebot_client.command] No response received for command "getBattery". This can happen if the device has network issues or does not support the command

I know that the Ecovacs app is not frequently checking the online status of the bots, so it could be that it will marked offline after you try to trigger a command (e.g. start cleaning)

Can you verify that your bot is controllable from the app, when it is mark unavailable in HA?

msavazzi commented 4 days ago

Your bot is not answering and therefore HA marks it correctly as unavailable. In your log file, you have a many lines like:

[deebot_client.command] No response received for command "getBattery". This can happen if the device has network issues or does not support the command

I know that the Ecovacs app is not frequently checking the online status of the bots, so it could be that it will marked offline after you try to trigger a command (e.g. start cleaning)

Can you verify that your bot is controllable from the app, when it is mark unavailable in HA?

I've tested it and the commands from the app work fine, I've started the cleaning and then stop it with return to base without any problem. It was still marked as unavailable

edenhaus commented 3 days ago

Can you check if the app sends the command (e.g. GetBattery) differently?

msavazzi commented 3 days ago

Can you check if the app sends the command (e.g. GetBattery) differently?

Happy to help here , but how can I do that? How can I see the commands that are sent?

-- I've tried to sniff the traffic but is TLS encrypted and I cannot see it :( All I know is that is between port src remote 8883 - 2745 on the device and I've seen that the app talks with a cloud service -> another cloud service sends the command to the robot

msavazzi commented 2 days ago

Can you check if the app sends the command (e.g. GetBattery) differently?

please note from the screenshot that the my robot does not provide any info in the app like charging etc. So I think it does not have all those properties but only it exists or not. If you ask battery, map, etc... it will generate an error. Could it be this the error?