devices.esphome.io
Zemismart Moonlamp
Zemismart Moonlamp
Device Type: lightElectrical Standard: globalBoard: esp8266
      
  
        
        
        
The moonlamp has both RGB and Cold / Warm white handled by three groups of three leds.
Manufacturer: Zemismart
The moonlamp is powered by USB, so no special regional plugs needed.
How to flash
Open
There are 3 screws securing the bottom to the 3D printed moon.
Unmount circuit from the box
5 more screws, securing the diffuser to the print, and the print to the socket.
Pins
There are pads for RX, TX, 3.3v, GND and I00 nicely marked on the board, ignore my mess with the solder, the GND is rather large and takes a lot of heat, and the solder I have at the moment is terrible, and I'm just waiting for something new to arrive.
REMEMBER to disconnect the battery and the USB power before flashing!!!!
      
  
        
There is only 1 MB on the onboard esp8266, so the code has every thing 'extra' removed to keep it small, and being able to do OTA. The WW and CW temperature values are unknown, so purely guesses. The CW/WW and colour LED's are mutually exclusive in the original firmware, probably to conserve power, this behaviour is kept in esphome.
Missing features: The original firmware claims to have touch control, so it will change colour when you tap the globe, I haven't had the luck to figure out how that is done. It seems to use slightly more power when running esphome than the original firmware (the included battery doesn't last as long).
Basic Config
substitutions:  device_name: Moonlamp  espname: moonlamp
esphome:  name: "${espname}"  platform: ESP8266  board: esp01-1m
wifi:  ssid: !secret wifi_ssid  password: !secret wifi_password  reboot_timeout: 60min  manual_ip:    static_ip: 1.2.3.4    gateway: 10.2.3.1    subnet: 255.255.255.0  #  use_address: 1.2.3.5  fast_connect: true  # Enable fallback hotspot (captive portal) in case wifi connection fails  ap:    ssid: "${device_name} Hotspot"    password: !secret appw
logger:  baud_rate: 0
api:
ota:  password: !secret otapw
output:  - platform: esp8266_pwm    id: output_red    pin: GPIO4  - platform: esp8266_pwm    id: output_green    pin: GPIO12  - platform: esp8266_pwm    id: output_blue    pin: GPIO14  - platform: esp8266_pwm    id: output_warm_white    pin: GPIO13  - platform: esp8266_pwm    id: output_cold_white    pin: GPIO5
light:  - platform: rgbww    name: "${espname}"    id: "${device_name}"    color_interlock: true    red: output_red    green: output_green    blue: output_blue    warm_white: output_warm_white    cold_white: output_cold_white    warm_white_color_temperature: 2800 K    cold_white_color_temperature: 6200 K