Integro el Power Boost EM112 de Carlo Gavazzi en Home Assistant vía RS485 (Modbus)

Información importante

Tenga en cuenta que la integración descrita a continuación solo puede funcionar si el dispositivo USB/RS485 es el único equipo del bus RS485 conectado al EM112. De hecho (y con la ayuda de Eric G.) entendí que sólo podía haberun único equipo maestro en el autobús. El amo es el que pregunta y el esclavo el que responde. EM112 es, por lo tanto, un esclavo.

Mi primera idea fue olfatear las líneas de diálogo entre EM112 y mi Wallbox, siendo el Wallbox el maestro, no puedo hacer eso. Por la belleza del ejercicio, probé con dos maestros, funciona encontramos valores pero de vez en cuando, cuando los dos maestros hacen una pregunta juntos, nos encontramos con un error.

Si alguien me puede apuntar hacia una forma de «cortar» el autobús 485 para interceptar la información que el EM112 envía a un Wallbox, por ejemplo, soy un tomador porque en esta etapa no puedo tener un Wallbox y una llave RS485/USB en paralelo (dos maestros).

 Equipo utilizado y conductores

El equipo más caro de toda mi pintura (1,33 € en Ali 😂), funciona, obviamente hay llaves falsas, puede que haya tenido suerte, pero este vendedor es serio.

Por supuesto, tan pronto como lo recibí, lo abrí para encontrar una referencia. YYH-256

Buscar en los foros revela que es (probablemente) una bifurcación de CH341 Los controladores de este último incluso se utilizan.

Cabe señalar que mis búsquedas de controladores fueron inútiles, ya que la clave se reconoce de forma nativa en la RaspberryPi4/HAOS que uso.

Publico aquí este diagrama que da los circuitos utilizados, tenga en cuenta que el cuarzo ha desaparecido, no es un descuido en la soldadura, es una evolución de la clave (un componente ganado, es un componente ganado).

 

Conecto la llave USB al puerto RS485

La llave tiene dos conectores D+ y D-, basta con conectarlos a los pines B+(4) y A-(5) del EM112

Conecto la llave al puerto USB del Raspi4

Inmediatamente pruebo el pedido  Isusb en la línea de comandos y veo que cuando la nueva clave está enchufada, tengo una línea más, es una señal bastante buena.

Paso los problemas de los puertos /dev/ttyUSB0 y /dev/ttyUSB1 que cambian con cada puesta en marcha, he resuelto y documentado la solución en:

Tomo nota de que voy a utilizar el puerto /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0 para conectarse a esta tecla.

Configurar la integración Modbus que es nativa en HA

En mi archivo de configuración, agrego la línea modbus: !incluir modbus.yaml

Y en modbus.yaml, declaro la clave

- nombre: Modbus _hub tipo: serial #puerto: puerto /dev/ttyUSB1: /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0 baudrate: 9600 bytesize: Método 8: paridad rtu: N stopbits: 1 reintentos: 5 close_comm_on_error: retraso falso: 5 tiempo de espera: 2 _wait _milliseconds mensaje: 1000

Declaro cada sensor 

A partir de ahí, me sumerjo en el Documentación de Gavazzi y buscaré las líneas que me interesen:

Para tener la dirección de cada sensor, convierto las direcciones en hexa a decimal y luego declaro los 4 sensores en modbus.yaml:

sensores: - nombre: EM112_W unidad_de_medición: W estado_clase: Aparato de medición _class: esclavo de la energía: 1 dirección: 4 datos _type: int32 input_type: precisión de entrada: Escala 0: 0.1 scan_intervalo: 10 _error _count perezoso: 999 permuta: palabra - nombre: EM112_Una unidad_de_medición: A state_class (Clase  del Estado): Aparato de medición _class: eslavo actual: 1 dirección: 2 datos _type: int32 input_type: precisión de entrada: Escala 0: 0.001 scan_intervalo: 10 _error _count perezoso: 999 permuta: palabra - nombre: EM112_VA unidad_de_medición: VA state_class: Aparato de medición _class: esclavo de la energía: 1 dirección: 6 datos _type: int32 input_type: precisión de entrada: Escala 0: 0.1 scan_intervalo: 10 _error _count perezoso: 999 permuta: palabra - nombre: EM112_kwh unidad_de_medición: kwh estado _clase: total_incremento del dispositivo_class: esclavo de la energía: 1 dirección: 16 datos _type: int32 input_type: precisión de entrada: Escala 0: 0.1 scan_intervalo: 10 _error _count perezoso: 999 permuta: palabra

Compruebo el resultado

¡Perfecto! Solo queda jugar para hacer una bonita carta de …

Recordatorio

No ponga un Wallbox en producción paralela

Si alguien me puede apuntar hacia una forma de «cortar» el autobús 485 para interceptar la información que el EM112 envía a un Wallbox, por ejemplo, soy un tomador porque en esta etapa no puedo tener un Wallbox y una llave RS485/USB en paralelo (dos maestros).

Bibliografía, Referencias