Comandar cortinas com meteorologia

Bom dia.
Tenho cortinas de rolo automatizadas com motores zigbee, que de momento controlo com horários.
Quero controlar as cortinas também com dados meteorológicos, a ideia é usar a integração do IPMA para, com o clima atual, abrir ou não as cortinas.
O esquema que penso ser o ideal é: com temperatura interior inferior a 18ºC, com céu limpo ou parcialmente encoberto (a ver-se o sol), as cortinas abrirem-se 20min após o nascer do sol (o local, que é o meu trabalho, tem exposição solar todo o dia), para começar a aquecer o ambiente (mesmo estando frio na rua, com o sol a bater nos vidros e alumínios, sente-se a aquecer, aliás, os vidros e os alumínios, às 8h30 estão quentes quando está sol, mesmo estando frio na rua).
A ideia será ligar o AC o mais tarde possível para climatizar, ou quando está tempo chuvoso/encoberto com frio, o AC ligar mais cedo para quando for para começar a trabalhar, a temperatura estar agradável. Preciso de temperatura agradável logo às 9h, porque trabalho em fisioterapia, e a malta tem que se despir e estar com ambiente confortável.
Já tive um esquema para as cortinas aliado à previsão do Accuweather, mas nunca funcionou como deve ser, e era apenas para fechar as cortinas mais cedo quando o tempo estivesse mau.
Agradeço a ajuda

Mostra lá o que já tentaste.

Então esta tarde andei a brincar com o esquema, não sei se vai trabalhar como quero:

alias: Abir Cortinas Base Meteorologia
description: Abrir Cortinas
trigger:
  - platform: sun
    event: sunrise
    offset: '00:10:00'
condition:
  - condition: state
    entity_id: weather.fisiomacao
    state: Sol; Parcialmente Nublado
    attribute: forecast
    for:
      hours: 0
      minutes: 0
      seconds: 0
      milliseconds: 0
  - condition: and
    conditions:
      - condition: time
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
  - condition: and
    conditions:
      - type: is_temperature
        condition: device
        device_id: 06483075468f6767c6d5c21c3e355964
        entity_id: sensor.sensor_temperatura_e_humidade_temperature
        domain: sensor
        above: -10
        below: 20
action:
  - device_id: bf62c64ca05cfc9dc7239afe902b4696
    domain: cover
    entity_id: cover.cortina_3
    type: set_position
    position: 100
  - device_id: dc454121f3cc7079cfb87a03f951a4ef
    domain: cover
    entity_id: cover.cortina_4
    type: set_position
    position: 100
  - device_id: a3d118281903d374bc258aac21e820a1
    domain: cover
    entity_id: cover.cortina_5
    type: set_position
    position: 100
  - device_id: f075bb2f94ec84abb5ee25cda352d6f0
    domain: cover
    entity_id: cover.cortina_6
    type: set_position
    position: 100
  - device_id: 33d4c24c925e58b9a179f1026b0bd858
    domain: cover
    entity_id: cover.cortina_7
    type: set_position
    position: 100
  - device_id: c088130751157e405782889bafd42958
    domain: cover
    entity_id: cover.cortina_8
    type: set_position
    position: 100
  - device_id: b784aea704a15f2b8d14eaaf94be84c0
    domain: cover
    entity_id: cover.cortina_1
    type: set_position
    position: 100
  - device_id: 7deafc85d5e0c5535a845f98090322ca
    domain: cover
    entity_id: cover.cortina_2
    type: set_position
    position: 100
mode: single

A ideia é abrirem as 8 cortinas 10min depois do nascer do sol, se estiverem 18ºC ou menos na divisão (sinal de frio na rua) e só se estiver sol ou incidência solar (pode haver nuvens, desde que não tapem por completo o sol, pode estar ventoso, por aí fora). Se houver exposição solar, a temperatura ambiente sobe logo e sem gastar electricidade com o AC. Tenho outra automação que liga o AC mais tarde caso esta automação arranque. E tenho outra que o liga mais cedo caso esta automação não arranque. E se esta automação arrancar, tenho uma que fecha as cortinas 1 e 2 perto das 9h, porque é uma área mais reservada e que tem as cortinas sempre fechadas.

Bom, o código anterior não funcionou. Reformulei para:

alias: Abir Cortinas Base Meteorologia
description: Abrir Cortinas
trigger:
  - platform: sun
    event: sunrise
    offset: '00:20:00'
  - type: temperature
    platform: device
    device_id: 06483075468f6767c6d5c21c3e355964
    entity_id: sensor.sensor_temperatura_e_humidade_temperature
    domain: sensor
    above: -10
    below: 19
condition:
  - condition: and
    conditions:
      - condition: state
        entity_id: weather.fisiomacao
        attribute: forecast
        state: Sol
      - condition: or
        conditions:
          - condition: state
            entity_id: weather.fisiomacao
            attribute: forecast
            state: Parcialmente Nublado
          - condition: or
            conditions:
              - condition: state
                entity_id: weather.fisiomacao
                attribute: forecast
                state: Ventoso
  - condition: and
    conditions:
      - condition: time
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
action:
  - device_id: bf62c64ca05cfc9dc7239afe902b4696
    domain: cover
    entity_id: cover.cortina_3
    type: set_position
    position: 100
  - device_id: dc454121f3cc7079cfb87a03f951a4ef
    domain: cover
    entity_id: cover.cortina_4
    type: set_position
    position: 100
  - device_id: a3d118281903d374bc258aac21e820a1
    domain: cover
    entity_id: cover.cortina_5
    type: set_position
    position: 100
  - device_id: f075bb2f94ec84abb5ee25cda352d6f0
    domain: cover
    entity_id: cover.cortina_6
    type: set_position
    position: 100
  - device_id: 33d4c24c925e58b9a179f1026b0bd858
    domain: cover
    entity_id: cover.cortina_7
    type: set_position
    position: 100
  - device_id: c088130751157e405782889bafd42958
    domain: cover
    entity_id: cover.cortina_8
    type: set_position
    position: 100
  - device_id: b784aea704a15f2b8d14eaaf94be84c0
    domain: cover
    entity_id: cover.cortina_1
    type: set_position
    position: 100
  - device_id: 7deafc85d5e0c5535a845f98090322ca
    domain: cover
    entity_id: cover.cortina_2
    type: set_position
    position: 100
mode: single

Vamos a ver se amanhã trabalha…

E… não trabalhou. Alguém pode dar umas dicas?
Obrigado

Com HA puro nunca tentei mas para Node RED há vários componentes que fazem o que descreves.

Eu uso o https://github.com/rdmtc/node-red-contrib-sun-position/wiki/blind-control e como “entradas” além da posição do sol tenho a previsão meteorológica, luminosidade (vejo pela produção dos FV), temperaturas interiores e exteriores.

Não tenho grande experiência com o node red, só tentei umas brincadeiras. Aquilo permite escolher dias da semana e mandar fazer pausas para feriados, folgas e férias? É que pretendo controlar automatismos no meu posto de trabalho, mas não me interessa que o AC arranque ou as cortinas abram caso eu não venha trabalhar. Com o HA tenho essa hipótese, tenho scripts que ativo por voz (google assistant), por exemplo, tenho o script “feriado” que dá para feriados e folgas, que me desativa as automações seleccionadas durante as seguintes 24h. Posso fazer isso com o node red? Diretamente ou criando script no HA? E onde encontro as automações criadas em node red no HA? Apenas no add-on?
Obrigado.

Tudo o que se consegue fazer no HA faz-se também com o addon Node RED, e vice versa. A forma de programar é que é diferente. Para estores e cortinas existem vários componentes para Node RED que fazem isso, é só escolher.

O que descreveste dos dias pode-se fazer inclusivamente com uma integração com calendário da net para marcar os dias de férias e fica verdadeiramente automatizado, sem ser necessário qualquer comando de voz.

Bom, já consegui por a coisa a trabalhar via yaml, também tentei com node red e até me desenrasquei, mas continuo a considerar as automações via yaml mais fáceis.
Cá vai o código:

alias: Abir Cortinas Base Meteorologia
description: Abrir Cortinas
trigger:
  - platform: sun
    event: sunrise
    offset: '00:10:00'
  - platform: sun
    event: sunrise
    offset: '00:15:00'
  - platform: sun
    event: sunrise
    offset: '00:20:00'
  - platform: sun
    event: sunrise
    offset: '00:25:00'
  - platform: sun
    event: sunrise
    offset: '00:30:00'
  - platform: sun
    event: sunrise
    offset: '00:35:00'
condition:
  - condition: and
    conditions:
      - condition: time
        weekday:
          - mon
          - tue
          - wed
          - thu
          - fri
      - type: is_temperature
        condition: device
        device_id: 06483075468f6767c6d5c21c3e355964
        entity_id: sensor.sensor_temperatura_e_humidade_temperature
        domain: sensor
        below: 19
      - type: is_value
        condition: device
        device_id: fc1aee7f9d452a320c118351b04609e0
        entity_id: sensor.openweathermap_cloud_coverage
        domain: sensor
        below: 60
action:
  - device_id: bf62c64ca05cfc9dc7239afe902b4696
    domain: cover
    entity_id: cover.cortina_3
    type: set_position
    position: 100
  - device_id: dc454121f3cc7079cfb87a03f951a4ef
    domain: cover
    entity_id: cover.cortina_4
    type: set_position
    position: 100
  - device_id: a3d118281903d374bc258aac21e820a1
    domain: cover
    entity_id: cover.cortina_5
    type: set_position
    position: 100
  - device_id: f075bb2f94ec84abb5ee25cda352d6f0
    domain: cover
    entity_id: cover.cortina_6
    type: set_position
    position: 100
  - device_id: 33d4c24c925e58b9a179f1026b0bd858
    domain: cover
    entity_id: cover.cortina_7
    type: set_position
    position: 100
  - device_id: c088130751157e405782889bafd42958
    domain: cover
    entity_id: cover.cortina_8
    type: set_position
    position: 100
  - device_id: b784aea704a15f2b8d14eaaf94be84c0
    domain: cover
    entity_id: cover.cortina_1
    type: set_position
    position: 100
  - device_id: 7deafc85d5e0c5535a845f98090322ca
    domain: cover
    entity_id: cover.cortina_2
    type: set_position
    position: 100
mode: single

Obrigado pela ajuda!


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


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