domoticafacilconjota / capitulos

Copy y paste del canal
39 stars 50 forks source link

[AtoNodeRED] Calefacción de Casa #38

Open davidcpolo opened 3 years ago

davidcpolo commented 3 years ago

Código de la automatización

################################
# INPUTS SELECTS DE CALEFACCIÓN        #
################################
input_select:
  activa_calefaccion:
    name: Estado de la Calefaccion
    options:
     - "Activada"
     - "Desactivada"
    initial: "Activada"
    icon: mdi:alarm

input_number:
  calefaccion_temp_dia:
    name: Temperatura Día
    initial: 21
    min: 18
    max: 25
    step: 0.1
    icon: mdi:temperature-celsius
  calefaccion_temp_noche:
    name: Temperatura Noche
    initial: 21.5
    min: 18
    max: 25
    step: 0.1
    icon: mdi:temperature-celsius
##################################

##### CLIMATE CALEFACCIÓN #####
climate:
  - platform: generic_thermostat
    name: Calefaccion
    heater: switch.calefaccion
    target_sensor: sensor.temperature_158d000321f12f
    min_temp: 15
    max_temp: 25
    ac_mode: false
    target_temp: 21.5
    cold_tolerance: 0.1
    hot_tolerance: 0.1
    min_cycle_duration:
      seconds: 30
    initial_hvac_mode: "heat"
    away_temp: 19
    precision: 0.1

### AJUSTE TEMPERATURA DEL DÍA ###
alias: Calefacción DIA
description: Programación de la calefacción durante el día
trigger:
  - platform: time
    at: '09:00:00'
condition:
  - condition: time
    after: '09:00:00'
    before: '20:00:00'
action:
  - service: climate.set_temperature
    data:
      temperature: '{{ states.input_number.calefaccion_temp_dia.state }}'
      hvac_mode: heat
    entity_id: climate.calefaccion
mode: single

## AJUSTE TEMPERATURA EN LA NOCHE ##
alias: Calefacción NOCHE
description: Programación de la calefacción durante la noche
trigger:
  - platform: time
    at: '20:00:00'
condition:
  - condition: time
    after: '20:00:00'
action:
  - service: climate.set_temperature
    data:
      temperature: '{{ states.input_number.calefaccion_temp_noche.state }}'
      hvac_mode: heat
    entity_id: climate.calefaccion
mode: single

## APAGA LA CALEFACCIÓN CUANDO NO NOS MARCHAMOS DE CASA ##
alias: Apagado automático calefacción GPS
description: Apaga la calefacción automáticamente cuando no hay nadie en casa
trigger:
  - platform: state
    entity_id: group.familia
    from: home
    to: not_home
condition:
  - condition: state
    entity_id: climate.calefaccion
    state: heat
action:
  - service: input_select.select_option
    data:
      option: Desactivada
    entity_id: input_select.activa_calefaccion
  - service: climate.turn_off
    data: {}
    entity_id: climate.calefaccion
mode: single

## CAMBIA EL INPUT SELECT AL ABRIR LA PUERTA ##
alias: Enciende calefacción de regreso a casa
description: Enciende la calefacción cuando regresamos a casa
trigger:
  - platform: state
    entity_id: binary_sensor.door_window_sensor_158d0002b7f9cc
    from: 'off'
    to: 'on'
condition:
  - condition: state
    entity_id: climate.calefaccion
    state: 'off'
action:
  - service: input_select.select_option
    data:
      option: Activada
    entity_id: input_select.activa_calefaccion
mode: single

## ENCIENDE LA CALEFACCIÓN AL CAMBIARSE EL INPUT SELECT CUANDO ENTRAMOS EN CASA ##
alias: Encender calefacción al entrar en casa
description: Se enciende la calefacción una vez que la puerta se ha abierto
trigger:
  - platform: state
    entity_id: input_select.activa_calefaccion
    to: Activada
condition: []
action:
  - service: climate.turn_on
    data: {}
    entity_id: climate.calefaccion
mode: single

Explicación de lo que hace actualmente la automatización Automatizaciones para controlar la calefacción de casa. He incluido también el componente "climate" para crear el termostato y un input_select y algún input_number para controlar algunos datos en la automatización. Lo que hacen estas automatizaciones es que podamos tener una temperatura seleccionada por nosotros, gracias a los input_number, diferente en una franja horaria definida como DIA y otra como NOCHE, para que así podamos tener dos temperaturas distintas (es como una especia de programador). Otra automatización lo que hace es que cuando nos marchamos y gracias a la Geolocalización detecta que nos hemos marchado de casa y apaga la calefacción. Por último las otras dos automatizaciones que faltan lo que hacen es que una de ellas cambia el input_select a calefacción Activada cuando entramos de nuevo en casa, gracias a un sensor de puerta. Y la otra enciende la calefacción de nuevo al detectar que el input_select ha cambiado de estado.

Por cierto, para encender y apagar la caldera utilizo un sonoff basic flasheado con tasmota instalado en la misma caldera. Así de simple.

Notas del autor Quizás se pueda simplificar y hacerlo más sencillo, pero cuando lo programé lo pensé así. A ver como se puede pasar todo esto a Node-red.