Einbindung vom SolaX Wechselrichter

Auflistung von gewünschten Features, Ausschreibung zur Umsetzung
HSC
Beiträge: 3941
Registriert: So Jan 10, 2021 8:49 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von HSC »

openWB hat geschrieben: Di Dez 07, 2021 6:56 am Wenn „einfach“ die Register geändert werden wird das aber in Folge in irgendeiner anderen Konstellation nicht mehr funktionieren.
Ich würde halt gerne wissen welche das ist.
Dann bleiben ja nur 2 Varianten als Möglichkeit, "alt" und "neu".

Noch ne' Frage zur Frequenz- Verarbeitung:
Steckt da im Modul eine Sicherheitsabfrage drin?
Also, "verarbeite nur die aktuellen Watt, wenn die Frequenz vorhanden ist"??
Vielen Dank
Peete
Beiträge: 76
Registriert: Mi Feb 24, 2021 9:40 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von Peete »

openWB hat geschrieben: Di Dez 07, 2021 6:56 am Wenn „einfach“ die Register geändert werden wird das aber in Folge in irgendeiner anderen Konstellation nicht mehr funktionieren.
Ich würde halt gerne wissen welche das ist.
Das Problem ist, dass das Solax Modul für Bezug von Anfang an schon falsch war. Deshalb habe ich auch nie EVU Werte bekommen.

Es kann natürlich sein, dass die alten 1ph Solax WR das Register 189 gar nicht haben. Die bekommen dann wieder Wert 0 in die Ramdisk.

Die ganze Dongle Geschichte hat mit den Registern nichts zutun. Hier geht es grundlegend um die Tatsache, dass für die Frequenz ein falscher Wert benutzt wird und bei allen 3ph Wechselrichtern bei Evu nichts kommt.
openWB series2 standard+
openWB
Site Admin
Beiträge: 7905
Registriert: So Okt 07, 2018 1:50 pm

Re: Einbindung vom SolaX Wechselrichter

Beitrag von openWB »

Ok, aber die Frequenz ist grundlegend absolut egal.
Supportanfragen bitte NICHT per PN stellen.
Hardwareprobleme bitte über die Funktion Debug Daten senden mitteilen oder per Mail an support@openwb.de
Benutzeravatar
arauhut
Beiträge: 116
Registriert: Di Jun 15, 2021 8:07 pm
Wohnort: Kassel
Kontaktdaten:

Re: Einbindung vom SolaX Wechselrichter

Beitrag von arauhut »

openWB hat geschrieben: Di Dez 07, 2021 5:53 am Lasst zunächst den zweiten WR bitte mal Weg, ich glaube der verwirrt nur und ist für die Funktion unerheblich.

@peete
Wenn ich dich richtig verstanden hab brauchen wir schlicht 2 Varianten, die derzeitige Auselsung und die mit den anderen Registern, korrekt?

Wäre es auch damit getan wenn die extra Dongle nicht genutzt würden?
Ich stimme zu, dass der zweite WR zur Anpassung des Moduls keine Beachtung finden sollte und auch die Dongles spielen hier wahrscheinlich keine Rolle.

Ich nehme sie anschließend ab, falls ich es nicht mehr als notwendig betrachte, sie für die SolaX Cloud und den Zugang für den Service zu behalten, oder bei Bedarf wieder anzustecken. Über die IP Adressen der beiden LAN/WLAN Dongle findet keine Kommunikation per modbus statt.
Einen offenen Port 502 für modbus finde ich nur an meinem LAN vom X3-Hybrid WR (blaues Kabel)

Um eine Rückwärtskompatibilität mit bereits im Feld befindlichen SolaX-WR sicherzustellen, kann eventuell durch die Abfrage eines bzw. mehrerer Registerwerte geprüft werden, ob es sich um einen 1- oder 3-phasigen WR handelt, bzw. alte neue Ausführung.
Grüße aus Kassel - Andreas
openWB series2 standard - Skoda Enyaq iV60 + SolaX X3-Hybrid-10.0-T-D + X3-Mic-6.0-T-D Wechselrichter (Gen 3)
+ Home Assistant
derNeueDet
Beiträge: 4197
Registriert: Mi Nov 11, 2020 7:16 pm

Re: Einbindung vom SolaX Wechselrichter

Beitrag von derNeueDet »

Fällt das Modul auf die Nase, wenn hier das falsche Frequenz Register abgefragt wird und deshalb kommen dann keine Leistungswerte an?

VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
HSC
Beiträge: 3941
Registriert: So Jan 10, 2021 8:49 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von HSC »

derNeueDet hat geschrieben: Di Dez 07, 2021 9:30 am Fällt das Modul auf die Nase, wenn hier das falsche Frequenz Register abgefragt wird und deshalb kommen dann keine Leistungswerte an?

VG
Det
Das könnte auch eine Erklärung für den Fehler sein.
Kann mir auch nicht vorstellen, dass die Anzeige der Watt abhängig von der Auslesung der Frequenz sein soll.
VG
Peete
Beiträge: 76
Registriert: Mi Feb 24, 2021 9:40 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von Peete »

derNeueDet hat geschrieben: Di Dez 07, 2021 9:30 am Fällt das Modul auf die Nase, wenn hier das falsche Frequenz Register abgefragt wird und deshalb kommen dann keine Leistungswerte an?

VG
Det
Ja vermute ich auch:

Das hier ist das modul bezug_solax/solax.py

Code: Alles auswählen

#!/usr/bin/python
import sys
# import os
# import time
# import getopt
# import socket
# import struct
# import binascii
from pymodbus.client.sync import ModbusTcpClient
from pymodbus.factory import ClientDecoder

def unsigned32(result, addr):
   low  = result.registers[addr]
   high = result.registers[addr + 1]
   val = low +( high << 16)
   return val

def unsigned16 (result, addr):
    return result.registers[addr]

def signed16(result, addr):
    val = result.registers[addr]
    if val > 32767:
        val -= 65535
    return val

def signed32(result, addr):
    val = unsigned32(result, addr)
    if val > 2147483647:
        val -=  4294967295
    return val

ipaddress = str(sys.argv[1])
client = ModbusTcpClient(ipaddress, port=502)

resp=client.read_input_registers(0, 114)

value = signed32(resp, 70)
# for SolaX negative means get power from grid
value = -value

f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
f.write(str(value))
f.close()

frequenz = unsigned16(resp,7) / 100
print (frequenz)
f = open('/var/www/html/openWB/ramdisk/evuhz', 'w')
f.write(str(frequenz))
f.close()

consumed = unsigned32(resp,74) / 100
print (consumed)
f = open('/var/www/html/openWB/ramdisk/bezugkwh', 'w')
f.write(str(consumed))
f.close()

einspeisung = unsigned32(resp,72) / 100
f = open('/var/www/html/openWB/ramdisk/einspeisungkwh', 'w')
f.write(str(einspeisung))
f.close()
Wenn ich die letzten 3 Abfragen entferne, geht es auch:

Code: Alles auswählen

frequenz = unsigned16(resp,7) / 100
print (frequenz)
f = open('/var/www/html/openWB/ramdisk/evuhz', 'w')
f.write(str(frequenz))
f.close()

consumed = unsigned32(resp,74) / 100
print (consumed)
f = open('/var/www/html/openWB/ramdisk/bezugkwh', 'w')
f.write(str(consumed))
f.close()

einspeisung = unsigned32(resp,72) / 100
f = open('/var/www/html/openWB/ramdisk/einspeisungkwh', 'w')
f.write(str(einspeisung))
f.close()
resp=client.read_input_registers(0, 114) besagt ja, dass er beim Register 0 startet und bis 114 ausliest. Richtig?
Weil die 189 geht dann natürlich nicht.
openWB series2 standard+
derNeueDet
Beiträge: 4197
Registriert: Mi Nov 11, 2020 7:16 pm

Re: Einbindung vom SolaX Wechselrichter

Beitrag von derNeueDet »

Nimm mal nur den Block frequenz raus und die anderen beiden bitte drin lassen.

VG
Det
10kWp PV mit SMA Tripower 10000TL-10 (PE11 mit SDM72V2); 2,4kWp mit Solis 2.5 G6 (EE11 mit SDM120). OpenWB Standard+. EVU EM540 an einem Raspi mit Venus OS. BEV Mercedes EQA 250 (07/2023)
Peete
Beiträge: 76
Registriert: Mi Feb 24, 2021 9:40 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von Peete »

derNeueDet hat geschrieben: Di Dez 07, 2021 11:11 am Nimm mal nur den Block frequenz raus und die anderen beiden bitte drin lassen.
Sofort wieder 0 Watt.
Wenn nur das drin ist nach den Definitionen, geht es.

Code: Alles auswählen

ipaddress = str(sys.argv[1])
client = ModbusTcpClient(ipaddress, port=502)

resp=client.read_input_registers(0, 114)

value = signed32(resp, 70)
# for SolaX negative means get power from grid
value = -value

f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
f.write(str(value))
f.close()
openWB series2 standard+
HSC
Beiträge: 3941
Registriert: So Jan 10, 2021 8:49 am

Re: Einbindung vom SolaX Wechselrichter

Beitrag von HSC »

Peete hat geschrieben: Di Dez 07, 2021 11:15 am
derNeueDet hat geschrieben: Di Dez 07, 2021 11:11 am Nimm mal nur den Block frequenz raus und die anderen beiden bitte drin lassen.
Sofort wieder 0 Watt.
Wenn nur das drin ist nach den Definitionen, geht es.

Code: Alles auswählen

ipaddress = str(sys.argv[1])
client = ModbusTcpClient(ipaddress, port=502)

resp=client.read_input_registers(0, 114)

value = signed32(resp, 70)
# for SolaX negative means get power from grid
value = -value

f = open('/var/www/html/openWB/ramdisk/wattbezug', 'w')
f.write(str(value))
f.close()
Verstehe ich es richtig, dass jetzt die aktuellen Watt gelesen werden, aber dafür keine Zählerstände und Frequenz mehr?
Welchen Zusammenhang könnte es zw. den Im- und Ex- kWh und den aktuellen Watt im SolaX- Modul geben?
Blockiert sich da gegenseitig etwas über eine Berechnung?
Antworten