dhewg / esphome-miot

ESPHome components for MIoT devices
Other
42 stars 17 forks source link

add example `dmaker.fan.p18` config #28

Closed cristianchelu closed 2 months ago

cristianchelu commented 4 months ago

This PR adds complete support for Xiaomi Smart Standing Fan 2 (dmaker.fan.p18).

There is no serial number, device, or other information provided on hidden SIID 1.

Quirks

The only quirk of this device is that they decided to implement what should have been two actions as one write-only property for the manual left-right adjustment:

  - platform: "template"
    name: "Adjust Left"
    icon: "mdi:pan-left"
    on_press: 
      - lambda: id(miot_main).queue_command("set_properties 2 9 1");
  - platform: "template"
    name: "Adjust Right"
    icon: "mdi:pan-right"
    on_press: 
      - lambda: id(miot_main).queue_command("set_properties 2 9 2");

Reading the motor control property is not allowed

[12:49:14][D][miot:140]: Queuing MCU command 'get_properties 2 9'
[12:49:14][E][miot:254]: Result error on property 2:9: -4003

and setting it to 1: LEFT or 2: RIGHT makes the fan turn a few degrees either left or right. Setting to 0: NONE has no physical interrupt effect, even if setting immediately after a turn command.

Everything else functions intuitively and as intended.

Fan component

Based on discussions in issue #19 , I've also wired a Template Fan component to expose an entity in the fan. domain, for better HA integration.

Screenshots

Screenshot from 2024-08-03 21-44-55 Screenshot from 2024-08-03 21-45-09 Screenshot from 2024-08-03 21-45-34
dhewg commented 2 months ago

Thanks, and sorry for the massive delay!