Skip to main content

Community Python library for the Dreo cloud API

Project description

Dreo Smart Device Integration for Home Assistant (Community)

hacs_badge

CI Validation Release Automation PyPI

Dreo

[!NOTE] As of v1.8.4, the underlying Python library is now available as a standalone package on PyPI: pydreo-community. You can install it with pip install pydreo-community to use the Dreo API independently of Home Assistant.

Community HomeAssistant integration for Dreo brand smart devices.Currently supports most models of Fans, Air Conditioners, Humidifiers, Dehumidifiers and Space Heaters as well as ChefMaker. I do not work for Dreo; just something I'm doing for fun.

[!IMPORTANT] I only personally own 2 Dreo devices; a tower fan and an air circulator. You'll notice that this project supports way more devices than that. The only way I can continue to do that is if people provide logs and diagnostics when they report issues. Please do your best to fill out the issue template so I can debug.

hass-dreo vs. the Official Dreo Integration (hass-dreoverse)

Dreo also maintains an official Home Assistant integration. Here's the short version of how they differ:

hass-dreo (this project) hass-dreoverse (official)
API used Mobile app API Dreo Open API
Device types Fans, Heaters, ACs, Humidifiers, Dehumidifiers, Air Purifiers, Cookers, Evaporative Coolers Fans, Ceiling Fans, ACs, Evaporative Coolers
Missing from official Space Heaters, Humidifiers, Dehumidifiers, Air Purifiers, ChefMaker
Device feature coverage ~61 state fields — more controls exposed ~36 state fields — fewer controls
Notable extras here Timers, PTC heater status, PM2.5 sensors, ChefMaker, cruise control, work time, and more Not available
Support model Community-maintained Officially maintained by Dreo

tl;dr — If you want the broadest feature set and control over your Dreo devices in Home Assistant, use this integration. If you prefer an officially-supported integration with a smaller feature set, use hass-dreoverse.

You can purchase these devices from Amazon: Dreo Fans on Amazon

This integration is based on the engineering that Gavin Zyonse did for the HomeBridge integration here: https://github.com/zyonse/homebridge-dreo.

This documentation is intended to be accurate for the branch/tag it's in. If you are installing a specific version (including latest) of the integration, please change current viewing tag in GitHub to see the matching documentation.

A Note on Betas (Pre-Release)

The maintainers and I only have a small subset of the devices that this integration supports and we depend on users who open issues to confirm things work. I will keep a release in Beta until I get confirmation from folks that things work, then I'll promote.

Interested in Contributing?

I'm always happy to have people add features via Pull Request. More info on how to capture network traces and what not can be found on: Contributing.

Table of Contents

Compatibility

This integration supports the following device types:

Device Type Model Prefix(es)
Tower Fans DR-HTF
Air Circulators DR-HAF, DR-HPF
Ceiling Fans DR-HCF
Air Purifiers DR-HAP
Space Heaters DR-HSH, WH*
Air Conditioners DR-HAC
Humidifiers DR-HHM
Dehumidifiers DR-HDH
Cookers (ChefMaker) DR-KCM
Evaporative Coolers DR-HEC

View complete list of tested models →

Space Heater Documentation → - Learn about heater-specific features, thermostat controls, and the 24-hour remote control timeout.

Supported Entity Types

Depending on your device model and capabilities, the integration creates the following Home Assistant entities:

  • Fan - Primary fan control (speed, oscillation, preset modes)
  • Climate - For heaters and air conditioners (temperature control, modes)
  • Humidifier - For humidifiers and dehumidifiers
  • Light - Display lights and main lights (on/off, brightness, color temperature when supported)
  • RGB Light - Atmosphere/ambient lights for ceiling fans (RGB color control)
  • Switch - Individual device features (child lock, oscillation, mute, etc.)
  • Sensor - Temperature, humidity, and other sensor readings
  • Number - Adjustable numeric settings

Installation

HACS (Recommended)

Dreo is now part of the default HACS store. If you're not interested in development branches this is the easiest way to install.

Installing Dreo Smart Device Integration

  1. Open HACS
  2. Click Integrations
  3. Search Dreo
  4. Click the Dreo Smart Device Integration and install

Manually

Copy the dreo directory into your /config/custom_components directory, then restart your HomeAssistant Core.

Initial Configuration

  1. In HA, open Settings
  2. Click Devices & services
  3. Click Add integration (blue button at the bottom right of the screen)
  4. Search Dreo and select it
  5. Enter your Dreo username & password (same login you use on the Dreo app)
  6. If your Dreo account is registered in Europe, pick Europe from the Region dropdown. Most users can leave this on Auto-detect.

Once the Dreo app has been installed,

Options

This plugin supports configuration from the HomeAssistant UX. The following options are available.

Option Description Default
Auto-Reconnect WebSocket Should the integration try to reconnect if the websocket connection fails. This should not need to be unchecked, but there have been occasional reports of crashes and we think this may be the cause. True

Note that at present you need to restart HA when you change an option for it to take effect.

Device Management

Adding Devices

Use the manufacturer's app to set up a new device.

Removing Devices

You can remove individual Dreo devices from Home Assistant through the UI:

  1. Navigate to SettingsDevices & Services
  2. Click on the Dreo integration
  3. Click on the device you want to remove
  4. Click the three-dot menu (⋮) in the top right
  5. Select Delete
  6. Confirm the deletion

The device will be removed from Home Assistant but will remain in your Dreo account. If you reload the integration or restart Home Assistant, the device will be re-discovered and added back automatically.

Debugging

[!IMPORTANT] This has changed in v1.6.3 to use HA/Python standard loggers. Please review the below.

Use the Diagnostics feature in HomeAssistant to get diagnostics from the integration. Sensitive info should be redacted automatically.

In your configuration.yaml file, add this:

logger:
    logs:
        custom_compoments.dreo: debug

Now restart HomeAssistant. Perform the actions needed to generate some debugging info.

Download the full logs

Note that these may contain sensitive information, so do always check before sending them to someone.

  1. In HA, open Settings
  2. Click System
  3. Click Logs
  4. Click Download full log
Download diagnostics (.json file)
  1. In HA, open Settings
  2. Click Device & services
  3. Click Dreo
  4. Click on the three-dot hamburger menu (next to Configure) and click Download diagnostics.

Enable WebSocket debugging

In some cases, you may need to enable WebSocket debugging. You can do that by adding the following to your configuration.yaml file.

logger:
    logs:
        homeassistant.components.websocket_api: debug

Adding Support for New Devices

Don't see your model listed above? Create an issue and I'll add it.

Please make sure to include:

  • Model number (in the format shown in Supported Models)
  • Device type (fan, heater, humidifier, etc.)
  • For fans: Number of speeds supported (not including "off")
  • Does the device support oscillating?
  • What preset modes are supported?
  • Any special features (temperature display, timer, etc.)

Depending on answers, I may reach out and need you to pull some debug logs.

Debug Logs for New Devices

  1. Enable debugging
  2. Go to the Dreo app on your mobile device and perform the various commands you want to be able to use in HA. Dreo servers will send updates to the WebSocket that the integration is listening on.
  3. Go look at the logs, you should see something like the below. Create an issue and include the lines related to pydreo, the diagnostics json file, and if possible, what actions you performed in the app.
2023-06-29 01:02:25,312 - pydreo - DEBUG - Received message for unknown or unsupported device. SN: XXX341964289-77f2977b24191a4a:001:0000000000b
2023-06-29 01:02:25,312 - pydreo - DEBUG - Message: {'method': 'control-report', 'devicesn': 'XXX0393341964289-77f2977b24191a4a:001:0000000000b', 'messageid': 'bdf23a1f-c8e1-4e22-8ad3-dc0cd5dfdc7c', 'timestamp': 1688025746, 'reported': {'windtype': 1}}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydreo_community-1.9.0b3.tar.gz (53.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydreo_community-1.9.0b3-py3-none-any.whl (60.8 kB view details)

Uploaded Python 3

File details

Details for the file pydreo_community-1.9.0b3.tar.gz.

File metadata

  • Download URL: pydreo_community-1.9.0b3.tar.gz
  • Upload date:
  • Size: 53.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pydreo_community-1.9.0b3.tar.gz
Algorithm Hash digest
SHA256 e6aad89eb4a787fd333f0c1c0796d4448ca38f01a7eb592c735196abba5c3f48
MD5 05aed9181dc6160cb6bdecfd6129d6b0
BLAKE2b-256 d3d507f7a8ae769bb10932650483375855279a76cad67ba42d6a1100cdfc6a70

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydreo_community-1.9.0b3.tar.gz:

Publisher: publish.yaml on JeffSteinbok/hass-dreo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydreo_community-1.9.0b3-py3-none-any.whl.

File metadata

File hashes

Hashes for pydreo_community-1.9.0b3-py3-none-any.whl
Algorithm Hash digest
SHA256 1d6e58987f295ee3b7b0eceba9624b6e1216d46ae1c3f8e06b83800a8af1b942
MD5 00273543eb1cdcab1982fc07faac1ebe
BLAKE2b-256 6ecaa1e699d72a8b3ff7ee281ee6e4987066b099e19c7aebf24da1e3c5ae967a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydreo_community-1.9.0b3-py3-none-any.whl:

Publisher: publish.yaml on JeffSteinbok/hass-dreo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page