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