Seite 2 von 3

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Jul 17, 2022 7:31 am
von mairj
Hi Oliver,

ich hab mich jetzt auf die Suche nach dem zweiten Wert für die Leistung gemacht und bin fündig geworden. Sobald auf der bekannten Adresse 4152 der Wert von 65535 überschritten ist, springt der Wert unter 4151 von 0 auf 1. Heißt, ab dann muss man zu dem aktuellen Wert, der unter 4152 angezeigt wird, die 65535 dazuaddieren, damit die Gesamtleistung passt.

Gefunden habe ich übrigens auch, wo der Wechselrichter die Tagesleistung hinterlegt. Die findet sich unter 4136 und wird dort direkt ohne Faktor angezeigt sprich 8650 = 8,65kWh. Nur, falls das auch irgendwie interessant wäre.

Noch eine Frage: Wäre es möglich, unter den Einstellungen für die PV-Module in der Wallbox die Möglichkeit zu ergänzen, einen zweiten Solarmax-Wechselrichter als 2. PV-Modul auszuwählen? Die Option gibt es dort bislang nicht, was heißt, dass ich im Moment nur jeweils einen Wechselrichter abfragen kann.

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Jul 17, 2022 9:20 am
von okaegi
Tagwsertrag rechnen wir selber, das andere baue ich ein hast du mir vielleicht noch en opentrace
Steht dann das drin ?
Gruss Oliver
opentrace start 4150 + 1 inhalt 0 0X0001

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Jul 17, 2022 9:40 am
von LutzB
Das dürfte einfach ein 32 Bit int über zwei Register sein.

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Jul 17, 2022 10:35 am
von okaegi
LutzB hat geschrieben: So Jul 17, 2022 9:40 am Das dürfte einfach ein 32 Bit int über zwei Register sein.
Sehe ich auch so. Pr ist hier, Unterstützung für Solarmax als WR2 auch grad eingebaut:

https://github.com/snaptec/openWB/pull/2303

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Jul 17, 2022 4:47 pm
von mairj
Unglaublich, ihr seid fix. Da ist man den Tag arbeiten, kommt zurück und sieht, dass alle Probleme gelöst sind.

Tolle Sache, ich teste dann und sag Bescheid, ob alles wie gedacht klappt!

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: Mo Jul 18, 2022 6:38 am
von LenaK
Änderungen sind nun in der Nightly

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: Mi Jul 20, 2022 6:38 am
von mairj
So, nachdem der erste Tag mit viel Sonne vorüber ist, kann ich erfreuliches berichten. Die Werte der Wechselrichter schauen gut aus.
Download.png
Vielen Dank!

Einzige Sache, die mir aufgefallen ist: Da die Wechselrichter sich nachts ausschalten, wenn es keinen Strom vom Dach mehr gibt, füllt sich dann das Log mit Fehlermeldungen, weil die Abfrage nicht mehr klappt. Das dürfte aber ein Schönheitsfehler sein, denn man nicht umgehen kann...

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: Mo Feb 27, 2023 8:08 am
von monette999
Hallo Forum und Mairj
ich habe diese anderen Register im Netz gefunden für den Solarmax SMT.

Bitte mal probieren ob die Register passen für die SMT Serie.

Mich würde interessieren wie man den SMT von Broadcast in eigene Heimnetz bekommt.
Oder wie habt ihr den Solarmax SMT
mit dem PC ausgelesen.

Danke
Ich bin neu hier.
Gruß monette999

#!/usr/bin/python3
#
#
from pymodbus.client.sync import ModbusTcpClient


class _Reg:
def __init__(self, name, reg, postfix="", scale=1.0):
self.name = name
self.postfix = postfix
self.scale = scale
if "/" not in reg:
reg += "/1"
li = reg.split("/", maxsplit=2)
self.reg = int(li[0])
self.count = int(li[1])

def output(self, mc):
reg = mc.read_holding_registers(self.reg, count=self.count, unit=1)
if len(reg.registers) == 1:
val = reg.registers[0]
elif len(reg.registers) == 2:
val = reg.registers[0] * 65535 + reg.registers[1]
else:
raise Exception("unknown register {}".format(reg))
return RegValue(val / self.scale, self.name, self.postfix)


class RegValue(float):
def __new__(cls, value, name, postfix):
return super().__new__(cls, value)

def __init__(self, value, name, unit):
self.value = value
self.name = name
self.unit = unit

def __str__(self):
return "{}: {:2.2f} {}".format(self.name, self.value, self.unit)


class ModbusConnectionError(Exception):
pass


class SolarmaxSmt:
def __init__(self, host):
self._host = host

def _get(self, reg):
mc = ModbusTcpClient(self._host)
res = mc.connect()
if not res:
raise ModbusConnectionError("cannot connect to {}".format(self._host))
val = reg.output(mc)
mc.close()
return val

@property
def current_power(self):
reg = _Reg("Current power", "4151/2", "kW", scale=10000)
return self._get(reg)

@property
def max_power_today(self):
reg = _Reg("Max power today", "4155/2", "kW", scale=10000)
return self._get(reg)

@property
def total_power_today(self):
reg = _Reg("Total power today", "4133/2", "kW")
return self._get(reg)

@property
def total_power(self):
reg = _Reg("Total power", "4129/2", "kW")
return self._get(reg)

@property
def converter_temperature(self):
reg = _Reg("Internal converter temperature", "4124/1", "°C")
return self._get(reg)

# XXX: improve API
@property
def voltage_1(self):
reg = _Reg("Internal converter temperature", "4124/1", "°C")
return self._get(reg)

@property
def current_1(self):
reg = _Reg("Current 1", "4113", "A", scale=100.0)
return self._get(reg)

@property
def power_1(self):
reg = _Reg("Power 1", "4115", "kW", scale=10000.0)
return self._get(reg)

@property
def voltage_2(self):
reg = _Reg("Voltage 2", "4116", "V", scale=10.0)
return self._get(reg)

@property
def current_2(self):
reg = _Reg("Current 2", "4117", "A", scale=100.0)
return self._get(reg)

@property
def power_2(self):
reg = _Reg("Power 2", "4119", "kW", scale=10000.0)
return self._get(reg)

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: Di Mai 16, 2023 10:59 am
von Maxify23
Ich ergänze an der Stelle mal die Modbus Doku der Batterie. Ich frage mal die vom WR beim Hersteller an

Re: Unterstützung für Solarmax Wechselrichter SMT-Serie

Verfasst: So Aug 13, 2023 2:31 pm
von alexpa
Hallo,

ich hoffe ich darf mich hier kurz einklinken.

Habe einen 20SHT und möchte gerne via Modbus die Leistungsdaten abfragen vom WLAN Modul.

Habt ihr das was besonderes einstelen müssen? Irgendwie bekomme ich da nichts vom WR