Flow para segregar contagem total de energia por dias

Viva!

Há cerca de 1,5 mês entrei neste mundo e mergulhei de cabeça! Umas das áreas que quero implementar é a contagem de energia que passa por casa.

Para isso já encomendei um sonoff basic + pzem, que assim que chegar vou seguir o tutorial aqui do forum para colocar a medir a entrada geral; e também uma carrada de tomadas Blitzwolf (SHP5 e SHP2) que planeio flashar assim que chegarem (e assim que chegar o conversor usb serie para isso).

Entretanto como queria começar já a medir alguma coisa, comprei duas Shelly Plug S, que têm esta capacidade (mais tarde devo também flashar com tasmota, mas como já têm MQTT ficam em ultimo da lista)

O problema começa aqui: Apesar de suportar MQTT, de cada vez que as shellies fazem restart o contador de energia vai a zero. Apercebendo-me disto fui para o support group do facebook pedir alguma sugestão mas o que me foi dito foi algo deste género “reboots acontecem, é melhor mas é guardares isso do lado do HA”.
Aceitei o desafio o montei um flow para fazer isso mesmo, que basicamente o que faz é guardar o ultima contagem total sempre que detecta um 0 no respetivo sensor, e somar tudo o que chega depois a esse mesmo valor, guardando tudo num sensor diferente que criei para servir de totalizador.

O que eu agora gostava de fazer mas não estou a conseguir, é tentar separar esta energia por dias, exemplo:

  • Energia Hoje
  • Energia Ontem
  • Energia esta semana
  • Energia este mês

depois de chegar à formula para fazer um destes será fácil chegar aos restantes, mas não está fácil. Alguém tem alguma sugestão?

Obg

Podes quadruplicar os sensores e depois para cada um crias um timer para lhes fazer reset.

Exemplo:

Sensor. hoje -> reset todos os dias às 00:00
Sensor ontem -> antes do reset ao sensor.hoje, copias o valor para o sensor.ontem
O esta.semana é dúbio porque podem ser os últimos 7 dias ou a semana civil.
O sensor.este.mes a maneira mais simples é reset às 00.00 de dia 1.

De certeza que existe uma maneira mais fácil de fazer isto, mas foi o que me ocorreu :upside_down_face:

Eu utilizava o https://www.home-assistant.io/components/utility_meter/ … mas sou suspeito :wink:

2 Likes

Pois… Eu também sou suspeito mas se o @dgomes ja inventou a roda (leia-se um componente que faz isso tudo que queres e muito mais) não há necessidade de reinventar a roda (leia-se criar confusão nas configurações e automações quando com meia duzia de linhas fazes o mesmo).

Obrigado a todos pelas sugestões!

De facto a sugestão do Tiago é simples e eficaz, acho que vou começar por aí até para melhorar os meus skills de node-red.
Ontem depois do meu post até comecei por utilizar uma abordagem de usar o node “Get history”, com as datas corretas e depois subtrair o primeiro valor do array ao ultimo. Esta abordagem no caso de calcular os valroes de ontem é pacifica, mas se calhar quando estamos a falar do valor mensal, o get history ir buscar os valores do mês inteiro só para usar o primeiro e o ultimo parece tudo menos eficiente :slight_smile: A sugestão do Tiago resolve isto, guardo o valor que interessa na altura que interessa e está feito (inicio do dia; inicio da semana, inicio do mês, etc)

A componente utility_meter já andava debaixo de olho, mas pelo que percebo é indicada para um sensor (ou estou a ver mal e permite ter múltiplos sensores de energia?), que no meu caso será o sensor de energia geral da casa quando o tiver instalado.
Instalei e configurei para monitorizar o consumo da máquina de lavar loiça para me começar a ambientar.

O Utility Meter pode ser usado para o numero de contadores que quiseres, basta definir fontes diferentes para cada contador. E não serve apenas para electricidade, podes usar para gás, água, etc.

Não me tinha apercebido, pensava que a tag “energy” era fixa. Configurei no Utility Meter a contagem das duas máquinas, com ciclo diario, mas agora não estou a ver como ter a informação: hoje, ontem, esta semana, semana passada, etc pois só me aparecem 2 contadores…
Tenho de adicionar mais sensores? Podem ajudar com exemplo? Atualmente tenho assim:

utility_meter:
  energy_mll:
    source: sensor.energy_cozinha_mll_total
    cycle: daily
  energy_mlr:
    source: sensor.energy_cozinha_mlr_total
    cycle: daily

que resulta no tab da direita:

EDIT: Já percebi, tenho de adicionar o mesmo sensor de energia mas com ciclo diferente, ficou assim:

utility_meter:
  energy_mll_d:
    source: sensor.energy_cozinha_mll_total
    cycle: daily
  energy_mll_w:
    source: sensor.energy_cozinha_mll_total
    cycle: weekly
  energy_mll_m:
    source: sensor.energy_cozinha_mll_total
    cycle: monthly

Agora só falta o yesterday, last_week e last month, estes não são suportados pelo Utility Meter por omissão, e terei de os calcular via qualquer automatismo ou node-red, certo?
Obg pela ajuda

Eu faço depois esses cálculos com o InfluxDB e com o Grafana mas o Utility Meter tem um atributo de last_period com o valor do último período medido (@dgomes corrige-me se estiver errado)

É só criar um template sensor para ler o last_period de cada contador e tens os valores anteriores.

Viva,
De facto está mesmo tudo feito, não tinha percebido que o last_period era um atributo de cada um dos contadores! impecável :ok_hand::

Assim sendo não há mesmo que inventar a roda! Obrigado

2 Likes

Viva,

Estou com um problema com o utility meter que penso que algum de vós me pode ajudar:
Por alguma razão o contador “energy_cozinha_msr_today” não tem atribuída a unidade kWh (nem qualquer outra):

image

A minha configuração do utility meter para este consumo (máquina secar roupa) é a seguinte:

utility_meter:
  energy_cozinha_msr_today:
    source: sensor.energy_cozinha_msr_total
    cycle: daily
  energy_cozinha_msr_this_week:
    source: sensor.energy_cozinha_msr_total
    cycle: weekly
  energy_cozinha_msr_this_month:
    source: sensor.energy_cozinha_msr_total
    cycle: monthly

Este é o aspecto destas variáveis no states:

Por alguma razão o contador “today” não tem unidade, mas os restantes têm. Já comentei este sensor e voltei adicionar sem sucesso. Alguma sugestão? obrigado

Sim, na configuração desse sensor define a unit_of_measurement.

Viva,
Não consegui, passo a explicar:

Se configurar o unit_of_measurement = kWh na definição do utility meter, dá-me erro - há alguma maneira especial de fazer isto?

Na source que alimenta os 3 contadores “sensor.energy_cozinha_msr_total”, a unit_of_measurement está bem definida, como se pode ver na imagem que coloquei (é o último sensor dos 4 que aparecem na lista).
Por fim, o que é estranho é que a source é a mesma, mas nos 2 contadores this_week e this_month aparece de facto o kWh.

Reparei agora numa coisa na imagem que colocaste. Os contadores que estão a 0 têm definida a unit_of_measurement e o que já tem valores não tem…

Talvez seja melhor o @dgomes opinar sobre o assunto.

O que já tem valor (0.5) fui eu que impus via alteração de estado, na tentativa de desbloquear a situação, mas não ajudou.

Encontrei uma thread onde alguém se queixa de algo similar:

Vou adicionar no logger o debug e ver se acrescenta alguma coisa.
EDIT: o log não tem nada de espcial penso eu:

2019-07-25 17:19:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-07-25 17:19:43 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for zigbee2mqtt_networkmap which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you do experience issues with Home Assistant.
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_msr_today
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_msr_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_msr_this_month
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_mll_today
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_mll_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_mll_this_month
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_mlr_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_mlr_this_month
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_sala_shp2_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_sala_shp2_this_month
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_frigo_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_frigo_this_month
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_micro_this_week
2019-07-25 17:19:46 DEBUG (MainThread) [homeassistant.components.utility_meter] Setup utility_meter.energy_cozinha_micro_this_month
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.setup] Setup of person is taking over 10 seconds.
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.setup] Setup of input_boolean is taking over 10 seconds.
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.setup] Setup of timer is taking over 10 seconds.
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.setup] Setup of hacs is taking over 10 seconds.
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.setup] Setup of input_select is taking over 10 seconds.
2019-07-25 17:20:01 WARNING (MainThread) [homeassistant.components.weather] Setup of platform ipma is taking over 10 seconds.
2019-07-25 17:20:01 ERROR (MainThread) [homeassistant.components.weather] Setup of platform ipma is taking longer than 60 seconds. Startup will proceed without waiting any longer.
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_msr_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_msr_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_msr_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_mll_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_mll_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_mll_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_mlr_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_mlr_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_sala_shp2_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_sala_shp2_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_frigo_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_frigo_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_micro_total
2019-07-25 17:20:16 DEBUG (MainThread) [homeassistant.components.utility_meter.sensor] tracking source: sensor.energy_cozinha_micro_total

O unit_of_measurement é automaticamente obtido do source sensor. A configuração da mesma no utility_meter é só para quando o source não tem unidades.

Que erro te dá ?

Se configurar o unit_of_measurement = kWh na definição do utility meter, dá-me erro - há alguma maneira especial de fazer isto?

Viva,
Entretanto consegui resolver mas não tenho a certeza como.
Forcei via costumization a atribuição do unit_of_measure = kWh ao Today, e depois retirei, e ficou ok.

A source sempre teve o unit_of_measurement em kWh, isso é que é estranho. Foi como referi, a source é mesma para cada um dos 3 sensores do setup (ver imagem abaixo), no entanto havia algum problema com a variável today…

image

Se colocar o unit_of_measurement no sensor today, ao fazer o check dá-me este erro:

image

Configuração inválida

Invalid config for [utility_meter]: [unit_of_measurement] is an invalid option for [utility_meter]. Check: utility_meter->utility_meter->energy_cozinha_msr_today->unit_of_measurement. (See /config/configuration.yaml, line 79). Please check the docs at https://home-assistant.io/components/utility_meter/

Ainda uma outra questão sobre o Utility Meter l, cuja resposta não estou a encontrar:

O utility meter utiliza um contador de energia para fazer as suas segregações e cálculos. Como é que ele reage quando por exemplo o contador de energia da tomada vai a zero? Ele deteta isto e consegue lidar como se nada tratasse?

Obrigado


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


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