NEWS
Bosswerk MI600 Adapter
-
@rene55 zu der Frage: "Kann man da noch mehr rauskitzeln?" die Gegenfrage, was hättest du denn gerne ?
Und die API findet sich hier: https://forum.iobroker.net/assets/uploads/files/1643107275278-solarmanopenapi-v1.1.7-en.pdfDie sonstigen Informationen befinden sich in den inverter Attributes und logger Attributes.
Diese Attributes kann man nicht schön archiveren. -
@Rene55 @barger
Eure Überlegungen haben haben mich dazu inspiriert noch ein wenig rumzuspielen, damit alle Werte für die Archivierung zur Verfügung stehen.
Folgende Änderungen müssen dazu in 2 Files gemacht werden:root@orangepizero2:~/opt/solarman-mqtt# git diff diff --git a/solarman/__init__.py b/solarman/__init__.py index 009ab65..476caed 100644 --- a/solarman/__init__.py +++ b/solarman/__init__.py @@ -89,21 +89,17 @@ def single_run(file): if inverter_data[i] and i not in discard: Mqtt(config["mqtt"], topic + "/inverter/" + i, inverter_data[i]) if inverter_data_list: - Mqtt( - config["mqtt"], - topic + "/inverter/attributes", - json.dumps(inverter_data_list), - ) + for j in inverter_data_list: + if inverter_data_list[j] and j not in discard: + Mqtt(config["mqtt"], topic + "/inverter/" + j, inverter_data_list[j]) for i in logger_data: if logger_data[i] and i not in discard: Mqtt(config["mqtt"], topic + "/logger/" + i, logger_data[i]) if logger_data_list: - Mqtt( - config["mqtt"], - topic + "/logger/attributes", - json.dumps(logger_data_list), - ) + for j in logger_data_list: + if logger_data_list[j] and j not in discard: + Mqtt(config["mqtt"], topic + "/logger/" + j, logger_data_list[j]) else: Mqtt( config["mqtt"], diff --git a/solarman/api.py b/solarman/api.py index 33a9621..5023688 100644 --- a/solarman/api.py +++ b/solarman/api.py @@ -106,6 +106,7 @@ class ConstructData: # pylint: disable=too-few-public-methods del i["key"] name = i["name"] name = name.replace(" ", "_") + name = name.replace("+", "") del i["name"] new_data_list[name] = i["value"] del self.data["dataList"]
Danach steht ein für mich wichtiger Wert für die Archivierung zur Verfügung den ich bisher nicht hatte:
mqtt.0.solarmanpv.inverter.Daily_Production(Active)
Den Maximalwert davon lohnt es aufzuheben.
-
@silversurfer-0 Naja, ich dachte an soetwas. Hab mal die ersten Schritte gewagt. Übrigens, Danke für die API-Beschreibung.
-
@rene55
Schau dir die Änderungen an, die ich am 19. Mai gepostet habe, dann bekommst du die Werte separat. -
@silversurfer-0 Danke für den Hinweis. Den Datenpunkt hab ich aber auch als 'DeviceData.Daily Production(Active)'. Ich versuch mich weiter in der Erstellung eines Adapters. Der ist aber noch nicht soweit, dass man ihn zum testen in die Welt lassen könnte.
-
@rene55 Gibt es dazu ein Github repo ?
Ich kann da sicherlich was beitragen.Ganz generell gäbe es ja auch noch die Idee mit einem Reverse Proxy die Meldungen an die Solarman Webseite abzufangen ?
-
@silversurfer-0 Nee noch nicht. Muss erst noch schauen, wie ich meinen Kram ins Github beame. Brauch vermutlich noch ein paar Tage.
EDIT: von nem Reverse Proxy hab ich zwar schon gehört - habe aber keine Ahnung wie der funktionieren soll. Ohne China wäre schon reizvoll!
-
@rene55
Unter https://github.com/orgs/ioBroker/repositories sieht man alle Repos. Man kann aber nicht einfach so neue Repos anlegen. Wahrscheinlich muß man das irgendwo requestieren. -
@rene55
Schau mal unter https://github.com/ioBroker/ioBroker.template-ts -
Naja, das sagt mir gerade nix. Bis der Adapter im ioBroker-Repository steht, müssen wohl noch ein paar Tests durchlaufen und ich glaube Apollon77 muss da noch drüber gucken. Ich werd erst mal mein eigenes Github-Repro befüllen. Dann kann es evtl. schon mal getestet werden, wenn Bedarf besteht.
-
@rene55 sagte in Bosswerk MI600 Adapter:
EDIT: von nem Reverse Proxy hab ich zwar schon gehört - habe aber keine Ahnung wie der funktionieren soll. Ohne China wäre schon reizvoll!
Geht zB. mittels "dnsmasq" oder dem "pi-hole". Nutze (bzw. erst demnächst) ich für meine Heizung. Die überträgt alles an den Hersteller und ich darf/soll dann für den Abruf meiner Daten wieder zahlen...
...oder bei den Wetterstationen ohne WS-View[+]Man trägt dann die Ziel-(China)IP ein und "verbiegt" die Adresse auf den heimischen Rechner. Schon landen alle Daten/Abfragen auf dem heimischen PC. Dort muss man sie nur noch abgreifen.
-
@sborg Dann muss ich mal schauen, ob ich die cn-IP herausbekomme. Aktuell muss ich fürs Abrufen per App oder API nichts zahlen. Aber man weiß ja nie . . .
-
@sborg said in Bosswerk MI600 Adapter:
Dort muss man sie nur noch abgreifen.
Könntest Du dazu etwas mehr sagen? Womit greifst Du die Daten ab?
-
@al10b Ich nutze das Ganze so schon, um WLAN-Wetterstationen in den ioB einzubinden, die entweder ihre Daten an einen konfigurierbaren Server schicken können, oder dann, was hier der Fall wäre, mittels Pi-hole, dnsmasq etc. die Anfrage auf einen heimischen Rechner verbiegen.
Auf dem (vorzugsweise Linux-) Rechner läuft dann ein eigener "Webserver" mittels bspw. netcat oder socat (zB. nc -nlvw 1 -p 80).
Dann hat man genau die Daten die sonst an den Herstellerrechner/Cloud geschickt werden würden.
Mit Glück liegen sie im Klartext vor, dann braucht man sie ggf. nur etwas aufbereiten und anschließend an den ioB schicken. Mit Pech sind sie verschlüsselt...Vielleicht komme ich ja auch noch dieses Jahr zu einer Mini-PV. Da könnte es auch ein Bosswerk/Hoymiles werden, falls das ZigBee-Derivat nicht schon supported wird
-
@sborg said in Bosswerk MI600 Adapter:
Auf dem (vorzugsweise Linux-) Rechner läuft dann ein eigener "Webserver" mittels bspw. netcat oder socat (zB. nc -nlvw 1 -p 80).
Danke, das war der entscheidende Hinweis. Ich habe hier ein Pihole am Laufen und das mit dem Umbiegen der Adresse bekomme ich hin. Und in netcat muss ich mich ein wenig einarbeiten, aber auch das sollte klappen. Wollen wir hoffen, dass da Klartext gesendet wird. Vielen Dank!
-
@al10b zB. meine Heizung. Da landen alle Anfragen auf dem Auswerte-PC
-
@Silversurfer-0 @SBorg @fr00sch und alle anderen Interessierten:
https://forum.iobroker.net/topic/55799/neuer-adapter-solarman-pv-bosswerk-mi600
-
@rene55
Danke nochmals. Aber nachdem ich bereits an der Installation der App gescheitert bin (ich konnte die On-Screen-Tastatur am iPhone nicht wegklicken um den "Weiter"-Button zu erreichen), habe ich jetzt ein Tasmota-geflashtes Sonoff Pow R3 für die Übertragung der Leistungsdaten genommen. Damit gibt es auch noch Probleme, aber das ist eine andere Geschichte... -
@al10b Das Problem bei der Installation wird (hoffentlich) bald behoben sein. Ok, mit dem Sonoff bekommst du natürlich die eingespeiste Leistung. Im Adapter könntest du die Leistung jedes Moduls, die Temperatur auf dem 'Balkon' sprich im Wechselrichter und die tägliche Gesamtleistung sehen.
Versuchs vielleicht auf dem PC nochmal, nötigenfalls das Installationsfenster einfach nach 2 Minuten abbrechen. Möglicherweise ist dann der Adapter im System und du kannst dir eine Instanz erstellen. -
@sborg
Hallo, das ist ein interessanter Ansatz aber unnötig: Du kannst die Bosswerk Solarman Server -Adresse direkt im Inverter über ein verstecktes Menü ändern:http://<lokale IP des Bosswerk Inverters>/config_hide.html
Hier habe ich dann die IP-Adresse auf einen eigenen Node-red input verbogen und dann damit die eingehenden Datenpakete analysiert. Ich kann zwar (noch) nicht alles entschlüsseln, komme aber an alle relevanten PV Daten ran und habe daraus eigene Datenpunkte gezogen.
Dabei kam die große Überraschung: Die Bosswerk Inverter und damit alle baugleichen Geräte übertragen die eigene lokale IP-Adresse und die WIFI SSID an die Solarman-Server. Ob auch das WIFI Password dabei ist, kann ich nicht sagen, da ich nicht alles dechiffriert bekomme. Aber die Vermutung liegt nahe..
Ich habe jetzt jedenfalls die komplette Kommunikation an die Solarman-Server unterbrochen. Das ist mir zu unheimlich...
Im Klartext heißt das, dass alle die die SOLARMAN-App nutzen und ihre Inverter entsprechend eingerichtet haben, gleichzeitig auch sensible Daten weiterleiten. Und wenn man dann auch noch seine GEO-Daten in der App eingibt... Na Ihr könnt es Euch denken.