Custom Component: Dreame Vacuum

I must be blind, but is this released?

hello all
i have this after i update my HA


do you have any help for me or an answer concerning this message?
Thank you for your answers

4 Likes

Hello ! Just bought Dreame :slight_smile: I have two other roborock vacuums, and as this one does not need configuration.yaml lines, how can i reduce map size ? Im using xiaomi_cloud_map_extractor and xiaomi_cloud_map_card. Map is two times bigger as my two other maps (sizes can be reduced in configuration.yaml).

How is testing going on the dreame account integration? I’ll be honest I am eagerly and patiently waiting for this :wink:

No, not yet.

You don’t need to worry about this, it will be fixed when I release a new version soon.

1 Like

You cannot define a map scale on this integration like on the xiaomi cloud map extractor. Because of the icons drawn, map is scaled at 4x otherwise you won’t see any icons because they are too small.
Why do you need to scale down the map image anyway when xiaomi map card handles the displaying?

I have added all missing new features (except camera streaming) introduced on the 2022 and 2023 models to the integration that’s why it is taking too long.
You need to wait a little bit more but you will understand when you see the change log.

1 Like

I want to scale it down because of this :

Since configuration.yaml lines are not needed, i dont know how to scale it smaller ? Is there a way to define it smaller in xiaomi map card ?

Ok, I have got the problem and you cannot fix this from the map card. Map card uses height of the map image as base dimension and it cannot be changed by a css rule or setting beacuse of the selection logic.
As I said, map scale is hardcoded in the integration and a lot of rendering logic is relying on a high resolution base map like on the app itself, so rendering scale cannot be edited by the used. Rendering the map on high resolution also have some downsides like much more ram and cpu usage but I couldn’t make it small and look good at the same time so I choose 4x scale.
If you really want to look all your maps similar size you can rotate the Dreame map, but there is no easy solution to fix your problem, other than that. Or alternatively you can scale up the Roborock maps from map extractor to match their size to the Dreame one.

Ok, thats clear. Thanks for the answer and digging up the issue :slight_smile:

Bumped to another problem. I made an automation that triggers room cleaning via mqtt, but even tho i add suction power to 4, it stays at minimum, lvl 1.

Even in mi home app it says strong suction, it just is not. If i change during the cleaning suction power from lovelace card, it does change.

alias: Dreame vacuum Hallway
description: MQTT kutsu eteisen imurointiin
trigger:
  - platform: mqtt
    topic: zigbee2mqtt/SceneSelector/action
    payload: recall_253
condition: []
action:
  - service: dreame_vacuum.vacuum_clean_segment
    data:
      repeats: 1
      suction_level: 4
      segments: 1
    target:
      entity_id: vacuum.dreamebot_d10_plus
mode: single

Possible suction levels are;

QUIET = 0
STANDARD = 1
STRONG = 2
TURBO = 3
1 Like

Oh ok, thnx again :slight_smile:

Looks like you can use graphic interface slider to set it to 4 :slight_smile:

I am going to fix that, thanks for the information.

1 Like

thank you for the answer could you, if possible, integrate the control of the water volume as well as the sound volume to the card?

it would be great to be able to add them here for example.

it would be great to be able to add them here for example.

I did now, but the connection between your integration and the robot cannot be established.

2023-08-14 19:17:13.864 ERROR (MainThread) [custom_components.dreame_vacuum] Update failed: Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/dreame_vacuum/coordinator.py", line 314, in _async_update_data
    await self.hass.async_add_executor_job(self.device.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 995, in update
    self.connect_device()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 733, in connect_device
    self._request_properties()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 262, in _request_properties
    result = self._protocol.get_properties(props[:15])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 525, in get_properties
    return self.send("get_properties", parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 518, in send
    return self.device.send(method, parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 233, in send
    return self.send(
           ^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 241, in send
    raise DeviceException("No response from the device") from ex
miio.exceptions.DeviceException: No response from the device

2023-08-14 19:17:13.867 WARNING (MainThread) [homeassistant.config_entries] Config entry 'DreameBot L10s Ultra' for dreame_vacuum integration not ready yet: No response from the device; Retrying in background
2023-08-14 19:17:25.423 ERROR (SyncWorker_8) [miio.miioprotocol] Got error when receiving: timed out
2023-08-14 19:17:25.426 ERROR (MainThread) [custom_components.dreame_vacuum] Update failed: Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/dreame_vacuum/coordinator.py", line 314, in _async_update_data
    await self.hass.async_add_executor_job(self.device.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 995, in update
    self.connect_device()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 733, in connect_device
    self._request_properties()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 262, in _request_properties
    result = self._protocol.get_properties(props[:15])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 525, in get_properties
    return self.send("get_properties", parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 518, in send
    return self.device.send(method, parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 233, in send
    return self.send(
           ^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 241, in send
    raise DeviceException("No response from the device") from ex
miio.exceptions.DeviceException: No response from the device

2023-08-14 19:17:41.902 ERROR (SyncWorker_2) [miio.miioprotocol] Got error when receiving: timed out
2023-08-14 19:17:41.905 ERROR (MainThread) [custom_components.dreame_vacuum] Update failed: Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 193, in send
    data, addr = s.recvfrom(4096)
                 ^^^^^^^^^^^^^^^^
TimeoutError: timed out

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/config/custom_components/dreame_vacuum/coordinator.py", line 314, in _async_update_data
    await self.hass.async_add_executor_job(self.device.update)
  File "/usr/local/lib/python3.11/concurrent/futures/thread.py", line 58, in run
    result = self.fn(*self.args, **self.kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 995, in update
    self.connect_device()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 733, in connect_device
    self._request_properties()
  File "/config/custom_components/dreame_vacuum/dreame/device.py", line 262, in _request_properties
    result = self._protocol.get_properties(props[:15])
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 525, in get_properties
    return self.send("get_properties", parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/config/custom_components/dreame_vacuum/dreame/protocol.py", line 518, in send
    return self.device.send(method, parameters=parameters, retry_count=retry_count)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 233, in send
    return self.send(
           ^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/miio/miioprotocol.py", line 241, in send
    raise DeviceException("No response from the device") from ex
miio.exceptions.DeviceException: No response from the device

You asked the same thing on a discussion and I have explained to you how it is working and recommended that you may need to hard reset the device. Why asking you same question again and again without doing anything?
There is nothing I can do to fix this issue so keep saying that it is not working not going to help you.

This is not in the scope of this project. You need to ask that from the developer of the vacuum card who is not related to me.

I did a hard reset and sorry, I didn’t meant to offend you. So my problem must rely to the new firmware. Thanks. I also was hoping by showing the logs that maybe some other others may have the same problem or a idea. I don’t thinks it a bad thing asking the community for help and ideas :slight_smile: