Giter Club home page Giter Club logo

homebridge-dreo's Introduction

Homebridge Dreo Plugin

verified-by-homebridge NPM Version npm

Homebridge plugin for Dreo brand smart devices. Dreo Fans on Amazon (Affiliate link)

Compatability

Confirmed Working

Tower Fans

  • DR-HTF001S
  • DR-HTF002S
  • DR-HTF004S
  • DR-HTF005S
  • DR-HTF007S

Pedestal Fans

  • DR-HPF001S
  • DR-HAF003S

Other Fans

  • DR-HAF004S (Table Fan)

Please open an issue if you have another model that works or doesn't work. The plugin should also be compatible with multiple devices on the same account but I haven't tested this. Non-fan smart devices are not supported at this time, but if you have another device and can help me test some code out I would definitely be open to adding support.

Features

  • Temperature Sensor Display: Display the temperature sensor detected within your devices (for supported devices, check your devices capabilities). Because the Dreo devices temperature sensors are not entirely accurate, you can also set a specific temperature offset for your devices.

Installation

npm install -g homebridge-dreo

(Or install through the Homebridge UI)

Configuration

Provide your Dreo app login credentials

"platforms": [
  {
    "options": {
      "email": "[email protected]",
      "password": "00000000"
    },
    "hideTemperatureSensor": false,
    "temperatureOffset": 0,
    "name": "Dreo Platform",
    "platform": "DreoPlatform"
  }
]

Contributing

If you'd like to add support for a new device type, you might find this writeup from @JeffSteinbok (HomeAssistant plugin maintainer) useful for tracing the Dreo App:

https://github.com/JeffSteinbok/hass-dreo/blob/main/contributing.md

Special thanks

homebridge-tp-link-tapo: Similar repo that helped me figure out some of the http request functions necessary for this project.

homebridge-dreo's People

Contributors

alvst avatar mganjoo avatar reedptaylor avatar zyonse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

homebridge-dreo's Issues

Support for DR-HTF009S (Cruiser Pro T2S) tower fan

Is your feature request related to a problem? Please describe:
Please add support for ‎DR-HTF009S (Cruiser Pro T2S) tower fan

Describe the solution you'd like:
The fan speed control currently works for this device but other settings such as oscillation do not

What features are expected for a fan?

I’ll all info later - but just wondering what is expected from the plugin?

My fan is in the supported list but all I am able to do is turn it off and on. No settings, oscillation or otherwise.

Just wondering if that is the expected behavior?

Fan Speed and Oscillation

Describe The Bug:
Just purchased the DR-HAF003S. 1. The fan speed in HomeKit does not match the fan speed when changed on the fan, via the fan remote or via Alexa. 2. I have no oscillation controls in HomeKit

To Reproduce:
Control of fan locally, via remote or via Alexa

Expected behavior:
The same fan speed value set locally via the fan, fan remote or Alexa would be accurately represented in the HomeKit setting

Logs:
No logs representing anything

Show the Homebridge logs here, remove any sensitive information.

Plugin Config:

Show your Homebridge config.json here, remove any sensitive information.
"platform": "DreoPlatform",
    "name": "Dreo Platform",
    "options": {
        "email": "",
        "password": ""

**Screenshots:**
<!-- If applicable, add screenshots to help explain your problem. -->

**Environment:**
Homekit iOS 16.6

* **Plugin Version**: 2.1.0
* **Homebridge Version**: <!-- homebridge -V -->  Hoobs 4.3.0 running Homebridge Version 1.6.0
* **Node.js Version**: <!-- node -v --> 16.20.2
* **NPM Version**: <!-- npm -v -->
* **Operating System**: <!-- Raspbian / Ubuntu / Debian / Windows / macOS / Docker / hb-service --> Debian running on Raspberry Pi Model 4B with 4GB RAM

<!-- Click the "Preview" tab before you submit to ensure the formatting is correct. -->

Add support for heater

Right now the heater type is not supported in this plugin, it would be great to be able to add it as a thermostat in homekit and enable heating when dropping below a certain temperature. I have the heater and would be happy to test anything you need! Right now when i install the plugin this is what the logs read:

Adding new accessory: Heater
(node:19589) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'items' of undefined
at new FanAccessory (/usr/lib/node_modules/homebridge-dreo/src/FanAccessory.ts:35:79)
at DreoPlatform.discoverDevices (/usr/lib/node_modules/homebridge-dreo/src/platform.ts:150:9)
at processTicksAndRejections (internal/process/task_queues.js:95:5)
(Use node --trace-warnings ... to show where the warning was created)

Thanks for your great work and your consideration of this request.

Trying to write a Python Version

Hi, I'm trying to write a Python version of this for HomeAssistant.
I'm getting this error from the Dreo Servers; wondering if you have any idea, or better yet, is there a way to easily run the TS version you have with Fiddler to see what's going on exactly?

Thanks

{'code': 100030, 'msg': 'Your system clock is incorrect. Please set your clock to the current date and time.'}

2023-06-14 19:54:54,869 - DEBUG - API call URL:
https://app-api-us.dreo-cloud.com/api/oauth/login
2023-06-14 19:54:54,870 - DEBUG - API call headers:
{"ua": "dreo/2.0.7 (sdk_gphone64_x86_64;android 13;Scale/2.625)", "lang": "en", "content-type": "application/json; charset=UTF-8", "accept-encoding": "gzip", "user-agent": "okhttp/4.9.1"}
2023-06-14 19:54:54,871 - DEBUG - API call json:
{"acceptLanguage": "en", "appVersion": "2.8.6", "phoneBrand": "SM N9005", "phoneOS": "Android", "traceId": "1686797694", "client_id": ["7de37c362ee54dcf9c4561812309347a"], "client_secret": ["32dfa0764f25451d99f94e1693498791"], "email": ["REDACT"], "encrypt": ["ciphertext"], "grant_type": ["email-password"], "himei": ["faede31549d649f58864093158787ec9"], "password": "##REDACTED##", "scope": ["all"]}
2023-06-14 19:54:54,878 - DEBUG - Starting new HTTPS connection (1): app-api-us.dreo-cloud.com:443
2023-06-14 19:54:55,258 - DEBUG - https://app-api-us.dreo-cloud.com:443 "POST /api/oauth/login?timestamp=1686797694 HTTP/1.1" 200 None
2023-06-14 19:54:55,261 - DEBUG - API response:

{"code": 100030, "msg": "Your system clock is incorrect. Please set your clock to the current date and time."}

{'code': 100030, 'msg': 'Your system clock is incorrect. Please set your clock to the current date and time.'}
2023-06-14 19:54:55,262 - ERROR - Error logging in with username and password

Ceiling fan support (‎CLF-712S)

Any luck with getting the light to work? The fan is working great.
Hopefully, eventually we (you) can get the RGB lights working to.

😀

Thank you for all your hard work!

Dreo Ceiling Fan Support CLF521 & CLF521S

Is your feature request related to a problem? Please describe:
Dreo Ceiling Fan Support CLF521 & CLF521S. Just installed 3 of these ceiling fans and attempted to add them with my homebridge server but it looks like they are not currently supported by the plugin.

Describe the solution you'd like:
Officially support these celling fans so I could add them to my HomeKit

Additional context:
I would attempt to update this plugin myself and perhaps I will but wanted to first request to see if this is still under active development, Thanks!

Enable ability to have multiple accessories for a single device

Describe the solution you'd like:
Expose the various accessories of the device as separate accessories instead of clubbing them in to one accessory/device.
For instance, the temperature sensor and the fan itself can be two separate accessories, which allows you to display (in widgets and otherwise), the temperature of various parts of your house separately.

The Dyson plugin has a similar feature (behind a configuration flag) that allows for this.

Add HomeKit control for fan position for Falcon S DR-HAF004S

Is your feature request related to a problem? Please describe:
Hi - this fan works quite well with the plugin, and I'm very grateful for your work. The iOS Dreo app gives "PTZ"-like capabilities (similar to an IP camera) to put the fan at a particular place in its range of motion by sliding the blue dot around in the "3D" control as shown in the attached screenshot. I have no idea if HomeKit exposes this kind of functionality, but if it can move cameras, maybe it can do the fan?

Describe the solution you'd like:
It would be very helpful to be able to tell Siri to "place the fan at 45 Left 5 Up" or something like that without having to open the app.

Describe alternatives you've considered:
The Dreo Alexa functionality does allow you to turn on horizontal and vertical oscillation to move the fan and you can watch it and stop it where you want it if you're good at timing your command, but it is not true "put the fan here please" kind of functionality.

Screenshot 2023-06-25 at 12 35 58 PM

Not working with Falcon S (DR-HAF004S)

Describe Your Problem:
When I install the plugin and sign in, my fan does not show up.

Logs:

[02/06/2023, 21:19:56] [Dreo Platform] Adding new accessory: Air Circulator
[02/06/2023, 21:19:56] TypeError: Cannot read properties of undefined (reading 'state')
    at new FanAccessory (/var/lib/homebridge/node_modules/homebridge-dreo/src/FanAccessory.ts:40:46)
    at DreoPlatform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-dreo/src/platform.ts:150:9)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[02/06/2023, 21:19:56] Got SIGTERM, shutting down Homebridge...

Plugin Config:
{
"options": {
"email": "[redacted]",
"password": "[redacted]"
},
"name": "Dreo Platform",
"platform": "DreoPlatform"
}

Screenshots:

Environment:

  • Plugin Version: c2.0.2
  • Homebridge Version: 1.6.1
  • Node.js Version: v18.16.0
  • NPM Version: Whatever comes with Homebridge 1.6.1
  • Operating System: Official Homebridge raspberry pi image

add support for DR-HPF005S natural mode and left right and up down tilt

Is your feature request related to a problem? Please describe:
Hi hi
I just installed and the fan speed and temp seems to work with this model number, but was hoping u could add vertical and horizontal oscillation controls. and ability to turn natural mode on and off. The app has different preset angles for ocilation limits if adding sliders for that doesn't work

Thanks for making this

IMG_4DDFD2751A2B-1
IMG_17658AFBDA62-1

Unable to add child bridge to HomeKit

Describe Your Problem:

I've successfully added the DREO plugin to home Homebridge, however when I try to add the bridge to HomeKit on my device after scanning the QR, it stays a while in the "connecting" to bridge screen, and then I get the Accessory Not Found error.

The fan model is DR-HAF004S

The accessory does show on Homebridge accessories tab.

Logs:

[6/7/2024, 10:12:42 PM] [Dreo Platform] Restarting Process...
[6/7/2024, 10:12:43 PM] [Dreo Platform] Launched child bridge with PID 998
[6/7/2024, 10:12:43 PM] Registering platform 'homebridge-dreo.DreoPlatform'
[6/7/2024, 10:12:43 PM] [Dreo Platform] Loaded homebridge-dreo v3.2.5 child bridge successfully
[6/7/2024, 10:12:43 PM] Loaded 1 cached accessories from cachedAccessories.123456.
[6/7/2024, 10:12:43 PM] [Dreo Platform] Loading accessory from cache: Air Circulator
[6/7/2024, 10:12:43 PM] Homebridge v1.8.2 (HAP v0.12.1) (Dreo Platform) is running on port 43752.
[6/7/2024, 10:12:44 PM] [Dreo Platform] Country: GT
[6/7/2024, 10:12:44 PM] [Dreo Platform] Region: NA
[6/7/2024, 10:12:44 PM] [Dreo Platform] Restoring existing accessory from cache: Air Circulator

Plugin Config:

{
    "name": "Dreo Platform",
    "options": {
        "email": "[email protected]",
        "password": ""
    },
    "hideTemperatureSensor": true,
    "temperatureOffset": 0,
    "_bridge": {
        "username": "",
        "port": 43752
    },
    "platform": "DreoPlatform"
}

Screenshots:

Screenshot 2024-06-07 at 10 22 28 PM

Environment:

  • Plugin Version: v3.2.5
  • Homebridge Version: v1.8.2
  • Node.js Version: v20.14.0
  • NPM Version:
  • Operating System: Ubuntu Jammy (22.04.4 LTS) (Docker container on QNAP)

Dreo Pilot Max ‎(DR-HTF004) - confirmed working

Thanks for this plugin! It's awesome and I am so happy to finally have support for my Dreo fans in Homebridge.

I just wanted to let you know that I have tried this with Dreo Pilot Max S (‎DR-HTF004) and it works beautifully including oscillation.

Error With Install - Websocket closed before connection established loop

Describe Your Problem:
Attempted to install the plugin and enter my account login-credentials, however it seems to throw my homebridge into a loop and I cant seem to get it to function correctly. Tried my best to attach the relevant info below. Thanks.

Logs:

[26/03/2024, 11:22:47] Error: WebSocket was closed before the connection was established
    at WebSocket.close (/var/lib/homebridge/node_modules/homebridge-dreo/node_modules/ws/lib/websocket.js:292:7)
    at ReconnectingWebSocket._disconnect (/var/lib/homebridge/node_modules/homebridge-dreo/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:539:22)
    at ReconnectingWebSocket._handleError (/var/lib/homebridge/node_modules/homebridge-dreo/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:180:19)
    at ReconnectingWebSocket._handleTimeout (/var/lib/homebridge/node_modules/homebridge-dreo/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:529:14)
    at Timeout.<anonymous> (/var/lib/homebridge/node_modules/homebridge-dreo/node_modules/reconnecting-websocket/dist/reconnecting-websocket-cjs.js:524:75)
    at listOnTimeout (node:internal/timers:573:17)
    at processTimers (node:internal/timers:514:7)
[26/03/2024, 11:22:47] Got SIGTERM, shutting down Homebridge...
[26/03/2024, 11:22:47] Got SIGTERM, shutting down child bridge process...

Plugin Config:

{
    "name": "Dreo Platform",
    "options": {
        "email": "s*********@*****.com",
        "password": "p*****************z"
    },
    "hideTemperatureSensor": false,
    "temperatureOffset": 0,
    "platform": "DreoPlatform"
}

Screenshots:

Environment:

  • Plugin Version: 3.2.5
  • Homebridge Version: v1.7.0
  • Node.js Version: v20.11.1
  • NPM Version: 7.5.2
  • Operating System: Raspbian

Expose oscillation calibration as switches

I was wondering whether calibration (horizontal, vertical, both) can be exposed as switches (specifically for the DR-HAF004S in my case)? I’d imagine they just reset back to off either when calibration is finished (if possible) or just immediately.

The background here is that I’m experiencing an issue that seems to be not uncommon based on reviews: the fan “drifts”. Recalibration fixes this so being able to define some automation to run it every ten minutes or so would be great.

(A cherry on top would be being able to define some default position to return to after calibration since calibration resets the positioning.)

Plug-in crashes when Humidifier added to account

Describe The Bug:
Added a humidifier device to my account. Since then the plug-in is caught in a restart loop and seems to bring the child bridge with it.

To Reproduce:
add a Dreo 6L HM713S humidifier to your account and wait for the plug-in to poll for it.

Expected behavior:
Filing a bug since plug in shouldn’t stop with humidifier added but should ignore it. I will file an enhancement separately for humidifier support (happy to help too).

Logs:


[11/14/2023, 10:55:01 PM] [Dreo Platform] Adding new accessory: Humidifier
TypeError: Cannot read properties of undefined (reading '1')
    at new FanAccessory (/var/lib/homebridge/node_modules/homebridge-dreo/src/FanAccessory.ts:38:75)
    at DreoPlatform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-dreo/src/platform.ts:150:9)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
[11/14/2023, 10:55:01 PM] [Dreo Platform] Child bridge process ended
[11/14/2023, 10:55:01 PM] [Dreo Platform] Process Ended. Code: 1, Signal: null

Plugin Config:

"hideTemperatureSensor": false,
            "temperatureOffset": 0,

Screenshots:
N/A

Environment:

  • Plugin Version: 3.2.2
  • Homebridge Version: 1.7.0
  • Node.js Version: 18.16.0
  • NPM Version: 9.5.1
  • Operating System: Ubuntu

I have a Dreo Smart Pedestal Circulator Fan Model DR-HAOO3S

Works with fan speed. Oscilate Horizontally (on/off) only via scene or automation. Has a temperature sensor with temp.

Describe Your Problem:
There is no oscilate control in main fan control or any vertical oscillate control anywhere. Also NO TURBO fan speed.

I could not find a way to contact you like you asked if I had another fan that works or not. You don't have an email.

Failed to obtain access_token

Hello, I haven't installed the plugin for a short time. But it has stopped working and I have found the error shown below. I fixed it by restarting the plugin. Is it because some configuration is missing on my part? Because I see that in theory you can turn on the ocillation but I can't find the option. Thanks in advance

Logs:

 cause: Error: getaddrinfo EAI_AGAIN app-api-us.dreo-cloud.com
      at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:118:26) {
    errno: -3001,
    code: 'EAI_AGAIN',
    syscall: 'getaddrinfo',
    hostname: 'app-api-us.dreo-cloud.com'
  }
}
[3/14/2024, 8:11:04 AM] [Dreo Platform] Authentication error: Failed to obtain access_token

region detection

Hey, sorry for not answering your last request on time.
I just tested it and saw the reason for the error in the log.
The problem is that your code adds the country code to the url instead of the region.
For example I live in Germany so my country code is DE. The url your plugin is trying to connect to is now app-api-de.dreo-cloud.com
but every dreo account in a country in Europe shares the same url which is app-api-eu.dreo-cloud.com.
So the current region detection code won't work unfortunately.
I guess the easiest solution would be to check if a connection to the us servers is successful, if not use the eu url, regardless of the country code.

TypeError when retrieving device state

Describe The Bug:

After several months of working fine, I've suddenly started getting an error, and the plugin has stopped working.

[7/22/2024, 3:51:07 AM] [Dreo Platform] wss://wsb-us.dreo-cloud.com/websocket?accessToken=---&timestamp=1721620267176
[7/22/2024, 3:51:07 AM] [Dreo Platform] error retrieving device state: TypeError: Cannot read properties of undefined (reading 'mixed')
    at /var/lib/homebridge/node_modules/homebridge-dreo/src/DreoAPI.ts:94:36
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at DreoAPI.getState (/var/lib/homebridge/node_modules/homebridge-dreo/src/DreoAPI.ts:80:5)
    at DreoPlatform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-dreo/src/platform.ts:115:21)
[7/22/2024, 3:51:07 AM] [Dreo Platform] error: Failed to retrieve device state
[7/22/2024, 3:51:07 AM] [Dreo Platform] WebSocket Opened

To Reproduce:

Error occurs immediately after starting plugin.

Expected behavior:
Plugin should retrieve device status from Dreo API.

Logs:

[7/22/2024, 3:51:06 AM] [Dreo Platform] Executed didFinishLaunching callback
[7/22/2024, 3:51:06 AM] Homebridge v1.8.4 (HAP v0.12.2) (Dreo Platform) is running on port 51195.
[7/22/2024, 3:51:06 AM] 

[7/22/2024, 3:51:07 AM] [Dreo Platform] 

REMOTE:
 {
  access_token: ---,
  refresh_token: ---',
  createdAt: 1696979232000,
  countryCode: 'US',
  scope: 'all',
  token_type: 'bearer',
  region: 'NA',
  expires_in: 303795999,
  userid: ---
}
[7/22/2024, 3:51:07 AM] [Dreo Platform] Country: US
[7/22/2024, 3:51:07 AM] [Dreo Platform] Region: NA
[7/22/2024, 3:51:07 AM] [Dreo Platform] 

DEVICES:
 [
  {
    deviceId:  ---,
    sn: ---,
    brand: 'Dreo',
    model: 'DR-HTF005S',
    productId: '1514165925956890625',
    productName: 'Tower Fan',
    deviceName: 'Tower Fan',
    shared: false,
    series: null,
    seriesName: 'Pilot Pro S',
    color: 's',
    controlsConf: {
      template: 'DR-HTF005S',
      lottie: [Object],
      schedule: [Object],
      cards: [Array],
      feature: [Object],
      preference: [Array],
      extraConfigs: [Array],
      control: [Array],
      category: 'Tower Fan',
      setting: [Array]
    },
    mainConf: {
      isSmart: true,
      isWifi: true,
      isBluetooth: true,
      isVoiceControl: true
    },
    resourcesConf: {
      imageSmallSrc: 'https://resources.dreo-cloud.com/app/preSigned202405/2302bbcd1232ac4326ae312abaa1cc6d70.png',
      imageFullSrc: 'https://resources.dreo-cloud.com/app/202309/863baa919beea413783c2c6400029eb39.zip',
      imageSmallDarkSrc: '',
      imageFullDarkSrc: ''
    },
    servicesConf: [ [Object] ],
    userManuals: [ [Object] ]
  },
  {
    deviceId: ---,
    sn: ---,
    brand: 'Dreo',
    model: 'DR-HTF005S',
    productId: '1514165925956890625',
    productName: 'Tower Fan',
    deviceName: ---,
    shared: false,
    series: null,
    seriesName: 'Pilot Pro S',
    color: 's',
    controlsConf: {
      template: 'DR-HTF005S',
      lottie: [Object],
      schedule: [Object],
      cards: [Array],
      feature: [Object],
      preference: [Array],
      extraConfigs: [Array],
      control: [Array],
      category: 'Tower Fan',
      setting: [Array]
    },
    mainConf: {
      isSmart: true,
      isWifi: true,
      isBluetooth: true,
      isVoiceControl: true
    },
    resourcesConf: {
      imageSmallSrc: 'https://resources.dreo-cloud.com/app/preSigned202405/2302bbcd1232ac4326ae312abaa1cc6d70.png',
      imageFullSrc: 'https://resources.dreo-cloud.com/app/202309/863baa919beea413783c2c6400029eb39.zip',
      imageSmallDarkSrc: '',
      imageFullDarkSrc: ''
    },
    servicesConf: [ [Object] ],
    userManuals: [ [Object] ]
  },
  {
    deviceId: ---,
    sn: ---,
    brand: 'Dreo',
    model: 'DR-HTF005S',
    productId: '1514165925956890625',
    productName: 'Tower Fan',
    deviceName: ---,
    shared: false,
    series: null,
    seriesName: 'Pilot Pro S',
    color: 's',
    controlsConf: {
      template: 'DR-HTF005S',
      lottie: [Object],
      schedule: [Object],
      cards: [Array],
      feature: [Object],
      preference: [Array],
      extraConfigs: [Array],
      control: [Array],
      category: 'Tower Fan',
      setting: [Array]
    },
    mainConf: {
      isSmart: true,
      isWifi: true,
      isBluetooth: true,
      isVoiceControl: true
    },
    resourcesConf: {
      imageSmallSrc: 'https://resources.dreo-cloud.com/app/preSigned202405/2302bbcd1232ac4326ae312abaa1cc6d70.png',
      imageFullSrc: 'https://resources.dreo-cloud.com/app/202309/863baa919beea413783c2c6400029eb39.zip',
      imageSmallDarkSrc: '',
      imageFullDarkSrc: ''
    },
    servicesConf: [ [Object] ],
    userManuals: [ [Object] ]
  }
]
[7/22/2024, 3:51:07 AM] [Dreo Platform] wss://wsb-us.dreo-cloud.com/websocket?accessToken=---&timestamp=1721620267176
[7/22/2024, 3:51:07 AM] [Dreo Platform] error retrieving device state: TypeError: Cannot read properties of undefined (reading 'mixed')
    at /var/lib/homebridge/node_modules/homebridge-dreo/src/DreoAPI.ts:94:36
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at DreoAPI.getState (/var/lib/homebridge/node_modules/homebridge-dreo/src/DreoAPI.ts:80:5)
    at DreoPlatform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-dreo/src/platform.ts:115:21)
[7/22/2024, 3:51:07 AM] [Dreo Platform] error: Failed to retrieve device state
[7/22/2024, 3:51:07 AM] [Dreo Platform] WebSocket Opened

Environment:

  • Plugin Version: v3.3.1-beta.1
  • Homebridge Version: v1.8.4
  • Node.js Version: v20.12.2
  • NPM Version: 10.5.0
  • Operating System: Debian

Having Dreo ChefMaker crashes plugin

Dreo ChefMaker is pretty neat device but crashes the plugin - probably no support for it:

[18/11/2023, 8:25:52 pm] [Dreo Platform] Adding new accessory: ChefMaker
TypeError: Cannot read properties of undefined (reading '1')
    at new FanAccessory (/var/lib/homebridge/node_modules/homebridge-dreo/src/FanAccessory.ts:38:75)
    at DreoPlatform.discoverDevices (/var/lib/homebridge/node_modules/homebridge-dreo/src/platform.ts:150:9)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)

How to get fans to show up in HomeKit?

Describe Your Problem:
How do you get the fans to show up in HomeKit? The only option in the config is to enter your Dreo account info. I’ve done that, added the child bridge to my HomeKit, but no fans have appeared anywhere. And when I go to add accessory, they are not listed. Both of my fan models are on your compatibility list.

Any ideas? I’m on the latest version of everything.

Support for MultiComfort Series 2-in-1 (Fan/Purifier) - DR-HTF010S

Wondering if support can be added for the Dreo Multicomfort Fan/Purifier

I am currently using Hoobs on Raspberry Pi 4, I can reimage it to run Homebridge instead if that's easier to work with.

Model Number: DR-HTF010S
Number of speeds the fan supports: 12
Does the fan support oscillating?: Yes
What preset modes are supported?

  • The fan portion: Normal, Sleep, Auto, Breeze
  • The purifier portion: Auto, 1, 2, 3
    Is temperature supported?: Yes

Right now in the Home app, the fan speeds are not showing up. The only thing I can tell is if the fan is on or off, it shows the fan speed as 0 if it's on. The temperature sensor does work.

If there's any additional information I can provide please let me know. I'll need some guidance to get the logs, looks like debug mode in Hoobs is not working or something. Might try switching to Homebridge.

Add support for 6L HM713S Humidifier

Is your feature request related to a problem? Please describe:
Looks like plug-in doesn’t support this humidifier

Describe the solution you'd like:
Support for the HM713S 6L Humidifier

Describe alternatives you've considered:
Using the Dreo app, but I prefer HomeKit :)

Additional context:
Happy to test anything, provide raw results from API calls, etc

Dreo Pilot Pro S model DR-HTF005 S

Is your feature request related to a problem? Please describe:
Anyone know if the Dreo Pilot Pro S model DR-HTF005 S works with this?

Describe the solution you'd like:
Someone who knows the answer :)

Describe alternatives you've considered:
I am considering buying this model, but don't want to purchase if this isn't going to work with this.

Additional context:
Did not see a discussion section. So asking here.

Please add additional support for the DR-HTF008S (Cruiser Pro T3 S)

Is your feature request related to a problem? Please describe:
No.

Describe the solution you'd like:
Additional support for the DR-HTF008S (Cruiser Pro T3 S) - oscillation control and temperature reading within the Home App.

Describe alternatives you've considered:
N/A

Additional context:
This model is seen by the plugin and does work but it only has basic on/off and fan speed function within the Home App.

DR-HPF002S Support for Oscillation and Turbo Mode

Is your feature request related to a problem? Please describe:
DR-HPF002S is supported by the plugin but missing Oscillation support & Turbo Mode

Describe the solution you'd like:
Ability to control left/right & up/down Oscillation as well as the angles.
Ability to enable/disable turbo mode

Describe alternatives you've considered:
None yet

Additional context:
None

Please add support for Dreo Humidifier, Model: DR-HHM002S Blue

Is your feature request related to a problem? Please describe:
No it's not related to a problem technically, it's just related to adding support for a device that is currently not supported by this plugin.

Describe the solution you'd like:
Add plugin support for the new Dreo Humidifier, Model: DR-HHM002S Blue

Describe alternatives you've considered:
n/a

Additional context:
I installed this plugin and configured it correctly, but in the Homebridge logs I get the message "[Dreo Platform] error: Unsupported device type Humidifier" when it tries to connect.

This humidifier may be relatively new, here's a link to the Amazon page for the model I received.
https://www.amazon.com/dp/B0D2DLWKYW?psc=1&ref=ppx_yo2ov_dt_b_product_details

If it helps, I'm using this Humidifier with firmware version V3.2.4_0.3.9 and when I pull it up in the Apple Home app it shows up but can't do anything because it's not currently supported.

Error/Restart Loop. Falcon S (DR-HAF004S)

Describe The Bug:
The child bridge throws an error, then restarts. It does this in a loop, over and over. I've restarted Homebridge and fully power cycled the Mac, but no difference. Any suggestions?

To Reproduce:
It does the same thing for me, every time.

Expected behavior:
It will start and run, and not restart over and over.

Logs:

[6/4/2023, 5:51:29 PM] [Dreo Platform] Restarting Process...
[6/4/2023, 5:51:29 PM] [Dreo Platform] Launched child bridge with PID 20251
[6/4/2023, 5:51:29 PM] Registering platform 'homebridge-dreo.DreoPlatform'
[6/4/2023, 5:51:29 PM] [Dreo Platform] Loaded homebridge-dreo v2.0.2 child bridge successfully
[6/4/2023, 5:51:29 PM] [Dreo Platform] Finished initializing platform: Dreo Platform
[6/4/2023, 5:51:29 PM] Publishing bridge accessory (name: Dreo Platform, publishInfo: {
username: '[REDACTED]',
port: 42126,
pincode: '[REDACTED]',
category: 2,
bind: undefined,
mdns: undefined,
addIdentifyingMaterial: true,
advertiser: 'bonjour-hap'
}).
[6/4/2023, 5:51:29 PM] [Dreo Platform] Executed didFinishLaunching callback
[6/4/2023, 5:51:29 PM] Homebridge v1.6.1 (HAP v0.11.1) (Dreo Platform) is running on port 42126.
[6/4/2023, 5:51:29 PM] [Dreo Platform]

REMOTE:
{
access_token: '[REDACTED]',
refresh_token: '[REDACTED]',
countryCode: 'US',
scope: 'all',
token_type: 'bearer',
region: 'NA',
expires_in: 315359169,
userid: '[REDACTED]'
}
[6/4/2023, 5:51:29 PM] [Dreo Platform] Country: US
[6/4/2023, 5:51:29 PM] [Dreo Platform] Region: NA
[6/4/2023, 5:51:29 PM] [Dreo Platform]

DEVICES:
[
{
deviceId: '[REDACTED]',
sn: '[REDACTED]',
brand: 'Dreo',
model: 'DR-HAF004S',
productId: '[REDACTED]',
productName: 'Air Circulator',
deviceName: 'Air Circulator',
shared: false,
series: null,
seriesName: 'Falcon S',
controlsConf: {
template: 'DR-HAF004S',
lottie: [Object],
cards: [Array],
preference: [Array],
control: [Array],
category: 'Air Circulators',
version: [Object],
updateMcuVersion: ''
},
mainConf: {
isSmart: true,
isWifi: true,
isBluetooth: true,
isVoiceControl: true
},
resourcesConf: {
imageSmallSrc: 'https://resources.dreo-cloud.com/app/202302/15b4a846f9849144729e6d3a9fe6592d95.png',
imageFullSrc: 'https://resources.dreo-cloud.com/app/202302/158b6be82ae48e45fbb41e8d73af5e32e8.zip'
},
servicesConf: [ [Object] ]
}
]
[6/4/2023, 5:51:29 PM] [Dreo Platform] wss://wsb-us.dreo-cloud.com/websocket?accessToken=3836038c-3769-4b64-a86c-2015653442cd&timestamp=1685919089853
[6/4/2023, 5:51:30 PM] [Dreo Platform] WebSocket Opened
[6/4/2023, 5:51:30 PM] [Dreo Platform] Adding new accessory: Air Circulator
[6/4/2023, 5:51:30 PM] [Dreo Platform] {
wifi_rssi: { state: -52, timestamp: 1685911146 },
poweron: { state: true, timestamp: 1685911146 },
cruiseconf: { state: '90,45,0,-45', timestamp: 1685911146 },
timeron: { state: { du: 0, ts: 424 }, timestamp: null },
fixedconf: { state: '18,-2', timestamp: 1685911146 },
mode: { state: 1, timestamp: 1685911237 },
mcuon: { state: true, timestamp: 1685911146 },
network_latency: { state: 86, timestamp: 1685911146 },
module_hardware_model: { state: 'PAI-051', timestamp: 1685911146 },
mcu_firmware_version: { state: '0.6.3', timestamp: 1685911146 },
lightsensoron: { state: true, timestamp: 1685911146 },
customconf: { state: 'temp:22222333344455667788999', timestamp: 1685911146 },
oscmode: { state: 3, timestamp: 1685911152 },
temperature: { state: 79, timestamp: 1685917006 },
module_hardware_mac: { state: '00:1c:c2:64:20:ec', timestamp: 1685911146 },
alignon: { state: true, timestamp: 1685911146 },
muteon: { state: false, timestamp: 1685911146 },
mcu_hardware_model: { state: 'SC95F8613B', timestamp: 1685911146 },
wifi_ssid: { state: '[REDACTED]', timestamp: 1685911146 },
windlevel: { state: 1, timestamp: 1685911244 },
wrong: { state: 0, timestamp: 1685911146 },
module_firmware_version: { state: '1.2.13', timestamp: 1685911146 },
connected: { state: true, timestamp: 1685911146 },
timeroff: { state: { du: 0, ts: 424 }, timestamp: null },
childlockon: { state: false, timestamp: 1685911146 }
}
TypeError: Cannot read properties of undefined (reading 'state')
at new FanAccessory (/usr/local/lib/node_modules/homebridge-dreo/src/FanAccessory.ts:40:46)
at DreoPlatform.discoverDevices (/usr/local/lib/node_modules/homebridge-dreo/src/platform.ts:150:9)
at processTicksAndRejections (node:internal/process/task_queues:95:5)
[6/4/2023, 5:51:30 PM] [Dreo Platform] Child bridge process ended
[6/4/2023, 5:51:30 PM] [Dreo Platform] Process Ended. Code: 1, Signal: null

Plugin Config:

{
"options": {
"email": "[REDACTED]",
"password": "[REDACTED]"
},
"name": "Dreo Platform",
"_bridge": {
"username": "[REDACTED]",
"port": 42126
},
"platform": "DreoPlatform"
}

Screenshots:

Environment:

  • Plugin Version: v2.0.2
  • Homebridge Version: 1.6.1
  • Node.js Version: 18.16.0
  • NPM Version: 9.6.4
  • Operating System: macOS (Silicon M1)

Did Dreo API block this?

Describe Your Problem:
I manage the HomeAssistant HACS integration and noticed today that logins started to fail. Wonder if you see the same thing and if you're able to get a new trace from the app to see what they may have changed?

Logs:

Dreo Modes Support

I wanted to ask if we will se Dreo Modes anytime soon supported. The HACS Addon for Home Assistant works with modes and also adds the as Switches (Kinda annoying). Could you add them as plugs. Something like this:
IMG_3153

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.