openhasp mods

This commit is contained in:
zorruno
2026-06-20 15:46:55 +12:00
parent 79597fb021
commit 28df116a38
4 changed files with 640 additions and 134 deletions
@@ -0,0 +1,126 @@
################################################################################
# OPENHASP HEAT AUTO PAGE
################################################################################
# Package: openhasp_heat_auto_page.yaml
# Version: v1.1.0
# Updated: 2026-06-20
#
# Purpose:
# Automatically changes the openHASP display page based on lounge heating/cooling.
#
# Behaviour:
# - Gas fire ON -> openHASP page 1
# - Lounge heatpump HEAT mode -> openHASP page 2
# - Lounge heatpump COOL mode -> openHASP page 3
#
# Priority:
# 1. Gas fire
# 2. Lounge heatpump heating
# 3. Lounge heatpump cooling
#
# Notes:
# - If nothing is heating/cooling, this package does not change the page.
# - openHASP page change is sent via MQTT:
# hasp/openhasp_1/command/page
#
################################################################################
################################################################################
# SCRIPT
################################################################################
script:
openhasp_heat_auto_page_evaluate:
alias: "openHASP Heat Auto Page - Evaluate"
description: "Chooses the correct openHASP page based on gas fire and lounge heatpump state."
mode: restart
variables:
##########################################################################
# CONFIG
##########################################################################
openhasp_page_topic: "hasp/openhasp_1/command/page"
gas_fire_entity: "switch.rinnai_neo_gas_heater_heater_operation"
lounge_heatpump_entity: "climate.lounge"
##########################################################################
# STATE CHECKS
##########################################################################
gas_fire_on: >-
{{ is_state(gas_fire_entity, 'on') }}
lounge_heatpump_heat: >-
{{ is_state(lounge_heatpump_entity, 'heat') }}
lounge_heatpump_cool: >-
{{ is_state(lounge_heatpump_entity, 'cool') }}
target_page: >-
{% if gas_fire_on %}
1
{% elif lounge_heatpump_heat %}
2
{% elif lounge_heatpump_cool %}
3
{% else %}
none
{% endif %}
sequence:
- condition: template
value_template: "{{ target_page != 'none' }}"
- action: mqtt.publish
data:
topic: "{{ openhasp_page_topic }}"
payload: "{{ target_page }}"
qos: 0
retain: false
################################################################################
# AUTOMATIONS
################################################################################
automation:
- id: openhasp_heat_auto_page_change
alias: "openHASP Heat Auto Page - Change Page"
description: "Changes the openHASP page when the gas fire or lounge heatpump state changes."
mode: restart
triggers:
##########################################################################
# Gas fire state changes
##########################################################################
- trigger: state
entity_id: switch.rinnai_neo_gas_heater_heater_operation
##########################################################################
# Lounge heatpump HVAC mode changes
##########################################################################
- trigger: state
entity_id: climate.lounge
##########################################################################
# Re-apply after Home Assistant restart
##########################################################################
- trigger: homeassistant
event: start
##########################################################################
# Re-apply when the openHASP display comes online
##########################################################################
- trigger: mqtt
topic: hasp/openhasp_1/status
payload: online
actions:
- if:
- condition: template
value_template: "{{ trigger.platform in ['homeassistant', 'mqtt'] }}"
then:
- delay: "00:00:02"
- action: script.openhasp_heat_auto_page_evaluate