Mountain weather, avalanche forecasts, and weather alerts for Home Assistant
Serac is a comprehensive Home Assistant integration providing detailed mountain weather data, avalanche bulletins, and weather alerts for the French Alps, Pyrenees, and Corsica. Get accurate forecasts from Météo-France AROME/ARPEGE models, real-time avalanche risk assessments, and department-level weather alerts (Vigilance).
- Weather entity with 7-day daily and 48-hour hourly forecasts
- 51 weather sensors including:
- Current conditions (temperature, humidity, wind, precipitation, cloud coverage)
- 3-day detailed forecasts (13 parameters per day)
- Sunrise/sunset, UV index, sunshine duration
- Hourly precipitation forecasts
- 6 air quality sensors with 5-day forecasts:
- European Air Quality Index (AQI)
- PM2.5, PM10, NO₂, O₃, SO₂ levels
- 12 vigilance sensors for Météo-France weather alerts:
- Overall alert level (1-4 scale: Green/Yellow/Orange/Red)
- Alert color code and human-readable summary
- 9 individual phenomenon sensors (wind, avalanche, rain/flood, etc.)
- 3 binary sensors for easy automation triggers:
has_active_alert- Any alert above greenhas_orange_alert- Orange or red alertshas_red_alert- Red alerts only
- Manual update service -
serac.update_vigilanceto force refresh - Department-based alerts - Automatically detects French department from GPS coordinates
- Enhanced attributes -
active_alerts,alert_count,highest_levelfor powerful automations - Requires separate API token - Météo-France Vigilance API subscription needed
- 8 avalanche sensors per massif:
- Risk levels (today & tomorrow, 1-5 scale)
- High/low altitude risk zones
- Accidental & natural avalanche descriptions
- Bulletin summaries and dates
- Multiple massifs support - select 0-11 massifs from Haute-Savoie/Savoie regions
- Separate device per massif for clear organization
- User-defined entity prefix for clean, memorable entity IDs
- Example:
sensor.serac_chamonix_temperature - Avalanche sensors include massif:
sensor.serac_chamonix_aravis_avalanche_risk_today
- Open HACS in Home Assistant
- Click on Integrations
- Click the ⋮ (three dots) in the top right
- Select Custom repositories
- Add repository URL:
https://github.com/atacamalabs/ha-serac - Select category: Integration
- Click Add
- Find Serac in HACS and click Download
- Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for Serac and follow the setup steps
- Download the
custom_components/seracfolder from this repository - Copy it to your Home Assistant
config/custom_components/directory - Restart Home Assistant
- Go to Settings → Devices & Services → Add Integration
- Search for Serac
Serac uses a simple 3-step configuration flow:
- Enter a name for your location (e.g., "Chamonix Mont-Blanc")
- Enter GPS coordinates (latitude, longitude)
- Example: Chamonix (45.9237, 6.8694)
- Choose a short identifier for your entities
- Suggested automatically from your location name
- Used in entity IDs:
sensor.serac_{your_prefix}_temperature
- Add Météo-France BRA API token for avalanche bulletins (optional)
- Select massifs for avalanche bulletins (0-35 massifs)
- Add Météo-France Vigilance API token for weather alerts (optional)
- Skip if you only want weather data
Once configured, Serac appears in your Devices & Services with a custom logo.
- Google Maps: Right-click on location → Click coordinates to copy
- OpenStreetMap: openstreetmap.org
- Your Phone: Use GPS app to get current coordinates
For avalanche bulletins, you need a Météo-France BRA API token:
- Visit Météo-France API Portal
- Create an account
- Subscribe to the BRA (Bulletin Risque Avalanche) API
- Copy your API key
- Enter it during Serac setup or leave empty to skip avalanche features
For weather alerts, you need a separate Météo-France Vigilance API token:
- Visit Météo-France API Portal
- Create an account (or use your existing account)
- Subscribe to the Vigilance (Bulletin Vigilance) API
- Copy your API key
- Enter it during Serac setup or leave empty to skip weather alerts
Note: BRA and Vigilance are separate API subscriptions and require different tokens.
All French massifs are now supported for avalanche bulletins! 🎉
Northern Alps:
- Chablais • Aravis • Mont-Blanc • Bauges • Beaufortain
- Haute-Tarentaise • Chartreuse • Belledonne • Maurienne
- Vanoise • Haute-Maurienne • Grandes-Rousses • Thabor
- Vercors • Oisans • Pelvoux
Southern Alps:
- Queyras • Dévoluy • Champsaur • Embrunais-Parpaillon
- Ubaye • Mercantour • Alpes-Azur
- Pays-Basque • Aspe-Ossau • Haute-Bigorre • Aure-Louron
- Luchonnais • Couserans • Haute-Ariège • Orlu-St-Barthélémy
- Capcir-Puymorens • Cerdagne-Canigou • Andorre
- Corse
Total: 35 massifs supported across all French mountain ranges!
Add a weather forecast card to your Lovelace dashboard:
type: weather-forecast
entity: weather.serac_chamonix
forecast_type: dailyDisplay current mountain conditions:
type: entities
title: Mountain Conditions - Chamonix
entities:
- entity: sensor.serac_chamonix_temperature
- entity: sensor.serac_chamonix_humidity
- entity: sensor.serac_chamonix_wind_speed_current
- entity: sensor.serac_chamonix_wind_gust_current
- entity: sensor.serac_chamonix_european_aqi
- entity: sensor.serac_chamonix_elevationMonitor avalanche conditions for a specific massif:
type: entities
title: Avalanche Risk - Aravis
entities:
- entity: sensor.serac_chamonix_aravis_avalanche_risk_today
- entity: sensor.serac_chamonix_aravis_avalanche_risk_tomorrow
- entity: sensor.serac_chamonix_aravis_avalanche_risk_high_altitude
- entity: sensor.serac_chamonix_aravis_avalanche_risk_low_altitude
- entity: sensor.serac_chamonix_aravis_avalanche_accidentalDisplay Météo-France Vigilance weather alerts:
type: entities
title: Weather Alerts - Haute-Savoie
entities:
- entity: sensor.serac_home_vigilance_summary
- entity: sensor.serac_home_vigilance_level
- entity: sensor.serac_home_vigilance_color
- entity: binary_sensor.serac_home_has_active_alert
- entity: binary_sensor.serac_home_has_orange_alert
- entity: binary_sensor.serac_home_has_red_alertIndividual Phenomenon Sensors for granular monitoring:
type: entities
title: Alert Phenomena
entities:
- entity: sensor.serac_home_vigilance_phenom_wind
- entity: sensor.serac_home_vigilance_phenom_avalanche
- entity: sensor.serac_home_vigilance_phenom_rain_flood
- entity: sensor.serac_home_vigilance_phenom_snow_ice
- entity: sensor.serac_home_vigilance_phenom_thunderstormEnhanced Sensor Attributes for powerful automations:
active_alerts: List of active alerts with phenomenon, name, level, coloralert_count: Number of active (non-green) alertshighest_level: Maximum alert level currently active (1-4)department: French department code (e.g., "74")department_name: Department name (e.g., "Haute-Savoie")phenomena: Complete alert data for all phenomenawind_level,avalanche_level, etc.: Quick access to specific phenomena
automation:
- alias: "Mountain High Wind Alert"
trigger:
- platform: numeric_state
entity_id: sensor.serac_chamonix_wind_gust_max_day0
above: 60
action:
- service: notify.mobile_app
data:
title: "⚠️ High Wind Warning"
message: "Wind gusts expected to exceed 60 km/h today in Chamonix!"automation:
- alias: "High Avalanche Risk Alert"
trigger:
- platform: numeric_state
entity_id: sensor.serac_chamonix_aravis_avalanche_risk_today
above: 3
action:
- service: notify.mobile_app
data:
title: "⚠️ Avalanche Warning"
message: "Avalanche risk level {{ states('sensor.serac_chamonix_aravis_avalanche_risk_today') }} in Aravis today!"Using the new binary sensors for simple, reliable triggers:
automation:
- alias: "Weather Alert Notification"
trigger:
- platform: state
entity_id: binary_sensor.serac_home_has_active_alert
to: "on"
action:
- service: notify.mobile_app_iphone
data:
title: "⚠️ Weather Alert"
message: >
{{ state_attr('binary_sensor.serac_home_has_active_alert', 'alert_count') }}
alert(s): {{ states('sensor.serac_home_vigilance_summary') }}Trigger on serious weather conditions:
automation:
- alias: "Dangerous Weather Alert"
trigger:
- platform: state
entity_id: binary_sensor.serac_home_has_orange_alert
to: "on"
action:
- service: notify.mobile_app_iphone
data:
title: "🚨 Dangerous Weather"
message: "{{ states('sensor.serac_home_vigilance_summary') }}"
data:
push:
sound:
name: "default"
critical: 1
volume: 1.0Use text-to-speech for red alerts:
automation:
- alias: "Red Alert TTS Announcement"
trigger:
- platform: state
entity_id: binary_sensor.serac_home_has_red_alert
to: "on"
action:
- service: tts.google_translate_say
entity_id: media_player.home
data:
message: >
Attention! Emergency weather alert:
{{ states('sensor.serac_home_vigilance_summary') }}
- service: light.turn_on
target:
entity_id: light.all_lights
data:
flash: "long"
rgb_color: [255, 0, 0]Monitor individual weather phenomena:
automation:
- alias: "Avalanche Risk Alert"
trigger:
- platform: numeric_state
entity_id: sensor.serac_home_vigilance_phenom_avalanche
above: 2 # Yellow or above
action:
- service: notify.mobile_app
data:
title: "❄️ Avalanche Alert"
message: >
Avalanche risk: {{ states('sensor.serac_home_vigilance_phenom_avalanche') | int }}
({{ state_attr('sensor.serac_home_vigilance_summary', 'phenomena')['avalanche']['color'] }})Show alert card only when alerts are active:
type: conditional
conditions:
- entity: binary_sensor.serac_home_has_active_alert
state: "on"
card:
type: markdown
content: |
## ⚠️ Weather Alerts
{{ states('sensor.serac_home_vigilance_summary') }}
**Active Alerts:** {{ state_attr('binary_sensor.serac_home_has_active_alert', 'alert_count') }}
**Highest Level:** {{ state_attr('sensor.serac_home_vigilance_summary', 'highest_level') }}
{% for alert in state_attr('binary_sensor.serac_home_has_active_alert', 'active_alerts') %}
- **{{ alert.name }}**: {{ alert.color | title }} (Level {{ alert.level }})
{% endfor %}Force an immediate refresh of weather alert data:
# Service call to manually update vigilance data
service: serac.update_vigilanceUse in automations or scripts when you need fresh data on-demand.
- Weather Forecasts: Open-Meteo (Météo-France AROME 2.5km & ARPEGE models)
- Avalanche Bulletins: Météo-France BRA (Bulletin Risque Avalanche)
- Weather Alerts: Météo-France Vigilance (Bulletin Vigilance)
- Air Quality: Open-Meteo European AQI
All data is provided by Météo-France, the French national meteorological service.
- Weather Data: Every 1 hour
- Air Quality: Every 1 hour
- Avalanche Bulletins: Every 6 hours (published once daily)
- Weather Alerts (Vigilance): Every 6 hours
See MIGRATION_v1.md for detailed migration instructions.
Quick summary:
- Remove old "Better Mountain Weather" integration
- Remove old HACS repository
- Restart Home Assistant
- Add new repository:
https://github.com/atacamalabs/ha-serac - Install Serac and reconfigure
- Update automations and dashboards with new entity IDs
Symptoms: Can't find "Serac" when adding a new integration
Solutions:
- Restart Home Assistant completely (not just reload integrations)
- Go to Settings → System → Restart
- Verify installation:
- Check that
custom_components/serac/folder exists - Verify
manifest.jsonis present in that folder
- Check that
- Check logs for errors:
- Settings → System → Logs
- Filter by "serac" to find integration-specific errors
- Clear browser cache - Sometimes the UI doesn't refresh properly
Symptoms: Sensors stuck on old values, no updates for hours
Solutions:
- Check coordinator status:
- Go to Developer Tools → States
- Find
sensor.serac_{prefix}_temperatureand checklast_updatedtimestamp
- Reload the integration:
- Settings → Devices & Services → Serac → ⋮ → Reload
- Check internet connection - Open-Meteo API must be accessible
- Verify coordinates:
- Ensure latitude/longitude are valid numbers
- Check you're not in a region without coverage (unlikely)
- Check logs for API errors:
tail -f /config/home-assistant.log | grep serac - Wait for next update cycle - Weather updates every 1 hour
If problem persists: Download diagnostics (Devices → Serac → Download Diagnostics) and open a GitHub issue.
Symptoms: No avalanche_risk_* sensors despite selecting massifs
Solutions:
- Verify BRA token is entered:
- Go to Settings → Devices & Services → Serac → Configure
- Ensure BRA token field is filled
- Verify massifs are selected:
- In Configure, check that at least one massif is selected
- Check if bulletins are published (seasonal):
- Avalanche bulletins typically run December to May
- Outside this period, sensors may show "Unknown" or not appear
- Test your BRA token:
- Log into Météo-France API Portal
- Verify your BRA API subscription is active
- Check BRA coordinator logs:
tail -f /config/home-assistant.log | grep -i "bra\|avalanche"
- Look for "401 Unauthorized" (invalid token) or "404 Not Found" (out of season)
- Try a different massif - Some massifs start/end season earlier than others
Common log messages:
"BRA bulletin not available for massif X (out of season?)"→ Normal outside winter"HTTP error 401"→ Invalid/expired BRA token"HTTP error 404"→ Bulletin not published yet
Symptoms: Can't find sensors with expected names
Explanation: Entity IDs use your custom prefix, not "chamonix" from examples.
Solutions:
- Find your actual prefix:
- Go to Settings → Devices & Services → Serac
- Look at your device name: "{Location Name} (Serac)"
- Your prefix was chosen during setup (step 2)
- Find all Serac entities:
- Developer Tools → States
- Filter by
seracto see all entities
- Example prefix mapping:
- Prefix
home→sensor.serac_home_temperature - Prefix
my_chalet→sensor.serac_my_chalet_temperature - Prefix
mtblanc→sensor.serac_mtblanc_temperature
- Prefix
Symptoms: Setup fails at step 1 with connection error
Solutions:
- Check coordinate format:
- ✅ Correct:
45.9237(decimal) - ❌ Wrong:
45° 55' 25"(degrees/minutes/seconds) - ❌ Wrong:
45,9237(comma instead of period)
- ✅ Correct:
- Verify internet connection:
- Test from terminal:
curl -s "https://api.open-meteo.com/v1/forecast?latitude=45.9237&longitude=6.8694¤t=temperature_2m" - Should return JSON data
- Test from terminal:
- Try known coordinates:
- Chamonix:
45.9237, 6.8694 - Grenoble:
45.1885, 5.7245 - Paris:
48.8566, 2.3522
- Chamonix:
- Check Home Assistant's network access:
- If running in Docker, verify network mode allows outbound connections
- If using a firewall, ensure
api.open-meteo.comis allowed
- Check Open-Meteo status:
- Visit open-meteo.com to verify service is online
Symptoms: Sensors exist but show no data
Causes & Solutions:
Weather sensors:
- Cause: API coordinator failed to fetch data
- Solution: Check logs, verify internet, reload integration
Avalanche sensors:
- Cause 1: Out of season (most common)
- Solution: Wait for winter season (~December-May)
- Cause 2: No bulletin published yet today
- Solution: Météo-France publishes around 16:00-17:00 CET, wait a few hours
- Cause 3: Invalid BRA token
- Solution: Update token via Configure
Symptoms: Home Assistant using excessive memory after adding Serac
Unlikely but possible:
- Serac fetches modest amounts of data (a few KB per update)
- If experiencing issues:
- Check how many massifs you've selected (each adds 8 sensors)
- Consider reducing massif count if you selected 10+
- Verify no other integrations are causing issues
Symptoms: Can't delete Serac from Devices & Services
Solutions:
- Remove the integration first:
- Settings → Devices & Services → Serac → ⋮ → Delete
- Then remove from HACS:
- HACS → Integrations → Serac → ⋮ → Remove
- Restart Home Assistant
- Manually delete folder (if needed):
- Remove
config/custom_components/serac/ - Restart again
- Remove
If none of these solutions work:
-
Enable debug logging:
# configuration.yaml logger: default: info logs: custom_components.serac: debug
Restart Home Assistant to apply logging changes.
-
Download diagnostics (v1.4.0+):
- Go to Settings → Devices & Services → Serac
- Click the ⋮ menu → Download Diagnostics
- This exports a JSON file containing:
- Configuration data (BRA token redacted for security)
- Coordinator status (last update times, success/failure)
- Entity and device counts
- No personal data or coordinates
- Attach this file when opening an issue
-
Open a GitHub issue with:
- Diagnostic file (from step 2)
- Relevant log excerpts (from step 1)
- Home Assistant version
- Description of what you tried
- GitHub Issues
Yes! Go to Settings → Devices & Services → Serac → Configure to add or remove massifs without reinstalling the integration. You can also update your BRA API token here.
Check these common causes:
- No BRA token provided - Avalanche data requires a Météo-France BRA API token
- No massifs selected - You must select at least one massif during setup or via Configure
- Out of season - Avalanche bulletins are typically published December-May only
- Invalid token - Verify your token at Météo-France API Portal
- Check logs - Look for BRA coordinator errors in Home Assistant logs
Add the Serac integration multiple times with different coordinates. Use unique entity prefixes for each location to keep sensors organized.
Example:
- Location 1: Chamonix (prefix:
chamonix) →sensor.serac_chamonix_temperature - Location 2: Zermatt (prefix:
zermatt) →sensor.serac_zermatt_temperature
Partially:
- ✅ Weather data works worldwide - Open-Meteo provides global coverage
- ✅ Air quality works worldwide - European AQI available globally
- ❌ Avalanche bulletins only work for French massifs - Météo-France BRA API limitation
avalanche_risk_today/avalanche_risk_tomorrow- Overall risk level (1-5 scale) for the dayavalanche_risk_high_altitude/avalanche_risk_low_altitude- Risk descriptions for different elevation zones (text)avalanche_accidental/avalanche_natural- Descriptions of expected avalanche types
The "today/tomorrow" sensors give you the headline number, while altitude and type sensors provide detailed context.
- Weather data: Every 1 hour
- Air quality: Every 1 hour
- Avalanche bulletins: Every 6 hours (Météo-France publishes once daily, typically morning)
Not currently. Update intervals are optimized for API rate limits and data freshness. Custom intervals may be added in a future release.
No! Weather and air quality data from Open-Meteo requires no API key. Only avalanche bulletins require a Météo-France BRA API token (free with registration).
This is cosmetic only - HACS generates update entity IDs from the repository name at installation time. The entity's friendly name correctly shows "Serac update" and it functions normally. This doesn't affect any Serac sensors or functionality.
- 🐛 Bug reports: GitHub Issues
- 💬 Questions: GitHub Discussions
- 📧 Email: hi@atacamalabs.com
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
See CONTRIBUTING.md for detailed development guidelines.
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Options flow (change massifs without reinstalling)
- Support for all 40+ French massifs
- Custom logo and branding
- Enhanced error handling and diagnostics
- Multi-language support (French, German, Italian)
- Snow depth sensors
- Hourly avalanche risk evolution
- Météo-France for providing excellent weather and avalanche data APIs
- Open-Meteo for API access to Météo-France models
- Home Assistant community for development support
This integration provides weather and avalanche information for informational purposes only. Always consult official sources and professional mountain guides before making decisions in mountain environments.
The authors are not responsible for any incidents resulting from use of this data.
- 🐛 Bug reports: GitHub Issues
- 💬 Questions: GitHub Discussions
- 📧 Email: hi@atacamalabs.com
Made with ❤️ for the mountain community
Serac: Named after the ice formations found in glaciers and mountain environments.



