Use ESPHome with e-ink Displays to blend in with your home decor!

add on store isnt available for when home assistant is running in a docker container. But I’m pretty sure theres an issue with the screen as I cant get it t run regardless of adding to HA

can confirm it was a screen issue. Got a new one and it’s working now :slight_smile:

1 Like

Hey guys. Sorry for being such a noob but I’m going round and round in circles trying to figure out how to get this to work. I have my display connected and it has ‘WAITING FOR DATA…’ on there. I’ve removed the parts of the code that waits for motion sensor and the train stuff but I cant figure out how to at least get the weather loading… what do I have to do exactly in home assistant to retrieve this? Thank you

Please post your code.

its not about the code. I’ve just copied OPs and extracted certain parts. I just have no idea what I need to do in HA to tie it together. What is weatherman_data for example as I cant see that sensor information in the weatherman integration on HA. How do I include my own weather integration into this? I’m sure it takes just a little instruction to understand and I will eventually get there but for some reason theres a lack of tutorials out there that explain this side of things.

  1. Add integration Meteorologisk institutt (Met.no) - Home Assistant
    (hourly)
  2. in the configuration.yaml file add
    image

template: !include template.yaml

  1. Create a template.yaml file in the location where configuration.yaml is
    Paste the code below the template text line 41 from the sensor.yaml file from the first post (if you use this code in your project)
    GitHub - Madelena/esphome-weatherman-dashboard: A simple dashboard with weather and NYC subway information for ESPHome
  2. Check, possibly replace the name of the weather sensor in the Weatherman data attributes and Weatherman Motion Detected.
  3. Restart Home Assistant
  4. Check the status of sensor.weatherman_data is OK
1 Like

Thanks for this. That should be enough for me to make some progress. At least for now I am able to print some text as well as use HA to get date and print that also :slight_smile:
Do you happen to know any good resources (not Youtube) where we can learn all about templates and sensors? Everything I come across seems to just explain how to add things via the UI but the real power is of course writing this code. Cheers

Edit: perhaps ESPHome site has most of what I need.
Automations and Templates — ESPHome - Templates (Lambdas)

1 Like

First step. Hourly entity is disabled (by integration). Cant see how to enable?

Select it with the tick box and you should get “enable selected” top right corner (next to filter).
Or press the entity and chose settings menu, there you should have enabled, disabled and hidden to choose from.
Writing this from memory so maybe not exactly right but should point you in the right direction.

1 Like

that did it. Thank you.

Hello. I have waveshare 7.5 display black/white. It was working all good for a few months. But then I started to see some shadowing (?) on the display. And that shadowing was still getting bigger. There is no problem with ESP32 controller. I switched to another one, and the problem was occurring still.


When refreshing - there is a short moment, when there are no smudges. You can see it in the video.

Do you have any idea what is wrong with my display?

Seems like IKEA Ribba is more or less discontinued by IKEA now (not possible to buy in Sweden at least). Anyone have an alternative frame that can be used/recommended?

1 Like

Sure? Still there in Belgium…

I can see RIBBA black and white 13x18cm in Norway, but 18x24cm is labeled with “last chance”.

Swedish IKEA page says it is still available, ie RIBBA Ram, svart, 13x18 cm - IKEA


Finally I finished it. Works great with Cyrillic and battery. I will test the possibilities further. It is interesting to try to make a red output. Thanks to everyone who helped make this happen. If needed, I can share parts of my code. All the electronics fit perfectly behind the frame on the pads printed on the 3D printer.

4 Likes

The thing you are seeing makes sense.
The statement next_rising < next_setting in the if-statement will get true after sun-set-time. This is because, after sunset (in your case 5.02pm) the sensor next_setting will update to the sun-set-time for the following day.

Try this for the first if-statement:

{% if ( cond1_time < next_rising and next_rising < next_setting ) or ( cond1_time > next_setting and cond1_time < next_rising ) %}
1 Like

thanks. it works perfectly now :slight_smile:

1 Like

Was to be expected :slight_smile:
As soon as the time is greater than the sun-set-time (next_setting), the next_setting-sensor will update to the sun-set-time for tomorrow.

For this first item (4pm), we still want to check against the sun-set-time for today.

Try this (not tested), it introduces a new variable previous_setting, which is basically equal to next_setting - 24 hours. It is basically the sun-set-time for tomorrow at the date of today. I assume this will be more or less equal (will probably difference a few minutes).

{% set cond1 = state_attr('weather.forecast_home_hourly', 'forecast')[1].condition %}
{% set next_setting = as_timestamp(state_attr('sun.sun', 'next_setting')) %}
{% set previous_setting = as_timestamp(state_attr('sun.sun', 'next_setting')) - 86400  %}

{% set next_rising = as_timestamp(state_attr('sun.sun', 'next_rising')) %}
{% set cond1_time = as_timestamp(state_attr('weather.forecast_home_hourly', 'forecast')[1].datetime) %}

{% if ( cond1_time < next_rising and next_rising < next_setting and cond1_time > previous_setting) or ( cond1_time > next_setting and cond1_time < next_rising ) %}
  {% if cond1 == 'sunny' %} night {% elif cond1 == 'partlycloudy' %} night-partly-cloudy {% else %} {{ cond1 }} {% endif %}
{% else %}
  {{ cond1 }}
{% endif %}
1 Like

Thanks! Well I am using the refresh timestamp for that to confirm it is sleeping. If there is no new timestamp then it is sleeping. I do not like the idea of a blank screen, in my case it should still keep the daily solar result so I can take a look at the statistics even if it is asleep. But if you need this then just take a look at the “WAITING FOR DATA…” part in the original code from madelena. You can use something like this.

Perhaps the problem is that your screen is updated too often? I’ve read from the manufacturer that it’s recommended to set refresh rates to at least 180 seconds, and also to keep the display power off from time to time if possible.