Pergunte ao Home Assistant quais são as horas mais baratas de amanhã e acabará num sítio onde não queria estar: uma integração de planeamento, um sensor de modelo com uma macro lá dentro, uma lista ordenada de horas e uma automação que compara a hora atual com o resultado. Funciona, e há quem mantenha exatamente essa configuração durante anos. Mas são muitas peças móveis para uma pergunta que tem uma resposta de uma palavra: é um bom momento agora?
O hub responde a essa pergunta por si. Conhece os preços de cada período de 15 minutos, por isso consegue calcular quais os períodos baratos, e publica o resultado como uma janela: aberta ou fechada, até quando, e quando começa a seguinte.
O que ele não faz é agir em função disso. Essa parte é sua.
O que é uma janela
Você descreve a regra; o hub avalia-a face aos preços que tem.
| Regra | O que significa | Use-a quando |
|---|---|---|
| Preço abaixo de um nível | aberta enquanto o preço de compra final — o preço do mercado com as taxas do seu contrato, os impostos e o IVA já incluídos (o que o compõe) — estiver em ou abaixo do seu nível, fechando de novo acima de um segundo nível, mais alto | o seu limite é absoluto: "enquanto a eletricidade estiver abaixo de 10 cêntimos, sempre que isso acontecer" |
| Períodos mais baratos num intervalo de tempo | aberta durante os n períodos mais baratos dentro de um intervalo que você indica | precisa de n períodos e não se importa com a hora, dentro de uma parte do dia |
| Períodos mais baratos antes de uma hora | aberta durante os n períodos mais baratos entre agora e um prazo | algo tem de estar feito até às 07:00 e você quer a forma mais barata de chegar lá |
Ter dois níveis em vez de um na primeira regra não é preciosismo: um preço que oscila em torno de um único número faria a janela acender e apagar a cada período. Deixe uma margem.
Além das regras, há dois indicadores simples — compra barata abaixo de e venda baixa abaixo de — que dizem algo sobre o preço neste momento, sem planeamento e sem histerese. O indicador de venda é o mais útil numa instalação com produção: é o sinal de que a sua própria energia vale mais se for consumida do que se for exportada.
Oito regras é o limite. Uma nona é recusada, em vez de ser descartada em silêncio.
Leia o estado, não a mensagem
Este é o único conselho que decide se a sua automação funciona.
O estado da janela é republicado a cada fronteira de 15 minutos, e de imediato sempre que algo muda — uma janela a abrir ou a fechar, novos preços a chegar, uma regra editada. É um estado, não um anúncio.
Por isso, construa sobre o valor atual. Uma automação que trata cada publicação como um evento dispara repetidamente ao longo de uma janela longa, e perde a transição que aconteceu enquanto estava a reiniciar. Uma automação que pergunta "esta janela está ativa?" está certa em cada momento, incluindo o momento em que volta.
Ler a partir do Home Assistant: as duas vias, tal como está escrito
Aqui a resposta honesta depende de como executa o hub.
Na via própria do hub, por MQTT, o estado chega como uma mensagem retida em rbgrid/<mac>/price — com menos de um kilobyte, com uma entrada por regra: o nome, se está ativa, até quando, e quando começa a seguinte. Retida é a palavra importante: quem se ligar mais tarde recebe o estado atual de imediato, por isso um reinício não lhe custa nada. A mensagem é JSON, pelo que o habitual é um sensor MQTT com um modelo que extrai a regra que lhe interessa — a referência do próprio hub tem um exemplo completo exatamente disso, com os nomes dos campos.
Na via ESPHome, as janelas são também entidades: um sensor binário por regra, no dispositivo do hub, on enquanto a janela estiver aberta, com a indicação de quando fecha e de quando começa a seguinte. Ao lado deles estão um indicador de preço barato, um indicador de preço de venda baixo e um sensor de classificação para o período atual. Atualizam-se a cada minuto e logo após cada evento de preços do hub.
Assim, uma automação é uma única condição de estado sobre uma única entidade, em qualquer das vias. A classificação, já que aparece nas duas: indica onde se situa o período atual entre os períodos de hoje que são conhecidos — 1 é o mais barato, e o denominador é quantos períodos o hub já tem preços.
⚠️ Se a sua integração for anterior a isso, as janelas não são entidades e o estado tem de ser pedido — através de uma ação que devolve a mesma estrutura que a mensagem MQTT transporta. A receita para isso é um sensor de modelo baseado em gatilhos, e continua a funcionar; simplesmente já não é necessária. Atualize a integração e o passo desaparece.
Uma fronteira que convém ter presente: os sensores por regra foram verificados em teste, e não vistos a abrir num hub real, porque a bancada estava desligada antes de chegar uma janela. O mapeamento está verificado; a observação ainda não foi reportada.
No que se resume uma automação
As ligações diferem, como acima. A lógica não, e quando o estado está onde a sua automação o consegue ver, são três linhas:
- A janela chamada
Boilerestá ativa? — pergunte ao estado. - Sim → a sua automação liga o interruptor do esquentador.
- Não → a sua automação desliga-o.
Toda a decisão depois do passo 1 é do Home Assistant. O hub contribuiu com um booleano e com a razão para ele.
E as aberturas e os fechos também ficam escritos no registo do próprio hub, por isso pode ler depois o que aconteceu enquanto não estava a ver:
price: window 'Boiler' on until <time>
price: window 'Boiler' off, next <time>
O único blueprint incluído, e para que serve
A integração traz dois blueprints. O primeiro, "RBgrid — notify on hub events", faz o que o nome diz: notifica. A sua lista predefinida de tipos de evento cobre eventos de hardware e de ligação — fluxo inverso, um módulo que desaparece ou regressa, um nó que fica offline ou online, um barramento bloqueado, firmware, falhas.
Os eventos de preços não estão nessa lista predefinida. Pode acrescentar você mesmo o tipo price, e passará a ser notificado sobre as janelas — juntamente com todos os outros eventos de preços, incluindo cada obtenção bem-sucedida, porque partilham o mesmo tipo e não podem ser separados.
O segundo, "RBgrid — cheap window turns a switch on and off", recebe um sensor de janela e um interruptor, uma luz, um ventilador ou um booleano de entrada, com a opção de inverter. Vale a pena ser exato quanto ao que isso significa, porque é o mesmo limite de todo o artigo: a automação liga e desliga; o hub reporta. O blueprint é uma automação preparada, não uma capacidade do medidor.
O que o hub nunca fará
- Não comuta nada. Não tem relé e não há nenhuma definição que o faça ligar seja o que for.
- Não planeia por você para além da regra. Uma regra é uma descrição de quais os períodos que se qualificam; o hub aplica-a e diz qual é o resultado.
- Não há janelas do lado da venda. As janelas usam o preço de compra final. Para a exportação, o indicador venda baixa é o sinal.
- Nada acontece sem um relógio definido. As regras descrevem horas e dias; um hub que não sincronizou o relógio não as consegue situar.
Quando não abriu e você esperava que abrisse
- Verifique se os preços chegaram — e leia o parágrafo seguinte, porque este é o caso habitual. Uma regra sobre os períodos mais baratos de um intervalo precisa dos preços desse intervalo. O registo do hub diz o que foi guardado e quando.
- Verifique os dois níveis. Níveis iguais fazem a janela oscilar; uma margem demasiado larga mantém-na fechada.
- Verifique o relógio. Ver acima — é o problema silencioso.
- Verifique qual o preço que o período usou. Se a fonte falhou e o seu plano cobriu o período, a janela foi avaliada com a tarifa do plano, que é outro número. O registo indica a fonte de cada período.
As previsões de amanhã chegaram tarde à noite
Isto merece um parágrafo próprio, porque produz uma janela que parece errada e não está.
O hub não espera pelos preços e não salta as horas para as quais não tem um preço de mercado. Classifica cada período da janela pelo preço que cobraria por esse período — a fonte do mercado, depois a sua alternativa, depois a tarifa de zona do seu plano com as taxas e o IVA. Depois volta a decidir continuamente, por isso quando os preços chegam, a janela move-se para as horas que são de facto as mais baratas entre as que ainda estão à frente.
Duas consequências, e ambas são comportamento honesto e não falhas:
- a janela pode abrir num momento que não esperava — ao fim do dia, se os preços de mercado de hoje para essa altura forem melhores do que a tarifa do seu plano, ou de noite à tarifa do plano quando não se conhece mais nada;
- a janela pode durar menos do que pediu. Uma escolha que já passou não é desfeita; se o novo conjunto mais barato incluir períodos que já passaram, contam como escolhidos e já não podem ser executados, e o hub não completa a noite com períodos extra. O dia seguinte é normal.
Se os preços nunca chegarem, tudo é classificado à tarifa do seu plano e a janela cai nos períodos mais baratos do plano — normalmente a zona noturna, se o seu plano tiver uma.
Em todos estes casos a janela abriu corretamente para os dados que o hub tinha naquele momento. O registo de eventos mostra cada alteração, e a coluna de origem do registo de preços mostra quais os períodos que foram calculados pelo plano em vez do mercado.
Onde ler mais
- Price notifications and cheap windows — a referência completa: cada parâmetro, os campos publicados e o exemplo completo.
- Where your price comes from — como um período obtém o seu preço, em primeiro lugar.
- Events — o registo de eventos do próprio hub, incluindo as linhas das janelas acima.
- Duas formas de executar o RBgrid — a escolha de via de que o último terço deste artigo depende.