i have a package file for a radiator TRV that comprises of a number of entities grouped into a lounge_trv group. within that group is a single switch entity. This results in HA card displaying the trv group as on or off depending on switch state. Further HA graph history shows on / off states over time.
this is erroneous because the switch drives the lowpower mode of the TRV device which has nothting to do with the TRV being on or off.
what is HA doing here,how can i stop it, and where is this behaviour documented, please.
Also , if i uncomment the code then i get a slider switch on the card which , when set on, triggers all the automation AND that low power switch.
this is clearly not what i want and ostensibly appears illogical.
I have commented the code out but now I cannot set or cancel low power mode.
sensor:
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Temperature/8008"
name: "Lounge Temperature"
unit_of_measurement: "°C"
force_update: true
expire_after: 660
- platform: mqtt
state_topic: "/energenie/eTRV/Report/TargetTemperature/8008"
name: "Lounge Target Rcvd"
unit_of_measurement: "°C"
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Voltage/8008"
name: "Lounge TRV Voltage"
unit_of_measurement: V
force_update: true
- platform: mqtt
state_topic: "/energenie/eTRV/Command/ValveState/8008"
name: "command_valvestate_8008"
- platform: mqtt
state_topic: "/energenie/eTRV/Command/Temperature/8008"
name: "command_temperature_8008"
- platform: statistics
name: lounge_etrv_stats
entity_id: sensor.lounge_temperature
max_age:
#minutes: 25
binary_sensor:
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV Motor current below expectation"
value_template: '{{ value_json["Motor current below expectation"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV Motor current always high"
value_template: '{{ value_json["Motor current always high"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV Motor taking too long"
value_template: '{{ value_json["Motor taking too long"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV discrepancy between air and pipe sensors"
value_template: '{{ value_json["discrepancy between air and pipe sensors"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV air sensor out of expected range"
value_template: '{{ value_json["air sensor out of expected range"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV pipe sensor out of expected range"
value_template: '{{ value_json["pipe sensor out of expected range"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV Low Power Mode Enabled"
value_template: '{{ value_json["low power mode is enabled"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV no target temperature has been set by host"
value_template: '{{ value_json["no target temperature has been set by host"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV valve may be sticking"
value_template: '{{ value_json["valve may be sticking"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV valve exercise was successful" value_template: '{{ value_json["valve exercise was successful"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV valve exercise was unsuccessful"
value_template: '{{ value_json["valve exercise was unsuccessful"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV driver micro has suffered a watchdog reset and needs data refresh"
value_template: '{{ value_json["driver micro has suffered a watchdog reset and needs data refresh"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV driver micro has suffered a noise reset and needs data refresh"
value_template: '{{ value_json["driver micro has suffered a noise reset and needs data refresh"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV battery voltage has fallen below 2.2V and valve has been opened"
value_template: '{{ value_json["battery voltage has fallen below 2p2V and valve has been opened"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV request for heat messaging is enabled"
value_template: '{{ value_json["request for heat messaging is enabled"] }}'
payload_on: true
payload_off: false
- platform: mqtt
state_topic: "/energenie/eTRV/Report/Diagnostics/8008"
name: "Lounge TRV request for heat"
value_template: '{{ value_json["request for heat"] }}'
payload_on: true
payload_off: false
# switch:
#
# - platform: mqtt
# name: "Lounge TRV Low Power Mode"
# command_topic: "/energenie/eTRV/Command/PowerMode/8008"
# state_topic: "/energenie/eTRV/Command/PowerMode/8008"
# payload_on: 1
# payload_off: 0
# retain: true
input_number:
lounge_temp:
name: Lounge Temperature Target
min: 10
max: 23
step: 1
unit_of_measurement: "°C"
mode: slider
initial: 18
icon: mdi:thermometer-lines
input_select:
lounge_trv_state:
name: Lounge TRV Valve State
options:
- Closed
- Normal
- Open
automation:
- alias: Temp slider
initial_state: true
hide_entity: true
trigger:
platform: state
entity_id: input_number.lounge_temp
action:
service: mqtt.publish
data_template:
topic: '/energenie/eTRV/Command/Temperature/8008'
retain: true
payload: "{{ states('input_number.lounge_temp') | int }}"
script:
send_report_voltage_lounge:
sequence:
- service: script.send_trv_command
data:
id: '8008'
command: 'Voltage'
send_report_diagnostics_lounge:
sequence:
- service: script.send_trv_command
data:
id: '8008'
command: 'Diagnostics'
send_exercise_lounge:
sequence:
- service: script.send_trv_command
data:
id: '8008'
command: 'Exercise'
send_identity_lounge:
sequence:
# This is written using the Script Syntax
- service: script.send_trv_command
data:
id: '8008'
command: 'Identify'
send_trv_command:
sequence:
- service: mqtt.publish
data_template:
topic: '/energenie/eTRV/Command/{{command}}/{{id}}'
payload: 'ON'
group:
lounge_trv:
name: Lounge
control: hidden
entities:
- sensor.lounge_temperature
- input_number.lounge_temp
- sensor.lounge_target_rcvd
- input_select.lounge_trv_state
# - switch.lounge_trv_low_power_mode
- script.send_report_diagnostics_lounge
- script.send_exercise_lounge
- script.send_identity_lounge
- script.send_report_voltage_lounge
- sensor.lounge_trv_voltage
lounge_diagnostics:
name: "Lounge"
control: hidden
entities:
- binary_sensor.lounge_trv_motor_current_below_expectation
- binary_sensor.lounge_trv_motor_current_always_high
- binary_sensor.lounge_trv_motor_taking_too_long
- binary_sensor.lounge_trv_discrepancy_between_air_and_pipe_sensors
- binary_sensor.lounge_trv_air_sensor_out_of_expected_range
- binary_sensor.lounge_trv_pipe_sensor_out_of_expected_range
- binary_sensor.lounge_trv_low_power_mode_enabled
- binary_sensor.lounge_trv_no_target_temperature_has_been_set_by_host
- binary_sensor.lounge_trv_valve_may_be_sticking
- binary_sensor.lounge_trv_valve_exercise_was_successful
- binary_sensor.lounge_trv_valve_exercise_was_unsuccessful
- binary_sensor.lounge_trv_driver_micro_has_suffered_a_watchdog_reset_and_needs_data_refresh
- binary_sensor.lounge_trv_driver_micro_has_suffered_a_noise_reset_and_needs_data_refresh
- binary_sensor.lounge_trv_battery_voltage_has_fallen_below_2_2v_and_valve_has_been_opened
- binary_sensor.lounge_trv_request_for_heat_messaging_is_enabled
- binary_sensor.lounge_trv_request_for_heat