Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

GoodWe inverter lokaal uitlezen (USB / WiFi)

Pagina: 1 2 3 4 Laatste
Acties:

Onderwerpen


Acties:
  • +1Henk 'm!

  • FrankJ91
  • Registratie: september 2010
  • Laatst online: 17-06 08:47
Inderdaad, deze is ook verzegeld. Ik ga hem dan ook maar niet openmaken, zeker niet de eerste dag ivm garantie etc. Hopelijk dat ik hiermee meer mensen heb geadviseerd die ook naar deze omvormer kijken :)

Net de omvormer in de SemsPortal gezet en ben bezig deze nu maar te verbinden met Home Assistant. Lijkt goed te gaan. Daarna maar even in Grafana krijgen. Helaas dat het via de cloud moet lopen waardoor ik denk ik minder makkelijk accuraat verbruik in Grafana neer kan zetten (P1/Omvormer data). Maarja het is niet anders.

Bedankt in ieder geval! :)

Acties:
  • 0Henk 'm!

  • DRuw
  • Registratie: november 2009
  • Laatst online: 18-06 13:32

DRuw

Bacardi Bat on Ice:)

Ik heb ook geen rs485 poort op mijn gw4200-ds:(
Ik kan ook mijn wifi module er niet uit krijgen zonder te solderen.... Binnenkort via USB proberen

Deze signature is om volstrekt onduidelijke redenen verwijderd. PVOutput


Acties:
  • +1Henk 'm!

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
In mijn allereerste poging om de data te capturen van de omvormer (toen ik nog geen inzicht had op de USB poort) heb ik het verkeer naar de GoodWe servers binnen mijn netwerk omgeleid naar een eigen http server en zo de data uitgelezen. Via DNS / hosts-file elk verzoek naar de goodwe server laten resolven naar een intern ip adres.

Signature van nature


Acties:
  • 0Henk 'm!

  • Q-bone
  • Registratie: juni 2001
  • Laatst online: 07:35

Q-bone

Dusss...

@Sircuri
Kan het zijn dat de laatste versie op Github niet helemaal comptabele is met de laatste versies van mqtt?

Ik krijg het namelijk niet voor elkaar om te connecten met de laatste versie van mqtt

Melding:
Socket error on client <unknown>, disconnecting.

terwijl op een oude mqtt versie het wel werkt.

bla?


Acties:
  • 0Henk 'm!

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
Q-bone schreef op vrijdag 8 mei 2020 @ 11:42:
@Sircuri
Kan het zijn dat de laatste versie op Github niet helemaal comptabele is met de laatste versies van mqtt?

Ik krijg het namelijk niet voor elkaar om te connecten met de laatste versie van mqtt

Melding:
Socket error on client <unknown>, disconnecting.

terwijl op een oude mqtt versie het wel werkt.
Dat zou ik moeten uitzoeken. Deze code is qua libraries niet meer aangepast sinds conceptie :+

Signature van nature


Acties:
  • 0Henk 'm!

  • Q-bone
  • Registratie: juni 2001
  • Laatst online: 07:35

Q-bone

Dusss...

@Sircuri Ik denk dat het te maken heeft met de client loop functie die elke keer weer gesloten wordt.

bla?


Acties:
  • 0Henk 'm!

  • DRuw
  • Registratie: november 2009
  • Laatst online: 18-06 13:32

DRuw

Bacardi Bat on Ice:)

Gents, ik probeer met het script van Zonoskar mijn goodwe uit te lezen en naar Pvoutput te sturen.
ik had hem via USB aangesloten maar daar kreeg ik het script niet draaiend mee gisteren.
Nu op URL gezet en ik kwam er vanochtend achter dat als je dan de usb stekker erin laat zitten je trafo niet start.... oeps....
Stekker eruit en trafo herstart en die doet het weer.
Het script daarintegen blijft hangen...
Dit krijg ik:

URL initialized
Filter data Error: Data from Goodwe portal not correct: 'status'
Inverter is not online: 1 offline 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0

Via de semsportal kom ik er gewoon in nu..
iemand enig idee?

Deze signature is om volstrekt onduidelijke redenen verwijderd. PVOutput


Acties:
  • 0Henk 'm!

  • zonoskar
  • Registratie: januari 2000
  • Laatst online: 00:28

zonoskar

<-- Mika R.I.P!

Euh, ja. De URL versie werkt niet meer omdat de SEMS portal helemaal veranderd is. Ik ben er eigenlijk wel een beetje klaar mee dat die portal steeds zo veranderd :)

Dat de Goodwe met USB niet opstart heb ik ook (hij start wel, maar de communicatie is down, geen connectie met USB mogelijk en er wordt niets naar de portal gestuurd).

Powermac G5 casemod. Mijn PV live output.


Acties:
  • 0Henk 'm!

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
Werkt bij jullie die GoodWe Explorer (ezexplorer geloof ik) tool wel als je die op een windows pc installeert en koppelt aan de usb poort van de omvormer?

Misschien is het USB protocol iets anders in die omvormers, waardoor het niet werkt met USB? We zouden met een USB sniffer dan kunnen proberen het wel werkend te krijgen. Het is duidelijk dat niet alle omvormers op eenzelfde manier werken helaas.

Signature van nature


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
zonoskar schreef op maandag 11 mei 2020 @ 15:19:
[...]
Ik ben er eigenlijk wel een beetje klaar mee dat die portal steeds zo veranderd :)
[...]
Dooddoener, maar je zou natuurlijk een losse kWh-meter op de groep van de zonnepanelen kunnen (laten) zetten en iets als een YouLess de pulsjes van die kWh-meter kunnen laten bijhouden en naar PVOutput.org laten sturen. Dat is mijn primaire logging, de rest zoals stringvoltage via RS485 is voor mij alleen maar bonus :)
Je hebt het dan zelf in beheer en bent niet afhankelijk van portals die eruit liggen en andere fratsen die ze in China uithalen.

YouLess pulsteller/elektriciteitsmeter
Kost wel €79 (excl. kWh-meter) maar je kunt er ook gelijk slimme meter mee uitlezen. Ik vind het een top ding.
Geef hem stroom en internet en hij red zich wel. Gaat hier al 3 jaar lang goed, hij is nog nooit vastgelopen ofzo.

[Voor 20% gewijzigd door ThinkPad op 12-05-2020 11:08]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • 0Henk 'm!

  • zonoskar
  • Registratie: januari 2000
  • Laatst online: 00:28

zonoskar

<-- Mika R.I.P!

Sircuri schreef op dinsdag 12 mei 2020 @ 10:13:
Werkt bij jullie die GoodWe Explorer (ezexplorer geloof ik) tool wel als je die op een windows pc installeert en koppelt aan de usb poort van de omvormer?

Misschien is het USB protocol iets anders in die omvormers, waardoor het niet werkt met USB? We zouden met een USB sniffer dan kunnen proberen het wel werkend te krijgen. Het is duidelijk dat niet alle omvormers op eenzelfde manier werken helaas.
EzExplorer werkt bij mij, totdat de omvormer uit gegaan is en weer opstart met de USB kabel er in. Daarna werkt het niet meer, EzExplorer krijgt dan geen contact meer met de omvormer. Ik heb dit een uur ofzo laten draaien, no deal, totdat ik de kabel uit de omvormer haal (dus het is niet genoeg om de kabel uit de PC te halen) en hem uit/aan zet.

Dit is mijn oplossing:

Als het script geen contact krijgt, schakelt hij dit relais uit en wacht 10 minuten en dit wordt herhaalt totdat hij contact krijgt. Zo krijgt de omvormer kans om op te starten zonder USB kabel te detecteren en kan mijn script toch de omvormer uitlezen via USB. Er is een kleine kans dat het script contact probeert te krijgen en de omvormer net aan het opstarten is (het contact zoeken duurt ca 10 sec), maar dit is tot nu toe nog niet voorgekomen. En het draait al 2 jaar onafgebroken.

[Voor 29% gewijzigd door zonoskar op 12-05-2020 12:14]

Powermac G5 casemod. Mijn PV live output.


Acties:
  • 0Henk 'm!

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
Ah ja, jij was dat die deze oplossing had gemaakt. Wilde nog zeggen dat er inderdaad iemand was met een USB relais oplossing. Inventief en kennelijk doeltreffend. Wellicht is dat voor anderen ook toe te passen.

Signature van nature


Acties:
  • +1Henk 'm!

  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Ik heb ook een XS inverter en was al een tijdje aan het zoeken naar een betekenis in het TCP protocol dat ik voorbij zie komen als de inverter communiceert met de SEMS pagina.

Het is TCP 20001 op tcp.goodwe-power.com en ik herken het serienummer erin.
In een issue op de github pagina van @CodeIT zag ik dat iemand de USB poort na was gelopen en dat deze zeker NIET als USB poort gebruikt moet worden (polarisatie omgedraaid!) maar een RS232 poort is 'in disguise'

Met een logic analyser aan de RS232/USB poort zie ik wat AT commando's tussen de inverter en de wifi module, uiteindelijk zet de inverter de wifi module in 'transparent transmission' en de output wordt dan direct door de servers van Goodwe geïnterpreteerd.

De TCP packets zijn dus 1-op-1 de serial output van de inverter.

Mocht iemand suggesties hebben: https://github.com/jantenhove/GoodWeLogger/issues/28

Ik zie wel mogelijkheden de HF-LPB100 te vervangen met een ESP (Geen onnodig SSID meer van de 'setup' modus waar hij niet uit wil), maar dan kan ik hem nog niet lokaal lezen/interpreteren :)

Acties:
  • 0Henk 'm!

  • DRuw
  • Registratie: november 2009
  • Laatst online: 18-06 13:32

DRuw

Bacardi Bat on Ice:)

Ik ben ook een beetje amateuristisch aan het knoeien met de USB connectie.
Ik had eerst het normale script lopen vanaf de portal maar dat wil dus niet meer.
Ik heb nu een pi zero hangen met een dubbel relais eraan want anders startte hij inderdaad niet op.
Ik heb de groene en witte draad onderbroken maar zo te zien in de foto had dit de groene en rode moeten zijn.
Vanochtend startte namelijk wel mijn goodwe op maar de wifi maakte geen verbinding van de goodwe.
Of klopt dit?
Neemt de USB logging de wifi volledig over en krijgt de sems geen data meer binnen?
@zonoskar is het niet handig om je scriptje je goodwe te laten pingen op z'n wifi IP? Zodra hij die ziet is hij opgestart en schakel je het relais. Zoals ik het nu begrijp schakelt je script iedere 10 minuten je relais als hij offline is. Kan niet bevorderlijk zijn voor de levensduur:)

Deze signature is om volstrekt onduidelijke redenen verwijderd. PVOutput


Acties:
  • 0Henk 'm!

  • zonoskar
  • Registratie: januari 2000
  • Laatst online: 00:28

zonoskar

<-- Mika R.I.P!

Dat is wel een handige toevoeging ja. Ik kan ook op de aanwezigheid van de goodwe SSID schakelen. En ik krijg ook geen logging via sems als ik usb aansluit.

Powermac G5 casemod. Mijn PV live output.


Acties:
  • 0Henk 'm!

  • DRuw
  • Registratie: november 2009
  • Laatst online: 18-06 13:32

DRuw

Bacardi Bat on Ice:)

als je toch bezig bent met veranderen zou je ook kunnen zeggen dat hij eens per half uur ofzo het relais voor een minuutje uit zet.
Dan springt de Wifi aan en stuurt hij de totalen naar de sems portal.
Dan krijg je daar toch alle info te zien, alleen dan niet zo heel gedetailleerd.
Volgens mij hoeft het relais maar heel even uit om die verbinding tot stand te brengen want die communicatielink naar sems is zo goed als direct viel me op:)
En zo log je eigenlijk op 2 systemen tegelijk zonder significant dataverlies naar PVoutput:)

Edit: ik denk dat er dan 4 relais nodig zijn want zodra de kabel erin zit kapt hij de wifi verbinding.
Wellicht dat het met alle kabeltjes doorhalen en achter een relais zetten werkt om hem voor de gek te houden dat er geen kabel in zit maar ik zal het zo even testen door de koppeling los te halen en de rest van de stekker te laten zitten...

Edit 2: met alleen het eerste verloop eraan (die heb ik niet doorgehaald, relais zit in de microusb naar USB) dan blijft hij wel waarden naar sems sturen.
Met de witte en groene draad onderbroken start hij wel op maar legt de wifi module plat gek genoeg.
Ik heb nog een relais met 2 poorten liggen waar ik de andere eens op kan zetten... Probeer ik denk ik morgen even:)

[Voor 41% gewijzigd door DRuw op 05-06-2020 18:33]

Deze signature is om volstrekt onduidelijke redenen verwijderd. PVOutput


  • Hoekiee
  • Registratie: mei 2020
  • Laatst online: 20-10-2020
Hi allemaal,

Ik heb een GoodWe GW8K-DT en ben zelf een script in elkaar aan het zetten om de inverter (nu nog via python op mn laptop) uit te lezen via rs-485. Hiervoor bekijk ik ook vaak boven genoemde scripts en het communicatie protocol om inspiratie op te doen.

Via pyserial is het gelukt om de off-line query te doen, een nieuw register adres toe te kennen aan de inverter, running info op te vragen en vervolgens het register adres weer te verwijderen.

Nu krijg ik na "query running info" 157 bytes terug:
aa 55 0b 80 01 81 94 06 49 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 00 ca 20 02 02 00 00 00 00 00 00 00 00 00 02 c3 00 00 00 01 00 00 02 28 00 81 06 42 03 1d 00 00 00 20 00 00 14 07 0f 01 30 32 ff ff 00 00 00 05 00 00 00 00 ff ff ff ff ff ff ff ff 00 0f 00 0b 00 00 00 00 00 00 00 00 00 e9 04 9c 00 00 00 00 00 00 08 98 08 98 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff 00 00 1f 40 00 00 47 57 38 4b 2d 44 54 20 20 20 21 dc

De header source/dest adress cc fc en data_length kloppen. Vpv1 (0x06 0x49 = 160.9V) klopt ook, want ik heb mijn inverter op t moment aan een 160V power source hangen. Op t moment is hij alleen daar op aangesloten en hang hij ook nog niet aan AC. Ik wilde al testen of ik een scriptje aan de praat kan krijgen voor alles aan wordt gesloten. Nu kan ik me voorstellen dat het niet aansluiten op de AC zijde voor wat errors kan zorgen, maar met de verwachte data lengte van 66 bytes (voor 3phase) heb ik 82 bytes te veel. Weet iemand hoe ik deze extra bytes uit kan lezen? Kan er in het protocol en in bovenstaande scrips niks over vinden.

Bedankt alvast!

  • kever678
  • Registratie: augustus 2007
  • Laatst online: 00:39
Hoe komen jullie uberhaupt aan inloggegevens van de SEMS portal? Heb een nieuwbouwhuis met een GoodWe omvormer maar heb nooit gegevens gekregen voor de portal..

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
@Hoekiee Het is maar de vraag of het protocol van deze omvormer gelijk is aan het protocol waarop alle code tot nu toe gebaseerd is. Het is verder een fixed length data set, dus ook door alle errors die zouden optreden, zal er nooit meer data over de lijn gestuurd worden.

Ik zelf heb een 1 en 3 fase omvormer en voor deze omvormers is het correct.

Zijn alle overige velden ook correct gevuld in de RunningInfo structuur?

Signature van nature


  • Hoekiee
  • Registratie: mei 2020
  • Laatst online: 20-10-2020
@Sircuri Bedankt voor de snelle reactie. Ik dacht idd ook dat het fixed data was, maar kan nog steeds niet verklaren hoe ik dan aan 148 bytes aan data kom. Straks GoodWe maar eens een mailtje sturen denk ik.

Als ik de eerste 66 bytes uitlees volgens protocol krijg ik:
vpv1 161.0
vpv2 0.0
ipv1 0.0
ipv2 0.0
vac1 0.0
vac2 0.0
vac3 0.0
iac1 0.0
iac2 0.0
iac3 0.0
fac1 0.0
fac2 0.0
fac3 0.0
pac 0
workmode 2
temperature 24.6
error message [9, 17, 29]
etotal 0.0
htotal 0
tmpfaultvalue 70.7
pv1faultvalue 0.0
pv2faultvalue 0.1
line1vfaultvalue 0.0
line2vfaultvalue 55.2
line3vfaultvalue 12.9
line1ffaultvalue 16.03
line2ffaultvalue 7.97
line3ffaultvalue 0.0
gfcifaultvalue 32
eday 0.0

Van sommige waardes weet ik niet goed wat ik zou moeten verwachten, dus kan niet oordelen of alles klopt, maar vpv1 en de temperatuur lijken iig te kloppen. Gezien de source/dest adress, cc, fc, data_length en de crc ook kloppen lijkt het mij dat hij de oorspronkelijke 66 bytes door stuurt en er nog wat extra data achter plakt.

  • Sircuri
  • Registratie: oktober 2001
  • Niet online

Sircuri

Volledig Appelig

Topicstarter
Zo te zien doet je omvormer inderdaad niets. Maar als inderdaad je CRC check klopt, dan is je data gewoon correct ontvangen en ontvang je inderdaad veel meer data dan tot nu toe onderzocht is door ons "tweakers" :)

Je zou kunnen proberen om een protocol beschrijving los te peuteren van jouw model, maar geef je weinig kans. Het document wat ik toen online gevonden had, stond in koeien letters overheen geschreven dat het een intern document was dat niet voor verspreiding bedoelt was.

Signature van nature


  • Hoekiee
  • Registratie: mei 2020
  • Laatst online: 20-10-2020
Het klopt inderdaad dat de inverter verder niks doet. Hij hangt aan 1 DC voltage source en AC is niet verbonden.

Ik ben benieuwd, heb GoodWe een mail gestuurd. Mocht ik meer te weten komen zal ik jullie weer op de hoogte brengen.

  • bart1993
  • Registratie: december 2011
  • Laatst online: 03-05 22:41
Heeft iemand enig idee of er ook een Modbus RTU table bekend is voor de Goodwe inverters? probeer via een zelf bouw kastje wat data uit te lezen over de energie opbrengst, dit kastje hangt ergens buiten en stuurt via LORA data terug en de software van Jan ten Hove wil niet goed draaien op die hardware. Had al het RTU adres ingesteld maar kom er maar niet achter wat ik nou precies moet aanspreken voor de opbrengst

  • Manchu
  • Registratie: augustus 2010
  • Laatst online: 24-11-2020
Wij hebben de GoodWe 3600D-NS net zelf geplaatst maar krijgen deze niet opgestart.
Het is de RS485 versie.

Na discussie met de leverancier beweren ze dat we een RS485 connectie moeten maken anders gaat deze niet opstarten.
Is het nu echt verplicht om die RS485 fiche te connecteren met iets?

We krijgen simpelweg niks te zien, geen teken van leven. Alles uitgemeten dus normaliter geen stroom issue.

Maandag komen ze keuren, gaat spannend worden ...

Acties:
  • +1Henk 'm!
  • Pinned

  • brainball
  • Registratie: juni 2001
  • Laatst online: 19-04 15:48
Ik heb een GoodWe GW4000-DT hangen met de wifi module HF-LPB100.

GoodWe heeft daar een aangepaste webpagina ingezet die een hoop configuratie opties verstopt. Dit kan je omzijlen door de standaard webpagina erin te laden. :)

Het aanpassen van de webpagina is simpel maar kan impact op je garantie hebben.

Op de website van de leverancier kan je onder downloads de firmware voor de module vinden (http://www.hi-flying.com/hf-lpb100) een van de bestanden in de rar file in de folder webpage is de standaard webpagina configuratie. Deze kan je via de pagina IPADRESS/iweb.html uploaden.

Nadat je dit gedaan hebt krijg je de volledige configuratie te zien en kan je onderandere het standaard wifi netwerk uitzetten maar ook de waarnaar hij de data stuurt aanpassen. Zodat dit naar een eigen data server kan.

  • Lardman
  • Registratie: april 2011
  • Laatst online: 23:25
Ik heb hier een XS1500 met een nukkige WiFi die zijn AP niet meer uit zet als er verbinding is met het thuisnetwerk. De NS serie deed dit altijd wel, de XS serie daarintegen.... Zou dezelfde truuk die jij gebruikt hebt @brainball bij mij ook kunnen werken ?

2280+1730(O)+1380(plat)+880(N)+2395Wp+640Wp PV (hoezo verslaafd) 3.5kW Houtkacheltje, 2.5 kW Panasonic airco, Loria 6008 duo, sinds 1-07-2018 gasloos E-label A


  • brainball
  • Registratie: juni 2001
  • Laatst online: 19-04 15:48
Lardman schreef op vrijdag 15 januari 2021 @ 17:44:
Ik heb hier een XS1500 met een nukkige WiFi die zijn AP niet meer uit zet als er verbinding is met het thuisnetwerk. De NS serie deed dit altijd wel, de XS serie daarintegen.... Zou dezelfde truuk die jij gebruikt hebt @brainball bij mij ook kunnen werken ?
als je hetzelfde type/serie wifi module hebt wel, belangrijk is wel om zeker te stellen dat je dezelfde wifi module in je omvormer hebt zitten. In mijn geval gaf mijn asus router de model naam weer van de wifi module bij de clients waardoor ik het zeker wist. Je kan ook op basis van het mac address op een site als https://uic.win/en/mac/ checken of het inderdaad een hi-flying wifi module is.

De webpage file lijkt voor de verschillende wifi modules van hi-flying hetzelfde te zijn.

  • Lardman
  • Registratie: april 2011
  • Laatst online: 23:25
Ik ga het checken, dankjewel!

2280+1730(O)+1380(plat)+880(N)+2395Wp+640Wp PV (hoezo verslaafd) 3.5kW Houtkacheltje, 2.5 kW Panasonic airco, Loria 6008 duo, sinds 1-07-2018 gasloos E-label A


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Hoekiee schreef op woensdag 2 september 2020 @ 16:31:
Hi allemaal,

Ik heb een GoodWe GW8K-DT en ben zelf een script in elkaar aan het zetten om de inverter (nu nog via python op mn laptop) uit te lezen via rs-485. Hiervoor bekijk ik ook vaak boven genoemde scripts en het communicatie protocol om inspiratie op te doen.

Via pyserial is het gelukt om de off-line query te doen, een nieuw register adres toe te kennen aan de inverter, running info op te vragen en vervolgens het register adres weer te verwijderen.
Wat mij opvalt/verwondert/verbaast is het enorme aantal verschillende types/series inverters dat Goodwe over ons uitstort. met daarbij ook nog verschillen per land/regio voor hetzelfde type.

dit is de onderzijde van mijn inverter een GW8K-DT net als @Hoekiee .
In de USB poort kun je feitelijk alleen de WiFi of Ethernet module van Hi-Flying steken.
Dan de 2 polige M25 connector aan met de brug is voor remote shutdown. daarmee kan ik deze omvormer op afstand aan en uitzetten.
De andere 2 polige M25 connector staat in de manual vermeld als "meter of RS485". Weet iemand overigens welk fabrikaat deze connector is. Ik heb een kabeldeel nodig en kan hem op het net niet vinden.

@Hoekiee heb jij dezelfde connector als ik? heb je daar een RS485 naar ??? ethernet/usb op aangesloten en dan met een virtuele compoort de ruwe data uitgelezen?
zou je dat script willen delen, want dit is de route die ik ook zou willen bewandelen.
Als je RS485 gebruikt dan heb je waarschijnlijk geen SEMS verbinding meer via de usb=>wifi verbinding omdat iedereen hier schrijft dat je of RS485 hebt of dat de Wifi poort actief is.

plans without actions are dreams


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
No13 schreef op maandag 25 mei 2020 @ 17:12:
Ik heb ook een XS inverter en was al een tijdje aan het zoeken naar een betekenis in het TCP protocol dat ik voorbij zie komen als de inverter communiceert met de SEMS pagina.

Het is TCP 20001 op tcp.goodwe-power.com en ik herken het serienummer erin.
In een issue op de github pagina van @CodeIT zag ik dat iemand de USB poort na was gelopen en dat deze zeker NIET als USB poort gebruikt moet worden (polarisatie omgedraaid!) maar een RS232 poort is 'in disguise'

Met een logic analyser aan de RS232/USB poort zie ik wat AT commando's tussen de inverter en de wifi module, uiteindelijk zet de inverter de wifi module in 'transparent transmission' en de output wordt dan direct door de servers van Goodwe geïnterpreteerd.

De TCP packets zijn dus 1-op-1 de serial output van de inverter.

Ik zie wel mogelijkheden de HF-LPB100 te vervangen met een ESP (Geen onnodig SSID meer van de 'setup' modus waar hij niet uit wil), maar dan kan ik hem nog niet lokaal lezen/interpreteren :)
Hallo @no13
ben jij hier nog verder mee gekomen. Heel interessant om te zien dat de inverter uiteindelijk gewoon zijn seriele data op de USB poort zet. Dat zou dan betekenen dat je via een RS232 naar iets converter de ruwe data kunt opvangen.
door analyse van de scripts van @jantenhove en @hoekiee zou je daar dan zinvolle informatie van kunnen maken.

wat mij verwondert is dat alle producenten zo geheimzinnig doen over hun protocollen. Ik had hiervoor een SolarMax en heb eindeloos moeten zoeken en zeuren om dat protocol te krijgen. idem voor mijn Zehnder WTW unit.
En on the long run zijn er altijd mensen zoals jij, @Jantenhove, @hoekiee en andere die zo'n protocol ontcijferen en het dan op basis van reverse engineering licentievrij publiceren. In mijn optiek zou het een enorm marketing voordeel zijn om een hele brede en enthousiaste community te ondersteunen die jouw productgebruik leuker maken.
maar ja, waarom zou je dat doen als producent.

plans without actions are dreams


  • Robindd
  • Registratie: december 2012
  • Laatst online: 18-06 17:05
dirksenrdh schreef op zaterdag 30 januari 2021 @ 21:09:
[...]

Wat mij opvalt/verwondert/verbaast is het enorme aantal verschillende types/series inverters dat Goodwe over ons uitstort. met daarbij ook nog verschillen per land/regio voor hetzelfde type.
[Afbeelding]
dit is de onderzijde van mijn inverter een GW8K-DT net als @Hoekiee .
In de USB poort kun je feitelijk alleen de WiFi of Ethernet module van Hi-Flying steken.
Dan de 2 polige M25 connector aan met de brug is voor remote shutdown. daarmee kan ik deze omvormer op afstand aan en uitzetten.
De andere 2 polige M25 connector staat in de manual vermeld als "meter of RS485". Weet iemand overigens welk fabrikaat deze connector is. Ik heb een kabeldeel nodig en kan hem op het net niet vinden.

@Hoekiee heb jij dezelfde connector als ik? heb je daar een RS485 naar ??? ethernet/usb op aangesloten en dan met een virtuele compoort de ruwe data uitgelezen?
zou je dat script willen delen, want dit is de route die ik ook zou willen bewandelen.
Als je RS485 gebruikt dan heb je waarschijnlijk geen SEMS verbinding meer via de usb=>wifi verbinding omdat iedereen hier schrijft dat je of RS485 hebt of dat de Wifi poort actief is.
Ik heb de 6kW versie, maar verder lijkt die identiek.
De connectors zaten gewoon bij de omvormer in de doos, dus welke dat is heb ik geen benul van.
Heb het verbonden met een RS485 to USB stick, en kan de data zonder problemen via Node Red benaderen. Doe er alleen nog niets mee, dus heb geen flow of iets dergelijks.
Daarnaast snap ik niet wat je bedoeld mbt de Wifi OF/OF. Dat is bij deze omvormer juist EN/EN. Juist omdat je de wifi poort in takt laat.

Waarom je niets aan die wifi kan hangen: + en - draden zijn daar omgedraaid van 8)7

PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Sleeuwijk | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Robindd schreef op zondag 31 januari 2021 @ 13:21:
[...]


Ik heb de 6kW versie, maar verder lijkt die identiek.
De connectors zaten gewoon bij de omvormer in de doos, dus welke dat is heb ik geen benul van.
Heb het verbonden met een RS485 to USB stick, en kan de data zonder problemen via Node Red benaderen. Doe er alleen nog niets mee, dus heb geen flow of iets dergelijks.
Daarnaast snap ik niet wat je bedoeld mbt de Wifi OF/OF. Dat is bij deze omvormer juist EN/EN. Juist omdat je de wifi poort in takt laat.

Waarom je niets aan die wifi kan hangen: + en - draden zijn daar omgedraaid van 8)7
thnx. Ik heb geen nieuwe omvormer. dit is een inruilertje. werkt verder prima maar de doos met toebehoren ontbreekt :-(
en fijn dat bij deze versie wifi en rs485 naast elkaar kunnen werken.

plans without actions are dreams


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Ik krijg net van Goodwe BNL de registermap voor het modbus protocol toegestuurd. als iemand interesse heeft stuur me maar een PMmetje

plans without actions are dreams


  • Robindd
  • Registratie: december 2012
  • Laatst online: 18-06 17:05
dirksenrdh schreef op maandag 1 februari 2021 @ 16:18:
Ik krijg net van Goodwe BNL de registermap voor het modbus protocol toegestuurd. als iemand interesse heeft stuur me maar een PMmetje
Ik had hem ook al gekregen paar maanden terug, even niet aan gedacht hier een bericht achter te laten.. Was eerst onmogelijk, geheim etc. Toen toch ineens niet ..

PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Sleeuwijk | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
@dirksenrdh Wat mij betreft mag dat gewoon hier op Tweakers gedeeld worden hoor, hoeft niet via DM.
Staat het gelijk veiliggesteld voor de toekomst.

[Voor 63% gewijzigd door ThinkPad op 01-02-2021 16:51]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Ik ben met mijn XS inverter (nog) niet verder gekomen. De binaire blob heb ik niet kunnen correleren aan de hex waarden van mijn omvormer helaas.
@Robindd Voor welk type inverter was die registermap?
@ThinkPad Bedankt voor de ping! Helaas ging het blog artikel waar je op Github naar verwees niet om dezelfde omvormer.

  • Robindd
  • Registratie: december 2012
  • Laatst online: 18-06 17:05
ThinkPad schreef op maandag 1 februari 2021 @ 16:48:
@dirksenrdh Wat mij betreft mag dat gewoon hier op Tweakers gedeeld worden hoor, hoeft niet via DM.
Staat het gelijk veiliggesteld voor de toekomst.
Hoe kun je hier een document opslaan en permanent delen? :?

PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Sleeuwijk | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D


  • Robindd
  • Registratie: december 2012
  • Laatst online: 18-06 17:05
No13 schreef op vrijdag 5 februari 2021 @ 10:19:
Ik ben met mijn XS inverter (nog) niet verder gekomen. De binaire blob heb ik niet kunnen correleren aan de hex waarden van mijn omvormer helaas.
@Robindd Voor welk type inverter was die registermap?
@ThinkPad Bedankt voor de ping! Helaas ging het blog artikel waar je op Github naar verwees niet om dezelfde omvormer.
Geen idee.. Alle?

PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Sleeuwijk | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Robindd schreef op vrijdag 5 februari 2021 @ 14:34:
[...]


Hoe kun je hier een document opslaan en permanent delen? :?
Die mogelijkheid heeft Tweakers niet, maar screenshots kan wel. Of je moet het ding extern even ergens neerzetten en linkje plaatsen.



@No13 Ik heb inmiddels ook een GW3000-XS (ik werd met het thuiswerken gek van het geklik-klak van mijn 3000NS rond schemering of bij slecht weer, zou met de XS-serie stukken beter moeten zijn) dus kan je meehelpen met uitpluizen. Maar ik stel voor dat we dat via het Github issue laten lopen zodat ook Engelse lezers er wat aan hebben/mee kunnen helpen.

Ben ondertussen ook nog steeds benieuwd naar het script van @geerttttt, want ik begrijp dat hij het al een aantal jaren werkend heeft. Volgens mij is dat feitelijk dit verhaal, maar bij dat blog mist eigenlijk het vervolg waarmee je de data ook daadwerkelijk logt. @geerttttt Zou je alsjeblieft jouw script ergens online willen zetten? Zou je mij en vast vele anderen heel blij mee maken _/-\o_

[Voor 61% gewijzigd door ThinkPad op 05-02-2021 20:26]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

ThinkPad schreef op vrijdag 5 februari 2021 @ 16:03:
[...]

Die mogelijkheid heeft Tweakers niet, maar screenshots kan wel. Of je moet het ding extern even ergens neerzetten en linkje plaatsen.



@No13 Ik heb inmiddels ook een GW3000-XS (ik werd met het thuiswerken gek van het geklik-klak van mijn 3000NS rond schemering of bij slecht weer, zou met de XS-serie stukken beter moeten zijn) dus kan je meehelpen met uitpluizen. Maar ik stel voor dat we dat via het Github issue laten lopen zodat ook Engelse lezers er wat aan hebben/mee kunnen helpen.

Ben ondertussen ook nog steeds benieuwd naar het script van @geerttttt, want ik begrijp dat hij het al een aantal jaren werkend heeft. Volgens mij is dat feitelijk dit verhaal, maar bij dat blog mist eigenlijk het vervolg waarmee je de data ook daadwerkelijk logt. @geerttttt Zou je alsjeblieft jouw script ergens online willen zetten? Zou je mij en vast vele anderen heel blij mee maken _/-\o_
Kan ik je voorlopig blij maken met een deel van het script wat ik zo kan pasten zonder dat er persoonlijke data van mij in zit?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
echo "Vpv1: ".(hexdec(substr($file, 0, 4))/10)."|";
echo "Vpv2: ".(hexdec(substr($file, 4, 4))/10)."| ";
echo "Ipv1: ".(hexdec(substr($file, 8, 4))/10)." | ";
echo "Ipv2: ".(hexdec(substr($file, 12, 4))/10)." | ";
echo "cur: ".hexdec(substr($file, 28, 4))." | "; #curr usage
echo "Etotal: ".(hexdec(substr($file, 40, 16))/10)." | ";
//echo hexdec(substr($file, 56, 8))." | ";
echo "Etoday: ".(hexdec(substr($file, 88, 4))/10)." | ";
echo "Vac: ".(hexdec(substr($file, 16, 4))/10)." | ";
echo "Iac: ".(hexdec(substr($file, 20, 4))/10)." | ";
echo "Fac: ".(hexdec(substr($file, 24, 4))/100)." | ";
echo "Temp: ".(hexdec(substr($file, 36, 4))/10)." | ";
echo "Htotal: ".(hexdec(substr($file, 56, 8)))." | ";
echo "?: ".(hexdec(substr($file, 80, 4)))." | ";
echo "Generating: ".(hexdec(substr($file, 34, 2)))." | "; # Generating or waiting


PHP dus, je vangt de body op en zoals je ziet pak ik gewoon een klein stukje ervan elke keer en zet ik het om naar decimaal.

Ik ben zelf momenteel druk om op een of andere manier mijn wifi module weer werkend te krijgen. Als iemand mij een werkende firmware kan geven dan maak ik instant een compleet script 8)

Oost west, 127.0.0.1 best!


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Nog geen reactie van Goodwe?

Ik wil wel kijken of ik een dump van de mijne kan maken, maar kan zo 123 niet vinden of en hoe dat zou moeten.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

ThinkPad schreef op vrijdag 5 februari 2021 @ 21:44:
Nog geen reactie van Goodwe?

Ik wil wel kijken of ik een dump van de mijne kan maken, maar kan zo 123 niet vinden of en hoe dat zou moeten.
Nog geen reactie nee... hoop dat het nog gaat komen. Nee ik ook niet, gok shielding van de module halen en de geheugenchip uitlezen ;)

Oost west, 127.0.0.1 best!


  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

linksonderin zit de spi memory chip.. jij woont zeker niet in de regio Twente? Ik heb wel tools om dit uit te lezen...

Oost west, 127.0.0.1 best!


Acties:
  • +1Henk 'm!
  • Pinned

  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

Belofte maakt schuld. Hierbij het script wat ik gebruik. Je moet de www.goodwe-power.com dns naam uiteraard omzetten naar je eigen webserver. Vervolgens een .htaccess aanmaken met dit:

code:
1
2
3
4
5
6
7
8
RewriteEngine on
RewriteBase /

# only rewrite if the requested file doesn't exist
RewriteCond %{REQUEST_FILENAME} !-s 

# pass the rest of the request into index.php to handle     
RewriteRule ^Acceptor/(.*)$ /Goodwe/logger.php/$1 [L]


Vervolgens het logger.php script:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
$filename = './dumprequest'.time().'.txt';
$file = file_get_contents('php://input');

//strip useless data
$file = substr($file, 20);
if ($file != "") {
    //echo date("d-m H:i:s", substr($filename,11, -4))." - ";
    //strip useless data
    $file = substr($file, 0, -5);
    $file = bin2hex($file);
    /*echo $file;
    echo "-";
    echo "Vpv1: ".(hexdec(substr($file, 0, 4))/10)."|";
    echo "Vpv2: ".(hexdec(substr($file, 4, 4))/10)."| ";
    echo "Ipv1: ".(hexdec(substr($file, 8, 4))/10)." | ";
    echo "Ipv2: ".(hexdec(substr($file, 12, 4))/10)." | ";
    echo "cur: ".hexdec(substr($file, 28, 4))." | "; #curr usage
    echo "Etotal: ".(hexdec(substr($file, 40, 16))/10)." | "; #eTotal :)
    //echo hexdec(substr($file, 56, 8))." | ";
    echo "Etoday: ".(hexdec(substr($file, 88, 4))/10)." | "; #eToday
    echo "Vac: ".(hexdec(substr($file, 16, 4))/10)." | ";
    echo "Iac: ".(hexdec(substr($file, 20, 4))/10)." | ";
    echo "Fac: ".(hexdec(substr($file, 24, 4))/100)." | ";
    echo "Temp: ".(hexdec(substr($file, 36, 4))/10)." | ";
    echo "Htotal: ".(hexdec(substr($file, 56, 8)))." | ";
    echo "?: ".(hexdec(substr($file, 80, 4)))." | ";
    echo "Generating: ".(hexdec(substr($file, 34, 2)))." | "; # Generating or waiting
    echo "\n";*/
    mysql_query("INSERT INTO `zonnepanelen` (`date`, `vpv1`, `vpv2`, `ipv1`, `ipv2`, `cur`, `etotal`, `etoday`, `vac`, `iac`, `fac`, `temp`, `htotal`, `generating`, `raw`)
    VALUES
        (NOW(),
        '".(hexdec(substr($file, 0, 4))/10)."',
        '".(hexdec(substr($file, 4, 4))/10)."',
        '".(hexdec(substr($file, 8, 4))/10)."',
        '".(hexdec(substr($file, 12, 4))/10)."',
        '".hexdec(substr($file, 28, 4))."',
        '".(hexdec(substr($file, 40, 16))/10)."',
        '".(hexdec(substr($file, 88, 4))/10)."',
        '".(hexdec(substr($file, 16, 4))/10)."',
        '".(hexdec(substr($file, 20, 4))/10)."',
        '".(hexdec(substr($file, 24, 4))/100)."',
        '".(hexdec(substr($file, 36, 4))/10)."',
        '".(hexdec(substr($file, 56, 8)))."',
        '".(hexdec(substr($file, 34, 2)))."',
        'Url: ".$_SERVER['REQUEST_URI']." - ".$file."');
    ");
    if(date('i')%5==0){
        $data = [];
        $data["d"] = date("Ymd"); //yyyymmdd
        $data["t"] = date("H:i"); //hh:mm
        $data["v1"] = (hexdec(substr($file, 88, 4))*100); // watt hours
        $data["v2"] = hexdec(substr($file, 28, 4)); // watt
        $data["v6"] = ((hexdec(substr($file, 0, 4))/10)+(hexdec(substr($file, 4, 4))/10));  // voltage
        $data["v5"] = (hexdec(substr($file, 36, 4))/10); // degrees
        $headers = "Content-type: application/x-www-form-urlencoded\r\n";
        $headers .= "X-Pvoutput-Apikey: PVOUTPUTAPIKEYHIER\r\n";
        $headers .= "X-Pvoutput-SystemId: SYSTEMIDHIER\r\n";
        $options = [
            "http" => [
                "header" => $headers,
                "method" => "POST",
                "content" => http_build_query($data)
            ]
        ];
        $context = stream_context_create($options);
        $output = file_get_contents("http://pvoutput.org/service/r2/addstatus.jsp", false, $context);
    }
}


$ch = curl_init();

curl_setopt($ch, CURLOPT_URL,            "http://goodwe-power.com".$_SERVER['REQUEST_URI'] );
//curl_setopt($ch, CURLOPT_URL,            "http://goodwe-power.com/Acceptor/DataCRC" );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
curl_setopt($ch, CURLOPT_POST,           1 );
curl_setopt($ch, CURLOPT_POSTFIELDS,     file_get_contents('php://input'));
curl_setopt($ch, CURLOPT_HTTPHEADER,     array('Connection: Close'));

$result=curl_exec ($ch);
curl_close($ch);
//$result = substr($result, 0, -6);
//                                              Extra sec ?? (0xaa)   eindkarakter?
//$result = $result.chr(0x00).chr(0x00).chr(0x01).chr(0xFF).chr(0xaa).chr(0x00);
if ($_SERVER['REQUEST_URI'] == "/Acceptor/GetSendInterval") {
    file_put_contents($filename, file_get_contents('php://input')."\n\nreturn: ".$result);
}
print_r($result);

In mijn geval stuur ik het naar mijn mysql server en naar pvoutput.org. Doe hiermee wat je zelf wilt natuurlijk ;)

[Voor 1% gewijzigd door ThinkPad op 06-02-2021 15:17. Reden: syntax-highlighting op code :)]

Oost west, 127.0.0.1 best!


  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Een verschil dat direct opvalt is dat de XS van mij niet op poort 80 communiceert maar op poort 20001. Ook niet als HTTP protocol.

Als ik probeer de bytes in mijn pakketje te vertalen komt er niets uit wat lijkt op de daadwerkelijke waarden helaas.

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Klopt, bij mij gaat het ook over 20001. Ik heb een DNAT-regel gemaakt in m'n router om het verkeer om te leiden naar de poort waar m'n webserver op draait.

Maar ik krijg de data nog niet in boven genoemde script binnen. Ik vermoed ook dat het niet helemaal een zuiver POST-request is, gezien ik HTTP 400 en 408 errors terugzie ik in de Apache logs:

192.168.6.15 - - [07/Feb/2021:16:46:17 +0100] "POSTGW" 400 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:46:37 +0100] "POSTGW" 400 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:47:29 +0100] "-" 408 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:47:57 +0100] "-" 408 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:48:17 +0100] "POSTGW" 400 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:48:37 +0100] "POSTGW" 400 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:49:29 +0100] "-" 408 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:49:37 +0100] "POSTGW" 400 0 "-" "-"
192.168.6.15 - - [07/Feb/2021:16:50:29 +0100] "-" 408 0 "-" "-"


Heb je al eens geprobeerd de werkwijze zoals hier te volgen? Wireshark even laten lopen en dan een export van de SEMS portal ernaast leggen. Een bekende waarde (liefst zonder decimalen, makkelijker) even omzetten naar hex en dan kijken of je het terugvind in de Wireshark logging.

Het zou best kunnen dat het script niet werkt met een XS omdat de data op andere plekken staat. Maar vermoed dat dat een kwestie van finetuning is.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Ik heb al eens eerder aangegeven dat de data een hoge entropie lijkt te hebben. Dat zou compressie of encryptie impliceren. Het totaal is altijd 262 bytes waardoor compressie niet waarschijnlijk is.
Afgezien van het serienummer lijkt er weinig/niets 'leesbaar' te zijn omdat tussen 2 berichten niet 2 bytes gelijk lijken te blijven...

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Dat over de poort was voor mij een trigger om even te zoeken, ik vond in een presentatie het volgende:


Ben wel benieuwd wat voor omvormer (en hoe oud) @geerttttt dan heeft en of dat bij hem over poort 80 het internet op gaat. Mogelijk is het verkeer bij onze XS inderdaad anders, al beginnende bij die poort 20001.

Wat je zegt over data niet gelijk lijkt inderdaad wel te kloppen ja... balen.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

Tja, mijn inverter heb ik gekocht halverwege 2018. Dus dat kan zeker kloppen. Dan zou de inverter zelf het versleutelen bij jullie. De module doet dat waarschijnlijk niet.

Interessant. Is er een deel wel leesbaar? Het is tcp dus hij zou met een manier moeten weten hoe hij het moet ontsleutelen. Bijv via je serienummer als die wel plain text is.

Oost west, 127.0.0.1 best!


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Als je de omvormer wil koppelen aan de SEMS Portal dan moet je ook de 'Check Code' opgeven. Dit is een code van 6 cijfers (begint bij mij met een nul) die op de sticker op de omvormer staat geprint.

Mocht het TCP-bericht versleuteld zijn dan wordt het wellicht daarmee gedaan? Het serienummer zou ik raar vinden, omdat die gewoon in plaintext leesbaar is.

Heb mijn Wireshark output even naast de Excel export gelegd. Maar de truuk van deze pagina werkt bij mijn data niet. Ik zie geen waardes op dezelfde plekken in de hex die wijzigen. Niet bij gehele getallen die ik in de hex variant opzoek, ook niet met waarden met komma's die ik x10 doe (om er een geheel getal van te maken) en dan opzoek als hex variant.

Heb wel nog iets van een timestamp gevonden, direct na het serienummer staat dan bijv. '15 0c' wat staat voor 21 12. De 21 zijn de minuten, komt overeen met tijdstip in Wireshark en loopt ook op. Die 12 is vermoed ik de secondes?, Daarna 20 nullen en dan weer deze minuut en seconde(?). Voor de rest helaas geen oplopende/zelfde waarden kunnen spotten tussen de dumps ;(

[Voor 48% gewijzigd door ThinkPad op 07-02-2021 22:58]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • geerttttt
  • Registratie: oktober 2006
  • Laatst online: 18-06 13:56

geerttttt

Manisch positief

ThinkPad schreef op zondag 7 februari 2021 @ 21:37:
Als je de omvormer wil koppelen aan de SEMS Portal dan moet je ook de 'Check Code' opgeven. Dit is een code van 6 cijfers (begint bij mij met een nul) die op de sticker op de omvormer staat geprint.

Mocht het TCP-bericht versleuteld zijn dan wordt het wellicht daarmee gedaan? Het serienummer zou ik raar vinden, omdat die gewoon in plaintext leesbaar is.
Serienummer kan wel, als ze een vorm van preshared key hebben. dus als ze bij Goodwe bijhouden welke key ze op welk apparaat geflashed hebben, of als de key te berekenen is a.d.h.v. het serial no.
Heb mijn Wireshark output even naast de Excel export gelegd. Maar de truuk van deze pagina werkt bij mijn data niet. Ik zie geen waardes op dezelfde plekken in de hex die wijzigen. Niet bij gehele getallen die ik in de hex variant opzoek, ook niet met waarden met komma's die ik x10 doe (om er een geheel getal van te maken) en dan opzoek als hex variant.

Heb wel nog iets van een timestamp gevonden, direct na het serienummer staat dan bijv. '15 0c' wat staat voor 21 12. De 21 zijn de minuten, komt overeen met tijdstip in Wireshark en loopt ook op. Die 12 is vermoed ik de secondes?, Daarna 20 nullen en dan weer deze minuut en seconde(?). Voor de rest helaas geen oplopende/zelfde waarden kunnen spotten tussen de dumps ;(
je moet idd proberen je hex te splitten en te kijken wat oploopt idd. Hoeveel van het bericht is elke keer hetzelfde? Of is het bericht elke keer compleet anders?

Oost west, 127.0.0.1 best!


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Het laatste (alles na die timestamp achter het serienummer) en ook gelijk grootste deel van het bericht is telkens verschillend, ik zie daar geen overeenkomsten/oplopende waarden meer in helaas.

Je zou zeggen dat het nooit vreselijk ingewikkeld kan zijn gezien de geringe omvang van de datapakketjes. Helaas heb ik geen achtergrond in deze materie dus ik weet niet goed waar te beginnen. Heb daarom ook maar even een apart topic geopend in de programmeerhoek op Tweakers: TCP data ontcijferen Goodwe zonnepanelen omvormer

Ik heb daar ook mijn Wireshark capture + Excel export gelinkt, mocht er iemand daar in willen neuzen.

[Voor 18% gewijzigd door ThinkPad op 08-02-2021 09:17]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
In elk geval voor de MT en DT series

plans without actions are dreams


Acties:
  • +3Henk 'm!
  • Pinned

  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Ik ben inmiddels wel veel verder gekomen met mijn GW8K-dt
bij Alie een HF2211 RS485 naar Wifi en ethernet converter gekocht. Die is net binnen.
De ontbrekende connectoren voor de omvormer zijn van ExceedConn (EP-serie)
Verder had ik de basale python programmatuur al voorbereid, en wonder boven wonder werkte het in één keer.
Dus ik heb nu én de wifi adapter van Goodwe in de "USB" connector zitten en die stuurt elke x minuten een update naar de SEMS portal zodat mijn pv leverancier de installatie vanuit zijn kant kan monitoren.
Én ik heb de rs485 koppeling operationeel zodat ik elke seconde mijn raspberry Pi met Domotics de actuele waarden kan laten uitlezen.
De Python software is nog niet in een stadium dat het de delen valt maar er is wel progressie.

plans without actions are dreams


  • Robindd
  • Registratie: december 2012
  • Laatst online: 18-06 17:05
dirksenrdh schreef op donderdag 18 februari 2021 @ 12:37:
Ik ben inmiddels wel veel verder gekomen met mijn GW8K-dt
bij Alie een HF2211 RS485 naar Wifi en ethernet converter gekocht. Die is net binnen.
De ontbrekende connectoren voor de omvormer zijn van ExceedConn (EP-serie)
Verder had ik de basale python programmatuur al voorbereid, en wonder boven wonder werkte het in één keer.
Dus ik heb nu én de wifi adapter van Goodwe in de "USB" connector zitten en die stuurt elke x minuten een update naar de SEMS portal zodat mijn pv leverancier de installatie vanuit zijn kant kan monitoren.
Én ik heb de rs485 koppeling operationeel zodat ik elke seconde mijn raspberry Pi met Domotics de actuele waarden kan laten uitlezen.
De Python software is nog niet in een stadium dat het de delen valt maar er is wel progressie.
Heel nice! Ik probeer het via Node Red te doen via een RS485 -> USB adapter ook. Heb een andere adapter besteld omdat 2 aparaten in die adapter nog niet helemaal lekker werkte.
Ik heb bij de Goodwe wel het nadeel gevonden dat er niets meer binnen komt om het moment dat die uit staat. Je gaat dus ineens van opbrengst naar niets en daarmee errors. Moet ik nog eens aan gaan werken. Het is jammer dat je de status dus niet meer kan opvragen op het moment dat hij uit staat, anders zou je kunnen zeggen -> status = off dan alles is 0 of iets in die richting..

PVOutput Youless - 9600Wp OZO+WNW | 38° | Goodwe GW6K-DT | Sleeuwijk | Mitsubishi PUHZ-SW75YAA + ERSD-VM2D


  • appieroos
  • Registratie: januari 2013
  • Laatst online: 14-05 19:10
(jarig!)
Goedendag, afgelopen vrijdag is onder garantie mijn omnik omvormer door een GW2000-XS vervangen. Maar mijn omvormer send ook op de 20001 port data inplaats van port 80 terwijl ik begrepen had dat alles na 2019 nu via poort 80 zou moeten gaan. Ik heb firmware V1.12.13 en vroeg me af of ik door het updaten van mijn firmware naar de oplossing via port 80 van geert kan komen. Ik ga mijzelf verdiepen in het datablok of ik hier patronen/waardes uit kan halen maar begreep dat nog niemand dit hier gedaan/gelukt is.
Hopelijk gaat dit lukken.

[Voor 0% gewijzigd door appieroos op 18-02-2021 15:03. Reden: Firmware versie was verkeerd.]


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Robindd schreef op donderdag 18 februari 2021 @ 13:26:
[...]


Heel nice! Ik probeer het via Node Red te doen via een RS485 -> USB adapter ook. Heb een andere adapter besteld omdat 2 aparaten in die adapter nog niet helemaal lekker werkte.
Ik heb bij de Goodwe wel het nadeel gevonden dat er niets meer binnen komt om het moment dat die uit staat. Je gaat dus ineens van opbrengst naar niets en daarmee errors. Moet ik nog eens aan gaan werken. Het is jammer dat je de status dus niet meer kan opvragen op het moment dat hij uit staat, anders zou je kunnen zeggen -> status = off dan alles is 0 of iets in die richting..
Wat ik bij het gw2pvo script (die scraped de portal, niet meest wenselijke optie) zie is dat je een locatie meegeeft. Het script weet dan hoe laat de zon opkomt en ondergaat. Buiten dat window wordt het scrapen gepauzeerd. Zoiets zou ik in jouw geval ook in Node-RED toevoegen, genoeg astro/scheduler modules. Heb zelf node-red-contrib-schedex wel eens gebruikt om verlichting aan te laten gaan bij zonsondergang.


@appieroos Welkom. Het updaten van de firmware van de wifi-module zal geen verschil maken. Er is al door @No13 uitgepluisd dat de data in de omvormer zelf al versleuteld wordt. De wifi-module is niets meer dan een 1:1 doorgeefluik.

[Voor 16% gewijzigd door ThinkPad op 18-02-2021 15:09]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • appieroos
  • Registratie: januari 2013
  • Laatst online: 14-05 19:10
(jarig!)
Goedendag, had het misschien wat duidelijker moeten zeggen, maar dit is de firmware versie van de omvormer en dus niet van de wifi module welke blijkbaar een serieel naar tcp 1 op 1 omzetter is.

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Ik heb v1.02.10 op mijn GW3000-XS staan en mij lukt het niet. Jij hebt al een behoorlijk nieuwere firmware dan.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • appieroos
  • Registratie: januari 2013
  • Laatst online: 14-05 19:10
(jarig!)
Als de wifi module een 1:1 omzetting is zou de manier van communiceren dan door de firmware van de GW2000-XS geregeld moeten worden. Van wanneer is jouw omvormer? Heb gezocht naar een produktie datum maar deze niet kunnen vinden las wel iets dat dit uit een nummer gehaald kon worden maar kon ook niet vinden uit welk nummer dan, misschien dat dit in het serienummer is verwerkt. Ik heb hele thread doorgelezen, en heb wel gelezen dat er een vermoeden is van een vorm van encryptie maar niet begrepen dat dit een zekerheid was. Zat zelf te denken om een python script te maken wat op 20001 luisterd en dit dan doorstuurd naar tcp.goodwe-power.com en tegelijkertijd te loggen om zo te zien waar de data veranderd en dit te vergelijken met een export van het sems portal, ben niet helemaal vreemd met coden, maar is zeker niet mijn expertise.

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Ja dat klopt, het gebeurt intern in de omvormer. Helaas heb ik van de XS-omvormer geen firmware bestanden, anders kon ik eens kijken of dat te reverse engineeren viel.

Ik vermoed dat het bouwjaar karakter 9 en 10 is in het serienummer. Dat lijkt wel te kloppen met de twee omvormers die ik heb gechecked: xxxxxxxx20xxxxxx

Wat je zegt over het onderscheppen van het verkeer heb ik al gedaan, met Wireshark. Ik heb daar hier een aparte discussie over lopen: TCP data ontcijferen Goodwe zonnepanelen omvormer
Helaas is er, op het serienummer na wat duidelijk leesbaar is in de data, verder niet echt regelmaat o.i.d. te ontdekken.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Robindd schreef op donderdag 18 februari 2021 @ 13:26:
[...]


Heel nice! Ik probeer het via Node Red te doen via een RS485 -> USB adapter ook. Heb een andere adapter besteld omdat 2 aparaten in die adapter nog niet helemaal lekker werkte.
Ik heb bij de Goodwe wel het nadeel gevonden dat er niets meer binnen komt om het moment dat die uit staat. Je gaat dus ineens van opbrengst naar niets en daarmee errors. Moet ik nog eens aan gaan werken. Het is jammer dat je de status dus niet meer kan opvragen op het moment dat hij uit staat, anders zou je kunnen zeggen -> status = off dan alles is 0 of iets in die richting..
het voordeel van een HF2211 is dat het ethernet device gewoon altijd bereikbaar blijft. dus ik krijg geen foutmeldingen in mijn Python programma. het enige is dat er geen data meer binnenkomt maar als ik een if statement leg op de lengte van de response is het eenvoudig om aan te geven dat er iets anders moet gebeuren als die lengte nul is.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        logger.info ('Start ReadCycle')
        logger.info ("Wait for response to be acquired or the connection to time out")
        #print ("response: ", response[0:3])
        while len(response) != payload and time.time() - start < (self.timeout):
            response += serialConnection.read()
            #print (time.time(), response, len(response))
            try:
                payload = response[2] + 5
                #print (payload)
            except:
                pass          
        serialConnection.close()
        if payload == 3:
            response = bytes (128)
        self.response = response [3:-2]
        time.sleep(1)


dit werkt bij mij als een zonnetje. Ik krijg elke seconde mijn data binnen in mijn Domoticz systeem en als de inverter uit staat en er geen bytes binnenkomen in de response worden alle variabelen op 0x00 gezet.

[Voor 30% gewijzigd door dirksenrdh op 19-02-2021 12:18]

plans without actions are dreams


  • appieroos
  • Registratie: januari 2013
  • Laatst online: 14-05 19:10
(jarig!)
[b]Ik vermoed dat het bouwjaar karakter 9 en 10 is in het serienummer. Dat lijkt wel te kloppen met de twee omvormers die ik heb gechecked: xxxxxxxx20xxxxxx

Wat je zegt over het onderscheppen van het verkeer heb ik al gedaan, met Wireshark. Ik heb daar hier een aparte discussie over lopen: TCP data ontcijferen Goodwe zonnepanelen omvormer
Helaas is er, op het serienummer na wat duidelijk leesbaar is in de data, verder niet echt regelmaat o.i.d. te ontdekken.
Ik denk dat dit wel kan kloppen, dan zou mijn omvormer in 2020 geproduceerd zijn. Ik heb tot op heden ook vrij weinig oplopende waarde's gezien in de datapakketjes. Als het encrypt is verwacht ik wel iets simpels want er is niet veel rekenkracht aanwezig. Voorlopig haal ik nu mijn waarde's op van de semsportal maar deze beweerd bijvoorbeeld dat mijn omvormer nog online is terwijl dit al lang niet meer het geval. En we gaan naar je nieuwe thread toe.

  • dirksenrdh
  • Registratie: oktober 2017
  • Laatst online: 28-05 15:07
Ik ben waarschijnlijk de enige of een van de weinigen die de informatie van zijn omvormer op 2 manieren uitleest.
  • De data wordt verzonden naar het SEMS portal
  • Ik lees de data rechtstreeks uit de inverter via een RS485/modbus interface
als ik een aantal waarded vergelijk is er één substantieel verschil en dat is de dagopbrengst e-Day.
gisteren gaf het SEMS portal een 10% hogere opbrengst voor de dag in vergelijking met de waarde die ik direct uit de inverter lees.
vandaag geeft het SEMS portal een 2,5% lager opbrengst.
Waarschijnlijk berekent het SEMS portal de dagopbrengst zelf op basis van Pac en tijd en als je dan een samplerate van 5 minuten hebt kunnen dit soort verschillen ontstaan en opzichte van de continue vermogensberekening die door de inverter zelf worden gedaan.

[Voor 58% gewijzigd door dirksenrdh op 27-02-2021 12:22]

plans without actions are dreams


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Er zit trouwens een bug in de SEMS Portal wanneer je data gaat exporteren naar .xls. De meest nieuwe data onderaan in de export is namelijk van een uur geleden als je de eindtijd op de default (=huidige tijdstip) laat staan.

Als je namelijk i.p.v. de huidige tijd, 23:59:59 invult (zodat je alle data van vandaag hebt), dan heb je ineens meer data (met tijdstip een uur vooruit t.o.v. huidig) dan in je eerste export. Gaat ergens iets niet goed met een tijdzone omzetting frontend/backend denk ik.

Vergelijk je eerste export (met eindtijdstip huidig) maar eens met tweede export (eindtijdstip 23:59) en kijk bijv. naar oplopende tellers zoals dagopbrengst/bedrijfsurenteller/totaalopbrengst.

:+

[Voor 11% gewijzigd door ThinkPad op 27-02-2021 14:11]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • hansdegit
  • Registratie: februari 2005
  • Laatst online: 20:54
dirksenrdh schreef op maandag 1 februari 2021 @ 16:18:
Ik krijg net van Goodwe BNL de registermap voor het modbus protocol toegestuurd. als iemand interesse heeft stuur me maar een PMmetje
@dirksenrdh

Ik ben ook sinds kort in het bezit van de 10K variant. 'k Wil die ook via RS-485 uitlezen. 'k Spreek een paar woordjes Python. Wat zijn de te volgen stappen? Wil iemand zijn script delen?

Gitje's Stroomfabriek: 6095 Wp Yingli Panda, 2520 Wp Suntech, Tigo Monitoring & Schaduwmanagement, Kostal Piko 10.1


  • wlmpie
  • Registratie: oktober 2007
  • Laatst online: 02:51
ik overweeg ook om mijn goodwe 2500XS te gaan uitlezen via de rs485 poort en daarnaast de wifi verbinding met sems portal gewoon intact te laten. Nou kun je heel goedkoop zo'n usb stickje kopen met twee connecties A en B voor op de rs485 interface. Is dat werkend te krijgen met domoticz en modbus plugin?
Mijn raspberrypi zit in de metekast vast aan de slimme meter en de goodwe 2500Xs zit op zolder, maar ik heb nog een loze telefoonlijn tussen zolder en meterkast en daarlangs kan ik het rs485 signaal bij de raspberry pi krijgen.

Of is zo'n HF2211 toch handiger? Ik heb ook wifi op zolder, kun je gewoon inloggen op een soort webservertje?en hoe lees je dat dan uit via domoticz?

Misschien wil ik in de toekomst een neieuwe centrale afzuiging met modbus aansluiting en tevens met modbus relais het zonnescherm gaan bedienen. Wat kan ik dan het beste kopen?

Kortom wil iemand met een werkende setup s.v.p. even alle details delen inzake hardware, software en gebruikte plugins, scripts etc.
Ik snap genoeg van code om een scriptje te kunnen modificeren, maar zelf schrijven is nog een brug te ver.

Ik gebruik nu youless, slimme meter P1 data (met bug waardoor hij geen teruglever vermogen geeft, dus daarvoor gebruik ik de youless) en semsportal data, maar de verschillende updatefrequenties maken het berekenen van een accuraat verbruik (Watt) nagenoeg onmogelijk. Ik krijg veel te veel pieken en dalen. Die zou ik kunnen smoothen, maar dan moet ik over minimaal een kwartier gaan smoothen en dan blijft er weinig zinnigs over van het signaal.

  • msatter
  • Registratie: maart 2021
  • Niet online
Ik ben nieuw met dit en ik heb hier een 2000xs hangen. Nu wilde ik niet Sems gebruiken en ikan al veel zien in een andere APP SolarGo ook van Goodwe.

Als je je omvormer aan de router heb zitten via WiFi dan kun je nog steeds de omvormer uitlezen met SolarGo.

Ik neem aan dat dit via UDP/8999 of die andere UDP poort in de 40000.

De App zoekt naar AP met de SSID SolarWiFi met daarachter een deel van het serienummer en het WiFi wachtwoord is 12345678. Je moet dan zelf een vier cijferige pin invoeren (1234) en aangeven of je de gebruiker bent of een dealer.
De pin is hetzelfde voor beiden.

Nu neem ik aan dat de commando's hetzelfde zijn als via de RS485 ende de WiFi stick is alleen een ander transport methode.

Uittesten kan bijvoorbeeld door een AP met router op te zetten die de WiFi stick nadoet. Naam SolarWifi en wachtwoord 12345678. De router NAT dan het netwerk naar 10.10.100.253 naar de WiFi stick van de omvormer en onderweg kan het verkeer door worden gezonden naar Wireshark.

Je hoeft zo geen fysieke verbinding te maken als het protocol ontcijferd is en je moet dan alleen één keer in de week de boel uitlezen anders verlies je gegevens die overschreven zijn omdat ze ouder dan een week zijn.

De SSID kan iets anders geschreven zijn....iets met actieve herinneringen hé.

Ps. de encryptie kan moeilijk ontcijfert worden en heeft iemand er al een aan gedacht dat het serienummer of een deel daarvan samen met de vijf cijferige code als encryptie gebruikt worden.

Vandaar dat die plain worden meegezonden. Bij Sems hooeft dan geen database te zijn van alle omvormers want de data bevat zelf de benodigde toegang sleutel.

[Voor 11% gewijzigd door msatter op 25-04-2021 21:00]


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
@msatter Wat kun je uitlezen dan?
Ik heb dat eerder al geprobeerd met mijn GW3000-XS, maar de app geeft aan dat het alleen voor omvormers zonder display is. Die van mij heeft wel een scherm. Ik probeer te verbinden en krijg dan een foutmelding dat mijn omvormer niet ondersteund is.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • msatter
  • Registratie: maart 2021
  • Niet online
ThinkPad schreef op zondag 25 april 2021 @ 21:05:
@msatter Wat kun je uitlezen dan?
Ik heb dat eerder al geprobeerd met mijn GW3000-XS, maar de app geeft aan dat het alleen voor omvormers zonder display is. Die van mij heeft wel een scherm. Ik probeer te verbinden en krijg dan een foutmelding dat mijn omvormer niet ondersteund is.
Ik heb dus het kleinere broertje en kan veel aanpassen tot zelfs de firmware upgraden als ik die had.

Raar dat het hier wel kan....is jouw password nog steeds default. Ik kan mijn password voor Wifi niet aanpassen en krijg dan een internal error.

Overigens ik nog geen instellingen gedaan en in mijn display staat nog dat het juiste land moet invoeren. In SolarGo zie ik dat die op default staat 50Hz.

Ik gebruik de APP op een iPad.

  • msatter
  • Registratie: maart 2021
  • Niet online
Vanochtend bezig geweest omdat er weer licht was. ;-)

Fritzbox met de Solar-WiFi als AP, dummy internet verbinding, met de NAT uit. De Fritz geeft aan dat de verbinding staat en krijgt een IP (10.10.100.15x). Als ik ping naar 10.10.100.253 krijg ik geen antwoord. Als ik ping naar 10.10.100.150 dan is er een response maar ik weet niet waar die vandaan komt. Het is niet de iPad,router of een ander apparaat in het beperkte netwerk.

SolarGo ziet niet de omvormer dus ik kan nog dumps maken van het verkeer. Het kan zijn dat het MAC adres moet matchen en nu doet dat nog niet want er komt er één van AVM.

Straks ga ik eens kijken met een port en adres scanner wat ik kan zien.

In SolarGo kun je serienummer van de omvormer ingeven maar die kan hij niet checken omdat de iPad geen toegang heeft tot het internet. Als je iPad hebt met ook een sim-kaart erin zou dat wel lukken.
Het kan door het niet kunnen checken van het serienummer dat ik nu wel toegang krijg als een soort terugval toegang.

  • msatter
  • Registratie: maart 2021
  • Niet online
Met de Fritz.box werkte het niet en toen maar mijn AVM1750 repeater er voor gebruikt en dat WERKT!

Ik kan de omvormer benaderen alsof ik er direct aan gekoppeld zit en ook nog een captures maken. Het gaat verkeer via UDP/8899 en 48899 en er wordt van alles uitgewisseld dus ik wil niet zo hier die captures neerzetten aangezien het serienummer en eventueel andere gegevens in staan. Ik bekijk ze in WireShark en kan daar selectief mee exporteren.

Mocht je dus direct toegang krijgen dan kan dat ook via een repeater waar de 1750 ook nog eens captures kan maken van het verkeer.

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Zojuist ook met iPad geprobeerd, rechtstreeks verbinding maken met het Solar-wifi netwerk dat de omvormer uitzend. Dan in de app de omvormer kiezen, maar ik krijg de melding "This inverter is not compatible with SolarGo". Vind het erg vreemd dat hij het daarom bij jou wel doet. Ook met iPhone en een Android toestel dezelfde melding.

Welke firmwareversie heb je op je GW2000-XS staan dan? Ik heb V1.02.10
msatter schreef op zondag 25 april 2021 @ 22:53:
[...]
en in mijn display staat nog dat het juiste land moet invoeren.
[...]
Kun je wel je waardes zoals huidig vermogen, opwek vandaag e.d. zien in het display dan? Hoe lang heb je deze omvormer al? Zover ik weet zou je die landselectie alleen na het monteren moeten zien, dan kies je een land en dan is de omvormer gebruiksklaar.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • msatter
  • Registratie: maart 2021
  • Niet online
Ik heb firmware versie 1.15.14 (DSP-51.51 ARM-14) en hij is nog niet aangesloten op het stroomnet en dat is halverwege deze week dat ik ook ga terugleveren.

Hij is dus in de opstart stand dus nog niets te zien anders dan dat ik mijn land moet invoeren. Ik ga dat ook niet zelf doen en zal vragen aan de monteur of ik dan mijn SolarGo ga verliezen als dat wel gaat gebeuren.

Ik wil SolarGo graag houden omdat ik daar de waardes ook kan zien, naar boven sjouwen en op een bloedhete zolder in de zomer om de waardes uitlezen....zie ik mijzelf niet doen.

Weet je soms hoe je je omvormer kunt resetten om zo weer in de opstart stand te komen waar hij nu is?

Ps. als je in jouw router eens verbiedt dat Sems bereikbaar is voor de omvormer. Het kan zijn dat dan SolarGo wel mag verbinden.

Hieronder een screendump van WireShark



Wat traces en de laatste is SolarGo die vraagt aan de omvormer wat de wachtwoorden zijn.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
Vraag op UDP 48899:

0000   ff ff ff ff ff ff 20 ee 28 01 45 00 08 00 45 00   ...... .(.E...E.
0010   00 2f ac 99 00 00 40 11 f0 72 0a 0a 64 9f 0a 0a   ./....@..r..d...
0020   64 ff c9 92 bf 03 00 1b 0d 39 57 49 46 49 4b 49   d........9WIFIKI
0030   54 2d 32 31 34 30 32 38 2d 52 45 41 44            T-214028-READ

Antwoord:

0000   20 ee 28 01 45 00 30 ea e7 3d 8b 60 08 00 45 00    .(.E.0..=.`..E.
0010   00 49 35 1e 00 00 ff 11 a8 d5 0a 0a 64 fd 0a 0a   .I5.........d...
0020   64 9f bf 03 e6 3a 00 35 dc 3a 31 30 2e 31 30 2e   d....:.5.:10.10.
0030   31 30 30 2e 32 35 33 2c 33 34 45 41 45 37 YY YY   100.253,34EAE7YY
0040   YY YY YY YY 2c 53 6f 6c 61 72 2d 57 69 46 69 32   YYYY,Solar-WiFi2
0050   XX XX XX XX XX XX XX                                     XXXXXXX

XXXXX is mijn serienummer
YY/Y is de MAC van de omvormer


Vraag op UDP 8899:

0000   30 ea e7 3d 8b 60 20 ee 28 01 45 00 08 00 45 00   0..=.` .(.E...E.
0010   00 24 ff 77 00 00 40 11 9d a1 0a 0a 64 9f 0a 0a   .$.w..@.....d...
0020   64 fd 22 c3 22 c3 00 10 d2 87 7f 03 75 34 00 08   d.".".......u4..
0030   15 d0                                             ..

Antwoord

0000   20 ee 28 01 45 00 30 ea e7 3d 8b 60 08 00 45 00    .(.E.0..=.`..E.
0010   00 33 35 44 00 00 ff 11 a8 c5 0a 0a 64 fd 0a 0a   .35D........d...
0020   64 9f 22 c3 22 c3 00 1f bc 89 aa 55 7f 03 10 35   d."."......U...5
0030   32 30 30 30 53 53 58 XX XX XX XX XX XX XX XX XX   2000SSXXXXXXXXX.
0040   ea                                                .

Vraag

0000   30 ea e7 3d 8b 60 20 ee 28 01 45 00 08 00 45 00   0..=.` .(.E...E.
0010   00 24 52 d9 00 00 40 11 4a 40 0a 0a 64 9f 0a 0a   .$R...@.J@..d...
0020   64 fd 22 c3 22 c3 00 10 e4 31 7f 03 75 31 00 28   d."."....1..u1.(
0030   04 09                                             ..

Antwoord

0000   20 ee 28 01 45 00 30 ea e7 3d 8b 60 08 00 45 00    .(.E.0..=.`..E.
0010   00 73 35 47 00 00 ff 11 a8 82 0a 0a 64 fd 0a 0a   .s5G........d...
0020   64 9f 22 c3 22 c3 00 5f 5e 07 aa 55 7f 03 50 00   d.".".._^..U..P.
0030   02 ff ff ff ff 35 32 30 30 30 53 53 58 XX XX XX   .....XXXXXXXXXXX
0040   XX XX XX XX XX 47 57 32 30 30 30 2d 58 53 20 4f   XXXXXGW2000-XS O
0050   44 4d 20 43 6c 69 65 6e 74 20 53 4e 00 00 00 00   DM Client SN....
0060   00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00   ................
0070   00 00 33 00 33 00 0e ff ff 01 0f 00 01 00 00 86   ..3.3...........
0080   54                                                T

Vraag wat zijn de wachtwoorden om te verbinden via SolorGo:
0000   30 ea e7 3d 8b 60 20 ee 28 01 45 00 08 00 45 00   0..=.` .(.E...E.
0010   00 24 51 4d 00 00 40 11 4b cc 0a 0a 64 9f 0a 0a   .$QM..@.K...d...
0020   64 fd 22 c3 22 c3 00 10 5f a7 7f 03 9c 40 00 10   d."."..._....@..
0030   61 9c                                             a.

Antwoord

0000   20 ee 28 01 45 00 30 ea e7 3d 8b 60 08 00 45 00    .(.E.0..=.`..E.
0010   00 43 35 49 00 00 ff 11 a8 b0 0a 0a 64 fd 0a 0a   .C5I........d...
0020   64 9f 22 c3 22 c3 00 2f fd a7 aa 55 7f 03 20 31   d."."../...U.. 1
0030   32 33 34 00 00 00 00 00 00 00 00 00 00 00 00 31   234............1
0040   32 33 34 35 36 37 38 00 00 00 00 00 00 00 00 1e   2345678.........
0050   58                                                X

etc.

[Voor 84% gewijzigd door msatter op 26-04-2021 13:42. Reden: Sems en screendump WireShark erbij gezet]


  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Ik vermoed toch een verschil in firmware waardoor dit mogelijk is óf dat het komt dat je omvormer nog niet aan het produceren is (misschien zit hij nu in een soort test/initialisatie modus).

Het verkeer naar Goodwe blokkeren heb ik al eens geprobeerd en maakte geen verschil.

De dumps die je nu maakt zou ik goed bewaren, mogelijk komt dat nog van pas als de omvormer daadwerkelijk in bedrijf is gesteld.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


  • msatter
  • Registratie: maart 2021
  • Niet online
Dat doe ik zeker en het lijkt erop dat de omvormer na het contacteren door SolarGo drie waardes terugzend en die kunnen dan de huidige opbrengst, dagopbrengst en totaalopbrengst.

Juist ook de Android versie van SolarGo en die ziet de omvormer ook. Ik moest wel eerst NetGuard uitzetten die mijn tablet aan heb staan.

Kennelijk is Wifi module al geschikt en hoeft er geen aparte RS-485-->Wifi of kabel versie gekocht te worden. Door SolarGo te capturen heb je request and answers en het zou dan mogelijk moeten zijn om dit dan een een client te laten werken.

Ik heb AT codes gezien met tabel erbij en dat kan hetzelfde zijn dan wat ik via de WiFi doe.

ps. zoveel informatie......als ik kijk naar het gebruik van de twee poorten dan is UDP/48899 meer antwoorden op broadcasts (10.10.100.255) en UDP/8899 voor directe uitwisseling tussen server en client en waarschijnlijk alleen als je ingelogd bent op dat moment.

Update: vanavond naar de requests en answers gekeken en ik pas erg laat de feitelijke data miniem is en dat de eerste data headers van ethernet traffic.

code:
1
2
7f 03 9c 40 00 10   d."."..._....@..
0030   61 9c

7f is het adres van de omvormer en 03 lees register en 9c of 049c het registernummer.

Antwoord is ook 7f 03:
code:
1
2
3
4
7f 03 20 31   d."."../...U.. 1
0030   32 33 34 00 00 00 00 00 00 00 00 00 00 00 00 31   234............1
0040   32 33 34 35 36 37 38 00 00 00 00 00 00 00 00 1e   2345678.........
0050   58


Schrijven in het register gaat via een 7f 10 .... en bij een succesvolle schrijf actie geeft de omvormer ook een 7f 10 .... terug.

[Voor 44% gewijzigd door msatter op 26-04-2021 21:41. Reden: Extra inzicht.]


  • msatter
  • Registratie: maart 2021
  • Niet online
Ik heb captures gemaakt van de verschillende menu's en opties en is wel een monnikenwerk. Ik heb geen aanpassingen gedaan omdat ik er geen verstand van heb wat alles inhoud. Wel het wachtwoord aangepast, van 1234 naar 4321 en dat zie je terug in captures.

De omvormer/SolarGo probeert de DNS server van Good2e te bereiken en de domeinnaam is: solargo.sems.com.cn.

  • msatter
  • Registratie: maart 2021
  • Niet online
Update: vanavond naar de requests en answers gekeken en ik pas erg laat de feitelijke data miniem is en dat de eerste data headers van ethernet traffic.

code:
1
2
7f 03 9c 40 00 10   d."."..._....@..
0030   61 9c

7f is het adres van de omvormer en 03 lees register en 9c of 049c het registernummer.

Antwoord is ook 7f 03:
code:
1
2
3
4
7f 03 20 31   d."."../...U.. 1
0030   32 33 34 00 00 00 00 00 00 00 00 00 00 00 00 31   234............1
0040   32 33 34 35 36 37 38 00 00 00 00 00 00 00 00 1e   2345678.........
0050   58


Schrijven in het register gaat via een 7f 10 .... en bij een succesvolle schrijf actie geeft de omvormer ook een 7f 10 .... terug.

  • inTIMidate
  • Registratie: september 2001
  • Laatst online: 18-06 16:49
Ik overweeg ook Goodwe omvormers, zijn er modellen die RS485 hebben samen met wifi? Want dan kan ik dat door geven aan de installateur.

  • Aiolos
  • Registratie: januari 2002
  • Laatst online: 00:50
inTIMidate schreef op woensdag 28 april 2021 @ 14:07:
Ik overweeg ook Goodwe omvormers, zijn er modellen die RS485 hebben samen met wifi? Want dan kan ik dat door geven aan de installateur.
Ik heb een XS2000 en XS2500 die beide RS485 hebben, en ook tegelijkertijd via WiFi verbonden zijn. @ThinkPad heeft ook een XS geloof ik, maar die heeft dan weer geen RS485. Ergens zit er dus een verschil tussen sommige versies...

Stuur me een PM voor Wemos D1 shields voor het uitlezen van slimme meters of het aansturen van Itho mechanische ventilatie (of kijk op V&A: https://tweakers.net/aanbod/user/47321/)


  • inTIMidate
  • Registratie: september 2001
  • Laatst online: 18-06 16:49
Aiolos schreef op woensdag 28 april 2021 @ 18:32:
[...]


Ik heb een XS2000 en XS2500 die beide RS485 hebben, en ook tegelijkertijd via WiFi verbonden zijn. @ThinkPad heeft ook een XS geloof ik, maar die heeft dan weer geen RS485. Ergens zit er dus een verschil tussen sommige versies...
Dan ga ik dit navragen bij Goodwe hoe modellen met RS485 te identificeren zijn.

  • msatter
  • Registratie: maart 2021
  • Niet online
De XS serie heeft wifi en de RS485. Er zit een dummy/lege RS485 op zie je moet laten zitten want ander gaat de omvormer niet terugleveren.
De RS485 zit tussen de WiFi adapter en de 220-240V aansluiting.

Je kunt ook de XS ook uitlezen via wifi als de laatste twee nummers van jouw firmware hoger of gelijk is aan 13. Mijn firmware versie is 1.15.14
Sinds eind vorig jaar is deze uitbreiding door Goodwe gedaan en de ondersteuning voor Bluetooth en LTE maakte dit mogelijjk. Dit is dan een stick die WiFi vervangt en dus Bluetooth en LTE doet.

Ik heb al de eerste stappen gezet en kan de gegevens lezen. Het is een Modbus protol en ik heb nog geen 100% match met de RS485 protocol. Gaat nog wel een paar weken duren voordat de stukjes op hun plaats zijn gevallen.

Het is wel veel informatie de laatste drie dagen dat ik met zonnepanelen bezig hou, voor het eerste keer in mijn leven. Vandaag gaan terugleveren en net meest productieve periode gemist.

Update: vandaag bezig geweest met het uitlezen van de waardes en die in logbestanden te stoppen die als naamgeving de datum en tijd hebben.

De HEX waardes kan ik nu omzetten naar decimalen maar het is mij nog niet gelukt om er een komma/punt in te zetten maar de eerste stap is er. Ik gebruik SFK omdat te doen.

De broadcast werkt ook om zo te weten te komen op welk IP adres de omvormer zit. Het probleem is ik heb dat in HEX en lang bezig geweest om dat IP adres eruit te krijgen wat niet lukte. Ik heb zit hier vast.

code:
1
31302E31302E3130302E3235332C


De 2C is delimiter "," dus als de lengte van het IP adres anders is dan red de komma jou hier.

[Voor 25% gewijzigd door msatter op 01-05-2021 23:45]


Acties:
  • +1Henk 'm!

  • msatter
  • Registratie: maart 2021
  • Niet online
Ik heb aan de praat en kan zowel aan de AP als aan de STA kant de gegevens uitlezen. De broadcast haalt het IP address van de omvormer op en leest dan de waardes.

Het script is nog niet gereed en ik moet nog twee dingen oplossen voordat ik het hier kan plaatsen.

De huidige opmerkingen;

# Read the production of a Goodwe inverter. Retrieved data can be stored in a log file with at the end of the line the time of retrieval.
# The name of the log file is the date in YYMMDD format and is unique. Each retrieved hex string has its own line.
# To retrieve data through IP needs a ARM firmware of 13 or higher. The last part of firmware is stating for ARM "1.51.14" so here 14.

# This script needs SFK to run (http://www.stahlworks.com/dev/swiss-file-knife.html)

# to-do naming the cummulative log file with the current date as name and retrieve the last log line or store the string in a variable

Acties:
  • 0Henk 'm!

  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Is het aannemelijk dat ik met mn 1500-XS na een software update de standen dan ook lokaal kan uitlezen of begrijp ik het verkeerd?

Acties:
  • +1Henk 'm!

  • msatter
  • Registratie: maart 2021
  • Niet online
Een XS met een versie lager dan 13 kon het niet uitlezen en de mijne heeft versie 14 en kan dat wel. Nu is het verkrijgen van een update niet eenvoudig via Goodwe omdat ze hier meer zeer terughoudend zijn, dit heb ik van anderen gehoord. Het is meer de opstelling, "don't fix it, if it is not broken".

Zelf gaan updaten mocht, je zelf een update vinden, kan ik alleen maar AFRADEN.

Dit lokaal via netwerk benaderen is waarschijnlijk beschikbaar gekomen, eind 2020, sinds er een LTE+Bluetooth stick is uitgebracht voor de Goodwe omvormers, en die benodigd versie 13 of hoger.

Teaser:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@raspberrypi:/opt/goodwe# ./show.sh

Read and collect data from Goodwe inverter

Do broadcast to find the Goodwe inverter:
  SSID: Solar-WiFi20CWxxxx
  IP addr: 192.168.xxx.xxx

Value read at 11:02:07:
  Vpv:    290.1 V
  Ipv:    2.6 A
  Vac:    231.0 V
  Iac:    3.3 A
  Fac:    50.00 Hz
  Power:  0.75 kW
  Eday:   1.4 kWh
  Etotal: 33.5 kWh


En ik maar zoeken in de HEX string naar de Power waarde....is het een calculeerde waarde van de Vpv*Ipv/1000 :o

[Voor 30% gewijzigd door msatter op 03-05-2021 11:06]


Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
@No13 Ik had, zoals @msatter zegt Goodwe inderdaad gevraagd om mijn XS bij te werken. Ze gaven aan dat updaten vanaf afstand niet mogelijk is (lijkt mij onzin, de XS van Goodwe-3000XS knijpt vermogen af op 2750W ? is ook gewoon remote geüpdate) en dat hun ervaring is dat er problemen ontstaan na een update. Ticket werd toen gesloten.

@msatter had ergens in documentatie gevonden dat voor het gebruik van Modbus je op ARM versie >=13 moet zitten. Heb ze nu nogmaals gevraagd of ze willen updaten ivm willen gebruiken van Modbus. Ben benieuwd.

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • 0Henk 'm!

  • inTIMidate
  • Registratie: september 2001
  • Laatst online: 18-06 16:49
Ik ben benieuwd welke firmware default geïnstalleerd zou staan op nieuwe omvormers van Goodwe.

Zoals ik begrepen heb is de omvormer van @msatter vrij recent, dus als ik met Goodwe omvormers aan de slag ga is de kans groot dat ik dan ook vrij nieuwe firmware zou hebben.

Acties:
  • 0Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Ik heb Goodwe nogmaals gevraagd om een firmware update nadat ze het in eerste instantie afwezen. Ben hiermee van v1.02.10 naar v1.52.10 gegaan. Maar die x.xx.10 moet dus naar >=13 om lokaal uit te kunnen lezen als ik het goed begrijp. Heb gevraagd of ze dat ook willen doen, nog even weer afwachten. Met SolarGo nog steeds de melding dat mijn omvormer niet ondersteund is namelijk.

CC @No13


Firmware is nu bijgewerkt naar v1.52.14 en ik kan met de app 'SolarGo' nu de omvormer uitlezen (voorheen telkens melding dat mijn omvormer niet ondersteund werd). Later even verder klooien.

[Voor 34% gewijzigd door ThinkPad op 03-05-2021 16:23]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • 0Henk 'm!

  • Pinobigbird
  • Registratie: januari 2002
  • Laatst online: 22:54

Pinobigbird

doesn't share food!

msatter schreef op maandag 3 mei 2021 @ 08:58:
[...]
En ik maar zoeken in de HEX string naar de Power waarde....is het een calculeerde waarde van de Vpv*Ipv/1000 :o
Is de aangegeven "power" in bijv. de SEMS-portal niet altijd het AC-vermogen, dat ook in VA wordt bepaald? Je berekent nu het DC-vermogen.

Edit:
Ah, blijkbaar wordt toch met het DC-vermogen gerekend, als ik zelf de berekeningen maak klopt het exact bij DC. Op het display van m'n GW5K-DT staat wel standaard Pac:
Normal
Pac = xxxxW

[Voor 19% gewijzigd door Pinobigbird op 03-05-2021 16:07]

Joey: Nice try. See the Netherlands is this make believe place where Peter Pan and Tinkerbell come from.
https://kattenoppasleiderdorp.nl
PV: 3080Wp ZO + 3465Wp NW = 6545Wp totaal 13°tilt


Acties:
  • 0Henk 'm!

  • msatter
  • Registratie: maart 2021
  • Niet online
Ik had beide actief en de DC en AC zijde gaven beide bijna hetzelfde aan.

SFK is compleet nieuw voor mij en het was voor mij eenvoudig via UDP uit te lezen. Ik zit vastop de bestandsnaam en ik had werkend onder Windows en moet het nog aanpassen naar Linux.

Acties:
  • +3Henk 'm!
  • Pinned

  • msatter
  • Registratie: maart 2021
  • Niet online
Hierbij het script welke SFK nodig heeft om te kunnen werken.

Er worden twee bestanden gebruikt om de gegevens op te slaan, goodwe.info die het antwoord van de broadcast bevat en hex.txt die de ontvangen HEX string bevat van met waardes. Hex.txt is tijdelijk en zal vervangen worden door log bestanden.

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env bash

# Read the production of a Goodwe inverter and the retrieved data can be stored in a log file. At the end of the stored line time of retrieval.
# The name of the log file is the date in YYMMDD format and is this way unique. Each retrieved hex string has it's own line with a timestamp at the end.
# To retrieve data through IP needs a ARM firmware of 13 or higher. The last part of my firmware is stating for ARM "1.51.14" so 14 number for the ARM.

# This script needs SFK to run (http://www.stahlworks.com/dev/swiss-file-knife.html) 

# to-do: config file for storing the location logfile and cron.

sfk echo ""
sfk echo "Read and collect data from Goodwe inverter"
sfk echo "" 
sfk echo "Do broadcast to find the Goodwe inverter:"
sfk cudp -broad 255.255.255.255 48899 -listen -noerror -timeout=500 0x574946494b49542d3231343032382d52454144 -flat > goodwe.info
sfk echo -pure "  SSID: " +xfind goodwe.info "/**,**,//"
sfk echo -pure "  IP addr: " +xfind goodwe.info "/,**//"

sfk xfind goodwe.info "/,**//" +setvar ipa +cudp -var "#(ipa)" 8899 -listen -noerror -timeout=500 0x7f0375940049d5c2 -pure +xed "/[eol]//" +time " hms" >> ./`date +%Y`/`date +%Y%m%d`.log

# Check if the directory exists and if not create it.
sfk ifnotexist .`date +%Y`\*.log  mkdir `date +%Y`

# Show the values stored in the log file
echo ""  
sfk sel -since today *.log +hexfile -offlen -7 6 -flat -nofile +setvar logtime +echo -var "Log time: #(logtime)"
sfk echo "" 
sfk time "Current value at h:m:s:"

sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -292 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar vpv +echo -var     "  Vpv:      #(vpv) V"
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -288 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar ipv +echo -var     "  Ipv:      #(ipv) A "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -232 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar vac +echo -var     "  Vac:      #(vac) V "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -208 4 -flat -nofile   +dec +calc "#text*0.01" -dig=2  +setvar fac +echo -var     "  Fac:      #(fac) Hz "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -292 4 -flat -nofile +dec +setvar vpv +sel -since today ./`date +%Y`/*.log +hexfile -offlen -288 4 -flat -nofile +dec +setvar ipv +echo -var "#(vpv)*#(ipv)/100000" +calc "#text" -dig=2 +setvar power +echo -var    "  Power: #(power) kW "
#sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -232 4 -flat -nofile +dec +setvar vac +sel -since today ./`date +%Y`/*.log +hexfile -offlen -220 4 -flat -nofile +dec +setvar iac +echo -var "#(vac)*#(iac)/100000" +calc "#text" -dig=2 +setvar power +echo -var    "  PowerAC:  #(power) kW "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -140 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar temp +echo -var    "  Temperature:  #(temp) celcius "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -128 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar eday +echo -var    "  Eday:     #(eday) kWh "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -120 4 -flat -nofile   +dec +calc "#text*0.1"  -dig=1  +setvar etotal +echo -var  "  Etotal:   #(etotal) kWh "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -112 4 -flat -nofile   +dec +calc "#text*1.0"  -dig=0  +setvar work +echo -var    "  Totalruntime: #(work) hours "
sfk sel -since today ./`date +%Y`/*.log +hexfile -offlen -16  4 -flat -nofile   +dec +calc "#text*1.0"  -dig=0  +setvar rssi +echo -var    "  WiFi Signal:  #(rssi) %"


Ik kan nu eenvoudig de laatste waarden uit een log bestand lezen en het was eenvoudiger dan ik dacht. En ik had een tijdelijk bestand aangemaakt maar de methode kon ik ook direct toepassen.

De bijgewerkte lijst met de gevonden waardes door Tinkpad:

code:
1
2
3
4
5
6
7
8
9
10
11
12
Value read at 13:09:29:
  Vpv:          268.5 V
  Ipv:          1.3 A
  Vac:          229.4 V
  Iac:          1.8 A
  Fac:          49.96 Hz
  Power:        0.35 kW
  Temperature:  28.6 celcius
  Eday:         2.7 kWh
  Etotal:       42.0 kWh
  Tot. runtime: 86 hours
  WiFi Signal:  52 %


De temperatuur is ook een belangrijke waarde. Als alles erg warm wordt dan werkt alles minder en dan is het tijd om de koeling van de omvormer te bekijken.

Update.
Als er geen gevens terugkomen van fe omvormer dan gaat er ook niets naar het log. Lost ook meteen de offline zijn van de omvormer als er geen zon is.

Naast de bestandsnaam met de datum het kan ook de directory zelf een de naam van de omvormer hebben en zo kun je verschillende omvormers apart houden. Dit voor mensen zelf meer dan één omvormer hebben.

Update:
Script aangepast om de log bestanden een sub-dir te plaatsen met als naam het huidige jaar.

[Voor 36% gewijzigd door msatter op 05-05-2021 13:36. Reden: De door Thinkpad gevonden waardes toegevoegt]


Acties:
  • +5Henk 'm!
  • Pinned

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Ik heb met bovenstaande code als basis het aan de praat gekregen om de omvormer (3000XS) via Node-RED uit te lezen:


Ik stuur een hex string naar de omvormer, waarop hij reageert en de data terugstuurt. In Node-RED haal ik uit de ontvangen hexstring de waardes en zet deze om naar variabelen:


De flow in Node-RED:
code:
1
[{"id":"1114148f.9e4e3b","type":"tab","label":"Flow 1","disabled":false,"info":""},{"id":"901d892e.0b27e","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_reply = msg.payload;\n\nvar year = \"20\" + inverter_reply.readInt8(5); // \nvar month = inverter_reply.readInt8(6); // \nvar day = inverter_reply.readInt8(7); // \nvar hour = inverter_reply.readInt8(8); // \nvar minutes = inverter_reply.readInt8(9); // \nvar seconds = inverter_reply.readInt8(10); // \n\nvar timestamp = hour+\":\"+minutes+\":\"+seconds+\" \"+day+\"-\"+month+\"-\"+year;\n\n\nvar vpv = parseFloat((inverter_reply.readInt16BE(11)*0.1).toFixed(1)); // Vpv\nvar ipv = parseFloat((inverter_reply.readInt16BE(13)*0.1).toFixed(1)); // Ipv\nvar vac = parseFloat((inverter_reply.readInt16BE(41)*0.1).toFixed(1)); // Vac\nvar iac = parseFloat((inverter_reply.readInt16BE(47)*0.1).toFixed(1)); // Iac\nvar fac = parseFloat((inverter_reply.readInt16BE(53)*0.01).toFixed(2)); // Fac\nvar dc_power = parseFloat(((vpv*ipv)).toFixed(0)); \nvar ac_power = parseFloat(((vac*iac)).toFixed(0));\nvar eday = parseFloat((inverter_reply.readInt16BE(93)*0.1).toFixed(1)); // Eday\nvar etotal = parseFloat((inverter_reply.readInt16BE(97)*0.1).toFixed(2)); // Etotal\nvar rssi = inverter_reply.readInt16BE(149); // wifi signal strength?\nvar workhours = inverter_reply.readInt16BE(101); // work hours inverter\nvar temperature = parseFloat((inverter_reply.readInt16BE(87)*0.1).toFixed(1)); // Inverter temperature\nvar power = inverter_reply.readInt16BE(61); // power\nvar status = inverter_reply.readInt16BE(63); // \n\n\nvar workmode;\nswitch (status) {\n    case 0:\n        workmode = \"Wait Mode\"\n        break;\n    case 1:\n        workmode = \"Normal\"\n        break;\n    case 2:\n        workmode = \"Error\"\n        break;\n    case 4:\n        workmode = \"Check Mode\"\n        break;\n}\n\nmsg.payload = {\n    vpv,\n    ipv,\n    vac,\n    iac,\n    fac,\n    power,\n    eday,\n    etotal,\n    rssi,\n    workhours,\n    temperature,\n    workmode,\n    timestamp\n    \n}\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":320,"wires":[["3a0e034d.bce714"]]},{"id":"3a0e034d.bce714","type":"debug","z":"1114148f.9e4e3b","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":710,"y":320,"wires":[]},{"id":"1ea4603b.d6454","type":"udp in","z":"1114148f.9e4e3b","name":"","iface":"192.168.8.21","port":"8899","ipv":"udp4","multicast":"false","group":"192.168.8.21","datatype":"buffer","x":260,"y":320,"wires":[["901d892e.0b27e"]]},{"id":"80cdaee9.19bce8","type":"udp out","z":"1114148f.9e4e3b","name":"","addr":"192.168.6.15","iface":"","port":"8899","ipv":"udp4","outport":"8899","base64":false,"multicast":"false","x":750,"y":140,"wires":[]},{"id":"46c68558.f9e15c","type":"inject","z":"1114148f.9e4e3b","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":280,"y":140,"wires":[["4a16c267.f83f14"]]},{"id":"4a16c267.f83f14","type":"function","z":"1114148f.9e4e3b","name":"","func":"var inverter_ask = Buffer.from(\"7F0375940049D5C2\",\"hex\");\n\nmsg.payload = inverter_ask;\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":480,"y":140,"wires":[["80cdaee9.19bce8"]]},{"id":"dae4530a.7c94c","type":"comment","z":"1114148f.9e4e3b","name":"Request inverter data","info":"","x":300,"y":100,"wires":[]},{"id":"cea711ef.0e5a68","type":"comment","z":"1114148f.9e4e3b","name":"Parse received data","info":"","x":290,"y":280,"wires":[]}]


De function node heb ik intussen al weer bijgewerkt, ik bereken nu de CRC en verwerk het bericht pas als deze klopt. Merkte namelijk dat ik heel soms een incompleet bericht binnenkreeg. Hierbij de meest recente inhoud van de function node:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
var inverter_reply = msg.payload;

var message = inverter_reply.slice(2); // Remove 'AA55' from start of message
var message = message.slice(0, -2); //Remove two CRC bytes from end of message

function crc16(buffer) {
    var crc = 0xFFFF;
    var odd;

    for (var i = 0; i < buffer.length; i++) {
        crc = crc ^ buffer[i];

        for (var j = 0; j < 8; j++) {
            odd = crc & 0x0001;
            crc = crc >> 1;
            if (odd) {
                crc = crc ^ 0xA001;
            }
        }
    }
    return crc.toString(16);
}

//Calculate CRC ourselves
var calculated_crc = crc16(message);

//Get CRC from inverter reply and un-reverse it
var reply_crc = inverter_reply.slice(-2).toString('hex');
var crc1 = reply_crc.slice(0, 2);
var crc2 = reply_crc.slice(-2);
var new_crc = crc2 + crc1;

if (new_crc == calculated_crc) {
    var year = "20" + inverter_reply.readInt8(5); // 
    var month = inverter_reply.readInt8(6); // 
    var day = inverter_reply.readInt8(7); // 
    var hour = inverter_reply.readInt8(8); // 
    var minutes = inverter_reply.readInt8(9); // 
    var seconds = inverter_reply.readInt8(10); // 
    
    var minutes = (minutes < 10 ? '0' : '') + minutes;
    var seconds = (seconds < 10 ? '0' : '') + seconds;
    var timestamp = hour + ":" + minutes + ":" + seconds + "  " + day + "-" + month + "-" + year;

    var vpv = parseFloat((inverter_reply.readInt16BE(11) * 0.1).toFixed(1));
    var ipv = parseFloat((inverter_reply.readInt16BE(13) * 0.1).toFixed(1));
    var vac = parseFloat((inverter_reply.readInt16BE(41) * 0.1).toFixed(1));
    var iac = parseFloat((inverter_reply.readInt16BE(47) * 0.1).toFixed(1));
    var fac = parseFloat((inverter_reply.readInt16BE(53) * 0.01).toFixed(2));
    var eday = parseFloat((inverter_reply.readInt16BE(93) * 0.1).toFixed(1));
    var etotal = parseFloat((inverter_reply.readInt16BE(97) * 0.1).toFixed(2));
    var rssi = inverter_reply.readInt16BE(149);
    var workhours = inverter_reply.readInt16BE(101);
    var temperature = parseFloat((inverter_reply.readInt16BE(87) * 0.1).toFixed(1));
    var power = inverter_reply.readInt16BE(61);
    var status = inverter_reply.readInt16BE(63);
    var workmode;

    switch (status) {
        case 0:
            workmode = "Waiting"
            break;
        case 1:
            workmode = "Normal"
            break;
        case 2:
            workmode = "Error"
            break;
        case 4:
            workmode = "Checking"
            break;
    }

    msg.payload = {
        vpv,
        ipv,
        vac,
        iac,
        fac,
        power,
        eday,
        etotal,
        rssi,
        workhours,
        temperature,
        status,
        workmode,
        timestamp
    }

    var nodestate = {
        text: workmode + ' - Power: ' + power + 'W - ' + timestamp,
    };
    node.status(nodestate);

    return msg;
}

[Voor 255% gewijzigd door ThinkPad op 12-05-2021 17:37]

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • +1Henk 'm!

  • msatter
  • Registratie: maart 2021
  • Niet online
Hier dan de eerste versie die logbestanden opslaat die later weer kunnen worden uitgelezen. Dit is alleen de opslag van de HEX string die van uit de Goodwe omvormer komt. Hier zit alle info in, ook als je een omvormer hebben met meer dan één string dan wordt ook de gegevens opgeslagen. Later kan dan uitgebreider uitgelezen worden.

De logger:

Bash:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env bash

# Script written by msatter and is free to us as long it is for non-commercial usage. 

# Read the production of a Goodwe inverter and the retrieved data can be stored in a log file. At the end of the stored line time of retrieval.
# The name of the log file is the date in YYMMDD format and is this way unique. Each retrieved hex string has it's own line with a timestamp at the end.
# To retrieve data through IP needs a ARM firmware of 13 or higher. The last part of my firmware is stating for ARM "1.51.14" so 14 number for the ARM.

# This script needs SFK to run (http://www.stahlworks.com/dev/swiss-file-knife.html) 

# to-do: config file for storing the location logfile and cron.

# Sent a broadcast to find the Goodwe inverter
sfk cudp -broad 255.255.255.255 48899 -listen -noerror -timeout=500 0x574946494b49542d3231343032382d52454144 -flat > goodwe.info

# Check if the directory exists and if not create it.
sfk ifnotexist .`date +%Y`\*.log  mkdir `date +%Y`

# Save the retrieved values as Hex string in the log. Path ./YEAR/YEARMONTHDAY.log and in the log, each line has it's own timestamp at the end of the line. 
sfk xfind goodwe.info "/,**//" +setvar ipa +cudp -var "#(ipa)" 8899 -listen -noerror -timeout=1500 0x7f0375940049d5c2 -pure +xed "/[eol]//" +xed "/*timeout*[eol]//" +time " hms"  +xed "/[eol]//" +xed "/*timeout*[eol]//" +time " hms" +xed "/[start][314 bytes]/[all]/" >> /opt/goodwe/`date +%Y`/`date +%Y%m%d`.log


Voorbeeld cron regel om elke minuut van de dag een logregel te schrijven. Als de omvormer niet aan is dan kan er ook niets geschreven worden.

code:
1
* * * * * PATH="$PATH:/opt/goodwe/" store-pv.sh #LogGoodwe PV


Update: script aangepast opdat timeouts ook niet geschreven worden.
Update2: de tijd werd niet meer geschreven en dit opgelost door [eol] door [lstart] te gebruiken.
Update3: nu gaat het aan de andere kant niet goed van de tijd en ik laat het weten als ik het heb opgelost.
Update4: ik krijg het niet zo opgelost. Ik heb nu het filter gedeactiveerd en laat dit zo totdat ik weet hoe het wel moet. Het werkt nu maar het gebeuren dat er nu lege regels in het log staan.
Update4: OK i.p.v. te kijken wat je niet wil, kijken wat je wel wil en het zou moeten werken. Helaas is het grote licht uit dus ik kan het pas morgen test. Soms zijn oplossingen eenvoudig, eenvoudige dan je zou denken.

[Voor 20% gewijzigd door msatter op 05-05-2021 22:01]


Acties:
  • 0Henk 'm!

  • Q-bone
  • Registratie: juni 2001
  • Laatst online: 07:35

Q-bone

Dusss...

Weet iemand ook of je 2 omvormers met 1 raspberry kunt monitoren?

bla?


Acties:
  • +1Henk 'm!

  • No13
  • Registratie: januari 2001
  • Laatst online: 17-06 10:33

No13

/me was here

Ik heb bij goodwe ook een ticket aangemaakt, now we wait...

Acties:
  • 0Henk 'm!

  • Proton_
  • Registratie: november 2011
  • Nu online

Proton_

Team Welles

Ik ook, inverter is 1.03.09 (sept 2020).
@ThinkPad
Is er in de nieuwe firmware nog iets verbeterd qua solar-wifi-ssid?

[Voor 50% gewijzigd door Proton_ op 05-05-2021 15:21]

'19 Kona na '15 Zoe, douchen met wtw en Auer Edel Eau


Acties:
  • +1Henk 'm!

  • ThinkPad
  • Registratie: juni 2005
  • Nu online

ThinkPad

Moderator Duurzame Energie & Domotica
Proton_ schreef op woensdag 5 mei 2021 @ 15:13:
Ik ook, inverter is 1.03.09 (sept 2020).
@ThinkPad
Is er in de nieuwe firmware nog iets verbeterd qua solar-wifi-ssid?
Nee. Dat is weer een andere firmware, die van de wifi-module. Zie GoodWe GW3600 SSID broadcast uitzetten

Gas besparen door CV-tuning | Elektriciteit besparen
Geen vragen via privébericht die ook via het forum kunnen a.u.b.


Acties:
  • 0Henk 'm!

  • Aiolos
  • Registratie: januari 2002
  • Laatst online: 00:50
Q-bone schreef op woensdag 5 mei 2021 @ 13:12:
Weet iemand ook of je 2 omvormers met 1 raspberry kunt monitoren?
Als je bedoelt 2 omvormers uitlezen met dit script, ja. Wel met een kleine aanpassing.

Op regel 19 van het script heb ik gewoon hard het ip ingevuld. Dus in plaats van "#(ipa)" in deze regel:
code:
1
sfk xfind goodwe.info "/,**//" +setvar ipa +cudp -var "#(ipa)" 8899 -listen -noerror -timeout=500 0x7f0375940049d5c2 -pure +xed "/[eol]//" +time " hms" >> ./`date +%Y`/`date +%Y%m%d`.log


Heb ik het ip ingevuld (192.168.1.2 in dit geval).
code:
1
sfk xfind goodwe.info "/,**//" +setvar ipa +cudp -var 192.168.1.2 8899 -listen -noerror -timeout=500 0x7f0375940049d5c2 -pure +xed "/[eol]//" +time " hms" >> ./`date +%Y`/`date +%Y%m%d`.log


En dan voor beide ip-adressen het scriptje. Lelijke oplossing en zou eigenlijk met een loopje door de resultaten uit de broadcast moeten (en de broadcast moet dan listen=n krijgen, waarbij n het aantal omvormers is).

@msatter Dank voor dit werk! Ik gebruik al een zelfgebouwde modbus uitlezing, maar dit is een leuke 2e methode.

(En ja, als ik dat ip er hard in zet kan ik die hele broadcast natuurlijk wel overslaan...)

[Voor 3% gewijzigd door Aiolos op 05-05-2021 16:01]

Stuur me een PM voor Wemos D1 shields voor het uitlezen van slimme meters of het aansturen van Itho mechanische ventilatie (of kijk op V&A: https://tweakers.net/aanbod/user/47321/)


Acties:
  • 0Henk 'm!

  • msatter
  • Registratie: maart 2021
  • Niet online
Ik moest een probleem oplossen en ik mijn script aangepast opdat er geen meldingen inkomen als er een timeout is.

Een eigen directory voor elke omvormer was het idee maar ik kwam niet verder met de variabelen en dat is weer zoekwerk. De naamgeving is dan een deel van het serienummer. Ook het comprimeren van het log van de dag daarvoor is er al maar dat nog netter gemaakt worden.

Aiolos wil vast wel voor mij testen als ik ook twee of meer omvormers in één keer ga uitlezen en ieders zijn eigen directory krijgen.

Wat is het probleem met de SSID?

Acties:
  • +1Henk 'm!

  • wlmpie
  • Registratie: oktober 2007
  • Laatst online: 02:51
Begrijp ik nou goed dat het script van @msatter een goodwe xs omvormer lokaal kan uitlezen via de wifi? Mits je firmware eindigt op 13 of hoger? En dan hoef je dus niet te gaan klooien met RS485 of modbus?

Nou nog uitvinden hoe je die data dan in domoticz krijgt.
Pagina: 1 2 3 4 Laatste


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True