This project does it for an e-ink screen, and has working code that also prevents too frequent updates to limit e-ink refreshes.
The only adjustment needed is that you will need to change the use of the forecast attribute to a service call. That isn’t very hard to do. I can post an example once I’m behind my laptop.