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.

Advertisements

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

  1. Open HACS in Home Assistant
  2. Go to Integrations
  3. Click the three-dot menu
  4. Select Custom repositories
  5. Add:
https://github.com/Maddimax/zwift_hass

Category:

Integration
  1. Install the repository
  2. Restart Home Assistant
  3. 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:

EntityDescription
sensor.zwift_distanceCurrent ride distance
sensor.zwift_speedCurrent speed
sensor.zwift_heart_rateCurrent heart rate
sensor.zwift_caloriesCalories burned
sensor.zwift_cadencePedaling cadence
sensor.zwift_powerCycling power in watts
sensor.zwift_elevationElevation climbed
sensor.zwift_durationRide duration
binary_sensor.zwift_onlineWhether you are actively riding
sensor.zwift_worldCurrent Zwift world
sensor.zwift_levelCurrent rider level

The exact list depends on your hardware setup and the data Zwift exposes through its API.

Advertisements

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.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.