Eu uso o servidor WES carteeletrônico há vários anos: é uma pequena caixa que está integrada no quadro eléctrico e que é capaz de monitorizar todo o consumo de energia da casa, seja electricidade via teleinfo ou pinças métricas, água, gás e muitas outras coisas. Um servidor extremamente completo, que por si só é suficiente. Mas o Home Assistant oferece uma tabela energética muito bem desenhada, queria poder integrar o servidor WES neste sistema de domótica. Este guia irá ajudá-lo a fazer o mesmo.

Pré-requisitos
É claro que você precisará ter um servidor WES funcional conectado à rede, bem como uma instalação funcional do Home Assistant.
[módulo content-egg = modelo AE__domadoofr = personalizado/compacto]
Primeiramente, para que meu arquivo de configuração do Home Assistant não fique sobrecarregado, divido-o em vários arquivos, algo planejado nativamente pelos desenvolvedores. Aqui teremos dois arquivos em particular:
- sensores.yaml , que hospedará a configuração de todos os sensores WES
- personalize.yaml, que permitirá que você personalize esses sensores para que sejam reconhecidos corretamente pela tabela Home Assistant Energy
Para fazer isso, basta adicionar estas linhas aos arquivos configuration.yaml se você ainda não os tiver:
sensor: !include sensores.yaml
#Personalização do Assistente Doméstico
assistente de casa:
personalizar: !include personalizar.yaml
Criando sensores de servidor WES no Home Assistant
Infelizmente, o servidor WES não oferece conexão MQTT, embora isso já tenha sido anunciado há vários anos. Que pena, porque teria facilitado muito a nossa vida. O WES, no entanto, fornece vários arquivos que permitem a leitura das informações que coleta. O arquivo mais completo é sem dúvida o data.cgx, disponível em http://IP_DU_WES/data.cgx. Este é o que usaremos para evitar malabarismos entre vários arquivos.
Reúne todas as informações úteis neste formulário:

Basta declarar as diversas informações desejadas no Home Assistant.
Para fazer isso, no arquivo sensores.yaml (a ser criado em seu diretório homeassistant caso ainda não o tenha), precisamos declarar a conexão com o servidor WES:
-plataforma: descanso
Nome: Wesdata
#Substitua pelo IP do seu WES
recurso: http://IP_DU_WES/dados.cgx
intervalo_de_varredura: 60
método: GET
autenticação: básica
#Substitua pelo nome de usuário e senha do sistema
nome de usuário: administrador
senha: nós
json_attributes_path: "$.dados"
json_atributos:
- "marca1"
- "tic2"
- "tic3"
- "impulso"
- “grampo”
- "temperatura"
- "relé"
- "Entrada"
- "analógico"
- "interruptor_virtual"
- "variáveis"
modelo_valor: 'OK'
Você precisará substituir os campos em vermelho para indicar o endereço IP do servidor WES, bem como o nome de usuário e senha caso não utilize os padrão. Você também pode alterar o “scan_interval” para pesquisar o arquivo com mais ou menos frequência. Aqui está configurado para fazer pesquisas a cada minuto, o que funciona bem para a maioria dos propósitos. Não há necessidade de sobrecarregar o servidor com chamadas repetidas.
A seguir vem a declaração dos diferentes sensores. Para ler as informações do medidor de energia elétrica via teleinfo, se você estiver, por exemplo, em uma assinatura de pico/fora de pico:
westic1hp:
friendly_name: "Índice de horários de pico"
ID único: westic1hp
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["H_PLEINE"]
oeste1hc:
friendly_name: "Índice de horários fora de pico"
ID único: westic1hc
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["H_CREUSE"]
Você pode personalizar os campos “friendly_name” se desejar: estes são os nomes que aparecerão no Home Assistant. O resto não deve ser alterado.
Se você for como eu com uma assinatura Tempo, haverá mais alguns sensores para criar:
#Se assinatura do Tempo
westic1bleuhp:
friendly_name: "Índice Azul de Horário de Pico"
ID_único: westic1bleuhp
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes | flutuar }}["BBRHPJB"]
westic1bleuhc:
friendly_name: "Índice azul de horário fora de pico"
ID único: westic1bleuhc
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["BBRHCJB"]
westic1blanchp:
friendly_name: "Índice de horas de pico branco"
ID_único: westic1blanchp
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes | flutuar }}["BBRHPJW"]
westic1blanchc:
friendly_name: "Índice branco de horários fora de pico"
ID único: westic1blanchc
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["BBRHCJW"]
westic1rougehp:
friendly_name: "Índice de horários de pico vermelho"
ID único: westic1rougehp
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes | flutuar }}["BBRHPJR"]
westic1rougehc:
friendly_name: "Índice vermelho de horários fora de pico"
ID_único: westic1rougehc
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["BBRHCJR"]
Podemos também recuperar informação relativa à injeção (caso tenha contrato de produção de energia), consumo instantâneo, ou mesmo tensão:
westic1inj:
friendly_name: "Injeção de índice"
ID_único: westic1inj
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["INJECTION"]
westic1pap:
friendly_name: "Consumo Instantâneo"
ID_único: westic1pap
classe_de_dispositivo: potência_aparente
unidade_de_medição: 'VA'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }}["PAP"]
tensão oeste1:
friendly_name: "Tensão de Consumo"
ID_único: westic1tension
classe_de_dispositivo: potência
unidade_de_medição: 'V'
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes| flutuar }} ["TENSION1"]
Em casa tenho um segundo medidor Linky, para revenda da minha produção solar (contrato de revenda de 100%). O servidor WES também está conectado a este medidor, posso recuperar minhas informações de produção lá:
#Segundo medidor ICT usado aqui para produção fotovoltaica
westic2prod:
friendly_name: "Índice de Produção"
ID único: westic2prod
classe_de_dispositivo: energia
unidade_de_medição: 'Wh'
modelo_valor: >-
["tic2"] {{states.sensor.wesdata.attributes| flutuar }}["PRODUCTEUR"]
westic2pap:
friendly_name: "Consumo Instantâneo"
ID único: westic2pap
classe_de_dispositivo: potência_aparente
unidade_de_medição: 'VA'
modelo_valor: >-
["tic2"] {{states.sensor.wesdata.attributes| flutuar }} ["PAP"]
tensão westic2:
friendly_name: “Tensão de produção”
ID_único: westic2tension
classe_de_dispositivo: potência
unidade_de_medição: 'V'
modelo_valor: >-
["tic2"] {{states.sensor.wesdata.attributes| flutuar }} ["TENSION1"]
Adicionei outro sensor que me permite ter o status dos horários fora de pico: se westic1tarif = 1, então estamos fora dos horários de pico. Este é um dado muito útil em cenários por exemplo, para acionar determinadas máquinas apenas quando estivermos na taxa económica :)
# Sensor para determinar se está fora do horário de pico
preço oeste1:
friendly_name: "Preço atual"
ID único: westic1price
modelo_valor: >-
["tic1"] {{states.sensor.wesdata.attributes}}["PTEC"]
wesheurecreuse:
friendly_name: "Fora do horário de pico"
ID único: wesheurecreuse
modelo_valor: >-
["tic1"] {% se "cavar" em states.sensor.wesdata.attributes.lower() %}["PTEC"]
1
{% outro %}
0
{% endif %}
Além da leitura de Tic (teleinfo), o WES também é capaz de monitorar o consumo de 4 linhas elétricas distintas, utilizando pinças de corrente métricas. Por exemplo, você pode monitorar o consumo do seu aquecedor de água, da estação de carregamento do seu veículo elétrico, do aquecimento, etc. Você precisará usar este código:
Grampos métricos #Ampere para seguir certas posições específicas
wespince1inst:
friendly_name: "Aquecedor de água instantâneo"
ID único: wespince1inst
classe_de_dispositivo: atual
unidade_de_medição: 'A'
modelo_valor: >-
["pince"] {{states.sensor.wesdata.attributes| flutuar }}["I1"]
wespince1total:
friendly_name: “Aquecedor de água total”
ID único: wespince1total
classe_de_dispositivo: energia
unidade_de_medição: 'kWh'
modelo_valor: >-
["pince"] {{states.sensor.wesdata.attributes| flutuar }}["INDEX1"]
wespince1watt:
friendly_name: "Consumo do aquecedor de água"
ID único: wespince1watt
classe_de_dispositivo: potência
unidade_de_medição: 'W'
modelo_valor: >-
Por padrão, o WES informa apenas o consumo instantâneo em amperes e o índice de consumo. Como também queria ter o consumo instantâneo em watts, acrescentei um pequeno cálculo para obter “wespince1watt”. Você pode modificar o “friendly_name” para usar um nome correspondente ao seu uso. Se você usar os 4 alicates possíveis, basta duplicar este código (forneço-o completo no arquivo para download posterior).
O servidor WES também possui contadores de pulsos, que podem ser usados para diversas coisas, como monitorar o consumo de água ou gás por exemplo. Em casa, o primeiro sensor é usado para rastrear meu medidor de água:
#Sensores de impulso, usados por exemplo para água ou gás
Wespulse1:
friendly_name: "Medidor de água"
ID único: wespulse1
device_class: água
unidade_de_medição: 'L'
modelo_valor: >-
["impulsion"] {{states.sensor.wesdata.attributes| flutuar }} ["INDEX1"]
Dependendo do seu uso, você precisará personalizar o nome, mas também o “device_class” e a “unit_of_measurement”. Você encontrará uma definição de diferentes valores possíveis aqui.
Outras informações podem ser recuperadas, dependendo do que estiver conectado ao WES. Em particular, há leitura de temperatura (até 30 sondas!) através deste código:
#Sondas de temperatura, possíveis até 30
wessonde1:
friendly_name: "Sala de estar"
ID_único: wessonde1
classe_de_dispositivo: temperatura
unidade_de_medição: '°C'
modelo_valor: >-
["temp"] {{states.sensor.wesdata.attributes| flutuar }} ["SONDE1"]
Ou o status dos relés:
#Relé
wesrelay1:
friendly_name: "Relé 1"
ID_único: wesrelai1
modelo_valor: >-
["relais"] {{states.sensor.wesdata.attributes| flutuar }} ["RELAIS1"]
wesrelay2:
friendly_name: "Relé 2"
ID_único: wesrelai2
modelo_valor: >-
["relais"] {{states.sensor.wesdata.attributes| flutuar }} ["RELAIS2"]
Também temos entradas analógicas, switches virtuais e até variáveis.
Você encontrará o código completo neste arquivo, com o recuo correto e comentários para ajudá-lo a encontrar seu caminho.
Para ser ajustado de acordo com suas necessidades, é claro. De minha parte, uso apenas os dois medidores TIC, as 4 pinças métricas de amplificador e um medidor de pulso.
Depois que sua configuração for salva, você precisará ir em “Ferramentas de Desenvolvimento” e clicar em “Verificar configuração” para garantir que não haja problemas na sintaxe do arquivo.

Se tudo estiver bem, basta clicar em reiniciar.
Assim que o Home Assistant reiniciar, se você for em Configurações / Dispositivos e Serviços / Entidades, digitando “wes” na barra de pesquisa, deverá encontrar todos os sensores criados para o WES:

A partir daí você pode usá-los para acionar cenários, criar dashboards de monitoramento de consumo, etc.
MAS ainda não os use no painel Home Assistant Energy.
Integre o WES na tabela Home Assistant Energy
O painel Home Assistant Energy é realmente muito bem feito. Mas só aceita índices ou contadores de consumo total. Poderíamos dizer que isso é bom para o WES, já que criamos sensores para os índices. Só que para aparecer na lista de dispositivos compatíveis no painel de Energia, esses sensores devem possuir um argumento do tipo “state_class:total”. Se este argumento pode ser colocado diretamente na configuração dos sensores MQTT, este não é o caso dos sensores aqui criados para WES, pois estamos no contexto de chamadas REST e não de MQTT.
Felizmente podemos modificar a declaração do sensor em um arquivo customize.yaml, adicionando este tipo de código para cada sensor representando o consumo total:
sensor.westic1bleuhp:
classe_estado: total
dispositivo:
identificadores: "Servidor WES"
nome: "Servidor WES"
modelo: "WES"
fabricante: "Cartelectronic"
Deixo aqui meu arquivo completo:
Basta colocá-lo no diretório homeassistant e reiniciar o Home Assistant novamente (depois de verificar se o código está ok).
Podemos então finalmente adicionar os nossos diferentes índices ao painel de Energia, seja para teleinfo, consumo, produção, consumo de água, etc.

Depois de um tempo temos nosso monitoramento de consumo, com detalhes aqui dos horários fora de pico e de pico (em azul mais claro). Também monitoro minha produção fotovoltaica em amarelo:

Da mesma forma encontro o monitoramento do consumo do meu esquentador, entre os demais dispositivos individuais:

E aí está!
Conclusão
Migrando gradativamente meu sistema de automação residencial para o Home Assistant, passei muito tempo pesquisando como integrar meu servidor WES, pois diferentemente do Jeedom, ele não possui um plugin do Home Assistant pronto para uso. Diferentes tópicos tratam disso, incluindo:
- UM postar no fórum do fabricante do WES, Carteeletrônica
- UM postar no fórum HACF
A documentação do Home Assistant também permite entender melhor como os dispositivos funcionam. Sensores REST.
A compatibilidade nativa do MQTT teria facilitado muito as coisas, mas no final conseguimos recuperar todos os dados do WES, perfeitamente utilizáveis no Home Assistant, isso é o principal. A integração está funcionando para mim há pouco mais de um mês e não há problemas a relatar. Posso usar meu WES, o que me poupa de ter que multiplicar sensores, já que ele gerencia muita coisa nativamente. Se este guia pode ajudar alguém que como eu estava procurando como fazer!
[módulo content-egg = modelo AE__domadoofr = personalizado/compacto]