I’ve been tinkering with GitHub - dgwynne/wslv: LVGL x wscons on OpenBSD on and off for a few months now, and it’s now at a point where I think it’s usable. Rough, but usable. If you’re familiar with OpenHASP or the LVGL support in Tasmota, then this is like that but different. Instead LVGL running on an MCU, this is LVGL running on a computer with a touch screen.
wslv glues LVGL and MQTT together using GitHub - XuNeo/luavgl: lua + lvgl = luavgl An optimized lvgl Lua binding. I originally tried to use the Berry bindings to LVGL from Tasmota, but got overwhelmed with issues relating to mismatched versions between all the bits. luavgl was very easy to get working, and adding support for extra widgets (buttons, switches, and sliders in particular) was straightforward.
I’m now able to control some lights and fans and stuff using a Waveshare touch screen on my desk plugged into a Dell Wyse 3040 I got for cheap off Ebay. My intention is to wall mount the display once I figure out a few things with LVGL itself and improve the usability of the interface.
https://github.com/dgwynne/wslv/blob/main/example.lua is a rough example. It provides a small interface for controlling a light and its brightness over MQTT.