Liga Luz Controla Persiana

Isto não é nenhum projeto, no verdadeiro sentido da palavra, mas resolvi deixar aqui uma automação que fiz para resolver um “problema”.
Este problema acontece essencialmente nos quartos. A automação que controla as persianas abre-as de manhã até meio, abrem totalmente de tarde, e fecham ao pôr-do-sol. Até aqui, tudo normal.
A questão é que quando de manhã precisamos de mais luz no quarto, ligamos a luz, porque o interruptor do estore está distante. E ao fim do dia, quando já está mais escuro, mas as persianas ainda não fecharam, também ligamos a luz, mas as persianas abertas comprometem a privacidade.
Pensei que poderia resolver isto de uma forma mais automática usando apenas o interruptor da luz.
A automação é ativada quando a luz é ligada, e se no espaço de 4 segundos tornarmos a carregar na tecla do interruptor, a ação é cancelada.

Eis o que acontece:

De dia (considero desde nascer-do-sol até 1 hora antes do pôr-do-sol) / Persiana aberta (parcial ou total) ou fechada
Ação Ligar Luz: Apaga a luz e abre a persiana totalmente.
Ação Cancelar: Liga a luz (que seria a ação inicial pretendida) e a persiana volta à posição em que estava.

À noite / Persiana aberta (parcial ou total)
Ação Ligar Luz: Liga a luz e fecha a persiana totalmente.
Ação Cancelar: Mantem a luz ligada (que seria a ação inicial pretendida) e a persiana volta à posição em que estava.

À noite / Persiana totalmente fechada
A automação não é ativada.
O interruptor funciona normalmente para ligar e desligar a luz.

Para isto tudo tenho de criar um auxiliar numérico (para ter a posição do estore) e um switch para fazer detach da tecla do interruptor (para que aceite o comando de cancelar).
Para o estore tenho um Shelly 2.5 e o interruptor da luz tem um Shelly 1.

Criar switch detached:

## configuration.yaml
switch:
  - platform: rest
    name: Tecla Luz Escritório Detached
    resource: http://192.168.0.118/settings/relay/0
    body_on: 'btn_type=detached'
    body_off: 'btn_type=edge'
    is_on_template: '{{ value_json.btn_type == "detached" }}'

Criar 2 automações:

alias: Escritório_Liga_Luz_Controla_Persiana
description: ""
trigger:
  - platform: state
    entity_id:
      - light.luz_escritorio
    from: "off"
    to: "on"
action:
  - service: input_number.set_value
    data:
      value: "{{ state_attr('cover.persiana_escritorio', 'current_position') }}"
    target:
      entity_id: input_number.persiana_escritorio_posicao
  - if:
      - condition: sun
        before: sunset
        before_offset: "-01:00:00"
        after: sunrise
    then:
      - service: switch.turn_on
        data: {}
        target:
          entity_id:
            - switch.tecla_luz_escritorio_detached
      - type: turn_off
        device_id: 99aad266f5ac15f911aef7bb5e39fb4f
        entity_id: light.luz_escritorio
        domain: light
      - device_id: c07c45a49dcb76e0a06d4769d379f6e1
        domain: cover
        entity_id: cover.persiana_escritorio
        type: set_position
        position: 100
      - delay:
          hours: 0
          minutes: 0
          seconds: 4
          milliseconds: 0
      - service: switch.turn_off
        data: {}
        target:
          entity_id:
            - switch.tecla_luz_escritorio_detached
    else:
      - if:
          - condition: device
            device_id: c07c45a49dcb76e0a06d4769d379f6e1
            domain: cover
            entity_id: cover.persiana_escritorio
            type: is_position
            above: 0
        then:
          - service: switch.turn_on
            data: {}
            target:
              entity_id:
                - switch.tecla_luz_escritorio_detached
          - device_id: c07c45a49dcb76e0a06d4769d379f6e1
            domain: cover
            entity_id: cover.persiana_escritorio
            type: set_position
            position: 0
          - delay:
              hours: 0
              minutes: 0
              seconds: 4
              milliseconds: 0
          - service: switch.turn_off
            data: {}
            target:
              entity_id:
                - switch.tecla_luz_escritorio_detached
mode: single
alias: Escritório_Liga_Luz_Controla_Persiana_Cancelar
description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.luz_escritorio_input
condition:
  - condition: state
    entity_id: switch.tecla_luz_escritorio_detached
    state: "on"
action:
  - service: cover.set_cover_position
    data:
      position: "{{ states('input_number.persiana_escritorio_posicao') | int}}"
    entity_id: cover.persiana_escritorio
  - service: switch.turn_off
    data: {}
    target:
      entity_id:
        - switch.tecla_luz_escritorio_detached
  - if:
      - condition: device
        type: is_off
        device_id: 99aad266f5ac15f911aef7bb5e39fb4f
        entity_id: light.luz_escritorio
        domain: light
    then:
      - type: turn_on
        device_id: 99aad266f5ac15f911aef7bb5e39fb4f
        entity_id: light.luz_escritorio
        domain: light
mode: single
6 Curtiram

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade