Utility Meter Sensor (DEPRECATED)


(Diogo Gomes) #1

(DEPRECATED: usar Novo componente Utility Meter)

Então voces já teem um sensor (PZEM, Efergy, etc) que mede os consumos de energia (kWh) mas não conseguem fazer contar a energia por periodos de tempo (como no contador de electricidade, agua, gaz). Este sensor o que faz é monitorizar o sensor “source” e calcular os custos por periodo de facturação (normalmente mensal).

Configuração padrão:

  - platform: utility_meter
    name: Electricidade
    cycle: monthly
    source: sensor.energy

O period pode ser daily, weekly, monthly e yearly
Existe a opção period_offset que permite mudar so primeiro dia da semana (Segunda), mes, ano para um outro dia.

Existem 2 serviços:

sensor.utility_meter_reset -> reinicia contagem
sensor.utility_meter_start_pause -> interrompe/continua a contagem (util por exemplo para implementar bi-horarios, ou para contar qualquer coisa em função de um evento qualquer)

Testem e comentem :slight_smile:


Como instalar e configurar um Medidor de Energia PZEM-004T
Novo componente Utility Meter [DEPRECATED]
Componente Electricity para informar da tarifa energética (era energy_tariff_pt)
(Jorge Assunção) #2

@dgomes
Presumo que se possa fazer mais que uma chamada da plataforma, certo? Tipo isto:

  - platform: utility_meter
    name: Electricidade
    cycle: monthly
    source: sensor.energy
  - platform: utility_meter
    name: Água
    cycle: monthly
    source: sensor.water
  - platform: utility_meter
    name: Gás
    cycle: monthly
    source: sensor.gas

(Rui Duarte ) #3

A aparece, acrescento mais uma linha, tal como tem o @j_assuncao e desaparece tudo… algo está errado naquilo que estou a fazer


(Diogo Gomes) #4

Sem duvida! Foi algo que tive em consideração nesta nova iteração


(Rui Duarte ) #5

Há qualquer coisa que me está a correr mal… Já consegui ver e agora desapareceu tudo.


(Rui Duarte ) #6

algum sitio especifico onde deva colocar ??


(Diogo Gomes) #7

podes colocar aqui logs ?


(Rui Duarte ) #8

este é o ficheiro energy.yaml

homeassistant:


sensor:

  - platform: utility_meter
    name: Electrecidade
    cycle: monthly
    source: sensor.energy
 
  - platform: mqtt
    name: "Voltagem"
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.Voltage }}"
    unit_of_measurement: "V"
    icon: mdi:flash

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.Current }}"
    name: 'Corrente'
    unit_of_measurement: "A"
    icon: mdi:flash-auto

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.ActivePower }}"
    name: "Potência (W)"
    unit_of_measurement: "W"
    icon: mdi:speedometer

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.ApparentPower }}"
    name: 'Potência Aparente Activa (VA)'
    unit_of_measurement: "VA"
    icon: mdi:speedometer

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.ReactivePower }}"
    name: 'Potência Aparente Reactiva (VAR)'
    unit_of_measurement: "VAR"
    icon: mdi:speedometer

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.Factor }}"
    name: 'Factor de Potência (pf)'
    unit_of_measurement: ""
    icon: mdi:speedometer

  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.Frequency }}"
    name: 'Frequência'
    unit_of_measurement: "HZ"
    icon: mdi:speedometer
    
  - platform: mqtt
    state_topic: "tele/sdm120/SENSOR"
    value_template: "{{ value_json.ENERGY.Total }}"
    name: 'Consumo Total'
    unit_of_measurement: "Kwh"
    icon: mdi:speedometer

(Rui Duarte ) #9

tenho aqui o log

2018-12-31 19:24:47 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/entity_platform.py", line 350, in _async_add_entity
    await entity.async_added_to_hass()
  File "/config/custom_components/sensor/utility_meter.py", line 191, in async_added_to_hass
    self._unit_of_measurement = state.attributes[ATTR_UNIT_OF_MEASUREMENT]
KeyError: 'unit_of_measurement'
2018-12-31 19:24:56 ERROR (MainThread) [homeassistant.core] Error doing job: Task exception was never retrieved
Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/spotipy/client.py", line 121, in _internal_call
    r.raise_for_status()
  File "/usr/local/lib/python3.6/site-packages/requests/models.py", line 940, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://api.spotify.com/v1/me/player/volume?volume_percent=0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/homeassistant/helpers/service.py", line 279, in _handle_service_platform_call
    await func(entity, data)
  File "/usr/local/lib/python3.6/concurrent/futures/thread.py", line 56, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.6/site-packages/homeassistant/components/media_player/spotify.py", line 220, in set_volume_level
    self._player.volume(int(volume * 100))
  File "/usr/local/lib/python3.6/site-packages/spotipy/client.py", line 976, in volume
    self._put(self._append_device_id("me/player/volume?volume_percent=%s" % volume_percent, device_id))
  File "/usr/local/lib/python3.6/site-packages/spotipy/client.py", line 190, in _put
    return self._internal_call('PUT', url, payload, kwargs)
  File "/usr/local/lib/python3.6/site-packages/spotipy/client.py", line 126, in _internal_call
    headers=r.headers)
spotipy.client.SpotifyException: http status: 404, code:-1 - https://api.spotify.com/v1/me/player/volume?volume_percent=0:
 Player command failed: No active device found

(Rui Oliveira) #10

Boa Tarde @dgomes, não me parece estar a funcionar, os sensores não aparecem, e no código tens utility_meter_start_pause e depois referes dois serviços disponíveis com o nome sensor.utility_meter_start_stop.
Será esse o problema?
Este vai substituir o energy meter? Tendo a possibilidade de ver os valores Kwh consumidos ou produzidos por dia, semana, mês ou ano, correto?
Cumprimentos,


(Diogo Gomes) #11

O teu sensor “source” não tem unidades ?

Tens ai mais erros mas eu não tenho nada a ver com o spotify :slight_smile:


(Diogo Gomes) #12

ja actualizei aqui … é start_pause e não start_stop.

Podes postar os logs para perceber o erro ?


(Rui Oliveira) #13

A minha configuração no ficheiro sensors.yaml é a seguinte:

#teste
- platform: utility_meter
  name: Electricidade
  cycle: monthly
  source: sensor.efergy_645291

O erro é o seguinte:


(Diogo Gomes) #14

OK mesmo erro do @miruim , já corrigi. Por favor façam download do ficheiro de novo


(Henrique Ferreira) #15

Boas coloquei o ficheiro utility_meter.py dentro da pasta custom_components\sensor, mas e o codigo
- platform: utility_meter
name: Electricidade
cycle: monthly
source: sensor.energy

mas da-me erro ao validar a configuraçao:
Platform not found: sensor.utility_meter

depois nos grupos como o chamo ?


(Diogo Gomes) #16

certifique-se que faz download do ficheiro RAW, nada de copy&paste…


(Rui Duarte ) #17

Viva , estive a experimentar com o diario e parece estar a funcionar
Mas agora surge uma pergunta que muito provavelmente estou a fazer deviso à passagem de anp :drooling_face:.
Os sensor.utility, coloco-os onde ??


(Jorge Assunção) #18

@dgomes
Aqui está tudo a funcionar 5 estrelas. Só uma ideia, não seria melhor fornecer os valores limitados a duas casas decimais ou ter uma entrada na configuração para o numero de casas decimais? É que ter no interface um valor tipo 0.11999999999989086 KWh parece-me exagerado…


(Diogo Gomes) #19

qual é o sensor que usas na source ?

Eu limito-me a fazer uma subtracção que não interfere com a resolução. Muito possivelmente esse problema vem da fonte (source).


(Diogo Gomes) #20

Quais sensor utility :slight_smile: ?