Lilygo T-Display S3 Long / Habbit Desk

Hi everybody,

I recently got a Lilygo T-Display S3 Long screen, and although it was quite difficult to find documentation to get started with it and ESPHome, I finally created this device, which I’ve called ‘Habbit Desk’ (because it’s an evolution of the Habbit I made with the CYD).

Essentially, it’s a device designed to be placed under your desk to control Home Assistant. Below, you can see how it works, as well as the instructions and full code in the article on aguacatec.

I hope you like it! :smiley:

PS: Thanks to pixelwave for his project, which helped me get started and served as inspiration!



4 Likes

Nice!
How do you find quality of the screen? Is black good enoight, especially in night? Or just ugly greyish?

1 Like

I haven’t tested It in the darkness :sweat_smile: i Will and let you know.

For now, i am very Happy with this device

This looks great. thanks for sharing!

just fyi: the first link to the screen on aliexpress does not work.

1 Like

sadly due to changes in esphome this code isnt working anymore. I suspect it has something to do with the external_components. any help would be great.

I have tried to get the setup working without external components, it took some time, and I am still not 100% sure all touch zones is working but here is what is working for me.https://github.com/TheTechDane/ESPHome/blob/72896e15914c23a2725cd0855e66bc7b27f224e0/Misc.%20YAML%20files/esphome-Lilygo-S3-Long%20-%20New%20first%20version%20fixed.yaml

By the way the display is availablele here: T-Display S3 Long – LILYGO®

1 Like

I just tried your code, and while the screen does work (sort of), it doesn’t change when pressed. I changed a couple of the sensors to my sensors, but those are the only changes I made. I get a lot of log activity when I do touch the screen, but the screen never changes.
Log snippet:

[13:42:24.980][D][binary_sensor:039]: 'Device 1': New state is ON
[13:42:24.984][D][light:086]: 'Display' Setting:
[13:42:24.988][D][light:137]:   Transition length: 1.0s
[13:42:24.990][D][switch:020]: 'Display' Turning ON.
[13:42:24.994][D][binary_sensor:039]: 'Screen': New state is ON
[13:42:25.136][D][binary_sensor:039]: 'Device 1': New state is OFF
[13:42:25.139][D][binary_sensor:039]: 'Screen': New state is OFF
[13:44:10.044][D][homeassistant.sensor:024]: 'sensor.gw2000b_indoor_temperature': Got state 74.12
[13:44:10.044][D][sensor:131]: 'sensor_home_temperature': Sending state 74.12000 °F with 1 decimals of accuracy
[13:44:10.069][D][homeassistant.sensor:024]: 'sensor.gw2000b_outdoor_temperature': Got state 85.64
[13:44:10.074][D][sensor:131]: 'sensor_temperature': Sending state 85.64000 °F with 1 decimals of accuracy
[13:45:11.228][D][homeassistant.sensor:024]: 'sensor.gw2000b_indoor_temperature': Got state 73.94
[13:45:11.228][D][sensor:131]: 'sensor_home_temperature': Sending state 73.94000 °F with 1 decimals of accuracy
[13:45:26.076][I][cal:367]: x=639, y=65, x_raw=0, y_raw=411, state=1
[13:45:26.079][D][light:086]: 'Display' Setting:
[13:45:26.083][D][light:137]:   Transition length: 1.0s
[13:45:26.086][D][switch:020]: 'Display' Turning ON.
[13:45:26.089][D][binary_sensor:039]: 'Screen': New state is ON
[13:45:26.269][D][binary_sensor:039]: 'Screen': New state is OFF
[13:45:26.738][I][cal:367]: x=295, y=68, x_raw=99, y_raw=401, state=1
[13:45:26.742][D][binary_sensor:039]: 'Device 3': New state is ON
[13:45:26.794][D][light:086]: 'Display' Setting:
[13:45:26.798][D][light:137]:   Transition length: 1.0s
[13:45:26.801][D][switch:020]: 'Display' Turning ON.
[13:45:26.804][D][binary_sensor:039]: 'Screen': New state is ON
[13:45:26.865][D][binary_sensor:039]: 'Device 3': New state is OFF
[13:45:26.868][D][binary_sensor:039]: 'Screen': New state is OFF
[13:45:27.323][I][cal:367]: x=299, y=67, x_raw=98, y_raw=406, state=1
[13:45:27.327][D][binary_sensor:039]: 'Device 3': New state is ON
[13:45:27.330][D][light:086]: 'Display' Setting:
[13:45:27.334][D][light:137]:   Transition length: 1.0s
[13:45:27.337][D][switch:020]: 'Display' Turning ON.
[13:45:27.340][D][binary_sensor:039]: 'Screen': New state is ON
[13:45:27.430][D][binary_sensor:039]: 'Device 3': New state is OFF
[13:45:27.433][D][binary_sensor:039]: 'Screen': New state is OFF
[13:45:45.105][I][cal:367]: x=250, y=110, x_raw=112, y_raw=255, state=1
[13:45:45.105][D][binary_sensor:039]: 'Device 2': New state is ON
[13:45:45.112][D][light:086]: 'Display' Setting:
[13:45:45.112][D][light:137]:   Transition length: 1.0s
[13:45:45.164][D][switch:020]: 'Display' Turning ON.
[13:45:45.169][D][binary_sensor:039]: 'Screen': New state is ON
[13:45:45.176][D][binary_sensor:039]: 'Device 2': New state is OFF
[13:45:45.180][D][binary_sensor:039]: 'Screen': New state is OFF

Not sure why that is happening.
So, I sorted out that issue, but the thing that is happening now is I can touch the screen and the screen changes, but it goes forward to a blank screen, which I assume is where the device icons should be, except there are no icons and I can’t go back. I’ll figure it out eventually.

Okay, got the screens working correctly, except for the going back. I can’t figure out how to get back to the home screen. Is there a “back” or “home” button that is supposed to be showing? Because, I don’t have one for some reason.

I did update the file later, maybe you have a early file. Make sure the Touchscreen definition has the Calibration section.

calibration:
  x_min: 0
  x_max: 640
  y_min: 0
  y_max: 180

Hi Kim!

I just shared a new version of the interface, based on LVGL and the configuration you shared with us :slight_smile: Thanks a lot!

Definitely, now it is working much better!!

1 Like