Giter Site home page Giter Site logo

home_assistant_edp_box's Introduction

Âmbito

A integração de contadores inteligentes com sistemas de domótica permite potenciar automações, controlo e análises com base na informação disponível das grandezas elétricas e estados do equipamento. Nomeadamente, tensão, intensidade de corrente, potência ativa, fator de potência, frequência, estado do disjuntor controlador de potência, et al.

A E-Redes S.A. (anteriormente EDP Distribuição S.A.) surge neste contexto enquanto Operadora da Rede de Distribuição de baixa tensão. Independentemente do comercializador de energia elétrica com quem tem contrato de fornecimento e de estar em mercado regulado ou liberalizado.

Objetivo

Pretende-se partilhar o conceito de integração de dispositivos EDP Box com um hub de domótica a executar Home Assistant Core.

Esta integração é possível graças à porta de comunicação HAN que está disponível internamente nos contadores inteligentes. É também proposto neste repositório um procedimento para requisitar formalmente o acesso a esta porta e determinar o suporte do seu contador atual.

São propostas duas alternativas distintas possíveis para integração:

  1. Integração indireta com Home Assistant, usando um microcontrolador ESP8266 com firmware Tasmota, através de MQTT.
  2. Integração direta com Home Assistant Core, através do seu componente nativo para protocolo MODBUS.

Conteúdos

  1. A EDP Box e a sua porta HAN
    1. Pedido de acesso e suporte do seu atual contador
    2. Interface físico
    3. Impedância de linha
    4. Comunicação
  2. Tasmota e script de configuração para MODBUS - Para método indireto
    1. Descarga e instalação do firmware no ESP8266
    2. Ligação física entre o contador inteligente e o ESP8266
    3. Configuração do perfil de GPIO
    4. Configuração de MQTT
    5. Configuração do script para Smart Meter Interface (SMI)
  3. Home Assitant Core e a sua configuração - Para método direto e indireto
    1. Ligação física entre o contador inteligente e o hub com Home Assistant Core
    2. Ficheiro de configuração
    3. Personalizar as entidades geradas - método direto
    4. Aplicação das configurações

Requisitos mínimos

Transversais

  • Contador inteligente com porta HAN ativada, suportando o protocolo de tramas MODBUS.
  • Acesso exterior à porta HAN, previamente instalado pela E-Redes S.A.;
  • Raspberry Pi 3 B+ ou superior (alternativamente, Home Assistant Core em outra máquina física ou virtualizada);
  • Home Assistant Core instalado (versão inicial de prova de conceito: 0.106.6. Recomendada a versão 2021.9.6 ou superior);
  • Mosquitto MQTT Broker instalado (versão 5.0 ou superior, como add-on oficial em Home Assistant Core. Ou qualquer outro broker MQTT à sua escolha);
  • Acessórios de ligação variados.

Exclusivamente para o 1º método (indireto)

  • Conversor TTL vs RS-485 (por exemplo, "TTL to RS485 For Arduino")
  • Wemos D1 Mini

Exclusivamente para o 2º método (direto)

  • Conversor USB - TTL vs RS-485 (por exemplo, "Waveshare Industrial USB to RS485")
  • Cabo extensor USB "A macho" - "A fêmea" (recomendado)

Fontes

EDP Box - HAN protocol specification (DEF-C44-509/N) - Julho 2020

Descrição dos requisitos e respetiva aplicabilidade em função do tipo de módulo HAN - Abril 2021

Contadores de energia elétrica - Especificação funcional (DEF-C44-506/N)

Novos Equipamentos

Notas importantes

A porta de comunicação HAN está no interior das EDP Box. A manipulação, danos, prejuízos ou acesso não autorizado a esta porta é da total responsabilidade do próprio.

Todas as marcas registadas, nomes de produtos ou de marcas, referidas neste documento, são propriedade registada do respectivo detentor.

Versionamento

  • 13 de Março de 2020: primeira integração publicada e validada, através de USB.
  • 4 de Julho de 2020: segunda integração validada e publicada, através de MQTT e WIFI.
  • 10 de Outubro de 2020: atualização para contadores trifásicos (@nikito7) e Tasmota 8.5.1.
  • 11 de Abril de 2021: suporte para contadores ZIV.
  • 20 de Maio de 2021: todos os contadores existentes funcionam.
  • 13 de Setembro de 2021: atualização do método directo, conforme a revisão à integração modbus.

A fazeres

Método direto (atualizado em 13/09/2021):

  • Potência ativa
  • Estado do DCP
  • Totalizadores de energia
  • Religação do DCP

Método indireto (atualizado em 05/07/2020):

  • Tarifa
  • Estado do DCP
  • Totalizadores de energia
  • Religação do DCP

home_assistant_edp_box's People

Contributors

carlosmbpereira avatar nikito7 avatar pedrorualves avatar tiagofreire-pt avatar tomazin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

home_assistant_edp_box's Issues

Potencia activa a Zero quando estou a injectar na rede.

Boa tarde,

Desculpem abrir issue mas é a forma que encontrei de vos contactar.
Desde já agradeço o trabalho extraordinário deste projecto. Está muito bom.
Tenho um contador instalado há uns dias marca KAIFA MA109P
Tenho instalação solar fotovoltaica de autoconsumo 1.5kWh
Segui o excelente tutorial.

O meu problema :
Quando estou a produzir mais do que estou a consumir, o Tasmota indica 'EB Potência activa' a 0 W.
No printscreen que anexo, estou a injectar na rede +- 683.4 W (medido com Shelly EM) mas o Tasmota indica 0 W.

É possivel trabalhar no script por forma a podermos ter o valor de Potência quando estamos a injectar, como neste caso ? (por exemplo apresentar o valor a negativo como faz o Shelly)

Muito Obrigado
Jorge
Tasmota_zero_01
Kaifa

Método directo - registos "Double long unsigned"

Bom dia,

Estou a contactar por aqui pois não conheço outra forma.
Imagino que já tenhas chegado à conclusão que no método directo o problema é o tamanho da reposta.
O problema no Home assistant é que recebe dados com comprimentos mais longo que o esperado.
Nos registos "Double long unsigned" Pedimos 1 byte e recebemos 2 bytes

Não sou programador, mas manualmente no ficheiro:

/homeassistant/components/modbus/sensor.py

apagado as linhas 132 a 138 (Onde é feito o teste do tamanho dos dados recebidos):

    if register[CONF_COUNT] * 2 != size:
        _LOGGER.error(
            "Structure size (%d bytes) mismatch registers count (%d words)",
            size,
            register[CONF_COUNT],
        )
        continue

Contornamos o erro e conseguimos receber dados.
Por exemplo para receber o total vazio tenho:

  - name: 'Contador - Total Vazio'
    hub: edp_box_1
    slave: 1
    register: 38
    register_type: input
    unit_of_measurement: 'Wh'
    count: 1
    data_type: custom
    structure: ">L"

Não sei e a melhor forma é copiar o modulo original "modbus" e criar um "custom component" sem essa verificação ou se existe outra forma de levantar esta questão junto dos desenvolvedores do home assistant. Tanto quanto me apercebi iste tipo de resposta não é normal na comuncação modbus.

Cumprimentos
ENina

Enhancement | Auto Discovery

É possível modificar o script do tasmota para permitir auto discovery pelo HA?
A vantagem seria que o device ficaria bem configurado (visão completa na vista de devices)

Metodo directo: Sem valores para sensores de potencia, total

Bom dia, Tiago,

Estou a tentar configurar o método directo e não tenho dados para os consumos do contador, podes me ajudar a perceber o motivo?

O contador que tenho é um Sagemcom t215, trifásico. Estou a conseguir ler outros valores como a tensão para as 3 fases, tarifa, potencia, corrente... mas valores de potencia, totais... não aparece nada.

No log aparece:
[homeassistant.components.modbus.modbus] Pymodbus: edp_box_1: Modbus Error: [Input/Output] No Response received from the remote slave/Unable to decode response

Tentei aplicar o fix do #5 , mas sem resultado.. a ultima definição dos sensor de total:

  - name: 'EDP Box - Total Vazio'
    scan_interval: 30
    slave: 1
    address: 38
    input_type: input
    unit_of_measurement: kWh
    scale: 0.001
    precision: 3
    count: 2
    data_type: custom
    structure: ">L"

Alguma dica para fazer funcionar?

Obrigado

Como por os dados em Kwh

Para que o home assistant reconheça isto no "power grid" suponho que estes tdados tenham que estar em kwh. Como posso fazer isso?

Estou a usar ligação directa com cabo de rede cat5 (15 metros).

Obrigado

Erro na leitura do serial

Na config do home assistant directa, para obter o serial do contador estou a fazer assim mas não dá. Que estou a fazer de errado?

 - name: "EDP Serial Number"
    slave: 1
    address: 2
    input_type: input
    count: 10  # Assuming the serial number is a 10-character Octet string
    data_type: octet  # Use octet data type for Octet string
    scan_interval: 97

Modbus Keyword Count removal

Olá @tiagofreire-pt

Vejo que o count a partir da versão 2023.10 só está disponivel para os data_type: custom e data_type: string, o que faz com que quem faça este update fique com a impossibilidade de usar o ModBus.

https://www.home-assistant.io/integrations/modbus/#count

Conforme sugerido aqui: home-assistant/core#101421 comentei o "count" para todos os data types, excepto para o custom e string. Agora o ModBus está devolta ao funcionamento, no entanto alguns counters deixaram de funcionar, apresentando o seguinte:

image

Configuração de um dos counters:

- name: "ERedes Box Import L1" # 16
  slave: 01
  address: 28
  input_type: input
  #count: 1
  data_type: uint32
  precision: 3
  scale: 0.001
  unit_of_measurement: kWh
  device_class: energy
  scan_interval: 60

Conexão D1 Mini - EDP Box não responde

Boa tarde Tiago,
Peço desculpa abrir Issue, mas foi a forma que arranjei para contactar. Segui o teu readMe passo a passo, está bastante completo ;)
No entanto os valores aparecem todos a zero... Existe forma de fazer debug para saber se o Wemos D1 e a EDP Box estão a comunicar?
Tenho a confirmação que a porta Han está ativa, o cabo está devidamente colocado pela EDP. O conversor ttl rs485 pisca apenas o led TXD de 5 em 5 segundos de acordo com o script (estando ligado ou desligado da porta HAN), pelo que me parece que a EDP Box não responde...
Deixo prints abaixo, obrigado!

image
image

Pergunta, solução com acesso a API da e-redes

Gostava de saber se sabem de alguma solução que usa a api or por scrapping diretamente a e-redes, eles disponibilizao a informaçao a cada 15 minutos e pode ser suficiente para muitas pessoas, sem necessitar de hardware etc

image

Firmware Version

Hello,

Tasmota integration in HA requires now Firmware version above 9.2

is it possible to upgrade it? i've already tried the "normal", but of course I loose all config and not able to load the script

Obrigado desde já

PS: as instruções estão muito boas! obrigado

Religação do DCP

Se não tiveres, inside info, diria que é impossível.
Pelo menos do lado da HAN.

Mudar o ID, por exemplo, funciona perfeitamente.

MAX485 TTL to RS485

Boa tarde Tiago,

Antes demais desculpa estar a abrir issue, mas aparentemente é a única forma de entrar em contacto direto contigo.

Por lapso não vi bem o exemplo do Conversor TTL que tens na documentação, e acabei por adquirir este:

image

A minha questão é se é possível usá-lo para o projeto, e se sim, qual o layout das ligações.

Obrigado desde já pela ajuda, e desculpa ser noob nestas matérias 😐

Continuação de excelente trabalho!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.