EspHome (ESP32) + MCP2515 + CAN BUS

Hallo, ich kriege es irgendwie nicht hin,

Einbindung
Huawei R4875g1 Rectifier Modul über CAN-BUS
und weiterer Geräte über CAN-BUS (die ich noch nicht habe)

Hardware:
EspHome (ESP32) + MCP2515 + Huawei R4875g1 Rectifier Modul
(SPI MCP2515 CAN-Transceiver TJA1050)

  • Tagelang am rumbasteln - nichts funktioniert, keine sichtbare Kommunikation.
  • Signale auf dem Bus von beiden Geräten
  • Jetzt identifiziert das gesendete Befehle beim Gerät Huawei R4875g1 ankommen und ausgeführt werden, Problem also bei jeglicher Kommunikation Richtung ESP32 zu suchen sind.

getestet MCP2515 mit 3,3 und 5V (also 5V Hack auf CAN-Transceiver TJA1050)

Hat einer Erfahrung mit der Komponente MCP2515 und EspHome? Ähnliche Probleme?

Oder besser direkt über TJA1050 anbinden (ohne SPI)?

MfG

GitHub - mb-software/esphome-huawei-r4850: EspHome Component to control a huawei r4850 power supply via CAN bus so geht es, minimaler Aufwand. Der ESP32 kann CAN, darum nur transceiver nötig, kein kompl. controller.

alternativ gibt es von mir seit kurzem eine reine ESPHome Lösung die auch auf esp8266 und mcp2515 can Bus Board läuft siehe GitHub - sker65/huawei-r4850g2-esphome: ESPHome project for huawei r4850g2 rectifier with can bus control

mit Anpassungen natürlich auch auf esp32.

damit kann man das Netzteil per HA oder mqtt steuern.

Gruß Stefan

Bei dir ist das Netzteil Modell r4850g2 fest im Code.
Ich würde das generic machen - dann läufts auch mit dem r4875g1:

statt

 - lambda: |-
          uint16_t y = amp * 20;
          ESP_LOGD("SET VAL current limit:", "%f %i", amp, y );

wäre dass dann

 - lambda: |-
          uint16_t y = (float) amp / ($RECTIFIER_MAX_CURRENT / 100.0) * 10.23;   
          ESP_LOGD("SET VAL current limit:", "%f %i", amp, y );

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)

Guter Vorschlag, danke SpenZerX. Werde ich so übernehmen.

Gruß S.

Hallo,
ich versuche seit zwei Wochen die Variante von Steve6502, leider habe ich ein yaml Problem… und Yaml Einsteiger.
Hardwaremäßig läuft die Steuerung derzeit über eine noch andere Firmware mit MCP2515 ( mit dem kleinen Hack) tadellos.
Ich finde die Lösung von Steve aber deutlich besser da Anbindung in HA.

Gruss

Hallo Steve,
du bist sicher der richtige Ansprechpartner und kannst mir vielleicht helfen.
Die yaml date wird als valid eingestuft, compiliert, aber ist danach offline. Ich habe eine statische Adresse festgelegt, hilft nichts. Yaml bis zu den Sensoren funktioniert, wenn ich alles lade kommt folgende Fehlermeldung nach dem upload:
INFO Starting log output from 192.168.178.76 using esphome API
WARNING Can’t connect to ESPHome API for d1-mini-tester02 @ 192.168.178.76: Error connecting to [AddrInfo(family=<AddressFamily.AF_INET: 2>, type=<SocketKind.SOCK_STREAM: 1>, proto=6, sockaddr=IPv4Sockaddr(address=‘192.168.178.76’, port=6053))]: [Errno 111] Connect call failed (‘192.168.178.76’, 6053) (SocketAPIError)
INFO Trying to connect to d1-mini-tester02 @ 192.168.178.76 in the background
Was mache ich falsch ? Gruss goesen

Also bei meiner Variante nutze ich immer MQTT auch für die Kommunikation zu Home Assistant. Das ist aber bei ESPHome nicht der Standard. Dort wird immer “API” genutzt über Port 6053.
Deine Fehlermeldung sieht so aus als klappt eben der Connect zu deiner HA instanz nicht. Hast Du denn eine ESPHome integration in HA laufen, so dass ein ESPHome Sensor zu HA verbinden kann?

Erstmal vielen Dank für deine Antwort. Ich bin erst seit kurzem von iobroker zu HA gewechselt und daher noch nicht ganz sattelfest, auch im Yaml. Mit deiner Version bekomme ich keinen Kontakt, bin schrittweise vorgegangen um den Fehler einzuschränken. Bis zur Installation der Sensoren geht alles, kann ich auch im webinterface ansehen. Wenn ich den restlichen yaml Teil einsetze, " valid ok", kompaliere und uploade kommt dann diese Fehlermeldung. Ich hatte extra noch eine ip gestzt, aber nichts. Komme dann nicht mehr auf die Seite. Eigentlich sagt der Compiler ok…aber :joy:

ich kann 18 Entitäten im HA sehen, wenn ich ab Zeile 175 die restliche yaml Daten einspiele ist na ch upload kein Zugriff mehr möglich, habe ich gerade nochmal versucht.

Mit der Fehlermeldung kann ich nicht so recht was anfangen?!? Das Yaml “definiert” ja nur was der ESPHome compiler für eine Firmware bauen soll.

Wenn das compilieren klappt und das Device passt, dann sollte die Firmware auch laufen. Welche ESPHome version nutzt Du denn?

aktuelle Version 2025.1.2. Bin ja auch etwas verzweifelt, aber es wird sich finden. Wenn ich alle Zeilen nach dem Sensoren im yaml Text lösche, ab zeile 160 funktioniert es , ist online und wird im HA sichtbar.

Hallo Steve, kurz Info, es liegt wohl ESP Home , sehr eigenartiges Verhalten, beim hochladen… Hat also nichts mit dem yaml von dir zu tun. Ich möchte eine Implementierung " Watt Vorgabe " um PV Überschuss zu laden versuchen, bisher hatte ich das über Node Red. Also ähnlich der Huawei Interface von KlausLi, nur eben opensource.

bei mir läuft tatsächlich noch eine sehr alte Version von ESPHome 2023.7.1.

Ich erinnere mich nur wage, aber beim letzten Update von ESPHome auf irgendwas neueres ging auch irgendwas nicht mehr und dann bin ich einfach auf der alten version geblieben.