I created an ESPHome configuration for the low-end GeekMagic TV. It supports displaying three text pages with basic formatting and includes a notification service. The page rotation speed can be adjusted, and a specific page can also be set as fixed. It might not be completely bug-free, but it has been working well for me so far. I wrote it with a lot of help from Copilot.
Iāve made some updates to my ESPHome configuration for the low-end GeekMagic TV:
⢠Added support for five pages (up from three).
⢠Included a number input to set a max page for rotation.
⢠Implemented an error message if the sensor for the text isnāt set up in Home Assistant.
⢠Added more buttons and services to switch pages.
⢠Changed the font and font sizes.
⢠Improved the calculation for new lines, making it better and cleaner.
⢠Included a startup message since sensors from Home Assistant need to load before the first display.
⢠Added an action to update the display content whenever the sensor text value is updated in Home Assistant.
⢠Included a switch to activate/deactivate this last behavior.
These changes make the setup more flexible and user-friendly. Let me know what you think or if you encounter any issues!
Can someone give me a hand Iām trying to implement an MVP, to start working on that but seems that the flashing is okay but when I plug in the screen is black and on HA the device is offline
Hi guys! Iām really glad that I found this.
I purchase a clone of this device, and Iām just using as a weather clock, tbh, but I didnāt like the design. So I was looking how to program my personal taste on it. And only after fiding this I was able to make the display alive.
Iām really beggining in this code world.
Next step is learning how to use API for my home devices and my google calendar.
But right now all I want is to discover how to set the brightness of the display. Iām having hugh trouble, try many ways but nothing works. If anyone know how to do it, and could give me a tip, thatās all I ask.
Thankyou so much.
I would really like to use the device as a monitor for energy consumption using the color of the base to indicate green production, red consumption. Have you managed to interface it with HA?
Hi @rletendu can you post an updated version?
I have ESPhome as docker (on a separate machine) and the config doesnt work anymore.
I“ve figured that i have to download the fonts directly:
But i guess there is an issue with the lambda at the end ā¦iĀ“ll always get
Traceback (most recent call last):
File "/usr/local/bin/esphome", line 8, in <module>
sys.exit(main())
^^^^^^
File "/esphome/esphome/__main__.py", line 1049, in main
return run_esphome(sys.argv)
^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/__main__.py", line 1036, in run_esphome
rc = POST_CONFIG_ACTIONS[args.command](args, config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/esphome/esphome/__main__.py", line 503, in command_run
exit_code = write_cpp(config)
^^^^^^^^^^^^^^^^^
File "/esphome/esphome/__main__.py", line 212, in write_cpp
generate_cpp_contents(config)
File "/esphome/esphome/__main__.py", line 224, in generate_cpp_contents
CORE.flush_tasks()
File "/esphome/esphome/core/__init__.py", line 674, in flush_tasks
self.event_loop.flush_tasks()
File "/esphome/esphome/coroutine.py", line 246, in flush_tasks
next(task.iterator)
File "/esphome/esphome/__main__.py", line 204, in wrapped
await coro(conf)
File "/config/.esphome/external_components/600432c8/esphome/components/st7789v/display.py", line 164, in to_code
await display.register_display(var, config)
File "/esphome/esphome/components/display/__init__.py", line 136, in register_display
await cg.register_component(var, config)
File "/esphome/esphome/cpp_helpers.py", line 53, in register_component
raise ValueError(
ValueError: Component ID disp was not declared to inherit from Component, or was registered twice. Please create a bug report with your configuration.
This is really cool. I have this one and the firmware is really lacking compared to the original Geek Magic. I was hoping to learn to customize it myself. Can you share how you got to rewrite the firmware? Thanks
I asked the seller / creator / support guy for the source code to their firmware and they said they wonāt give it out so Iād rather make my own than connect this thing to my network. I should have bought GeekMagic since it is open source.
if it helps, I have the backlight adjustable on mine. State is saved on power cycle. mine is an esp8266 based ali express variant. this has some other logic you may not want though beyond that, so id just snip the parts you need
Plug it into your PC via USB with a DATA cable (not charging).
go to https://web.esphome.io/
click āconnectā
you should see a usb serial device listed for it. pair with it and click getting started (may be called differently). This will download an initial base configuration for ESPhome to the target device. From this point you can attach to wifi. Then in home assistant, the ESPhome builder integration should autodiscover the device. Take control of it then start sending OTA updates
Thanks that worked. It uploaded the base config successfully but then gives an error that the āImprov Wi-Fi Serial not detected.ā I unplug/plug in and it says the same thing. I had to go to logs and click āreset deviceā then it started up in AP mode. This is a great start, thanks again!
I got a few with the same board, its an ESP32. Build your esphome config, then login to the built in web interface and flash the firmware.ota.bin file. Once thats done you can manage it from esphome from them onwards.
You can probably also flash it through those headers too, but I didnāt try.