Der GX Part:
Die Himbeeere brauchst du nicht, du kannst MQTT auf dem GX aktivieren und im LAN freigeben.
Einige Leute haben Probleme mit Pip3, hatte ich auch aber vergessen wie ich es installiert habe.ich glaube es war die Variante
opkg install python3-pip python3-modules
Installation ist die so wie hier beschreiben: https://github.com/RalfZim/venus.dbus-fronius-smartmeter#installation
mqtt_broker_address ist dann localhost
Zum Kopieren der Dateien und Setzen der Attribute (für die shellskripte) kann man auch WinSCP nutzen.
Venus booten oder einmal von Hand starten, nicht wundern wenn dann nichts zu sehen ist.
Der Inverter wird erst mit senden von venus/pvinverter/${name}/init erzeugt (aus esphome).
Am ESP die Daten zusamenzusuchen wird dann noch mal ne keine Aufgabe.
Die Standradsensoren von Esphome sind nicht wirklich syncronisiert.
Wie man da an den Event eines Lesezyklus vom Modbus rankommt weiß ich noch nicht, Das Senden der Daten kann man aber auch erstmal zeitgestiert machen.
..,-
Aufgrund meiner ungenügenden Kenntnisse auch einfachster Console-Befehle traue ich mich noch nicht, das an meinem laufenden System zu machen.
Habe also VENUS auf den RasPi installiert, Zugangslevel ist superuser, über putty kann ich mich als root@raspberrypi4 anmelden. Schaut erstmal so aus:
Der FRONIUS ist natürlich sofort wieder da... 😊
Modbus TCP und MQTT auf LAN (SSL) aktiviert.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
hat es einen Grund, warum du dein eigens Python Script geschrieben hast und nicht die hier verwendest?
ich hab das irgendwann im Juli gemacht und im August hat hier jemand das verlinkte Projekt gepostet.
..,-
Der GX Part:
Die Himbeeere brauchst du nicht, du kannst MQTT auf dem GX aktivieren und im LAN freigeben.
Einige Leute haben Probleme mit Pip3, hatte ich auch aber vergessen wie ich es installiert habe.ich glaube es war die Variante
opkg install python3-pip python3-modulesInstallation ist die so wie hier beschreiben: https://github.com/RalfZim/venus.dbus-fronius-smartmeter#installation
mqtt_broker_address ist dann localhostZum Kopieren der Dateien und Setzen der Attribute (für die shellskripte) kann man auch WinSCP nutzen.
Venus booten oder einmal von Hand starten, nicht wundern wenn dann nichts zu sehen ist.
Der Inverter wird erst mit senden von venus/pvinverter/${name}/init erzeugt (aus esphome).Am ESP die Daten zusamenzusuchen wird dann noch mal ne keine Aufgabe.
Die Standradsensoren von Esphome sind nicht wirklich syncronisiert.
Wie man da an den Event eines Lesezyklus vom Modbus rankommt weiß ich noch nicht, Das Senden der Daten kann man aber auch erstmal zeitgestiert machen.
WinSCP ist super, danke für den Tipp!
Mit der Installation nach Beschreibung von RalfZim bin ich nicht ganz durchgekommen.
Add a symlink to the file /data/rc.local:
ln -s /data/dbus-fronius-smartmeter/service /service/dbus-fronius-smartmeter
Or if that file does not exist yet, store the file rc.local from this service on your Raspberry Pi as /data/rc.local . You can then create the symlink by just running rc.local:
rc.local
The daemon-tools should automatically start this service within seconds.
rc.local ist bei mir nicht vorhanden... wie die zu erstellen ist, oder wo ich sie herbekomme, habe ich nicht verstanden.
In the Python file, you should put the IP of your Fronius device that hosts the REST API. In my setup, it is the IP of the Fronius Symo, which gets the data from the Fronius Smart Metervia the RS485 connection between them.
Heisst das, ich muss die dbus-fronius-smartmeter.py mit editor bearbeiten, und in Zeile 58 die IP des esp32 eintragen?
"mqtt_broker_address ist dann localhost" Wo muss ich das angeben?
"Der Inverter wird erst mit senden von venus/pvinverter/${name}/init erzeugt (aus esphome)" Und wo mache ich das?
Vielen Dank für eure Hilfe!
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Rc.local is ne Textdatei, es ist normal dass die nicht da ist, wenn deine venus noch jungfräulich ist.
Das froniusding sollte eigentlich nur Beispiel sein, wie so ein Service installiert wird, das phytonfile ist dann ein anderes.
..,-
Muss ich den "MQTT Abschnitt mit birth_message, will_message, on_message_json, und der Teil bei den Sensoren im on_value Event mit mqtt.publish_json"
in meine .yaml einbauen?
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Ja genau. Das klappt aber nur mit dem D-Bus Treiber den ich oben verlinkt habe.
Du kannst ja nochmal dein yaml posten. Dann kann ich nochmal drüber schauen.
Für das Setup vom Dbus-Treiber gibt es im Projekt auf Github eine gute Anleitung: https://github.com/freakent/dbus-mqtt-devices#install-and-setup-only-for-ccgx
Danke für eure Geduld!
@profantus den Treiber habe ich gestern schon installiert, nach deiner weiter oben verlinkten Anleitung. Oder sollte ich besser die Version für CCGX nehmen?
Mit der .yaml werde ich mich dann heute nachmittag / abend nochmal beschäftigen, und hier posten, wäre super, wenn du dir das dann nochmal anschauen könntest. 👍
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
@saugnapf Der Treiber ist gleich nur das Setup unterscheidet sich etwas. Da gibt es zwei Scripte. Ich hab alles auf dem Raspi laufen daher hab ich keine Erfahrung mit dem CCGX. Hab nur gelesen dass das 'normale' Script wohl Problem auf dem CCGX gemacht hat.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.
Kurz gesagt: tendenziell gebe ich nun auf.
Du bist schon fast am Ziel. Man muss am Anfang wirklich viel lernen und Zeit investieren. Das ist mit den meisten DIY Dingen ja so.
Kaufen und eine fertige Lösung haben oder halt für kleines Geld und viel Einsatz selber machen.
Du hast ja schon viel gelernt und hin bekommen. Schau mal wo du vor einer Woche warst.
Wenn ich Zeit finde konfiguriere ich dir noch die paar MQTT Nachrichten die dir noch fehlen 😉 .
Da habt ihr recht. War gestern abend sehr frustriert... weil ich so vieles noch nicht kapiere. Grade auch von den Grundlagen her: Wie muss man was schreiben, damit die beiden Teile sich verstehen... usw.
Heute schaut's schon wieder besser aus... 😊
Eigentlich macht es mir ja schon Spaß, das zu lernen, und es eilt ja überhaupt nicht.
Aktuell nerve ich grad CHAT-GPT mit meinen Fragen... ist Klasse, der schreibt mir ganze code-Schnipsel.
Zum Beispiel:
Vielen Dank für die zusätzlichen Informationen. Hier ist ein Beispiel-Code für den ESP8266 in YAML, der Daten über RX und TX von Ihrem Hailege-Breakout-Board abruft und sie per MQTT an Ihren Raspberry Pi sendet:
esphome: name: esp8266 platform: ESP8266 board: nodemcuv2 wifi: ssid: "Ihr_WLAN_Name" password: "Ihr_WLAN_Passwort" # Optional: Fügen Sie eine statische IP-Adresse hinzu, wenn gewünscht # manual_ip: # static_ip: 192.168.1.50 # gateway: 192.168.1.1 # subnet: 255.255.255.0 mqtt: broker: "IP-Adresse des Raspberry Pi" port: 1883 username: "Ihr_MQTT_Broker_Benutzername" # Wenn erforderlich password: "Ihr_MQTT_Broker_Passwort" # Wenn erforderlich uart: rx_pin: GPIO5 tx_pin: GPIO4 baud_rate: 9600 sensor: - platform: custom lambda: |- auto solax_parser(char* payload) { uint16_t i = 0; int data[4]; char* pch = strtok(payload, ","); while (pch != NULL) { data[i++] = atoi(pch); pch = strtok(NULL, ","); } // Anpassen der Daten an Ihre spezifischen Anforderungen float ac_output_power = data[0] / 1000.0; float pv_input_voltage = data[1] / 10.0; float grid_voltage = data[2] / 10.0; float grid_frequency = data[3] / 100.0; return {{"ac_output_power", ac_output_power}, {"pv_input_voltage", pv_input_voltage}, {"grid_voltage", grid_voltage}, {"grid_frequency", grid_frequency}}; } # Fügen Sie weitere Sensorwerte hinzu, falls erforderlich sensors: - name: "AC Output Power" unit_of_measurement: "W" accuracy_decimals: 2 icon: "mdi:flash" state_class: "measurement" lambda: |- return solax_parser(id(payload).c_str())["ac_output_power"]; - name: "PV Input Voltage" unit_of_measurement: "V" accuracy_decimals: 1 icon: "mdi:solar-power" state_class: "measurement" lambda: |- return solax_parser(id(payload).c_str())["pv_input_voltage"]; - name: "Grid Voltage" unit_of_measurement: "V" accuracy_decimals: 1 icon: "mdi:transmission-tower" state_class: "measurement" lambda: |- return solax_parser(id(payload).c_str())["grid_voltage"]; - name: "Grid Frequency" unit_of_measurement: "Hz" accuracy_decimals: 2 icon: "mdi:current-ac" state_class: "measurement" lambda: |- return solax_parser(id(payload).c_str())["grid_frequency"];
Der SOLAX spricht ModbusRTU. Kannst du den Beispiel-Code entsprechend anpassen?
Sicher, hier ist eine angepasste Version des Beispiel-Codes für die Verwendung von ModbusRTU mit dem SOLAX X1 boost.
esphome: name: esp8266 platform: ESP8266 board: nodemcuv2 wifi: ssid: "Ihr_WLAN_Name" password: "Ihr_WLAN_Passwort" # Optional: Fügen Sie eine statische IP-Adresse hinzu, wenn gewünscht # manual_ip: # static_ip: 192.168.1.50 # gateway: 192.168.1.1 # subnet: 255.255.255.0 mqtt: broker: "IP-Adresse des Raspberry Pi" port: 1883 username: "Ihr_MQTT_Broker_Benutzername" # Wenn erforderlich password: "Ihr_MQTT_Broker_Passwort" # Wenn erforderlich modbus: - id: modbus_solax baud_rate: 9600 data_bits: 8 parity: NONE stop_bits: 1 address: 1 sensor: - platform: modbus coils: - name: "Coil 1" slave: modbus_solax address: 0 registers: - name: "AC Output Power" unit_of_measurement: "W" accuracy_decimals: 2 icon: "mdi:flash" slave: modbus_solax address: 3089 data_type: float - name: "PV Input Voltage" unit_of_measurement: "V" accuracy_decimals: 1 icon: "mdi:solar-power" slave: modbus_solax address: 3057 data_type: float - name: "Grid Voltage" unit_of_measurement: "V" accuracy_decimals: 1 icon: "mdi:transmission-tower" slave: modbus_solax address: 3073 data_type: float - name: "Grid Frequency" unit_of_measurement: "Hz" accuracy_decimals: 2 icon: "mdi:current-ac" slave: modbus_solax address: 3077 data_type: float mqtt: broker: "IP-Adresse des Raspberry Pi" username: "Ihr_MQTT_Broker_Benutzername" # Wenn erforderlich password: "Ihr_MQTT_Broker_Passwort" # Wenn erforderlich # Fügen Sie weitere Sensorwerte hinzu, falls erforderlich topic_prefix: "home/sensors/solax" discovery: true
In diesem Beispiel wird die modbus
-Komponente verwendet, um die Daten vom SOLAX X1 boost abzurufen. Die sensor
-Komponente wird verwendet, um die gemessenen Werte als MQTT-Topics zu veröffentlichen.
Bitte beachten Sie, dass die Modbus-Registeradressen und -datentypen in diesem Beispiel spezifisch für den SOLAX X1 boost sind. Wenn Sie ein anderes Gerät verwenden, müssen Sie möglicherweise die Registeradressen und -datentypen entsprechend anpassen.
6x 300Wp = 1.8kWp an 3x EVT560 MicroInverter - MultiPlus-II GX mit 4x PylonTech US2000 (je 2,4kWh)
Hier klicken, wenn du Kollegen in deiner Umgebung finden möchtest.