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!