Attempting to have a button that sets operation mode of my water heater to “High Demand” for an hour and then back to “Heat Pump”. Using a normal button, is there any reason why this code works perfectly as intended:
show_name: true
show_icon: true
type: button
tap_action:
action: toggle
entity: input_button.hot_water_boost
hold_action:
action: call-service
service: water_heater.set_operation_mode
data:
operation_mode: heat_pump
target:
entity_id: water_heater.heat_pump_water_heater
But this code does not?
type: custom:button-card
show_name: true
show_icon: true
tap_action:
action: toggle
entity: input_button.hot_water_boost
hold_action:
action: call-service
service: water_heater.set_operation_mode
data:
operation_mode: heat_pump
target:
entity_id: water_heater.heat_pump_water_heater
My final goal is to get the icon color to change based on the operation mode of the water heater, but for now I just want to get base functionality working. I keep getting the error “failed to call service input_button.turn_off. Service not found” on tap and “Failed to call service water_heater/set_operation_mode. required key not provided @ data[‘operation_mode’]” on long press. I added the long press option in case I wish to manually go back to “Heat Pump” operation before the 60mins is up.
Automation script using the input_button.hot_water_boost helper is below:
alias: "Utilities: Hot Water Boost"
description: ""
trigger:
- platform: state
entity_id:
- input_button.hot_water_boost
condition: []
action:
- service: water_heater.set_operation_mode
data:
operation_mode: high_demand
target:
entity_id: water_heater.heat_pump_water_heater
- service: notify.mobile_app_amos_iphone
data:
message: Boost Mode Activated for 1hr
title: Water Heater
- delay:
hours: 1
minutes: 0
seconds: 0
milliseconds: 0
- service: water_heater.set_operation_mode
data:
operation_mode: heat_pump
target:
entity_id: water_heater.heat_pump_water_heater
mode: single