rtrbt Geschrieben October 30, 2023 at 15:43 Geschrieben October 30, 2023 at 15:43 Moin, In den letzten Monaten haben wir daran gearbeitet, dass der WARP Energy Manager mit Stromzählern und Wechselrichtern kommunizieren kann, die das SunSpec-Protokoll implementieren. Damit muss bei unterstützten Stromzählern und Wechselrichtern nicht mehr ein zusätzlicher Stromzähler für den Energy Manager verbaut werden. Der Energy Manager kann dazu jetzt bis zu 7 Stromzähler verwalten und einen beliebigen dieser Stromzähler zur Regelung des PV-Überschussladens verwenden. Changelog (1.0.91 - Beta 2) Invalid Address Fehler bei Gerätesuche für SMA-Geräte repariert Changelog (1.0.92 - Beta 3) Sonderbehandlung für falsche Werte bei KOSTAL-Geräten hinzugefügt. Detektion von Wechselrichter-Messwerten in der Nacht repariert; betrifft insbesondere SMA-Wechselrichter. Performance von SunSpec-Geräten mit float-Modellen verbessert; reduziert das Risiko von Timeouts beim Auslesen. Changelog (1.0.93 - Beta 4) Anzeige der Wechselrichterleistung repariert. Anzeige der Phasenströme bei SMA-Wechselrichtern repariert. Leseperformance verbessert, insbesondere bei ModBus-RTU-Bridges. Changelog (1.0.94 - Beta 5) Wechselrichterleistung wird jetzt in der Tabelle und im Graph angezeigt. Unterstützte Stromzähler Der Energy Manager sollte jetzt Messwerte von allen Geräten auslesen können, die eins der Wechselrichter-Modelle 101 bis 103 bzw. 111 bis 113, oder eins der Stromzähler-Modelle (201 bis 204 bzw. 211 bis 214) anbieten. Eine Liste von zertifizierten Geräten findet sich hier: https://sunspec.org/certified-registry/ (die jeweils unterstützten Modelle werden als "ModBusModels" aufgelistet) Konfiguration eines SunSpec-Stromzählers Gegebenenfalls muss SunSpec zuerst beim Stromzähler oder Wechselrichter aktiviert werden! Unter Energiemanager -> Stromzähler kann ein neuer Stromzähler konfiguriert werden. Aktuell kann die Nummer (von 0 bis 6) des neuen Stromzählers frei gewählt werden. Nach Auswahl der Klasse "SunSpec" können der Hostname oder die IP, sowie gegebenenfalls der Port gewählt werden, auf dem der Wechselrichter oder Stromzähler erreichbar ist. Danach kann eine Gerätesuche gestartet werden. Gefundene Geräte werden aufgelistet, durch Klick auf ein gefundenes Gerät wird es übernommen und kann hinzugefügt werden. Nach Speichern und Neustart sollte der konfigurierte Stromzähler erscheinen: Geänderte API Die Unterstützung von mehr als einem Stromzähler hat dazu geführt, dass wir die Stromzähler-APIs grundlegend geändert haben. Wenn die SunSpec-Unterstützung die Beta-Phase verlässt, werden wir (über ein Legacy-API-Modul) die alte Zähler-API nachbilden, in dieser Beta ist die alte API aber noch nicht implementiert. Wenn eine externe Steuerung (EVCC, Node-RED usw.) die Zählerwerte des Energy Managers lesen oder schreiben soll, wird das mit dieser Beta-Firmware NICHT funktionieren. Dann bitte auf der alten Firmware bleiben, bzw. auf die frisch veröffentlichte 1.0.8 aktualisieren. Wir freuen uns wie immer auf euer Feedback, insbesondere interessiert uns: - Mit welchen Geräten funktioniert die SunSpec-Anbindung (nicht)? - Tauchen unerwartete Messwerte auf? Ein Beispiel, dass wir bei einem KOSTAL Smart Energy Meter beobachtet haben (Später werden wir für solche Fälle Work-Arounds einbauen): energy_manager_firmware_1_0_94_65578f18_e09f667df6273d1_feature-meters-7_merged.bin Zitieren
poohnet Geschrieben October 30, 2023 at 16:41 Geschrieben October 30, 2023 at 16:41 'n Abend Erik, dann mache ich hier mal den Anfang 🙃 Mein SMA Sunny Boy 2.5 scheint nicht (zumindest nicht auf Anhieb) zu funktionieren: Starting scan Resolving 192.168.xxx.xxx Connecting to 192.168.xxx.xxx:502 Using device address 1 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: ILLEGAL_ADDRESS (2) Using device address 1 Using base address 50000 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 1 Using base address 0 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 2 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: ILLEGAL_ADDRESS (2) Using device address 2 Using base address 50000 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 2 Using base address 0 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 3 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: ILLEGAL_ADDRESS (2) Using device address 3 Using base address 50000 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 3 Using base address 0 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 4 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: DEVICE_FAILED_TO_RESPOND (11) Using device address 5 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: DEVICE_FAILED_TO_RESPOND (11) ... Using device address 125 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: DEVICE_FAILED_TO_RESPOND (11) Using device address 126 Using base address 40000 Reading SunSpec ID SunSpec ID found Reading Common Model Common Model found Could not read Common Model block: ILLEGAL_ADDRESS (2) Using device address 126 Using base address 50000 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 126 Using base address 0 Reading SunSpec ID No SunSpec ID found: ffffffff Using device address 127 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: DEVICE_FAILED_TO_RESPOND (11) ... Using device address 247 Using base address 40000 Reading SunSpec ID Could not read SunSpec ID: DEVICE_FAILED_TO_RESPOND (11) Disconnecting from 192.168.110.195 Scan finished Ich bin mir allerdings auch nicht 100% sicher, ob die "kleinen" Wechselrichter SunSpec unterstützen... Gruß Thomas Zitieren
batti Geschrieben October 31, 2023 at 08:09 Geschrieben October 31, 2023 at 08:09 Hi Thomas, hast du denn Sunspec aktiviert? Siehe https://files.sma.de/downloads/SMA-Modbus-general-TI-de-10.pdf Zitieren
photron Geschrieben October 31, 2023 at 08:17 Geschrieben October 31, 2023 at 08:17 Ich gehe davon aus das SunSpec aktiv ist, da die SunSpec ID gefunden wird bei Geräteadresse 126 (SMA Standardwert laut Dokumentation). Der Common Model Header wird auch gelesen, aber das Lesen des Common Model Blocks gibt dann einen ILLEGAL_ADDRESS Fehler. Es gibt gleich eine neue Firmware zum Testen. Zitieren
poohnet Geschrieben October 31, 2023 at 08:30 Geschrieben October 31, 2023 at 08:30 On 10/31/2023 at 9:09 AM, batti said: hast du denn Sunspec aktiviert? Ich hatte gestern Abend noch ein bisschen getestet, aber leider vergessen zu antworten 🙈 Modbus ist definitiv aktiv, wobei SunSpec bei SMA wohl unter Unit-ID 126 läuft (das passt ja auch zum o. g. Log) und per Node-RED kann ich auch diverse Daten abgreifen. On 10/31/2023 at 9:17 AM, photron said: Es gibt gleich eine neue Firmware zum Testen. Besten Dank. Gerne kann ich die Firmware auch selbst aus dem Development Branch kompilieren, dann braucht ihr die nicht ständig zu pushen... Zitieren
photron Geschrieben October 31, 2023 at 08:45 Geschrieben October 31, 2023 at 08:45 @poohnet Dann teste mal bitte den aktuelle Stand des features-meters-7 Branch (Commit: meters-sun-spec: Avoid reading common model block padding). Vielleichthilft das. Der Common Model Block kann laut Spec 65 oder 66 Register lang sein. Alles was wir hier zum Testen haben hat de 65er Variante. SMA hat aber die 66 Variante. Der Code geht damit richtig um, denke ich, aber vielleicht mag SMA nicht, dass ich das eine Padding Register mit lese. Das habe ich gerade geändert. Zitieren
poohnet Geschrieben October 31, 2023 at 10:52 Geschrieben October 31, 2023 at 10:52 Hi @photron, hier das aktuelle Log zur Unit-ID 126. Leider noch nicht wirklich erfolgreich: Using device address 126 Using base address 40000 Reading SunSpec ID SunSpec ID found Reading Common Model Common Model found (block-length: 66) Common Model block has padding, reading data only Could not read Common Model block (error: ILLEGAL_ADDRESS [2]) Using device address 126 Using base address 50000 Reading SunSpec ID No SunSpec ID found (sun-spec-id: ffffffff) Using device address 126 Using base address 0 Reading SunSpec ID No SunSpec ID found (sun-spec-id: ffffffff) Zitieren
photron Geschrieben October 31, 2023 at 11:11 Geschrieben October 31, 2023 at 11:11 @poohnet Komisch! Kannst du bitte diese Script ausführen: https://github.com/Tinkerforge/esp32-firmware/blob/feature-meters-7/software/src/modules/meters_sun_spec/discover.py Du brauchst dazu pymodbus >= 3.5.x, am einfachsten über pip installieren. python3 discover.py -H <sunny-boy-addresse> -d 126 Das Script liest jeden Wert einzeln, anstatt den ganzen Common Model Block in einem Rutsch zu lesen. Zitieren
poohnet Geschrieben October 31, 2023 at 11:43 Geschrieben October 31, 2023 at 11:43 Here we go (Seriennummer habe ich unkenntlich gemacht): Using pymodbus version: 3.5.4 Using host: 192.168.xxx.xxx Using port: 502 ============================================================ Using device address: 126 ------------------------------------------------------------ Using base address: 40000 Sun Spec ID found: 0x53756e53 Trying to read Common Model Common Model ID found: 1 Common Model length: 66 Manufacturer Name: SMA Model Name: Solar Inverter Options: 9302 Version: 3.10.09.R Serial Number: xxxxxxxxxx Device Address: None Done Trying to read Standard Model Standard Model ID found: 11 Standard Model length: 13 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 12 Standard Model length: 98 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 101 Standard Model length: 50 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 120 Standard Model length: 26 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 121 Standard Model length: 30 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 122 Standard Model length: 44 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 123 Standard Model length: 24 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 124 Standard Model length: 24 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 126 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 127 Standard Model length: 10 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 128 Standard Model length: 14 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 131 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 132 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 160 Standard Model length: 128 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 129 Standard Model length: 60 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 130 Standard Model length: 60 Skipping Standard Model Done Trying to read Standard Model End Done Zitieren
photron Geschrieben October 31, 2023 at 12:45 Geschrieben October 31, 2023 at 12:45 @poohnet Wir kommen näher. Das discover.py Script liest alle Werte einzeln. Der Energy Manager liest die Werte blockweise. Ich habe das discover.py Script jetzt umgestellt auf blockweises Lesen. Aktualisier mal bitte deinen git Clone und lass das Script nochmal laufen. Ich vermute, dass SMA es nicht erlaubt die Daten blockweise zu lesen. Das discover.py Script hat jetzt eine -s/--single-value-read Option, um das vorherige Verhalten wieder zu bekommen. Ich erwarte, dass das aktuelle discover.py Script ohne -s bei dir nicht funktiioniert, aber mit -s funktioniert. Kannst du das bestätigen? Zitieren
poohnet Geschrieben October 31, 2023 at 13:28 Geschrieben October 31, 2023 at 13:28 Jepp, kann ich bestätigen. Mit "-s" funktioniert's, ohne bricht das Skript mittendrin ab: Using pymodbus version: 3.5.4 Using host: 192.168.xxx.xxx Using port: 502 Using read mode: block ============================================================ Using device address: 126 ------------------------------------------------------------ Using base address: 40000 Sun Spec ID found: 0x53756e53 Trying to read Common Model Common Model ID found: 1 Common Model length: 66 Manufacturer Name: SMA Model Name: Solar Inverter Options: 9302 Version: 3.10.09.R Serial Number: xxxxxxxxxx Device Address: None Done Trying to read Standard Model Standard Model ID found: 11 Standard Model length: 13 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 12 Standard Model length: 98 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 101 Standard Model length: 50 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 120 Standard Model length: 26 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 121 Standard Model length: 30 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 122 Standard Model length: 44 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 123 Standard Model length: 24 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 124 Standard Model length: 24 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 126 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 127 Standard Model length: 10 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 128 Standard Model length: 14 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 131 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Standard Model ID found: 132 Standard Model length: 64 Skipping Standard Model Done Trying to read Standard Model Error: Exception Response(131, 3, IllegalValue) ------------------------------------------------------------ Using base address: 50000 Error: 'NoneType' object cannot be interpreted as an integer ------------------------------------------------------------ Using base address: 0 Error: 'NoneType' object cannot be interpreted as an integer Zitieren
photron Geschrieben October 31, 2023 at 13:56 Geschrieben October 31, 2023 at 13:56 git pull und teste bitte nochmal. Der Fehler dort ist ein anderer. An der Stelle wird Modell 160 gelesen, das 128 Register lang ist. Modbus erlaubt es aber nur 125 Register an einem Stück zu lesen. Das habe ich jetzt repariert. Mit -s wird der Block von Modell 160 nicht geladen, sondern übersprungen, daher tritt dieser Problem mit -s nicht auf. Das hat aber leider alles nichts mit dem originalen Problem zu tun. Das Script kann die Daten lesen, der Energy Manager nicht. Ich such mal weiter nach dem Unterschied. Zitieren
poohnet Geschrieben October 31, 2023 at 14:53 Geschrieben October 31, 2023 at 14:53 Alles klar, jetzt läuft das Skript auch ohne "-s" durch 🙂 Zitieren
photron Geschrieben October 31, 2023 at 16:42 Geschrieben October 31, 2023 at 16:42 SMA (steht auch in deren Dokumentation) erlaubt es nicht Werte partiell zu lesen. Genau das ist bei der Gerätesuche des Energy Managers passiert und daher kam der Invalid Address Fehler. Ist mit Beta 2 und in Git behoben. Das Script hat das Lesen da etwas anders gemacht, dadurch war das okay. Zitieren
poohnet Geschrieben October 31, 2023 at 17:40 Geschrieben October 31, 2023 at 17:40 Yeah, einen Schritt weiter 🙂 Ich habe testweise mal beide Wechselrichter (PV u. Batterie) hinzugefügt und kann nun diverse Werte sehen - allerdings fehlt bei beiden irgendwie Netzbezug/-einspeisung: Zitieren
MatzeTF Geschrieben November 3, 2023 at 17:27 Geschrieben November 3, 2023 at 17:27 Es gibt jetzt die Beta 3 mit ein paar Verbesserungen. Ihr findet die Firmware und die Liste der Änderungen im ersten Post dieses Threads. Zitieren
poohnet Geschrieben November 4, 2023 at 11:13 Geschrieben November 4, 2023 at 11:13 So sieht's bei mir jetzt mit Beta 3 aus: Zitieren
MatzeTF Geschrieben November 6, 2023 at 17:43 Geschrieben November 6, 2023 at 17:43 Es gibt jetzt die Beta 4 mit ein paar Verbesserungen. Ihr findet die Firmware und die Liste der Änderungen im ersten Post dieses Threads. Zitieren
andyknownasabu Geschrieben November 16, 2023 at 19:31 Geschrieben November 16, 2023 at 19:31 Bei mir funktionier die Anzeige der WR Leistung nicht (firmware 1.0.91-65492465). Habe einen Fronius Symo Zitieren
MatzeTF Geschrieben November 17, 2023 at 16:14 Geschrieben November 17, 2023 at 16:14 On 11/16/2023 at 8:31 PM, andyknownasabu said: Bei mir funktionier die Anzeige der WR Leistung nicht (firmware 1.0.91-65492465). Habe einen Fronius Symo Bitte Beta 5 ausprobieren. Du findest sie im ersten Post. 1 Zitieren
zeebee Geschrieben November 24, 2023 at 12:11 Geschrieben November 24, 2023 at 12:11 (bearbeitet) Eine Verständnisfrage: dann ist der (bei mir) TCP-Modbus ja belegt, es kann ja immer nur ein Gerät abfragen. Braucht evcc dann auch nochmal die Daten oder bekommt es das von dem EM? Da ich die Stromdaten auch für mehrere Sachen im Haushalt benötige, könnte ich sie mir ja auch per MQTT vom EM abfragen so wie ich es verstanden haben. bearbeitet November 24, 2023 at 12:19 von zeebee Zitieren
MatzeTF Geschrieben December 4, 2023 at 11:10 Geschrieben December 4, 2023 at 11:10 On 11/24/2023 at 1:11 PM, zeebee said: Eine Verständnisfrage: dann ist der (bei mir) TCP-Modbus ja belegt, es kann ja immer nur ein Gerät abfragen. Braucht evcc dann auch nochmal die Daten oder bekommt es das von dem EM? Da ich die Stromdaten auch für mehrere Sachen im Haushalt benötige, könnte ich sie mir ja auch per MQTT vom EM abfragen so wie ich es verstanden haben. Per Modbus TCP können prinzipiell mehrere Clients einen Host abfragen. Problematisch wird es allerdings, wenn der Host eine Modbus RTU-Bridge ist und jede Anfrage über eine lahme serielle Verbindung an einen Zähler geht. In dem Fall wird die serielle Schnittstelle der Flaschenhals sein und du wirst häufig Timeouts bekommen. Hat der Host die Werte selbst, können problemlos mehrere Clients sie abfragen. Wenn du EVCC verwendest, steuert das wahrscheinlich das Überschussladen. In dem Fall braucht der EM die Werte gar nicht. Ansonsten kannst du die Werte per MQTT bekommen. Der EM stellt alle ihm bekannten Stromzählerwerte per MQTT zur Verfügung. 1 Zitieren
Hoich Geschrieben August 22, 2024 at 16:52 Geschrieben August 22, 2024 at 16:52 Habe es jetzt endlich geschafft meine Solaredge-basierte PV als Zähler einzubinden. Ich hatte zuerst nur den WattNode-Zähler eingetragen und danach den Solaredge-Wechselrichter. Wenn ich dann den Wechselrichter danach eingetragen hatte kamen einfacvh keine Daten. Ich nehme mal an weil die Adressen des Wechselrichters vor dem Zähler kommen - kann aber auch nur Zufall gewesen sein. Was ich aber noch nicht so ganz verstanden habe ist ob die Polarität der Zahlen passt. Funktioniert das korrekt wenn bei Leistung positive Werte Folgendes bedeuten: - WARP Charger: Verbrauch hinter dem eingebauten Zähler - Wechselrichter: Stromerzeugung der PV-Anlage - Zähler am Netzübergabepunkt: Einspeisung Beispiel hier am Abend - der WARP Charger ist im Leerlauf (2W), der Wechselrichter erzeugt mit 1337W, die anderen Verbraucher im Haus sind bei 1485W in Summe und daher sind es -148W Einspeisung bzw. 148W Netzbezug. Ist das alles so korrekt? Bei einem anderen zeitlichen Snapshot kommt mir nämlich die Polarität von "draw minus feed" falsch herum vor wenn ich jetzt gerade mehr Strom erzeuge als ich verbrauche. Verbrauch im Haus ist hier jetzt bei ca. 1133W-688W, also 445W. "draw minus feed" bzw. Bezug minus Einspeisung sollte dann aber ja eine negative Zahl sein, oder? Zitieren
MatzeTF Geschrieben August 22, 2024 at 19:59 Geschrieben August 22, 2024 at 19:59 Da passt etwas nicht. Wie du schon vermutet hast, ist anscheinend das Vorzeichen beim Netzbezug verkehrt. Bei tatsächlicher Einspeisung muss der Wert negativ sein. Der WattNode-Zähler hat aber anscheinend auch noch ein anderes Vorzeichenproblem: Warum sind die Spannungen zwischen den Phasen negativ und viel zu niedrig? Sind beim Zähler zwei Phasen vertauscht, sodass er ein linksdrehendes Drehfeld sieht? Aber auch dann sollten ja eigentlich -400V angezeigt werden… Sind die Kilowattstunden bei Bezug (15175) und Einspeisung (36184) richtig oder vertauscht? Zitieren
Hoich Geschrieben August 23, 2024 at 13:41 Geschrieben August 23, 2024 at 13:41 Okay, dann bedeuten positive Werte beim "Zähler am Netzübergabepunkt": Bezug. Ich habe im Github einen "Quirk" gefunden ( https://github.com/Tinkerforge/esp32-firmware/blob/135fc091912a7fdccc9aa8d0f5280469db666cb3/software/src/modules/meters_sun_spec/meter_sun_spec.cpp#L316 ), dass bei Solaredge die Wirkleistung falsche Polarität hat. Da der WattNode-Zähler Teil des Solaredge-Pakets war muss das dort vielleicht auch gelten (oder die Quirks sollten irgendwo aktivierbar sein falls sie zutreffen). Kann das Grund sein? Danke für den Hinweis der Spannung zwischen den Phasen. Muss mal schauen was das ist und meine alten Unterlagen zu Energietechnik und dem Drehstrommodell studieren. Andererseits passt die Spannung am Wechselrichter - und es ist ja nur der FI dazwischen. Seltsam ... Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.