Forum: Mikrocontroller und Digitale Elektronik Empfehlung Controllerboard mit Ethernet für MQTT/Modbus IP auf CAN/RS485


von Sven (elitron)


Lesenswert?

Hi.

Ich möchte folgendes machen:

-Den Controller per Ethernet in mein Netzwerk einbinden
-Über MQTT bzw Modbus IP Daten von 2 Stromzählern (Shelly Pro 3 EM) 
abholen und die aktuelle Leistung parsen
-Über CAN das Ladegerät steuern
-Über RS485 den Wechselrichter steuern

Welchen Controller würdet ihr dafür nehmen?

Zur Zeit habe ich einen Raspberry PI mit mosquitto und Node.js.
Dort laufen die Shelly Daten auf und die Leistungswerte werden aus einem 
JSON Objekt geparst. Wobei ich hier die einfache Variante mache, JSON to 
String, und dann nochmal einen Teilstring (Die Stelle wo die 
Leistungsdaten stehen) extrahieren. Ich arbeite also nicht wirklich mit 
dem Objekt.
Dann werden die extrahierten Daten fortlaufend im Klartext in einer 
Datei geloggt aber noch nicht weiter verarbeitet.
Hier muss ich noch etwas Arbeit investieren.

Step2: Über einen CAN / RS485 HAT kann ich den Wechselrichter oder das 
Ladegerät steuern. Momentan schicke ich aber nur "Hartcodierte" Pakete 
für bestimmte Leistungswerte raus, und arbeite nicht mit dem Protokoll. 
Also keine Abfrage der tatsächlichen Leistung, keine Auswertung von 
Ack`s oder Fehlerbehandlung, usw.
Hier muss ich noch etwas Arbeit investieren.

Der Raspberry Pi 4 ist für diese Aufgabe wahrscheinlich aber ziemlich 
overkill. Würdet ihr trotzdem mit dem Raspi weiter machen oder könnt ihr 
mir etwas besseres für diese Aufgabe empfehlen?

LG

von Christoph Z. (christophz)


Lesenswert?

Spricht jetzt nicht sooo viel dagegen, mit einem Raspberry Pi weiter zu 
machen. Ja der 4er ist overkill dafür, gibt ja auch den Zero.

Als Board für Heimautomatisierungsplattform ist mir der Home Assistant 
Yellow eingefallen, der hat aber keine deiner Schnittstellen.

Das Beagle Board Play hatte ich auch in Erinnerung, hoffte das da CAN 
schon drauf ist aber nein. Dafür lassen sich deine zwei Schnittstellen 
einfach anbauen, CAN per CLICK Modul und RS485 als Grove: 
https://www.beagleboard.org/boards/beagleplay

von J. S. (jojos)


Angehängte Dateien:

Lesenswert?

Dieses Board von AliExpress habe ich gerade vor mir, JY-F407VET6
Hat RS485 und 2x CAN incl. Transceivern dazu, Ethernet, SD Karte, USB. 
Also alles was für so eine Anwendung gebraucht wird.

von Hadmut F. (hadmut)


Lesenswert?

Das: https://www.lilygo.cc/products/t-can485

Für was willst du "MQTT bzw Modbus"? Masochistische ader?

: Bearbeitet durch User
von Sven (elitron)


Lesenswert?

J. S. schrieb:
> Dieses Board von AliExpress habe ich gerade vor mir, JY-F407VET6
> Hat RS485 und 2x CAN incl. Transceivern dazu, Ethernet, SD Karte, USB.
> Also alles was für so eine Anwendung gebraucht wird.

Interessantes Board, welcher Prozessor ist denn da drauf?
Hast du einen Link zu dem Board

von Sven (elitron)


Lesenswert?

Hadmut F. schrieb:
> Das: https://www.lilygo.cc/products/t-can485
> Für was willst du "MQTT bzw Modbus"? Masochistische ader?

Das Board hab ich auch schon gesehen. Nur leider ohne Ethernet.

MQTT oder Modbus wird vom Shelly angeboten. Alternative wäre noch, über 
http was zu machen.

Wenn es nachher für mich ausreichend gut funktioniert, hab ich auch kein 
Problem damit, einfach nur die Leistungswerte zu Parsen, und gar nicht 
das vollständige Protokoll zu nutzen.

Momentan Parse ich simpel mit Stringfunktionen die Leistung aus dem 
Datenpaket, welches im JSON Format ankommt.

von Εrnst B. (ernst)


Lesenswert?

Das Ladegerät ist ein R4850G2, so ins Blaue geraten?
Das reagiert sowieso nicht sekundenschnell auf neue Sollwert-Vorgaben.

Gutgemeinter Rat: Übertriebener Perfektionismus schadet an der Stelle.
Fahr das Ladegerät grob über den Durchschnittswert über die letzte 
Minute oder so von deinem Stromzähler.
Ja, gibt bei extrem schnellen Sonneneinstrahlungs-Wechseln oder 
Lastsprüngen im Hausnetz ein bischen "Verschnitt" während das Ladegeät 
hinterher-hinkt.
Vielleicht hast du pro Tag dann 0.1 Cent mehr an den Netzbetreiber 
verschenkt als bei einer nur in der Theorie existenten perfekten Lösung 
nötig wäre, darauf würde ich pfeifen, vor allem im Vergleich zur 
Einspeisung, die bei "Akku voll" dann sowieso passiert...

von J. S. (jojos)


Lesenswert?

Sven schrieb:
> Interessantes Board, welcher Prozessor ist denn da drauf?
> Hast du einen Link zu dem Board

Der Prozessorname steckt ja schon in der Boardbezeichnung: 
STM32F407VET6. Cortex-M4 mit 168 MHz, viel RAM und Flash. Zusätzlich 
sind auf dem Board auch noch zwei Speicherbausteine drauf.
https://de.aliexpress.com/item/1005002760530120.html
Findet man auch bei anderen Anbietern hier, aber dann eher doppelt so 
teuer.

Doku vom Händler/Hersteller habe ich nicht gefunden, aber hier ist ein 
Repo mit STM32CubeMX ioc file und Code für die Komponenten:
https://github.com/art103/JZ-F407VET6

Ich habe das mit Mbed-os benutzt und erstmal die RS485 gebraucht, 
Ethernet und SDC mit SDIO kommt in Kürze dazu.
Gegner von dem Board die Arduino Portenta Machine Control, eine low cost 
SPS die auch dafür geeignet wäre, aber mit ca. 300 € preislich eine 
andere Liga ist. Dafür gibt es da gleich Arduino oder SPS Code der 
darauf lauffähig ist.

von Hadmut F. (hadmut)


Lesenswert?

Sven schrieb:
> Das Board hab ich auch schon gesehen. Nur leider ohne Ethernet.

Es hat WiFi. Mit deinen shelly's direkt verbindbar. Mach ich auch so.

> Momentan Parse ich simpel mit Stringfunktionen die Leistung aus dem
> Datenpaket, welches im JSON Format ankommt.

Mach ich auch so. Ueber http und json decoder nach [total_power] 
auswerten.

Bei den "pro" kann man ein script drauftun der auf HTTP aufrufe nur 
gerade die daten sendet die man braucht.
Beitrag "Shelly 3EM pro. Leistung über http beziehen."

Εrnst B. schrieb:
> Ja, gibt bei extrem schnellen Sonneneinstrahlungs-Wechseln oder
> Lastsprüngen im Hausnetz ein bischen "Verschnitt" während das Ladegeät
> hinterher-hinkt.

Das kann wenn man ein auf 600W begrenztes BKW fährt peinlich werden. Da 
sind dann plözlich 2kw einspeisungsspitzen. Glücklicherweise schaut mein 
betreiber die zähler spitzenwerte nie an. Ich verwende 5 sek intervall.

: Bearbeitet durch User
von Sven (elitron)


Lesenswert?

Hi,
Das Ladegerät ist ein NPB-450 von Meanwell.

Momentan schaffe ich es auf ca 15 Sekunden Reaktionszeit für den 
Ladevorgang.
Ganz schlimm für meine Regelung sind Pulspaket-Steuerungen, wie z.B. vom 
Induktionsherd.
Da taktet das Ladegerät dann fröhlich mit. (Natürlich im falschen 
Rhythmus)
Das bekommt man wohl auch nicht so ohne Weiteres in den Griff. Zur Zeit 
schalte ich dann das Ladegerät für einen gewissen Zeitraum komplett ab 
(230V Seitig), wenn ein größerer Bezug erkannt wird.

Entladen mache ich nur nach Einbruch der Dunkelheit, um Überschwinger 
auf mehr als 600W Einspeiseleistung zu vermeiden. Tagsüber ist der 
Wechselrichter 230V seitig nicht eingeschaltet. Nachts kann es keine 
Überschwinger geben, da der Wechselrichter nicht mehr als 600W kann.

: Bearbeitet durch User
von Cornelis O. (cool)


Lesenswert?

Hadmut F. schrieb:
> Das: https://www.lilygo.cc/products/t-can485
>
> Für was willst du "MQTT bzw Modbus"? Masochistische ader?

Weil man mit CAN das Smarthome zusätzlich verkabeln müsste. Das macht 
keinen Sinn wenn bereits ein IP-Netzwerk vorhanden ist. Das lässt sich 
sogar vom Ferienort aus bedienen.

MQTT ist ein System um Meldungen zu sammeln und für Andere (IP) 
Teilnehmer verfügbar zu machen. Sehr praktisch in einem Smarthome mit 
diverse Produkte unterschiedlichen Hersteller. Oder kurz: eine 
universellen Daten-Austausch Plattform.

Modbus ist ein oft gesehenes Protokoll für Energiezähler und kann sowohl 
über serielle (RS485) Verbindungen wie über's IP-Netz übertragen werden.

Daneben gibt es auch noch diverse Alternativen, wie I2C, I2S, SPI, 
OneWire, M-Bus, E-Bus, Seriell-Analog, Seriell Synchron, usw, usw. Lora, 
RF433, InfraRot.
Der Punkt ist immer, dass es auch das passende Gegenstück 
(Sender/Empfänger) braucht. Bei CAN würde das leider allzu oft in 
zusätzliche Hardware münden.

von Flip B. (frickelfreak)


Lesenswert?

Für die Zählerablesung über Modbus nutze ich ein Gateway von Ebyte 
Na-611SA https://www.amazon.de//dp/B097RF5KRP/

die gibt es in vielen varianten, mit Wifi, Ethernet, Can, Rs485

Innendrin läuft ein LN882HK Wifi-SOC für den es mittlerweile auch einen 
sdk gibt, also ließe sich auch eine eigene anwendung draufflashen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.