@Spl4sh, Look at the calendar.get_events action in Home Assistant to pull more than the next event from the calendar.
Thank you for your response. What changes should I make, please? Iām not sure I fully understand the article ![]()
Right now, youāre showing just the next event using the default calendar entity, which only exposes one upcoming event at a time. To display the next 3 events, youāll need to take a slightly different approach using a built-in Home Assistant service called calendar.get_events.
This service lets you fetch a list of upcoming events (e.g. next 3) within a time range, like the next 7 days. The idea is to call this service regularly, store the top 3 events in some helper entities like input_text, and then read those values from your ESPHome display.
Hereās a general breakdown of the steps youād need to follow:
- Create a script in Home Assistant that calls the calendar.get_events service and saves the results (like event title and time) into helper entities. These can be input_text entities that act as placeholders for each event.
- Set up a way to regularly update them. You can automate this by running the script every 15 minutes or so, using a simple time-based automation.
- Update your ESPHome display so it reads from the three new input_text entities, instead of just one calendar sensor.
This approach gives you a lot of flexibility, you can format the event details however you want (date/time, summary, description) and decide how often to update them.
Hello!
Iām experiencing an issue with my Waveshare 7.5" e-ink display connected to an ESP32 Waveshare board mentioned here.
For a while I had zero issue, but tonight I ran quite a few refreshes for debug purpose (roughly a 100) and adding more stuff to it.
When displaying minimal content (text over half of the screen), the blacks appear deep and proper. However, as I add more content to the screen, the blacks become increasingly washed out and gray. Interestingly, during the refresh cycle when the screen flickers, I can see proper deep blacks momentarily. I would think to either a power distribution limitation in the e-ink display when handling larger amounts of black content, or potentially a physical connection issue with the ribbon cable (which I double checked). Iāve checked my configuration but havenāt been able to resolve the problem. Also this morning having the same text displayed on 2/3rd of the screen didnāt seem to be an issue, but tonight, its washed out. If I go back to half of the screen (top part or bottom, makes no difference), deep blacks are back.
Iāve got the āv3 stickerā screen.
- platform: waveshare_epaper
id: eink_display
cs_pin: GPIO15
dc_pin: GPIO27
busy_pin: GPIO25
reset_pin: GPIO26
reset_duration: 2ms
model: 7.50in-bV3
update_interval: never
rotation: 90°
lambda: |-
Has anyone experienced similar issues or have suggestions for improving black levels when displaying more content? Have I messed up my screen?
EDIT :
I initially worked with a random esp32 chip, which was working well, then I used the waveshare one, which is forking directly without soldering.
I ordered 2, one was falty and replaced by waveshare, and the second one was slowly causing the mentioned issue.
I reverted to another random esp32, which requires a bit of cable management but at least the screen looks great.
To figure this out, I ordered a second screen, so now I have to start another project to use it ![]()
What is the current real alternative to Ikea RIBBA, this series is no longer on sale.
Maybe Rƶdalm can be an alternative?
The depth is 3 cm, and in RIBBA there were 4, is that enough?
I donāt see an issue with that, the board is approximately 1 cm thick so that should be no problem
If only we knew how much free space there really is (glass, backing, protrusion in front), but out of these 3 cm, 1 or 0.5 may remain
I solved in this way:
display:
- platform: waveshare_epaper
id: eink_display
cs_pin: GPIO15
dc_pin: GPIO27
busy_pin:
number: GPIO25
inverted: true
reset_pin: GPIO26
reset_duration: 2ms
model: 7.50in-bV3
update_interval: never
rotation: 90°
pages:
- id: pagina1
lambda: |-
it.clear(); // Pulisce lo schermo prima di scrivere
Iāve been messing around with an Inkplate6v2 for a while now. I think if youāre running it on battery, you pretty much have to use deep sleep, otherwise youāll end up charging it way too often. The only downside is that partial updates donāt work after waking up from deep sleep when using esphome. Or has anyone found a workaround for that?
Finally, thanks to your examples, I managed to finish my little project. And I wanted to share it with you!
Many thanks for the inspiration, not only do I have a useful display, I also learned a lot.
Here is my take on your idea:
Thanks so much for all the examples and inspiration! I got my little version up and running and itās so cute! I ran into a bit of trouble getting the weather forecast to work with the new weather.get_forecasts action but I eventually got it figured out.
You mean the inverted at gpio25 solved the lack of contrasts between on screen?
YES, but a small note, I have 2 displays, an original waveshare and a clone, with the original no problem, with the clone if densely populated when waking up in the morning (after being in deep sleep all night) it is slightly āblurredā but with each update it improves. It is probably also due to the lack of a full refresh which is instead present in Arduino!
I just setup my own display using your project. It could not have gone smoother. After a few changes to use my own temperature and humidity sensors, setting up Apple and Google calendars in HA, and a couple minor modifications to the layout, everything was working. From unboxing the hardware, to installing the framed device in my kitchen took just four hours!
Thank you for sharing your setup on GitHub!
Hereās my latest project, a portable home dashboard, mainly designed to show a giant umbrella icon when rain is due so I can take my bike jacket (not shown).
This is a Waveshare 7.5" ePaper (black and white) powered by a Firebeetle2 ESP32-C6 and a 10000mAH battery, inside a 3D printed case. It shows the status of my Aqara pet feeder, Roborock vac, lights, and local transport. As well as local sunrise/sunset, battery and wifi levels.
Hereās my revised Bitcoin charting display based on the same platform (in IKEA frame), front and back:
If anyone wants my config (almost entirely rewritten and remodelled) or more photos, let me know ![]()
Hi PharkieB,
First of all, this looks very nice! I was going for the same setup with the Firebeetle 2.
Could you share some images/information on how the jumper wires are connected from the HAT to the Firebeetle? And if itās not too much asked, iād like to see the config as well.
Thanks! ![]()
Ah sure, sorry for the delay, I wasnāt notified about your reply. Welcome to the forums, cheukkie, and thank you!
The pins I use (others could work too):
clk_pin: 4
mosi_pin: 6 # DIN
cs_pin: 7
dc_pin: 1
busy_pin: 3 (inverted!)
reset_pin: 2
Iāve put the files up on a gist:
(main config is loooooong)
That should get you going, and if you have questions about it just let me know.
Best wishes!







