Componente Electricity para informar da tarifa energética (era energy_tariff_pt)

2019-02-12 22:46:24 INFO (MainThread) [homeassistant.components.automation] Executing tariff change

2019-02-12 22:46:24 INFO (MainThread) [homeassistant.helpers.script] Script tariff change: Running script

2019-02-12 22:46:24 INFO (MainThread) [homeassistant.helpers.script] Script tariff change: Executing step call service

2019-02-12 22:46:24 ERROR (MainThread) [homeassistant.helpers.service] Error rendering data template: UndefinedError: 'trigger' is undefined

2019-02-12 22:46:24 INFO (MainThread) [homeassistant.helpers.script] Script tariff change: Executing step call service

2019-02-12 22:46:24 ERROR (MainThread) [homeassistant.helpers.service] Error rendering data template: UndefinedError: 'trigger' is undefined

Isto é o que tenho a funcionar:

#configuration.yaml

electricity:
  utility_edp:
    country: Portugal
    operator: EDP
    plan: Bi-horário - ciclo semanal

utility_meter:
  energia_diario:
    source: sensor.energia_activa_total
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio
#automation.yaml

- alias: tariff change
  trigger:
    platform: state
    entity_id: electricity.utility_edp
  action:
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario
      data_template:
        tariff: '{{ trigger.to_state.state }}'

Atenção a todas as formatações

Ca nervos!! :tired_face:
dá-me o seguinte erro:
“Unable to read file /config/configuration.yaml: ‘utf-8’ codec can’t decode byte 0xe1 in position 4270: invalid continuation byte”

Que deixa de dar quando tiro o acento em “plan: Bi-horário - ciclo semanal”

se deixo sem acento, não reconhece…

Boa noite @dgomes , mais uma vez obrigado pela atenção disponibilizada.
Agora sim parece estar tudo funcional, mas só amanhã é que posso ter uma ideia mais formada quando tiver mais dados.
Mas à partida parece estar tudo ok…

Boa noite @nunocouto, penso que o meu código é útil para ti, uma vez que, usamos o mesmo tipo de sensores. Qualquer dúvida é só dizeres.

Cumprimentos,

Fica aqui o meu código:

configuration:

# Para Mudança de Vazio ou Fora de Vazio, isto é, Cheia -Plano Bi-horário Ciclo Semanal
electricity:
  utility_edp:
    country: Portugal
    operator: EDP
    plan: Bi-horário - ciclo semanal

### Diario
utility_meter:
  energia_diario_consumed:
    source: sensor.energy_consumed
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio

  energia_diario_consumida:
    source: sensor.energia_consumida
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio
      
  energia_diario_solar:
    source: sensor.energia_solar
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio

  energia_diario_hibrida:
    source: sensor.energia_hibrida
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio

### Mensal
  energia_mensal_consumed:
    source: sensor.energy_consumed
    cycle: monthly
    tariffs:
      - Fora de Vazio
      - Vazio

  energia_mensal_consumida:
    source: sensor.energia_consumida
    cycle: monthly
    tariffs:
      - Fora de Vazio
      - Vazio

  energia_mensal_solar:
    source: sensor.energia_solar
    cycle: monthly
    tariffs:
      - Fora de Vazio
      - Vazio

  energia_mensal_hibrida:
    source: sensor.energia_hibrida
    cycle: monthly
    tariffs:
      - Fora de Vazio
      - Vazio

###   ###    ###   ###   ###   ###   ###   ###

automations:

### Mudaça de Tarifa
- alias: tariff change
  trigger:
    platform: state
    entity_id: electricity.utility_edp
  action:
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_consumed
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_consumed
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_consumida
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_consumida
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_solar
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_solar
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_hibrida
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_hibrida
      data_template:
        tariff: "{{ trigger.to_state.state }}"

###   ###    ###   ###   ###   ###   ###   ###

sensors:

### Sensor para contabilizar a energia consumida.
- platform: integration
  source: sensor.efergy_645291
  name: Energia Consumida
  unit_prefix: k
  round: 0

### Sensor para contabilizar a energia solar produzida.
- platform: integration
  source: sensor.efergy_805720
  name: Energia Solar
  unit_prefix: k
  round: 0

### Sensor para contabilizar a energia hibrida produzida.  
- platform: integration
  source: sensor.efergy_792857
  name: Energia Hibrida
  unit_prefix: k
  round: 0

###   ###    ###   ###   ###   ###   ###   ###

### Custo da energia consumida em casa tarifa bi-horária ciclo semanal
- platform: template
  sensors:
    custo_vazio:
      friendly_name: 'Custo Mensal da Energia no Vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_consumida_vazio.state | float * 0.0942)) | round(2) }}'
      
- platform: template
  sensors:
    custo_fora_vazio:
      friendly_name: 'Custo Mensal da Energia fora do Vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_consumida_fora_de_vazio.state | float * 0.2942)) | round(2) }}'

- platform: template
  sensors:
    custo_total:
      friendly_name: 'Custo Total da Energia'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.custo_vazio.state | float) + (states.sensor.custo_fora_vazio.state | float)) | round(2) }}'

###   ###    ###   ###   ###   ###   ###   ###

### Valor da energia solar Produzida em casa
- platform: template
  sensors:
    valor_solar_fora_vazio:
      friendly_name: 'Valor Mensal da Energia Solar Produzida fora do vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_solar_fora_de_vazio.state | float * 0.2942)) | round(2) }}'

- platform: template
  sensors:
    valor_solar_vazio:
      friendly_name: 'Valor Mensal da Energia Solar Produzida no vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_solar_vazio.state | float * 0.0942)) | round(2) }}'

- platform: template
  sensors:
    valor_total_solar:
      friendly_name: 'Valor Total da Energia Solar Produzida'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.valor_solar_vazio.state | float) + (states.sensor.valor_solar_fora_vazio.state | float)) | round(2) }}'

###   ###    ###   ###   ###   ###   ###   ###

### Valor da energia hibrida Produzida em casa
- platform: template
  sensors:
    valor_hibrido_fora_vazio:
      friendly_name: 'Valor Mensal da Energia Hibrida Produzida fora do vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_hibrida_fora_de_vazio.state | float * 0.2942)) | round(2) }}'

- platform: template
  sensors:
    valor_hibrido_vazio:
      friendly_name: 'Valor Mensal da Energia Hibrida Produzida no vazio'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.energia_mensal_hibrida_vazio.state | float * 0.0942)) | round(2) }}'

- platform: template
  sensors:
    valor_total_hibrida:
      friendly_name: 'Valor Total da Energia Hibrida Produzida'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.valor_hibrido_vazio.state | float) + (states.sensor.valor_hibrido_fora_vazio.state | float)) | round(2) }}'

### Valor total da energia Produzida em casa solar + hibrida
- platform: template
  sensors:
    valor_total:
      friendly_name: 'Valor Total da Energia Produzida'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.valor_total_hibrida.state | float) + (states.sensor.valor_total_solar.state | float)) | round(2) }}'

###   ###    ###   ###   ###   ###   ###   ###

### Energia. consumida menos a produzida, isto é, o valor da energia que se paga a EDP
- platform: template
  sensors:
    valor_pagar:
      friendly_name: 'Valor a Pagar'
      unit_of_measurement: '€'
      icon_template: mdi:cash-multiple
      value_template: '{{ ((states.sensor.custo_total.state | float) - (states.sensor.valor_total.state | float)) | round(2) }}'
      
###   ###    ###   ###   ###   ###   ###   ###

Usa o Notepad++ e muda o encoding para UTF8.

@j_assuncao já estava a dar em maluco! sempre usei o notepad ++ e nunca me aconteceu!
Em encodig, escolhi “convert to UTF-8” e já deu… :sweat_smile:

Obrigado!!

1 Curtiu

Confirma todos os teus ficheiros. Já me aconteceu ter alguns ficheiros sem UTF8 mas não darem erro até lá colocar um carácter especial.

@Draco
Muito obrigado pela tua ajuda, foi muito util. Estou agora a alterar as minhs configurações.

Apenas um questão:

Qual é a diferença entre estas duas ?:
entity_id: utility_meter.energia_diario_consumida
entity_id: utility_meter.energia_diario_consumed


### Mudaça de Tarifa
- alias: tariff change
  trigger:
    platform: state
    entity_id: electricity.utility_edp
  action:
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_consumed
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_consumed
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario_consumida
      data_template:
        tariff: "{{ trigger.to_state.state }}"
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_mensal_consumida
      data_template:
        tariff: "{{ trigger.to_state.state }}

Boa tarde, a Consumed é o valor da energia que o efergy usa, isto é, a aplicação do efergy embutida no hassio transforma a potência em energia. No fundo é o que faz o integration.
O sensor dá o valor da “potência (W)”, na verdade da o valor da corrente, depois uso o seguinte código:

### Sensor para contabilizar a energia consumida.
- platform: integration
  source: sensor.efergy_645291
  name: Energia Consumida
  unit_prefix: k
  round: 0

Para transformar a potência em energia.

Já verifiquei que está tudo operacional, só falta ver como se comporta no fim de semana, para obter valores no vazio do sensor solar e híbrido, mas à partida está tudo ok.

Grande Trabalho @dgomes, obrigado.

Cumprimentos,
Rui Oliveira

1 Curtiu

@Draco Desculpa estar incomodar novamente,

Apenas uma pergunta o calculo dos custos é dinamico ou quando é calculado??

Obrigado e abraço,

Nuno Couto

Boa noite, depende dos sensores que usares, neste caso é mensal, pois estou a usar os sensores mensais. No entanto pode ser um destes ciclos:
cycle
(string)(Required)How often to reset the counter. Valid values are hourly , daily , weekly , monthly and yearly .
Fonte: https://www.home-assistant.io/components/utility_meter/

O mensal faz sentido para ter uma ideia de quanto vou pagar. Se quiseres podes pegar no sensor.custo_total e trabalhares à tua maneira, isto é, armazenar numa tabela com o respectivo mês, etc…

Cumprimentos,

Boas noite pessoal!
Aqui a automação parece não estar a funcionar…

tenho a seguinte configuração:

electricity:
  utility_edp:
    country: Portugal
    operator: EDP
    plan: Bi-horário - ciclo semanal

utility_meter:
  energia_diario:
    source: sensor.consumo_total
    cycle: daily
    tariffs:
      - Fora de Vazio
      - Vazio

e a automação:

- id: Mudança_de_tarifa
  alias: tariff change
  trigger:
    platform: state
    entity_id: electricity.utility_edp
  action:
    - service: utility_meter.select_tariff
      entity_id: utility_meter.energia_diario
      data_template:
        tariff: '{{ trigger.to_state.state }}'

a minha source é de um pzem.
Configurei ontem á noite e não mudou, quando faço o “automation.trigger”, dá erro “Error rendering data template: UndefinedError: ‘trigger’ is undefined”.

Será que este tal “automation.trigger” nos serviços não faz o que estou a pensar ou tenho alguma coisa mal configurada?

Não ha mudança de estado… logo o automation trigger não recebe o “to_state”

Entretanto já funciona aposto :slight_smile:

Sim! No dia seguinte funcionou tudo direitinho. No fim de semana, que é quando há mais alterações, funciona na perfeição! És grande @dgomes! Agora ando a ver o que consigo montar no grafana. :wink:

Atenção! Com a mudança da hora foi detectado um BUG. É preciso actualizar!

3 Curtiram

Boa tarde,

Após a ultima actualização do hassio para a 0.94.4, o electricity deixou de funcionar. Já reiniciei a máquina umas 4 ou 5 vezes e não resolveu.
Tenho os seguintes erros:

Unable to install package python-electricity==0.0.4: WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: SysCallError(104, ‘ECONNRESET’)”))’: /simple/python-electricity/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: SysCallError(104, ‘ECONNRESET’)”))’: /simple/python-electricity/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: SysCallError(104, ‘ECONNRESET’)”))’: /simple/python-electricity/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: SysCallError(104, ‘ECONNRESET’)”))’: /simple/python-electricity/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by ‘SSLError(SSLError(“bad handshake: SysCallError(104, ‘ECONNRESET’)”))’: /simple/python-electricity/

ERROR: Could not find a version that satisfies the requirement python-electricity==0.0.4 (from versions: none)

ERROR: No matching distribution found for python-electricity==0.0.4

Not initializing electricity because could not install requirement python-electricity==0.0.4

Setup failed for electricity: Could not install all requirements.

Alguém pode dar uma ajuda?

Cumps.

reinicia a maquina, que isso passa :slight_smile:

Após reiniciar umas 6 ou 7 vezes, voltou à vida :ok_hand:
Obrigado Diogo.

2 posts were split to a new topic: Automação de caldeira

Este tópico foi automaticamente fechado 90 dias após a última resposta. Novas respostas não são permitidas.


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


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