devices.esphome.io
Xiaomi Mi Desklamp
Xiaomi Mi Desklamp
Device Type: lightElectrical Standard: globalBoard: esp8266
substitutions: friendly_name: Mi Desk Lamp device_name: mi-desklamp
esphome: name: ${device_name} comment: ${friendly_name} platform: ESP8266 board: esp8285
# Enable logginglogger:
# Enable Home Assistant APIapi:
ota:
wifi: ssid: !secret wifi_ssid password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails ap: ssid: "Mi-Desk-Lamp-1S Fallback Hotspot" password: "4Kv4XJ2e9Bmt"
captive_portal:
# Enable Web serverweb_server: port: 80
# Sync time with Home Assistanttime: - platform: homeassistant id: homeassistant_time
# Text sensors with general informationtext_sensor: - platform: version name: ${friendly_name} Version - platform: wifi_info ip_address: name: ${friendly_name} IP Address
sensor: # Uptime sensor - platform: uptime name: ${friendly_name} Uptime # WiFi Signal sensor - platform: wifi_signal name: ${friendly_name} Wifi Signal update_interval: 60s # Rotary - platform: rotary_encoder id: rotation pin_a: GPIO13 pin_b: GPIO12 resolution: 2 on_value: then: - if: condition: # Check if Button is pressed while rotating lambda: 'return id(button).state;' then: # If Button is pressed, change CW/WW - lambda: |- auto min_temp = id(light1).get_traits().get_min_mireds(); auto max_temp = id(light1).get_traits().get_max_mireds(); auto cur_temp = id(light1).current_values.get_color_temperature(); auto new_temp = max(min_temp, min(max_temp, cur_temp + (x * 10))); auto call = id(light1).turn_on(); call.set_color_temperature(new_temp); call.perform(); else: # If Button is not pressed, change brightness - light.dim_relative: id: light1 relative_brightness: !lambda |- return x / 25.0; # Reset Rotation to 0 - sensor.rotary_encoder.set_value: id: rotation value: 0
binary_sensor: - platform: gpio id: button pin: number: GPIO2 inverted: true on_click: then: - light.toggle: light1
output: - platform: esp8266_pwm pin: GPIO4 id: output_cold - platform: esp8266_pwm pin: GPIO5 id: output_warm
light: - platform: cwww id: light1 default_transition_length: 0s constant_brightness: true name: ${friendly_name} Light cold_white: output_cold warm_white: output_warm cold_white_color_temperature: 6500K warm_white_color_temperature: 2650K gamma_correct: 0
For serial flashing you need two power wires (GND, VDDPST- AKA VCC 3.3v), two serial wires (U0RX, U0TX) and the boot mode pin (GPIO0). On your Serial Adaptor connect U0RX to TX and U0TX to RX. ESP also needs to be put into programming mode before the firmware can be uploaded by connecting GPIO0 pin to GND prior to applying power.
Edit this page on GitHub