sidoh / epaper_templates

Template-oriented driver for e-paper displays
MIT License
252 stars 28 forks source link

Option to manually trigger redraw #73

Open guibom opened 3 years ago

guibom commented 3 years ago

When using a display that doesn't support partial refresh (like 3 color ones), it doesn't seem possible to change multiple variables at once.

As soon as I change one variable in MQTT, it triggers the redraw as expected. However since it's a lengthy process, if another variable changes during that time, it seems to interrupt the current drawing before it has a chance to finish. So I can't seem to find a way to use multiple retained MQTT messages for example (even when using Windowed Updates). Each variable has to be timed and sent only after each redraw is done.

I think one possible solution would be to have an option to NOT automatically redraw the display, and only do it once it receives a specific command over REST or MQTT. So the variables can be updated first, and then shortly after the redraw is triggered.

Thanks for the awesome project btw!

sidoh commented 3 years ago

Hey @guibom, apologies for the late reply.

The request makes sense, but I think it would be even better if the screen performed as it should when multiple variables are received within a short period. I actually intended for that to work as you would expect (updates are automatically batched), but there might be some funky edge cases that are distinctly noticeable with slow-updating screens.

Which screen are you using? I might have one laying around to test with.

Could you also share the output of /api/v1/settings? (⚠️⚠️sensor any passwords that might appear! ⚠️⚠️)