Squelette de mon application pour une vanne :
import appdaemon.plugins.hass.hassapi as hass
Consigne_ON = 19.0
Consigne_OFF = 5.0 # Arret chauffage
class Chauffage(hass.Hass):
def initialize(self):
# Chauffage bureau
self.listen_state(self.planning_chauffage_bureau, "input_boolean.planning_chauffage_bureau")
self.listen_state(self.marche_chauffage_bureau, "input_boolean.marche_chauffage_bureau")
self.listen_state(self.ouverture_vanne_bureau, "binary_sensor.0x003c84fffe21efed_valve_state")
# Gestion du changement d'etat de la vanne
def ouverture_vanne_bureau(self, entity, attribute, old, new, kwargs):
if new == "on":
self.turn_on(entity_id = "switch.0xa4c138394b61aaaf")
else:
self.turn_off(entity_id = "switch.0xa4c138394b61aaaf")
# Gestion du changement d'etat du sequenceur
def planning_chauffage_bureau(self, entity, attribute, old, new, kwargs):
if new == "on":
# Verification de l'etat du bouton M/A
if self.get_state("input_boolean.marche_chauffage_bureau") == "on":
self.call_service("climate/set_temperature", entity_id = "climate.0x003c84fffe21efed", temperature = Consigne_ON)
else:
self.call_service("climate/set_temperature", entity_id = "climate.0x003c84fffe21efed", temperature = Consigne_OFF)
# Gestion du changement d'etat du bouton M/A
def marche_chauffage_bureau(self, entity, attribute, old, new, kwargs):
if new == "on":
# Verification de l'etat du sequenceur
if self.get_state("input_boolean.planning_chauffage_bureau") == "on":
self.call_service("climate/set_temperature", entity_id = "climate.0x003c84fffe21efed", temperature = Consigne_ON)
else:
self.call_service("climate/set_temperature", entity_id = "climate.0x003c84fffe21efed", temperature = Consigne_OFF)