2 minutes
Darebee daily challenge on Home Assistant dashboard
Intro ¶
On a random rainy day I was browsing the web and some rabit hole led me to calisthenics and eventually made me end up at DAREBEE. Here I discovered a wide range of fitness workout programs.
Their site also features a daily challenge, which is great to keep yourself challenged and your workouts varied.
I thought it’d be a nice addition to my Home Assistant dashboard to include this daily challenge. Especially if you have a wall-mounted tablet or some other clearly visible dashboard display.
Getting to work ¶
All we need to do is (a) grab the image of the DAREBEE site and (b) display it on our dashboard. Sounds simple, right?
Scrape ¶
First I need to get to the image of the daily workout.
Looking at the page’s source, I can see the link looks like https://darebee.com/images/exercise/2023/july18.gif
, which means it changes daily with the challenge.
I could write a template that automatically changes daily. However, this could become somewhat sizeable, parsing a datetime object 2 or 3 times. But also, timezone difference may result in the link not (yet) working, especially if your timezone is ahead of DAREBEE’s.
So I opted to go for scraping instead.
The following snippet will give you the full URL of the image as a sensor (as long as the layout of the site doesn’t change):
scrape:
- resource: https://darebee.com/
scan_interval: 3600 # Every hour, just to be sure we get it quickly once it updates
sensor:
- name: Darebee daily challenge
unique_id: darebee_daily
icon: mdi:weight-lifter
select: "#exercise > div:nth-child(1) > p:nth-child(1) > a:nth-child(1) > img:nth-child(1)"
attribute: src
value_template: "https://darebee.com{{ value }}"
Image ¶
Home Assistant’s 2023.7 release introduces the concept of image entities. No more hassling with a Generic Camera to display a (static) image on our dashboard 🎉
Using a template, we can grab the image URL from our scrape sensor and turn it into an image entity:
template:
- image:
- name: Darebee daily challenge
unique_id: darebee_daily_img
icon: mdi:weight-lifter
url: "{{ states('sensor.darebee_daily_challenge') }}"
Display on dashboard ¶
Now all that’s left, is adding a picture card to our dashboard and we’re done!
cards:
- type: picture
image_entity: image.darebee_daily_challenge
alt_text: Darebee Daily Challenge

Closing thoughts ¶
DAREBEE is a crowd-funded non-profit resource. If you find their collection of workouts useful to you, consider supporting them by donating or purchasing one of their books.