Weekend BBQ Weather Notifications with Home Assistant & Buienradar
- Andrea Leandri
- Jun 29
- 6 min read
Skill level: Beginner → Intermediate | Time to complete: 45–60 minutes
What you'll build: A Home Assistant automation that checks the Buienradar forecast twice a day (Monday–Friday) and sends a push notification to your phone whenever Friday, Saturday, or Sunday looks like genuine BBQ weather — warm, sunny, and dry.
The Idea
Planning a weekend BBQ means keeping an eye on the forecast all week. This automation does it for you. It checks Buienradar's forecast for the upcoming Friday, Saturday, and Sunday every morning and evening, and pushes a notification to your phone the moment any of those days clears your personal BBQ threshold:
🌡️ Temperature ≥ 19°C
☀️ Sun chance ≥ 60%
🌧️ Rain chance ≤ 20%
You get notified as soon as a good day appears in the forecast — and again in the evening if you missed the morning check.
What You'll Need
Home Assistant — any recent version (2024.x or later)
Buienradar integration — built into HA, no account or API key needed
HA Companion App — installed on your iPhone or Android, signed in to your HA instance
Your home location set in HA — required for Buienradar to pull your local forecast
Step 1: Set Your Home Location in Home Assistant
Buienradar uses your HA home coordinates to pull a local forecast. Go to Settings → System → General → Home Location. Set your latitude and longitude (for Utrecht where i live is: 52.09 / 5.12). Save and restart if prompted.
Step 2: Install the Buienradar Integration
Buienradar is a built-in Home Assistant integration — no external add-on or API key needed.
Settings → Devices & Services → Add Integration → Search "Buienradar"
Select it, confirm your location, and finish the setup. Once installed, it creates multi-day forecast sensors that update regularly throughout the day.
The sensors this automation uses
Buienradar creates sensors named with a _Nd suffix, where N is the number of days from today. For example, if today is Wednesday:
sensor.temperature_2d → Friday's forecast temperature
sensor.sunchance_2d → Friday's sun chance (%)
sensor.rainchance_2d → Friday's rain chance (%)
The automation calculates how many days away each weekend day is and reads the right sensor dynamically — so it always looks up the correct forecast regardless of what day it runs.
Verify your sensors exist before continuing: go to Developer Tools → States and search for sensor.temperature_. You should see sensors with _1d, _2d, _3d, _4d suffixes with numeric values.
Step 3: Install the Home Assistant Companion App
The notifications are sent directly to your phone via the HA Companion App. Install Home Assistant from the App Store (iOS) or Google Play (Android), sign in to your HA instance, and allow notifications when prompted.
Once connected, HA creates a notify.mobile_app_<your_device> service. To find your exact device name: Settings → Companion App → your device name, or check Developer Tools → Services and search notify.mobile_app.
Step 4: Create the Automation
Go to Settings → Automations & Scenes → Create Automation → Edit in YAML. Paste the full automation below.
alias: BBQ weather notifier — upcoming weekend
description: >
Checks at 09:00 and 18:00 (Mon–Fri) whether the upcoming Friday, Saturday or
Sunday will be BBQ weather per Buienradar.
triggers:
- at: "09:00:00"
trigger: time
- at: "18:00:00"
trigger: time
conditions:
- condition: template
value_template: |
{{ now().weekday() in [0, 1, 2, 3, 4] }}
actions:
- variables:
days_until_friday: |
{% set d = (4 - now().weekday()) % 7 %} {{ 7 if d == 0 else d }}
days_until_saturday: |
{% set d = (5 - now().weekday()) % 7 %} {{ 7 if d == 0 else d }}
days_until_sunday: |
{% set d = (6 - now().weekday()) % 7 %} {{ 7 if d == 0 else d }}
date_friday: >
{{ (now() + timedelta(days=(4 - now().weekday()) % 7 or 7)).strftime('%A %-d %B') }}
date_saturday: >
{{ (now() + timedelta(days=(5 - now().weekday()) % 7 or 7)).strftime('%A %-d %B') }}
date_sunday: >
{{ (now() + timedelta(days=(6 - now().weekday()) % 7 or 7)).strftime('%A %-d %B') }}
temp_fri: "{{ states('sensor.temperature_' ~ days_until_friday ~ 'd') | float(0) }}"
temp_sat: "{{ states('sensor.temperature_' ~ days_until_saturday ~ 'd') | float(0) }}"
temp_sun: "{{ states('sensor.temperature_' ~ days_until_sunday ~ 'd') | float(0) }}"
sun_fri: "{{ states('sensor.sunchance_' ~ days_until_friday ~ 'd') | float(0) }}"
sun_sat: "{{ states('sensor.sunchance_' ~ days_until_saturday ~ 'd') | float(0) }}"
sun_sun: "{{ states('sensor.sunchance_' ~ days_until_sunday ~ 'd') | float(0) }}"
rain_fri: "{{ states('sensor.rainchance_' ~ days_until_friday ~ 'd') | float(100) }}"
rain_sat: "{{ states('sensor.rainchance_' ~ days_until_saturday ~ 'd') | float(100) }}"
rain_sun: "{{ states('sensor.rainchance_' ~ days_until_sunday ~ 'd') | float(100) }}"
# BBQ verdict: true if temp ≥19°C, sun ≥60%, rain ≤20%
bbq_fri: "{{ temp_fri >= 19 and rain_fri <= 20 and sun_fri >= 60 }}"
bbq_sat: "{{ temp_sat >= 19 and rain_sat <= 20 and sun_sat >= 60 }}"
bbq_sun: "{{ temp_sun >= 19 and rain_sun <= 20 and sun_sun >= 60 }}"
- choose:
- conditions:
- condition: template
value_template: "{{ bbq_fri }}"
sequence:
- action: notify.mobile_app_iphone_XXXXXX # ← Replace with your device
data:
title: "🍖 BBQ weather on {{ date_friday }}!"
message: >
Buienradar forecasts {{ temp_fri | round(1) }}°C,
{{ sun_fri | round(0) | int }}% sun,
{{ rain_fri | round(0) | int }}% rain chance.
Time to fire up the BBQ! 🔥
data:
tag: bbq_weather_friday
group: bbq_weather
- choose:
- conditions:
- condition: template
value_template: "{{ bbq_sat }}"
sequence:
- action: notify.mobile_app_iphone_XXXXXX # ← Replace with your device
data:
title: "🍖 BBQ weather on {{ date_saturday }}!"
message: >
Buienradar forecasts {{ temp_sat | round(1) }}°C,
{{ sun_sat | round(0) | int }}% sun,
{{ rain_sat | round(0) | int }}% rain chance.
Time to fire up the BBQ! 🔥
data:
tag: bbq_weather_saturday
group: bbq_weather
- choose:
- conditions:
- condition: template
value_template: "{{ bbq_sun }}"
sequence:
- action: notify.mobile_app_iphone_XXXXXX # ← Replace with your device
data:
title: "🍖 BBQ weather on {{ date_sunday }}!"
message: >
Buienradar forecasts {{ temp_sun | round(1) }}°C,
{{ sun_sun | round(0) | int }}% sun,
{{ rain_sun | round(0) | int }}% rain chance.
Time to fire up the BBQ! 🔥
data:
tag: bbq_weather_sunday
group: bbq_weather
mode: singleStep 5: Replace the Notify Service Name
Find the three lines that read action: notify.mobile_app_iphone_XXXXXX and replace iphone_XXXXXX with your actual device identifier. To find yours: Developer Tools → Services → search notify.mobile_app.
Want to notify multiple people? Add multiple notify actions in each sequence block — one per person, each with their own device name.
Understanding the BBQ Thresholds
Temperature ≥ 19°C — warm enough to be comfortable outside
Sun chance ≥ 60% — more sun than cloud
Rain chance ≤ 20% — low enough to risk firing up the coals
These are sensible Dutch summer defaults. Adjust them freely to match your own comfort level. Want to add wind speed? Buienradar also provides sensor.windspeed_Nd:
wind_fri: "{{ states('sensor.windspeed_' ~ days_until_friday ~ 'd') | float(99) }}"
bbq_fri: "{{ temp_fri >= 19 and rain_fri <= 20 and sun_fri >= 60 and wind_fri <= 30 }}"How the Dynamic Sensor Lookup Works
This is the cleverest part of the automation. Buienradar names its sensors with a day offset: sensor.temperature_1d is tomorrow, sensor.temperature_2d is the day after, and so on.
The automation calculates how far away each weekend day is using modulo arithmetic, then builds the sensor name as a string:
days_until_friday: |
{% set d = (4 - now().weekday()) % 7 %} {{ 7 if d == 0 else d }}
temp_fri: "{{ states('sensor.temperature_' ~ days_until_friday ~ 'd') | float(0) }}"If today is Wednesday (weekday() = 2), days_until_friday = 2, so it reads sensor.temperature_2d. If today is Monday, it reads sensor.temperature_4d. Always the right sensor, regardless of the day the automation runs.
The | float(0) fallback ensures the template returns 0 rather than crashing if a sensor is temporarily unavailable. For rain chance the fallback is 100 (worst case), which correctly prevents a false BBQ alert when the sensor is missing.
Notification Behaviour: Tags & Grouping
Each notification uses a unique tag (bbq_weather_friday, bbq_weather_saturday, bbq_weather_sunday). This means if the automation fires at 09:00 and again at 18:00 for the same day, the second notification replaces the first rather than stacking — your notification tray stays clean.
The group: bbq_weather field groups all three day notifications together on your phone, so they appear as a single collapsible stack rather than three separate banners.
Troubleshooting
No notifications arriving: Confirm the Companion App is connected and notifications are allowed in iOS/Android settings
notify.mobile_app_... not found: Open the Companion App → App Configuration → confirm it's linked to your HA instance
Sensors show unknown or unavailable: Restart HA and wait 5–10 minutes for Buienradar to populate. Check your home location is set correctly.
Automation triggers but no notification: Open the automation → Traces — check which choose branch was taken and whether the BBQ condition evaluated to true
Duplicate notifications every check: Confirm the tag field is set in the data block — this is what prevents stacking
Related Guides
Buienradar Integration Docs → https://www.home-assistant.io/integrations/buienradar/
WhatsApp Notifications from Home Assistant (on this site)
Presence Detection with HA Companion App (coming soon)
Guide written by a Home Assistant enthusiast in Utrecht 🇳🇱. Built with ❤️ and Home Assistant.



Comments