
Integrating Zwift with Home Assistant Using the Updated zwift_hass Integration
Indoor cycling has become much more engaging with platforms like Zwift. But if you are already heavily invested in Home Assistant, it becomes even more interesting when your cycling sessions can interact directly with your smart home.
Recently, I replaced the older Zwift integration with the newer and actively maintained version from Maddimax/zwift_hass. The original project from snicker/zwift_hass appears to be less active, while the Maddimax fork includes newer fixes, compatibility improvements, and additional sensors.
In this guide, we will look at:
- Installing the updated integration
- Understanding the available entities and sensors
- Useful Home Assistant automations
- Practical dashboard ideas
- YAML examples you can use immediately
If you use Zwift regularly, this integration can make your training sessions feel much more connected to your smart home setup.
Why Integrate Zwift with Home Assistant?
The integration allows Home Assistant to pull data directly from your Zwift account and expose it as entities.
This means you can:
- Detect when a workout starts or stops
- Display ride metrics on dashboards
- Trigger automations based on speed, heart rate, or distance
- Control fans, lights, or climate automatically
- Create training statistics
- Track workout durations
For example:
- Turn on a smart fan when your heart rate exceeds 140 BPM
- Set your pain cave lights to red during intervals
- Pause media when a ride ends
- Increase ventilation in the training room automatically
The possibilities are surprisingly extensive once Zwift data becomes available inside Home Assistant.
Installing the Updated Zwift Integration
The easiest method is through HACS.
Installation Steps
- Open HACS in Home Assistant
- Go to Integrations
- Click the three-dot menu
- Select Custom repositories
- Add:
https://github.com/Maddimax/zwift_hass
Category:
Integration
- Install the repository
- Restart Home Assistant
- Add the integration from:
- Settings
- Devices & Services
- Add Integration
- Search for “Zwift”
You will then authenticate with your Zwift credentials.
After setup, Home Assistant will automatically create sensors and entities tied to your Zwift profile.
Available Sensors and Entities
The updated integration exposes a large amount of useful workout information.
Depending on your Zwift activity and connected devices, you may see entities such as:
| Entity | Description |
|---|---|
sensor.zwift_distance | Current ride distance |
sensor.zwift_speed | Current speed |
sensor.zwift_heart_rate | Current heart rate |
sensor.zwift_calories | Calories burned |
sensor.zwift_cadence | Pedaling cadence |
sensor.zwift_power | Cycling power in watts |
sensor.zwift_elevation | Elevation climbed |
sensor.zwift_duration | Ride duration |
binary_sensor.zwift_online | Whether you are actively riding |
sensor.zwift_world | Current Zwift world |
sensor.zwift_level | Current rider level |
The exact list depends on your hardware setup and the data Zwift exposes through its API.
Creating a Zwift Dashboard
One of the best uses for the integration is building a dedicated cycling dashboard.
You can create cards showing:
- Live power output
- Heart rate
- Ride duration
- Total distance
- Current world
- Calories burned
A simple dashboard gives you a quick overview during workouts and also looks great on a wall-mounted tablet in your training room.
For example:
type: entities
title: Zwift Training
entities:
- entity: binary_sensor.zwift_online
- entity: sensor.zwift_speed
- entity: sensor.zwift_power
- entity: sensor.zwift_heart_rate
- entity: sensor.zwift_cadence
- entity: sensor.zwift_distance
- entity: sensor.zwift_duration
Useful Automation Example: Smart Fan Control
One of the most practical automations is controlling a fan automatically during workouts.
Indoor cycling quickly increases room temperature, especially during winter when windows remain closed.
This automation:
- Turns on a smart plug connected fan
- Activates when heart rate exceeds 135 BPM
- Turns off when the workout ends
Example Automation
alias: Zwift Fan Control
description: Automatically control fan during Zwift workouts
triggers:
- trigger: numeric_state
entity_id: sensor.zwift_heart_rate
above: 135
conditions:
- condition: state
entity_id: binary_sensor.zwift_online
state: "on"
actions:
- action: switch.turn_on
target:
entity_id: switch.training_room_fan
mode: single
You can combine this with a second automation that turns the fan off once your ride ends:
alias: Zwift Fan Off
description: Turn off fan when Zwift session ends
triggers:
- trigger: state
entity_id: binary_sensor.zwift_online
to: "off"
actions:
- action: switch.turn_off
target:
entity_id: switch.training_room_fan
mode: single
This creates a fully automatic cooling setup without touching a single button during training.
Advanced Ideas for Automations
Once the basic setup works, there are many creative ways to integrate Zwift into your smart home.
Climate Control
Automatically reduce room temperature when workouts start:
action:
- action: climate.set_temperature
target:
entity_id: climate.training_room
data:
temperature: 18
Using Celsius works especially well for European users and keeps the training environment comfortable during high-intensity rides.
Smart Lighting Effects
You can also make the room react dynamically to training intensity.
Examples:
- Green lighting during recovery
- Orange during threshold efforts
- Red during sprints
This works especially well with Philips Hue or IKEA TRÅDFRI systems.
Workout Notifications
Send a notification when a ride finishes:
alias: Zwift Workout Complete
triggers:
- trigger: state
entity_id: binary_sensor.zwift_online
to: "off"
actions:
- action: notify.mobile_app_phone
data:
title: Workout Finished
message: >
Great job! You completed a Zwift workout lasting
{{ states('sensor.zwift_duration') }} minutes.
Long-Term Statistics
Because all data enters Home Assistant, you can also use:
- Energy dashboards
- Statistics cards
- Grafana
- InfluxDB
This makes it possible to track:
- Weekly training time
- Average heart rate
- Monthly distance
- Total climbing
- Calories burned
Over time, this becomes a surprisingly powerful training log directly inside Home Assistant.
Reliability and Improvements in the Maddimax Fork
The Maddimax version appears more actively maintained than the older repository.
Some improvements include:
- Better compatibility with modern Home Assistant versions
- Updated dependencies
- Improved sensor handling
- Faster fixes for API changes
- More reliable authentication
This is especially important because Zwift occasionally changes parts of its backend API, which can break older integrations.
For Home Assistant users, actively maintained community integrations are usually worth prioritizing.
Things to Keep in Mind
There are still a few limitations.
Cloud Dependency
The integration depends on Zwift cloud services and APIs.
If Zwift changes authentication methods or APIs, the integration may temporarily stop working until updated.
Update Frequency
Sensor updates are not always instantaneous.
For most automations this is completely fine, but extremely fast-changing values such as power or cadence may have slight delays.
API Limitations
Some ride metrics available in Zwift itself may not be exposed through the integration.
This depends entirely on what the Zwift API provides.
Final Thoughts
The updated zwift_hass integration is an excellent addition for anyone combining indoor cycling with Home Assistant.
It transforms Zwift from a standalone training platform into part of a much larger smart home ecosystem.
The ability to automate fans, lighting, climate, and notifications based on live workout data adds real convenience during training sessions.
More importantly, it demonstrates one of the best aspects of Home Assistant: integrating completely unrelated systems into something cohesive and genuinely useful.
If you already use Zwift regularly, this integration is absolutely worth trying.
Some of the links in this article are "affiliate links", a link with a special tracking code. This means if you click on an affiliate link and purchase the item, we will receive an affiliate commission. The price of the item is the same whether it is an affiliate link or not. Regardless, we only recommend products or services we believe will add value to our readers. By using the affiliate links, you are helping support our Website, and we genuinely appreciate your support.