E-paper display

Thanks for your reply.
I have the 7.5 v1 with 640x480

This is my latest project using lilygo t5-4.7 epaper display. This pulls data from HA API and refresh every minute. I’ve used EPDiy framework for this project. Let me know what do you guys think.

11 Likes

Very nice.

This is awesome! Would you care to share your code please?

Thanks I certainly will. Need to add bit of documentation for configurability and after that I will upload it to github.

Project uploaded: Home Assistant Dashboard for Lilygo T5 4.7 Inch E-Paper Display

2 Likes

Having a problem that someone might be able to help me with.
Using some of everyones work I created a display using a 2.90 waveshare and a Lolin D32 Pro board.
Here is the code I am using for the display.

spi:
  clk_pin: $gpio_spi_clk_pin #GPIO25
  mosi_pin: $gpio_spi_mosi_pin #GPIO26
  id: epaper_display 
display:
  - platform: waveshare_epaper
    id: epaper
    cs_pin: $gpio_cs_pin #GPIO32
    busy_pin: $gpio_busy_pin #GPIO33
    reset_pin: $gpio_reset_pin #GPIO27
    dc_pin: $gpio_dc_pin #GPIO13
    model: 2.90inv2 #269x128
    update_interval: 60s
    rotation: 90

I had to make one change because of the board the dc_pin was changed from GPIO17 to GPIO13 because the proboard does not show a GPIO17. Where the pin should be just says NC.

The problem is my display. When it first boots up it is great (top pic), then it starts an update (middle pic), then settles down until the next update (bottom pic).

What do I need to look at in order to fix this.

Many thanks who have already figured much of this ou.

I had a similar problem with my 7.5 e-paper Waveshare display with a separate board.
The board was faulty. After switching the board with a new one the picture was perfect.

Thank you @tebra .
I have tried it on thre different models of an esp32 as well as 3 wave share displays.
They all give the same results.
I do not think that three displays would be faulty, but possible.

On my display I want to show if a motion sensor has been tripped.
I beleive that your code for display who is home would help me.
Would you mind sharing.
Thank you.

Hello @carltonb

Sure, I have text_sensors defined like this :

text_sensor:

 - platform: homeassistant
    entity_id: device_tracker.galaxy_s21_5g
    id: tim
    name: Tim

Where device_tracker.galaxy_s21_5g is my phone from the unifi wifi integration.

Later in the lamba section I have :

// Tim //

  if (id(tim).state == "home") {
  it.printf(150, 15, id(icon_font_30), "\U000F0643");}
  
  //Dog walk//
  
  if ((id(tim).state == "not_home")  && (HourOfDay <9) ){
  it.printf(150,15, id(icon_font_30), "\U000F0A44");}
  
  //Shopping//
  
  if ((id(tim).state == "not_home") && (HourOfDay >9 && HourOfDay < 14)) {
  it.printf(150, 15, id(icon_font_30), "\U000F0111");}
  
  //Cycling//
  
  if ((id(tim).state == "not_home")  && ((HourOfDay >14) && (HourOfDay <15) )){
  it.printf(150,15, id(icon_font_30), "\U000F00A3");}
  
  //Walking//
  
  if ((id(tim).state == "not_home")  && ((HourOfDay >15) && (HourOfDay <19) )){
  it.printf(150,15, id(icon_font_30), "\U000F0583");}

Hope that helps

I think for use case you could have an input boolean called sensor_tripped, add that in as a text_sensor then display thinks in the lambda section depending whether its true or false (You probably want to reset the boolean at some point too - overnight ?)

Thank you.
It put me on the right path.

1 Like

Just started mine. Gonna share all project when it’ll be finished.

5 Likes

And this is the final result of my project.

Project Details:

9 Likes

Next one :slight_smile:

The battery icon is work in progress and is only a placeholder.
The two rectangles are graphs one for air pressure, one for power.
The trashcan is driven from a calendar and shows a trashcan for garbage collection day, a carrot for bio waste collection day and a parcel icon for cartboard and paper collection day.
There are little icons around the room icons. Next to the sofa is a lightbulb wich indicates that the light is on in that room. There is also a fire icon for heatings and wind icons for open windows. Next to the humidity of living-room (sofa) and bedroom (bed) are crossed out water drops if the humidifier is empty in that room.


4 Likes

Hi,
just started a small project. On the 4.2 inch e-ink display i need to have status of the closing of the balcony door and the lights in the dressing room and bathroom.
I have a problem with refreshing the display. I would like it to refresh automatically when the status of the light/door sensor changes. Is it possible to refresh the display from the code? Use interval refreshing isnt good option. Should i use automation of sensor and component.display?
Light sensor based ESPEasy and MQTT., door sensor is z-wave binary.
I;m using Home Assistant from 2 weeks, in the past i was using Domoticz. For doing Panel and sensor, a used Arduino - it was more universal.
Thanks.

text_sensor:     
  - platform: homeassistant
    name: "garderoba_swiatlo"
    id: gard_light
    entity_id: switch.swiatlo_garderoba
    internal: true 
font:
  - file: 'config/fonts/roboto/Roboto-Medium.ttf'
    id: font1
    size: 24
    
spi:
  clk_pin: D5
  mosi_pin: D7

display:
  - platform: waveshare_epaper
    id: eink
    cs_pin: D8
    dc_pin: D2
    busy_pin: D1
    reset_pin: D4
    model: 4.20in
    update_interval: 300s
    lambda: |-
      it.printf(10, 10, id(font1), "Temperatura : %.1fc", id(panel_temp).state);
      it.printf(10, 40, id(font1), "Wilgotnosc  : %.1f  ", id(panel_hum).state);
      std::string gard_light_val = to_string(id(gard_light).state);
      std::string gard_light_val_prev;
      it.printf(10, 70, id(font1), " Garderoba swiatlo: %s",id(gard_light).state.c_str());
      if(gard_light_val != gard_light_val_prev) {
            gard_light_val_prev = gard_light_val; 
        some command for display refresh; }

Arek

You can use component.update:

id(eink).update();

Thank you, i did it, and works great:

binary_sensor:
  - platform: homeassistant
    device_class: motion
    id: drzwi_balkon
    entity_id: binary_sensor.door_window_sensor_door_window
    internal: true
    on_state:
      then:
        - component.update: eink

Hello,
I’d like to create an e-paper clock (with some optional extra info like weather) that will auto-correct its time via HA’s RPi Zero (similar to the NTP protocol). Several questions:

  1. Can ESPHome be used with some sort of sleep(1s)-cycle to emulate clock and check/correct to the exact time, queried on the HA, once an hour or once day?
  2. Are there partial refresh e-paper displays that would allow to display time in seconds resolution, not just minutes?
  3. I see that most people here use WiFi for the link between ESPHome and HA/RPi… which consumes a lot of power… Can BlueTooth be used instead?

Thank you!

For this weird display update problem, check out this github issue. It fixes it!

1 Like