tiagofreire-pt / home_assistant_edp_box Goto Github PK
View Code? Open in Web Editor NEWIntegração das EDP Box com Home Assistant Core
License: GNU General Public License v3.0
Integração das EDP Box com Home Assistant Core
License: GNU General Public License v3.0
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)
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:
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!
É 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)
Se não tiveres, inside info, diria que é impossível.
Pelo menos do lado da HAN.
Mudar o ID, por exemplo, funciona perfeitamente.
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:
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
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
Se quiseres a funcionalidade. A firmware final tem de ficar com menos de 500kB.
Depois só é preciso usb a primeira vez.
O meu custom:
https://github.com/nikito7/HA_EDP_Box_Trifasico/blob/master/Tasmota-Build.h
Se usarem o tasmota para outras coisas, poderá não funcionar.
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
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!
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
De forma a simplificar o processo de integração se usar o esphome a mesma é mais simples com o home assistant evitando assim o mqtt e o tasmota
Vi este exemplo na NET não sei se ajuda...
https://www.hjemmeautomasjon.no/forums/topic/5141-han-til-home-assistant-over-esphome/
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
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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.