Home Assistant Lovelace card to control a spa/hot tub.
This card is designed to work with any spa integration by entering your existing spa entities into the corresponding entries in the spa-card configuration.
- Open HACS in Home Assistant.
- Add this repository as a custom repository with type Dashboard.
- Install Spa Card.
- Go to any dashboard, click Add Card, and search for Spa Card.
- Copy
dist/spa-card.jstoconfig/www/spa-card.js. - Add dashboard resource:
- URL:
/local/spa-card.js - Type:
JavaScript Module
- URL:
- Go to any dashboard, click Add Card, and search for Spa Card.
type: custom:spa-card
title: Hot Tub
preset_hot: 103
preset_cold: 98type: custom:spa-card
title: Spa
entity_temp_current: sensor.spa_water_temp
entity_temp_set: sensor.spa_set_temp
entity_heater_status: binary_sensor.spa_heater
entity_pump_status: binary_sensor.spa_pump
entity_lights_status: binary_sensor.spa_lights
entity_button_temp_up: button.spa_temp_up
entity_button_temp_down: button.spa_temp_down
entity_button_pump: button.spa_toggle_pump
entity_button_lights: button.spa_toggle_lights
preset_hot: 103
preset_cold: 98For spas that only expose one temperature button, enable one-button mode and map the cycle button:
type: custom:spa-card
title: Spa
entity_temp_current: sensor.spa_water_temp
entity_temp_set: sensor.spa_set_temp
entity_heater_status: binary_sensor.spa_heater
entity_pump_status: binary_sensor.spa_pump
entity_lights_status: binary_sensor.spa_lights
entity_button_temp_cycle: button.spa_temp_cycle
entity_button_pump: button.spa_toggle_pump
entity_button_lights: button.spa_toggle_lights
temp_control_mode: one_button
temp_cycle_direction: up
temp_min: 80
temp_max: 104
preset_hot: 103
preset_cold: 98One-button mode will keep pressing the cycle button until the target temperature is reached. It wraps at the limits (for example, max to min when cycling up).
title: Optional title textentity_temp_current: Optional current water temperature sensor entity identity_temp_set: Optional setpoint temperature sensor entity identity_heater_status: Optional heater status binary sensor entity identity_pump_status: Optional pump status binary sensor entity identity_lights_status: Optional lights status binary sensor entity identity_button_temp_up: Optional button entity id for temperature upentity_button_temp_down: Optional button entity id for temperature downentity_button_temp_cycle: Optional single cycle button entity id for one-button spasentity_button_pump: Optional button entity id for pump toggleentity_button_lights: Optional button entity id for lights togglepreset_hot: Preset hot targetpreset_cold: Preset cold targetshow_presets: Show or hide preset buttons (default true)temp_unit: Temperature unit to display and control ("C" or "F")temp_control_mode:two_button(default) orone_buttontemp_cycle_direction:up(default) ordownfor one-button cycling directiontemp_min: Minimum setpoint used for one-button wrap logic (default80)temp_max: Maximum setpoint used for one-button wrap logic (default104)