Installing ESPhome on GEEKMAGIC Smart Weather Clock (smalltv/pro)

I've taken some notes from here and messed around with Gemini and made FW for the ESP8266 no touch version. It's essentially a clock, current conditions, a forecast and a calendar. It's working well, but if there are no events for the day it displays some weird text that I haven't gotten around to troubleshooting. I'm sure it's an easy fix.

In addition to this I had to create some input text helpers and an automation to update them for the forecast and calendar.

We mainly look at this thing while we're brushing our teeth in the morning, so a minimal outlook for the day is nice and this accomplishes that.

If the hive mind here sees any improvements, don't be shy.

I've got this basic version as well, i was thinking U3 might be for a ch340 on the rear but don't see a place for any auto-reset circuitry. i guess GVO could be for pulling GPIO 0 high or low maybe?

Your software is very good. I hope you’ll continue to develop it and fix bugs. There’s an option to upload an image, but unfortunately, I haven’t found a way to display it in slideshows.

I’d like to add the “GeekMagic SmallTV Pro” to devices.esphome.io. Based on the many posts here (thank you very much for those!), I’ve put together this basic configuration following the guidelines from devices.esphome.io. Since I don’t own a GeekMagic SmallTV Pro myself, I’d be very grateful if one of you could test whether the configuration below actually works on the device (it compiles, at least).

esphome:
  name: geekmagic-smalltv-pro
  friendly_name: GeekMagic SmallTV Pro

esp32:
  variant: esp32

esp32_touch:
  setup_mode: false
  iir_filter: 10ms

binary_sensor:
  - platform: esp32_touch
    name: "Touch"
    pin: GPIO32
    threshold: 1450
    filters:
      - delayed_on: 50ms
      - delayed_off: 300ms

spi:
  clk_pin: GPIO18
  mosi_pin: GPIO23
  interface: hardware
  id: spihwd

output:
  - platform: ledc
    pin: GPIO25
    inverted: true
    id: backlight_pwm

light:
  - platform: monochromatic
    output: backlight_pwm
    name: "Backlight"
    id: backlight
    restore_mode: ALWAYS_ON
    default_transition_length: 1s

display:
  - platform: mipi_spi
    id: my_display
    model: ST7789V
    spi_id: spihwd
    dc_pin: GPIO02
    reset_pin: GPIO04
    dimensions:
      width: 240
      height: 240
      offset_width: 0
      offset_height: 0
    invert_colors: true
    color_depth: 16
    spi_mode: MODE3
    data_rate: 40MHz
    update_interval: 1s
    show_test_card: true

I’ve tested your code on my device, works fine (see the attached picture showing the RGB pattern). I put the device in boot mode and flashed the factory binary file using the ESP Home web tool.

Thank you so much for the test and the photos - they’re a big help!

May I use the photos for the documentation on devices.esphome.io?

Sure, you can use the photos as you wish. I am not allowed to attach more than one in a single post.

PR is ready to merge. Thanks again.

FYI it is already part of the new device builder, when you add a new device