JeffSteinbok / hass-dreo

Dreo Smart Device Integration for Home Assistant
MIT License
90 stars 28 forks source link

Add support for Dreo Air Conditioners #105

Closed iRonin closed 1 month ago

iRonin commented 1 month ago

This is not fully working yet. It doesn't seem to break anything though. I've got couple of DR-HTF004S and they continue to work. The AC model is DR-HAC005S.

The following controls work:

The temperature is reported correctly.

Not sure if heaters have it but the AC reports the water tank level in the Dreo app, as well as have a Cleaning Reminder and Usage.

@JeffSteinbok if you could point me to how to debug the power control and how to make the modes work it would be fantastic 🙇‍♂️

Screenshot 2024-05-26 at 12 02 50 image image image image image
JeffSteinbok commented 1 month ago

Thanks! For the new features and such, you'll likely need to capture a packet trace, which unfortunately is hard. See https://github.com/JeffSteinbok/hass-dreo/blob/main/contributing.md for more info

iRonin commented 1 month ago

@JeffSteinbok maybe you could help me out with something simpler - I've got the AC control showing up in HA and it does control the unit but it does not change its state. The unit reports modes as: 1 (Cool), 2 (Dry), 3 (Fan only), 5 (Cool on Eco)

I'm yet to figure out how to make it properly work in HA - I suspect HA stores AC state as string but I receive and should send it as number, somehow.

image
iRonin commented 1 month ago

Still some issues with target/current temp. Can't set humidity level Would like to disable temp select on fan only Would like to have different temp ranges for ECO preset.

Screenshot 2024-05-27 at 17 49 37 Screenshot 2024-05-27 at 17 49 45
iRonin commented 1 month ago

Sample log initial server state output:

2024-05-27 16:27:05.052 DEBUG (SyncWorker_3) [pydreo] PyDreoAC(Electric AC):update_state: 
{
'wifi_rssi': {'state': -56, 'timestamp': 1716800065}, 
'poweron': {'state': True, 'timestamp': 1716800065}, 
'scheid': {'state': 79785404, 'timestamp': 1716800065}, 
'timeron': {'state': {'du': 0, 'ts': 1716061535}, 'timestamp': None},
'coolcruvendts': {'state': 0, 'timestamp': 1716800065}, 
'scheon': {'state': True, 'timestamp': 1716800065}, 
'mcuon': {'state': True, 'timestamp': 1716800065}, 
'templevel': {'state': 86, 'timestamp': 1716839556}, 
'mode': {'state': 5, 'timestamp': 1716841404}, 
'network_latency': {'state': 90, 'timestamp': 1716800065}, 
'rhlevel': {'state': 64, 'timestamp': 1716824457}, 
'module_hardware_model': {'state': 'HeFi', 'timestamp': 1716800065}, 
'mcu_firmware_version': {'state': '1.0.59', 'timestamp': 1716800065}, 
'oscmode': {'state': 2, 'timestamp': 1716839856}, 
'temperature': {'state': 86, 'timestamp': 1716840955}, 
'module_hardware_mac': {'state': '001cc0000000', 'timestamp': 1716800065}, 
'reachtarget': {'state': 0, 'timestamp': 1716841563}, 
'muteon': {'state': False, 'timestamp': 1716837154}, 
'lighton': {'state': True, 'timestamp': 1716800065}, 
'mcu_hardware_model': {'state': 'SC95F8613B/US', 'timestamp': 1716800065}, 
'wifi_ssid': {'state': 'SSID', 'timestamp': 1716061536}, 
'windlevel': {'state': 4, 'timestamp': 1716841403}, 
'tempunit': {'state': 1, 'timestamp': 1716800065}, 
'sleeptempoffset': {'state': 0, 'timestamp': 1716800065}, 
'module_firmware_version': {'state': '3.2.7', 'timestamp': 1716800065}, 
'wrong': {'state': 0, 'timestamp': 1716800065}, 
'connected': {'state': True, 'timestamp': 1716800065}, 
'timeroff': {'state': {'du': 0, 'ts': 1716061535}, 'timestamp': None}, 
'_ota': {'state': 0, 'timestamp': 1716800065}, 
'coolcurveconf': {'state': 'NULL', 'timestamp': 1716800065}, 
'rh': {'state': 70, 'timestamp': 1716841409}, 
'ecopauserate': {'state': 30, 'timestamp': 1716800065}, 
'childlockon': {'state': False, 'timestamp': 1716837162}, 
'worktime': {'state': 241, 'timestamp': 1716838371}
}
iRonin commented 1 month ago
image image image image
iRonin commented 1 month ago

@JeffSteinbok this is pretty much ready, won't be adding more features.