Ich integriere den Power Boost EM112 von Carlo Gavazzi über den RS485-Port (Modbus) in den Home Assistant

Wichtige Informationen

Bitte beachten Sie, dass die unten beschriebene Integration nur funktionieren kann, wenn der USB/RS485-Stick das einzige Gerät des RS485-Busses ist, das mit dem EM112 verbunden ist. Tatsächlich (und dank der Hilfe von Eric G.) habe ich verstanden, dass es nureine einzige Master-Ausrüstung auf dem Bus. Der Herr ist derjenige, der fragt, und der Sklave derjenige, der antwortet. EM112 ist also Sklave.

Meine erste Idee war es, die Dialogstrukturen zwischen EM112 und meiner Wallbox zu schärfen, da die Wallbox Herr ist, was ich nicht tun kann. Für die Schönheit der Übung habe ich mit zwei Meistern getestet, es funktioniert, wir finden Werte, aber von Zeit zu Zeit, wenn die beiden Meister eine Frage zusammen stellen, finden wir uns mit einem Fehler wieder.

Wenn jemand mich zu einer Art „Snifer“ des Busses 485 führen kann, um die Informationen abzufangen, die das EM112 beispielsweise an eine Wallbox sendet, bin ich Versicherungsnehmer, da ich zu diesem Zeitpunkt keine Wallbox und keinen RS485/USB-Schlüssel parallel (zwei Master) haben kann.

 Verwendete Hardware und Treiber

Die teuerste Ausrüstung meines gesamten Bildes (1,33 € auf Ali 😂), es funktioniert, offensichtlich gibt es gefälschte Schlüssel, ich habe vielleicht Glück gehabt, aber dieser Verkäufer ist seriös.

Offensichtlich habe ich sie nach Erhalt geöffnet, um eine Referenz zu finden, es ist eine YYH-256

Bei der Suche in den Foren stellt sich heraus, dass dies (wahrscheinlich) eine Fork von CH341 Die Treiber des letzteren werden sogar verwendet.

Beachten Sie, dass meine Suche nach Treibern nutzlos war, da der Schlüssel auf dem von mir verwendeten RaspberryPi4/HAOS nativ erkannt wird.

Ich schreibe hier dieses Schema, das die verwendeten Schaltkreise gibt, zu beachten, dass der Quarz verschwunden ist, es ist kein Vergessen beim Schweißen, es ist eine Weiterentwicklung des Schlüssels (eine gewonnene Komponente ist eine gewonnene Komponente).

 

Ich verbinde den USB-Stick mit dem RS485-Port

Der Schlüssel hat zwei Anschlüsse D+ und D-, schließen Sie sie einfach an die Pins B+(4) und A-(5) des EM112 an

Ich verbinde den Schlüssel mit dem USB-Anschluss des Raspi4

Ich teste sofort die Bestellung  lsusb auf der Befehlszeile und ich stelle fest, dass ich, wenn der neue Schlüssel eingesteckt ist, eine weitere Zeile habe, was ein ziemlich gutes Zeichen ist.

Ich überspringe die Probleme mit den Ports /dev/ttyUSB0 und /dev/ttyUSB1, die sich bei jedem Start ändern, und habe die Lösung unter folgenden Bedingungen gelöst und dokumentiert:

Ich stelle fest, dass ich den Hafen benutzen werde. /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0, um mich mit diesem Schlüssel zu verbinden.

Ich konfiguriere die Modbus-Integration, die nativ in HA ist

In meiner Konfigurationsdatei füge ich die Modbus-Zeile hinzu: !include modbus.yaml

Und in modbus.yaml erkläre ich den Schlüssel

- name: modbus_hub Typ: serial #Hafen: /dev/ttyUSB1 port: /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0 baudrate: 9600 bytesize: 8 Methode: rtu parity: N Stopbits: 1 Retries: 5 close_comm_on_error: false delay: 5 Timeout: 2 _wait-Nachricht_milliseconds: 1000

Ich deklariere jeden Sensor 

Von da an tauche ich ein in die Gavazzi-Dokumentation und ich werde nach den Zeilen suchen, die mich interessieren:

Um die Adresse jedes Sensors zu erhalten, wandele ich die Adressen in hexa in dezimal um und deklariere dann die 4 Sensoren in modbus.yaml:

Sensoren: - name: EM112_W unit_of_measurement: W state_class: measurement device_class: energy slave: 1 Adresse: 4 data_type: int32 input_type: Input Precision: 0 Scale: 0.1 scan_interval: 10 lazy_error_count: 999 Swap: word - name: EM112_A unit_of_measurement: A state_class: measurement device_class: current slave: 1 Adresse: 2 data_type: int32 input_type: Input Precision: 0 Scale: 0.001 scan_interval: 10 lazy_error_count: 999 Swap: word - name: EM112_VA unit_of_measurement: VA state_class: measurement device_class: energy slave: 1 Adresse: 6 data_type: int32 input_type: Input Precision: 0 Scale: 0.1 scan_interval: 10 lazy_error_count: 999 Swap: word - name: EM112_kwh unit_of_measurement: kwh state_class: total_increasing device_class: energy slave: 1 Adresse: 16 data_type: int32 input_type: Input Precision: 0 Scale: 0.1 scan_interval: 10 lazy_error_count: 999 Swap: Word

Ich überprüfe das Ergebnis

Perfekt! Jetzt müssen Sie nur noch spielen, um eine schöne …-Karte zu machen.

Erinnerung

Nicht parallel zu einer Wallbox produzieren

Wenn jemand mich zu einer Art „Snifer“ des Busses 485 führen kann, um die Informationen abzufangen, die das EM112 beispielsweise an eine Wallbox sendet, bin ich Versicherungsnehmer, da ich zu diesem Zeitpunkt keine Wallbox und keinen RS485/USB-Schlüssel parallel (zwei Master) haben kann.

Bibliographie, Referenzen