Benachrichtigungen
Alles löschen

SOLAX: tasmota oder ESPHome auf ESP8266 und ESP32 flashen

104 Beiträge
10 Benutzer
25 Likes
5,131 Ansichten
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1113
 

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.

..,-


   
saugnapf reacted
AntwortZitat
(@nadors)
Vorsichtiger Stromfühler
Beigetreten: Vor 3 Jahren
Beiträge: 18
 

Moin @und-mehr,

hat es einen Grund, warum du dein eigens Python Script geschrieben hast und nicht die hier verwendest?

 

https://github.com/freakent/dbus-mqtt-devices

Diese r Beitrag wurde geändert Vor 1 Jahr von Nadors

   
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

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.


   
AntwortZitat
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1113
 

Veröffentlicht von: @nadors

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.

 

..,-


   
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

Veröffentlicht von: @und-mehr

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.

 

 

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.


   
AntwortZitat
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1113
 

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.

 

 

..,-


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

HOWTO Wechselrichter Dimensionierung


   
saugnapf and und mehr reacted
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

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.


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

@saugnapf 

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

 

HOWTO Wechselrichter Dimensionierung


   
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

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.


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

@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.

HOWTO Wechselrichter Dimensionierung


   
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

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.


   
AntwortZitat
(@und-mehr)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1113
 

Mach mal nee Pause.

..,-


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

Veröffentlicht von: @saugnapf

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 😉 .

 

HOWTO Wechselrichter Dimensionierung


   
saugnapf reacted
AntwortZitat
saugnapf
(@saugnapf)
Heroischer Stromgenerator
Beigetreten: Vor 2 Jahren
Beiträge: 1271
Themenstarter  

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.

Spoiler
CHAT-GPT

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.


   
AntwortZitat
Seite 5 / 7
Teilen: