Benachrichtigungen
Alles löschen

Victron VE.Direct => MQTT Interface, erste Erfolge und Fragen

11 Beiträge
6 Benutzer
6 Likes
2,303 Ansichten
E-Bär
(@e-baer)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 7
Themenstarter  

Hallo zusammen,

ich habe eine kleine PV-Anlage zum "spielen" aufgebaut. 1,4kWp, Victron SmartSolar MPPT 100/20, 5,2kWh LiFePo4, Soyo 1000 Wechselrichter. Der Soyo wird per MQTT über einen D1 Mini angewiesen eine gewünschte Einspeisung zu generieren.

Um den Victron jetzt auszuwerten habe ich mit einem weiteren D1 Mini (ESP8266) und einem 0.96" OLED einen Monitor mit MQTT-Übertragung gebaut. Platine lag von einem CO2-Sensor-Projekt noch rum, also habe ich statt des CO2-Sensors (MHZ19b mit serieller Schnittstelle) einfach die VE-Direct Schnittstelle an die Platine geklemmt. Etwas Software und fertig ist die Laube...

Ein Schaltplan ist nicht notwendig. Das Display (kann man auch weglassen) kommt an den I2C-Bus D1/D2, der Victron mit seiner Tx-Leitung an D7 und Masse. Der 5V-Ausgang des Victron liefert leider etwas zu wenig Strom. Sobald der ESP ins WLAN will, steigt er aus. Vielleicht hilf ein kleiner Puffer-Akku oder Super-CAP....

Quellcode hängt an, falls das jemand brauchen kann. Es wird der WifiManager genutzt, damit man die WLAN-Zugangsdaten per Handy eintragen kann (ToDo: Ergänzung des WiFiManagers um Eingabe der MQTT-Parameter). Ebenfalls ist OTA mit im Projekt, so muss ich nicht immer in den Keller traben um das Programm zu aktualisieren 😉
In der Loop wird ständig die serielle Schnittstelle abgefragt (die Standard-Puffergröße von 64 Bytes wurde auf 384 Bytes vergrößert weil zu Beginn viele Werte gefehlt hatten). Danach werden die Werte aus dem VE.Direct Protokoll ausgelesen (Labels aus der Protokoll-Beschreibung) und regelmäßig per MQTT versandt.

Die erkannten Werte und Topics sind zur Zeit:

MQTT_TOPIC/main  {"SOC":0,"POWER":0,"VOLTAGE":53290,"CURRENT":-20,"CS":3,"ALARM":100}

MQTT_TOPIC/load   {"VPV":54930,"PPV":0,"LOADCURRENT":0,"LOAD":100,"RELAY":3}

MQTT_TOPIC/energy  {"YIELD_TODAY":39,"YIELD_YESTERDAY":32,"POWER_TODAY":193,"POWER_YESTERDAY":125,"ERROR":0}

(der Wert 100 bei ALARM und LOAD bedeutet, dass da noch kein richtiger Wert empfangen wurde, siehen unten)

Ähnlich wie bei Tasmota gebe ich noch Geräteinfo auf das Topic

tele/MQTT_TOPIC/LWT und tele/MQTT_TOPIC/IP und

tele/MQTT_TOPIC/device {"DAY":83,"FIRMWARE":"159","SERIAL_NUMBER":"HQ2100MRXXX","PRODUCT_ID":"0xA060"}

Alle unerkannten Labels landen in einem String, der im Topic MQTT_TOPIC/raw landet. Und hier kommen jetzt meine Fragen...

Ich empfange ein paar Labels, die nicht in der Protokollbeschreibung von Victron drin sind. Außerdem bekomme ich einige Wert NICHT, die eigentlich ankommen sollten. Der Laststrom IL fehlt, der Zustand des Lastausgangs LOAD wird nicht übertragen (obwohl der SmartSolar 100/20 einen Lastausgang hat) und der Relay-Zustand hat unmögliche Werte (im Programm erkenne ich nur ON=1 und OFF=0, bekomme aber gerade den Wert 3 angezeigt?!?)

Unbekannt sind  Label : Wert

- MPPT : 0
- OR    : 0x00000001

Hat jemand eine aktuellere Protokollbeschreibung als Version 3.21 von 2016??

viele Grüße

Bernhard

 

Dieses Thema wurde geändert Vor 1 Jahr von E-Bär

   
dingsbums and NordArne reacted
Zitat
(@dingsbums)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 35
 

Hallo, ist auch ein Interessantes Projekt was du da hast. Ich frag mich die ganze Zeit ob man den Victron dazu bewegen kann öfter als alle sekunde zu senden.

Ansonsten, vielleicht findest du hier die fehlenden Sachen für dein Projekt.

https://github.com/KinDR007/VictronMPPT-ESPHOME


   
und mehr reacted
AntwortZitat
(@laser)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 95
 

@dingsbums

Wie bekomme ich das Projekt auf den ESP32? Habe den angegebenen Link runtergeladen, entpackt und als Ordner im VS Code geöffnet. Brauche ich alle Dateien oder nur einen Teil? Bekomme beim compilieren Meldungenen wie : "esphome\components\bedjet\bedjet_hub.cpp:482:24: error: invalid use of incomplete type 'class esphome::bedjet::BedJetHub'"


   
AntwortZitat
(@dingsbums)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 35
 

@laser Hi,

aus dem Github Link:

or just use the esp8266-example.yaml as proof of concept:

# Install esphome
pip3 install esphome

# Clone this external component
git clone  https://github.com/KinDR007/VictronMPPT-ESPHOME.git 
cd VictronMPPT-ESPHOME

# Create a secret.yaml containing some setup specific secrets
cat > secrets.yaml <<EOF
mqtt_host: MY_MQTT_HOST
mqtt_username: MY_MQTT_USERNAME
mqtt_password: MY_MQTT_PASSWORD

wifi_ssid: MY_WIFI_SSID
wifi_password: MY_WIFI_PASSWORD
EOF

# Validate the configuration, create a binary, upload it, and start logs
esphome run esp8266-example.yaml

   
Laser reacted
AntwortZitat
profantus
(@profantus)
Mitglied
Beigetreten: Vor 2 Jahren
Beiträge: 1198
 

Mein Empfehlung.

  • Stell dir einen Raspi hin. Du brauchst eh einen MQTT Broker.
  • Mach da Venus OS drauf
  • Da den VE.Direct anschliessen
  • MQTT einschalten
  • Alle 30 Sekunden einen Read Request senden (ist n der MQTT Beschreibung von Venus OS erklärt)

Jetzt bekommst du alle Werte die im DBUS sind nach MQTT gespiegelt.

Den Soyo bekommst du auch in Venus integriert und wenn du möchtest kannst du auch die Einspeisung über Venus OS lösen.

Dazu musst du aber mehr erzählen wie du das machen möchtest. Z.B. könntest du dort deinen Netzzähler abbilden. 

HOWTO Wechselrichter Dimensionierung


   
AntwortZitat
(@dingsbums)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 35
 

@profantus Darf man fragen warum nur alle 30 Sekunden? Oben der Github Link liefert alle Sekunde werte. Vielleicht versteh ich auch nur was falsch.


   
AntwortZitat
(@laser)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 95
 

@dingsbums Diese Seite kenne ich. Wohin clone ich denn die Dateien? Auf einen Raspi, PC oder wohin?

Das ist keine Sache, die ich z.B. mit VS-Code oder der Arduino Ide laden kann?

ESP-Home Flasher- Zitat: It doesn't have to be installed, just double-click it and it'll start. Check the releases section for downloads for your platform.

Wo soll ich denn doppelt klicken, damit sich eine Oberfläche öffnet? EDIT: unter "Release" ist etwas. Sehr verklausuliert beschrieben, das Ganze...

Und wo nehme ich die *.bin Datei her, um sie zu flashen?


   
AntwortZitat
(@laser)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 95
 

@dingsbums Es funktioniert. Warum auch immer. Habe von github die Dateien neu heruntergeladen (zip). Diesen Ordner kann ich entpacken und im VS-Code öffnen. Und compilieren. 


   
dingsbums reacted
AntwortZitat
profantus
(@profantus)
Mitglied
Beigetreten: Vor 2 Jahren
Beiträge: 1198
 

@dingsbums du must alle 60 Sec eine nachricht schicken um Venus zum weitersenden zu veranlassen. Venus schickt jede Seku de aber nur wenn du einen Trigger sendest

HOWTO Wechselrichter Dimensionierung


   
dingsbums reacted
AntwortZitat
alter Hase
(@alter-hase)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 845
 

Wenn mich ein Moderator mit Drogenkonsum in Verbindung bringt, ist das arc listig ?


   
AntwortZitat
(@sne17)
Vorsichtiger Stromfühler
Beigetreten: Vor 1 Jahr
Beiträge: 16
 

Servus,

da ich mit dem VENUS OS bisher noch keinen Weg gefunden habe den "Lade-Ausgang On/OFF per modbus oder mqtt zu schalten" bitte ich euch hier um Rat.

Ich komme damit nicht klar und in der Registern habe ich auch kein "Load" entdecken können.
https://vrm-api-docs.victronenergy.com/#/operations/installations/idSite/widgets/InverterChargerState

Hab ihr einen Weg und das Register bzw. den modbus / mqtt Befehl gefunden einen Victron Smartsolar 100/20 zu schalten?

LG  


   
AntwortZitat
Teilen: