> Commands die ik gebruikt heb om te schrijven naar het register
Werkt dat ook met een oude (protocol 3) wifi dongle?
Werkt dat ook met een oude (protocol 3) wifi dongle?
Als je de grottserver container pakt zit daar grott gewoon bij in. Alleen in je ini file het ip adres van de Growatt server aanpassen naar je grott server. Er wordt dan geen data meer gestuurd naar Growatt, dit is wat mij betreft een voordeel, maar je kan dan ook niet meer via de website erbij en hebt daar dus ook geen data meer.GAEvakYD schreef op zondag 23 maart 2025 @ 16:30:
Ah, bestaan van grottserver heb ik gemist. Heb jij beide naast elkaar draaien of conflicteert dat met elkaar. Zo te zien is Grottserver.py al twee jaar niet meer aangepast, wat natuurlijk niet erg is als het prima werkt.
Ik draai Grott via Docker Compose. Mocht jij of iemand een tip hebben hoe Grottserver naast Grott te draaien middels docker compose, dan hoor ik het graag.
Ik denk dat als grott en grottserver bij je werkt dat het zou moeten werken? Proberen maar zou ik zeggen.sciurius schreef op maandag 24 maart 2025 @ 08:30:
> Commands die ik gebruikt heb om te schrijven naar het register
Werkt dat ook met een oude (protocol 3) wifi dongle?
Check. En andersom is het niet zo volgens mij. Dat de grott container ook de grott server bevat?Knielen schreef op maandag 24 maart 2025 @ 13:08:
[...]
Als je de grottserver container pakt zit daar grott gewoon bij in. Alleen in je ini file het ip adres van de Growatt server aanpassen naar je grott server. Er wordt dan geen data meer gestuurd naar Growatt, dit is wat mij betreft een voordeel, maar je kan dan ook niet meer via de website erbij en hebt daar dus ook geen data meer.
Wow dat klinkt top. Dan wacht ik even op de Docker (compose) image en stap ik daarna over.Johan_meijer schreef op maandag 24 maart 2025 @ 20:25:
Op dit moment bevat Grottserver alleen Grottserver (voor Latest en Beta).
Je hebt Grottserver nodig om API commando's te kunnen geven. Grottserver vervangt de Growatt server (dus geen communicatie met china meer)
In GrottV3 (Alpha) is Grott en Grottserver geintegreerd. Deze heeft ook een mogelijkheid tot passthrough. Dat wil zeggen dat de data ook naar Growatt wordt gestuurd en dat je deze kunt bekijken via de Growatt website of shinephone app. Het is 1 richtingsverkeer. Dus commando's vanaf de website of app komen niet aan bij de Inverter/Datalogger.
Grott V3 is nu nog alleen in een standalone versie (op github). Ik zal binnenkort ook een docker image maken en publiceren.
Heel interessant. Ik vraag me af waarom je register 3 (Max output active power) gebruikt en niet bijvoorbeeld 4 (Max output passive power). Of zoals hier beschreven het 'Export Limit percentage' icm een niet aangesloten CT clamb op register (122) 123 (volgens het inverter modbus RTU protocol document)Knielen schreef op zondag 23 maart 2025 @ 09:39:
Vanochtend een het proberen geweest om via Grott Server het vermogen van de omvormer te regelen. Dit werkt erg goed!
Commands die ik gebruikt heb om te schrijven naar het register zijn PUT commands via Node-Red:
0% power:
code:
1 http://<IP>:5782/inverter?command=register®ister=3&inverter=<SN inverter>&value=0&format=dec
100% power:
code:
1 http://<IP>:5782/inverter?command=register®ister=3&inverter=<SN inverter>&value=100&format=dec
Uitlezen van ingestelde vermogen is via een GET command:
code:
1 http://<IP>:5782/inverter?command=register®ister=3&inverter=<SN inverter>&format=dec
Tip: ik draai grottserver.beta via docker, vergeet niet port 5782 ook te configureren in je compose file.
braxx1980 schreef op maandag 24 maart 2025 @ 07:38:
Ik had onlangs grott-server eens geprobeerd...
Puur om aan curtailing te doen tijdens negatieve uren. (En hier rond iets te bouwen in HA)
Ik kreeg alleen waardes bij de datalogger en niets bij de inverter bij 1 van deze commando's
code:
1 2 get <your ip>:5782/datalogger get <your ip>:5782/inverter
(Doe ik iets verkeerd?)
Ik heb het maar opgegeven.
nee, ik ben nu de 3.1.0 alfa begonnen met te testen, maar daar werkt alleen de proxy mode en niet de server mode...mr.smith schreef op donderdag 1 mei 2025 @ 17:21:
ik krijg precies dezelfde melding, ook bij datalogger. Heb je hier toevallig ooit nog is wat op gevonden?
[...]
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
| - Grottserver - Version: 0.0.14e
- GrottHttpserver - Ready to listen at: 0.0.0.0:5782
- Grottserver - Ready to listen at: 0.0.0.0:5781
- GrottHttpserver - server listening
- GrottHttpserver - Response interval wait time: 0.5
- GrottHttpserver - Datalogger ResponseWait: 5
- GrottHttpserver - Inverter ResponseWait: 10
- Grottserver - server listening
- Grottserver - Socket connection received from ('127.0.0.1', 47594)
- Grottserver - Send queue created for : 127.0.0.1_47594
- Grottserver - input received: <socket.socket fd=4, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('0.0.0.0', 5781)>
- Grottserver - Data received from : 127.0.0.1:47594
- Grottserver - Original Data:
\x00\x01\x00\x02\x00\x0c\x01\x16\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43
- Grottserver - Plain record:
00010002000c011659555a30383139323043
- Grottserver - 16 - Ping response:
\x00\x01\x00\x02\x00\x0c\x01\x16\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43
- Grottserver - Datalogger id added by Ping: {'ip': '127.0.0.1', 'port': 47594, 'protocol': '02'}
- Grottserver - Put response on queue: 127.0.0.1_47594 msg:
\x00\x01\x00\x02\x00\x0c\x01\x16\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43
- Grottserver - get response from queue: 127.0.0.1_47594 msg:
\x00\x01\x00\x02\x00\x0c\x01\x16\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43
- Grottserver - Data received from : 127.0.0.1:47594
- Grottserver - Original Data:
\x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34
\x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00
\x2c\x00\x01\x00\x00\x03\xff\x0b\x09\x00\x00\x00\x00\x01\x1a\x0b\x0a\x00\x02
\x00\x00\x02\xe5\x00\x00\x03\xe9\x13\x89\x08\xeb\x00\x04\x00\x00\x03\xf8\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x35
\x00\x05\x52\x48\x0b\x79\x17\x1a\x01\x37\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x01\x85\x0e\x00\x00\x00\x00\x00\x00\x2d\x00\x59
\x4e\x20\x00\x00\x00\x00\x00\x00\x00\x98\x00\x02\x8a\x91\x00\x00\x00\x9f\x00
\x02\xd0\x60\x00\x05\x5a\xf1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
- Grottserver - Plain record:
0001000200d9010459555a3038313932304334465a47383231303337000000000000020000002
c0001000003ff0b0900000000011a0b0a0002000002e5000003e9138908eb0004000003f80000
000000000000000000000000000000000135000552480b79171a0137000000000000000000000
0000000000001850e0000000000002d00594e20000000000000009800028a910000009f0002d0
6000055af10000000000000000000000000000000000020000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000
- Grottserver - 0104 data record received
- Grottserver - Response:
\x00\x01\x00\x02\x00\x03\x01\x04\x00
- Grottserver - Put response on queue: 127.0.0.1_47594 msg:
\x00\x01\x00\x02\x00\x03\x01\x04\x00
- Grottserver - get response from queue: 127.0.0.1_47594 msg:
\x00\x01\x00\x02\x00\x03\x01\x04\x00
- Grotthttpserver - Get received
- Grotthttpserver - datalogger get received : {}
192.168.50.19 - - [02/May/2025 20:26:55] "GET /datalogger HTTP/1.1" 200 -
- Grotthttpserver - http response send: 200 text/html b'{"YUZ081920C": {"ip": "127.0.0.1", "port": 47594, "protocol": "02"}}'
- Grotthttpserver - Get received
192.168.50.19 - - [02/May/2025 20:26:55] "GET /favicon.ico HTTP/1.1" 200 -
- Grotthttpserver - http response send: 200 text/html b'<h2>Welcome to Grott the growatt inverter monitor</h2><br><h3>Made by Ledidobe, Johan Meijer</h3>'
- Grotthttpserver - Get received
- Grotthttpserver - inverter get received : {}
192.168.50.19 - - [02/May/2025 20:27:26] "GET /inverter HTTP/1.1" 200 -
- Grotthttpserver - http response send: 200 text/html b'{"YUZ081920C": {"ip": "127.0.0.1", "port": 47594, "protocol": "02"}}'
- Grotthttpserver - Get received
192.168.50.19 - - [02/May/2025 20:27:26] "GET /favicon.ico HTTP/1.1" 200 -
- Grotthttpserver - http response send: 200 text/html b'<h2>Welcome to Grott the growatt inverter monitor</h2><br><h3>Made by Ledidobe, Johan Meijer</h3>'
- Grottserver - Data received from : 127.0.0.1:47594
- Grottserver - Original Data:
\x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34
\x46\x5a\x47\x38\x32\x |
:strip_exif()/f/image/IuL3yu6XqgvbKv00QYCdiCt6.jpg?f=fotoalbum_large)
:strip_exif()/f/image/cGSkO9r2QWiY78RFf1wYqZ2x.jpg?f=fotoalbum_large)
ik heb op de moment van wanneer de server liep ook een log gemaakt die grott heeft aangemaakt.Johan_meijer schreef op vrijdag 2 mei 2025 @ 22:36:
Hmm oké. Ik verwacht dat als grott(server) gestopt/gestart wordt dat de sessie opnieuw opgebouwd moeten worden en de omvormer opnieuw een init record stuurt (0103 record). Dat lijkt dus niet te gebeuren.
Welke omvormer / datalogger heb je?
Ik ga van het weekend even testen hoe het bij werkt, want hier gaat het goed (min 3600tl-xh ).
Kun je op de log kijken of je een 0103 record tegenkomt?
Als dat niet zo is dan moet dus de omvormer bekent gemaakt worden als er een los data record komt de 0104 die je in jouw log ziet. Maar ik (grott) verwacht daar een 0103 voor.
[ Voor 4% gewijzigd door braxx1980 op 03-05-2025 18:33 ]
Ik heb nu eens de inverter uitgeschakeld, de server gestart, grott gestart en nadien de inverter terug opgestart... wat blijkt:Johan_meijer schreef op zondag 4 mei 2025 @ 13:13:
Ok! Ik zie denk ik de reden.
De 02 in layout geeft het protocol aan (wel of niet encrypted, extend layout of niet etc).
Dit is een redelijk oud protocol (bij mij is dit in de loop van de jaren door firmware upgrades van de datalogger via 05 naar 06 gegaan),
In principe kan Grott hiermee omgaan. Ik was er alleen niet bewust van dat ook bij de opstart de communicatie stroom mogelijk anders was (dus grottserver mist de inverter initialisatie).
Normaal komen er een paar pings (de 16), een inverter initialisatie record (03 en soms ook voor andere devices zoals de smart meter) en dan komt pas de datastroom op gang (04).
Dat lijkt bij jou anders. Dat geeft niet maar daar moet Grott wel voor worden aangepast.
Zou je een stukje log kunnen sturen van het gedeelte dat Grott is opgestart en dat je inverter "aan" (dus bv Grott starten en dan pas de inverter aanzetten als dat kan). Dan kan ik dat aanpassen in de Grott communicatie stroom voor het 02 protocol.
Ik hoop dat ik duidelijk genoeg ben. Je mag het sturen naar grott@ledidobe.nl.
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
| Grott proxy mode started
Hostname : SmartApplianceEnabler
IP : 127.0.1.1 , port : 5279
- ('192.168.50.19', 6907) has connected
- Growatt packet received:
<socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)>
- Growatt command block checking started
- Data less then minimum record length, data not processed
- Growatt packet received:
<socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)>
- Growatt command block checking started
- Data less then minimum record length, data not processed
- Growatt packet received:
<socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)>
- Growatt command block checking started
- Growatt original Data:
\x00\x01\x00\x02\x00\xd9\x01\x03\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34
\x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00
\x2c\x01\x01\x00\x01\x00\x00\x00\x64\x00\x64\x27\x10\x00\x00\xb3\xb0\x0e\x10
\x41\x48\x31\x2e\x30\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x04\x03\xe8\x00
\x1e\x07\x44\x0a\x46\x12\x91\x14\x1e\x34\x46\x5a\x47\x38\x32\x31\x30\x33\x37
\x00\x10\xf1\x51\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x07\x35\x0a\x46\x12
\x91\x13\x99\x07\x9e\x09\xe2\x12\x93\x13\x8d\x00\xd2\x02\x01\x00\x2d\x00\x59
\x07\xe9\x00\x05\x00\x04\x00\x0d\x00\x0b\x00\x16\x03\xe8\x03\xe8\x03\xe8\x03
\xe8\x03\xe8\x03\xe8\x03\xe8\x03\xe8\x47\x72\x6f\x77\x61\x74\x74\x20\x49\x6e
\x76\x65\x72\x74\x65\x72\x61\x68\x62\x61\x31\x34\x31\x32\x00\x00\x00\x00\x01
\x31\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x13\x9c\x00\xc8
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
- Grott automatic protocol detection
- Grott data record length 223
- layout : T020103
- no matching record layout found, try generic
- Record layout used : T020103
- Growatt data decrypted V2
- Grott Growatt data decrypted
- Growatt plain data:
0001000200d901031e27354759454d75422c43272e337f405e4752437447726f7761767447724
37660747547726f1361105357726fc4d17a64063a5e5951747447726f7761747547766c9f616a
7303782965f0606a733435305946457741587771852547736f7761747447726f70547e3255e37
cee66ea7da560fc64ec74a645736f5a612d73ae726a7765747947796f61629c77af7187748977
9c449a6c9f629c33351d18161500540e1c19121300113513071500454076406f7761747576726
f7760747447726f776174744661f377a9747447726f7761747447726f7761
- Grott data ack record or data record not defined no processing done
- Growatt packet received:
<socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)>
- Growatt command block checking started
- Data less then minimum record length, data not processed
- Growatt packet received:
<socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)>
- Growatt command block checking started
- Grott: Shine Configure command detected
- Grott: Record blocked: 0118
\x00\x01\x00\x02\x00\x23\x01\x18\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00
\x1f\x00\x13\x32\x30\x32\x35\x2d\x30\x35\x2d\x30\x34\x20\x31\x35\x3a\x32\x35
\x3a\x32\x33
- Growatt packet received:
<socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)>
- Growatt command block checking started
- Growatt original Data:
\x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34
\x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00
\x2c\x00\x00\x00\x00\x00\x00\x0d\xac\x00\x00\x00\x00\x00\x00\x0d\xd6\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x13\x88\x08\xf4\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77
\x00\x05\x53\x81\x0b\x7b\xbc\x32\x01\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x01\x86\x0e\x0a\x00\x00\x00\x00\x00\x2d\x00\x59
\x4e\x20\x00\x00\x00\x00\x00\x00\x00\x39\x00\x02\x8b\x28\x00\x00\x00\x3f\x00
\x02\xd1\x05\x00\x05\x5c\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
- Grott automatic protocol detection
- Grott data record length 223
- layout : T020104
- no matching record layout found, try generic
- Record layout used : T02NNNN
- Grott Growatt unencrypted data used
- Growatt plain data:
0001000200d9010459555a3038313932304334465a47383231303337000000000000020000002
c0000000000000dac0000000000000dd600000000000000000000138808f40000000000000000
000000000000000000000000000000000077000553810b7bbc320153000000000000000000000
0000000000001860e0a00000000002d00594e20000000000000003900028b280000003f0002d1
0500055c2d0000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000
- Growatt new layout processing
- decrypt : False
- offset : 6
- record layout : T02NNNN
- Grott data record date/time processing started
- no or no valid time/date found, grott server time will be used (buffer records not sent!)
- Grott values retrieved:
- datalogserial : YUZ081920C
- pvserial : 4FZG821037
- pvstatus : 0
- pvpowerin : 0.0
- pv1voltage : 350.0
- pv1current : 0.0
- pv1watt : 0.0
- pv2voltage : 354.2
- pv2current : 0.0
- pv2watt : 0.0
- pvpowerout : 0.0
- pvfrequentie : 50.0
- pvgridvoltage : 229.2
- pvgridcurrent : 0.0
- pvgridpower : 0.0
- pvgridvoltage2 : 0.0
- pvgridcurrent2 : 0.0
- pvgridpower2 : 0.0
- pvgridvoltage3 : 0.0
- pvgridcurrent3 : 0.0
- pvgridpower3 : 0.0
- pvenergytoday : 11.9
- pvenergytotal : 34905.7
- totworktime : 26758.1
- pvtemperature : 33.9
- pvipmtemperature : 39.0
- epv1today : 5.7
- epv1total : 16669.6
- epv2today : 6.3
- epv2total : 18458.1
- epvtotal : 35127.7
- MQTT jsonmsg:
{"device": "4FZG821037", "time": "2025-05-04T15:25:29", "buffered": "no",
"values": {"datalogserial": "YUZ081920C", "pvserial": "4FZG821037",
"pvstatus": 0, "pvpowerin": 0, "pv1voltage": 3500, "pv1current": 0,
"pv1watt": 0, "pv2voltage": 3542, "pv2current": 0, "pv2watt": 0,
"pvpowerout": 0, "pvfrequentie": 5000, "pvgridvoltage": 2292,
"pvgridcurrent": 0, "pvgridpower": 0, "pvgridvoltage2": 0, "pvgridcurrent2":
0, "pvgridpower2": 0, "pvgridvoltage3": 0, "pvgridcurrent3": 0,
"pvgridpower3": 0, "pvenergytoday": 119, "pvenergytotal": 349057,
"totworktime": 192658482, "pvtemperature": 339, "pvipmtemperature": 390,
"epv1today": 57, "epv1total": 166696, "epv2today": 63, "epv2total": 184581,
"epvtotal": 351277}}
- Grott MQTT topic used : energy/growatt
- MQTT message message sent
- Grott Send data to PVOutput disabled
- Grott Send data to Influx disabled
- Grott extension processing disabled |
:strip_exif()/f/image/fJorfGSDujKBMBjsBW4eXupC.jpg?f=fotoalbum_large)
:strip_exif()/f/image/uvYLIYW10RU8qYut4XiBFzYe.jpg?f=fotoalbum_large)
:strip_exif()/f/image/a4HOxt2BhzBp5Nn60aYIL9sk.jpg?f=fotoalbum_large)
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
| - Grotthttpserver - Get received
- Grotthttpserver - inverter get received : {'command': ['register'], 'register': ['3'], 'inverter': ['4FZG821037'], 'format': ['dec']}
- Grotthttpserver: get command: register
- Grotthttpserver: selected deviceid : 01
- Grotthttpserver - unencrypted get command:
\x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00
\x03\x00\x03
- Grotthttpserver: Get command created :
\x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00
\x03\x00\x03
- Grotthttpserver - wait for GET response
- Grottserver - get response from queue: 127.0.0.1_38220 msg:
\x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00
\x03\x00\x03
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
- Grotthttpserver - wait for GET response
192.168.50.26 - - [04/May/2025 15:53:33] "GET /inverter?command=register®ister=3&inverter=4FZG821037&format=dec HTTP/1.1" 400 -
- Grotthttpserver - http response send: 400 text/body b'no or invalid response received'
- Grottserver - Data received from : 127.0.0.1:38220
- Grottserver - Original Data:
\x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34
\x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00
\x2c\x00\x01\x00\x00\x27\x74\x0c\x03\x00\x0f\x00\x00\x12\x66\x0c\x0b\x00\x11
\x00\x00\x15\x0e\x00\x00\x26\xab\x13\x87\x09\x0c\x00\x2a\x00\x00\x26\xba\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e
\x00\x05\x53\x88\x0b\x7b\xc9\x80\x01\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x01\x8f\x0e\x00\x00\x00\x00\x00\x00\x2d\x00\x59
\x4e\x20\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x02\x8b\x2b\x00\x00\x00\x42\x00
\x02\xd1\x08\x00\x05\x5c\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
- Grottserver - Plain record:
0001000200d9010459555a3038313932304334465a47383231303337000000000000020000002
c0001000027740c03000f000012660c0b00110000150e000026ab1387090c002a000026ba0000
00000000000000000000000000000000007e000553880b7bc9800165000000000000000000000
00000000000018f0e0000000000002d00594e20000000000000003c00028b2b000000420002d1
0800055c330000000000000000000000000000000000150000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000 |
/f/image/chFT49kdQZ8hZOoRXAFxaUR3.png?f=fotoalbum_large)
:strip_exif()/f/image/MP7jpqoLMYCxMTuOMxmVG7l3.png?f=user_large)
:strip_exif()/f/image/diO2B7tG4wUpspzKwLwYtlki.png?f=user_large)
:strip_exif()/f/image/wWIq5NLDHEvwfFCikHi5hxY7.png?f=user_large)
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
| version: 2.7.8
verbose: True
trace: False
config file: grott.ini
minrecl: 100
decrypt: True
compat: False
invtype: default
invtypemap: {}
include_all: False
blockcmd: False
noipf: False
time: auto
sendbuf: True
timezone: local
valueoffset: 6
offset: 6
inverterid: automatic
mode: proxy
grottip default
grottport 5279
_MQTT:
nomqtt False
mqttip: 192.168.10.3
mqttport: 1883
mqtttopic: energy/growatt
mqttmtopic: False
mqttmtopicname: energy/meter
mqttinverterintopic: False
mqtttretain: False
mqtttauth: False
mqttuser: grott
mqttpsw: **secret**
_Growatt server:
growattip: 47.91.67.66
growattport: 5279
_PVOutput:
pvoutput: False
pvdisv1: False
pvtemp: False
pvurl: https://pvoutput.org/service/r2/addstatus.jsp
pvapikey: yourapikey
pvinverters: 1
pvsystemid: systemid1
_Influxdb:
influx: False
influx2: False
database: grottdb
ip: localhost
port: 8086
user: grott
password: **secret**
organization: grottorg
bucket: grottdb
token: **secret**
_Extension:
extension: False
extname: grottext
extvar: {'none': 'none'} |
BE | 3x Marstek Venus 5.12kwh V151 + CT003 V114 3-fase | PV Omvormer Growatt 5500MTL-S
BE | 3x Marstek Venus 5.12kwh V151 + CT003 V114 3-fase | PV Omvormer Growatt 5500MTL-S
Ik heb volgens mij exact hetzelfde probleembraxx1980 schreef op zondag 4 mei 2025 @ 15:57:
[...]
Ik heb nu eens de inverter uitgeschakeld, de server gestart, grott gestart en nadien de inverter terug opgestart... wat blijkt:
0103 en 0104 komen binnen.
ook grottserver rapporteert nu een inverternummer.
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 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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147Grott proxy mode started Hostname : SmartApplianceEnabler IP : 127.0.1.1 , port : 5279 - ('192.168.50.19', 6907) has connected - Growatt packet received: <socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)> - Growatt command block checking started - Data less then minimum record length, data not processed - Growatt packet received: <socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)> - Growatt command block checking started - Data less then minimum record length, data not processed - Growatt packet received: <socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)> - Growatt command block checking started - Growatt original Data: \x00\x01\x00\x02\x00\xd9\x01\x03\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34 \x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00 \x2c\x01\x01\x00\x01\x00\x00\x00\x64\x00\x64\x27\x10\x00\x00\xb3\xb0\x0e\x10 \x41\x48\x31\x2e\x30\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x04\x03\xe8\x00 \x1e\x07\x44\x0a\x46\x12\x91\x14\x1e\x34\x46\x5a\x47\x38\x32\x31\x30\x33\x37 \x00\x10\xf1\x51\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x07\x35\x0a\x46\x12 \x91\x13\x99\x07\x9e\x09\xe2\x12\x93\x13\x8d\x00\xd2\x02\x01\x00\x2d\x00\x59 \x07\xe9\x00\x05\x00\x04\x00\x0d\x00\x0b\x00\x16\x03\xe8\x03\xe8\x03\xe8\x03 \xe8\x03\xe8\x03\xe8\x03\xe8\x03\xe8\x47\x72\x6f\x77\x61\x74\x74\x20\x49\x6e \x76\x65\x72\x74\x65\x72\x61\x68\x62\x61\x31\x34\x31\x32\x00\x00\x00\x00\x01 \x31\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x13\x9c\x00\xc8 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 - Grott automatic protocol detection - Grott data record length 223 - layout : T020103 - no matching record layout found, try generic - Record layout used : T020103 - Growatt data decrypted V2 - Grott Growatt data decrypted - Growatt plain data: 0001000200d901031e27354759454d75422c43272e337f405e4752437447726f7761767447724 37660747547726f1361105357726fc4d17a64063a5e5951747447726f7761747547766c9f616a 7303782965f0606a733435305946457741587771852547736f7761747447726f70547e3255e37 cee66ea7da560fc64ec74a645736f5a612d73ae726a7765747947796f61629c77af7187748977 9c449a6c9f629c33351d18161500540e1c19121300113513071500454076406f7761747576726 f7760747447726f776174744661f377a9747447726f7761747447726f7761 - Grott data ack record or data record not defined no processing done - Growatt packet received: <socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)> - Growatt command block checking started - Data less then minimum record length, data not processed - Growatt packet received: <socket.socket fd=6, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.50.42', 5279), raddr=('192.168.50.19', 6907)> - Growatt command block checking started - Grott: Shine Configure command detected - Grott: Record blocked: 0118 \x00\x01\x00\x02\x00\x23\x01\x18\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00 \x1f\x00\x13\x32\x30\x32\x35\x2d\x30\x35\x2d\x30\x34\x20\x31\x35\x3a\x32\x35 \x3a\x32\x33 - Growatt packet received: <socket.socket fd=5, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 38220), raddr=('127.0.0.1', 5781)> - Growatt command block checking started - Growatt original Data: \x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34 \x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00 \x2c\x00\x00\x00\x00\x00\x00\x0d\xac\x00\x00\x00\x00\x00\x00\x0d\xd6\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x13\x88\x08\xf4\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77 \x00\x05\x53\x81\x0b\x7b\xbc\x32\x01\x53\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x01\x86\x0e\x0a\x00\x00\x00\x00\x00\x2d\x00\x59 \x4e\x20\x00\x00\x00\x00\x00\x00\x00\x39\x00\x02\x8b\x28\x00\x00\x00\x3f\x00 \x02\xd1\x05\x00\x05\x5c\x2d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 - Grott automatic protocol detection - Grott data record length 223 - layout : T020104 - no matching record layout found, try generic - Record layout used : T02NNNN - Grott Growatt unencrypted data used - Growatt plain data: 0001000200d9010459555a3038313932304334465a47383231303337000000000000020000002 c0000000000000dac0000000000000dd600000000000000000000138808f40000000000000000 000000000000000000000000000000000077000553810b7bbc320153000000000000000000000 0000000000001860e0a00000000002d00594e20000000000000003900028b280000003f0002d1 0500055c2d0000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000 - Growatt new layout processing - decrypt : False - offset : 6 - record layout : T02NNNN - Grott data record date/time processing started - no or no valid time/date found, grott server time will be used (buffer records not sent!) - Grott values retrieved: - datalogserial : YUZ081920C - pvserial : 4FZG821037 - pvstatus : 0 - pvpowerin : 0.0 - pv1voltage : 350.0 - pv1current : 0.0 - pv1watt : 0.0 - pv2voltage : 354.2 - pv2current : 0.0 - pv2watt : 0.0 - pvpowerout : 0.0 - pvfrequentie : 50.0 - pvgridvoltage : 229.2 - pvgridcurrent : 0.0 - pvgridpower : 0.0 - pvgridvoltage2 : 0.0 - pvgridcurrent2 : 0.0 - pvgridpower2 : 0.0 - pvgridvoltage3 : 0.0 - pvgridcurrent3 : 0.0 - pvgridpower3 : 0.0 - pvenergytoday : 11.9 - pvenergytotal : 34905.7 - totworktime : 26758.1 - pvtemperature : 33.9 - pvipmtemperature : 39.0 - epv1today : 5.7 - epv1total : 16669.6 - epv2today : 6.3 - epv2total : 18458.1 - epvtotal : 35127.7 - MQTT jsonmsg: {"device": "4FZG821037", "time": "2025-05-04T15:25:29", "buffered": "no", "values": {"datalogserial": "YUZ081920C", "pvserial": "4FZG821037", "pvstatus": 0, "pvpowerin": 0, "pv1voltage": 3500, "pv1current": 0, "pv1watt": 0, "pv2voltage": 3542, "pv2current": 0, "pv2watt": 0, "pvpowerout": 0, "pvfrequentie": 5000, "pvgridvoltage": 2292, "pvgridcurrent": 0, "pvgridpower": 0, "pvgridvoltage2": 0, "pvgridcurrent2": 0, "pvgridpower2": 0, "pvgridvoltage3": 0, "pvgridcurrent3": 0, "pvgridpower3": 0, "pvenergytoday": 119, "pvenergytotal": 349057, "totworktime": 192658482, "pvtemperature": 339, "pvipmtemperature": 390, "epv1today": 57, "epv1total": 166696, "epv2today": 63, "epv2total": 184581, "epvtotal": 351277}} - Grott MQTT topic used : energy/growatt - MQTT message message sent - Grott Send data to PVOutput disabled - Grott Send data to Influx disabled - Grott extension processing disabled
als ik dan de datalogger en inverter oproep krijg ik volgende data. ziet dit er goed uit?
op beide calls dezelfde data?
[Afbeelding]
[Afbeelding]
een get api-call op register 3 van de inverter geeft wel nog steeds een fout.
[Afbeelding]
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- Grotthttpserver - Get received - Grotthttpserver - inverter get received : {'command': ['register'], 'register': ['3'], 'inverter': ['4FZG821037'], 'format': ['dec']} - Grotthttpserver: get command: register - Grotthttpserver: selected deviceid : 01 - Grotthttpserver - unencrypted get command: \x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00 \x03\x00\x03 - Grotthttpserver: Get command created : \x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00 \x03\x00\x03 - Grotthttpserver - wait for GET response - Grottserver - get response from queue: 127.0.0.1_38220 msg: \x00\x01\x00\x02\x00\x10\x01\x05\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x00 \x03\x00\x03 - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response - Grotthttpserver - wait for GET response 192.168.50.26 - - [04/May/2025 15:53:33] "GET /inverter?command=register®ister=3&inverter=4FZG821037&format=dec HTTP/1.1" 400 - - Grotthttpserver - http response send: 400 text/body b'no or invalid response received' - Grottserver - Data received from : 127.0.0.1:38220 - Grottserver - Original Data: \x00\x01\x00\x02\x00\xd9\x01\x04\x59\x55\x5a\x30\x38\x31\x39\x32\x30\x43\x34 \x46\x5a\x47\x38\x32\x31\x30\x33\x37\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00 \x2c\x00\x01\x00\x00\x27\x74\x0c\x03\x00\x0f\x00\x00\x12\x66\x0c\x0b\x00\x11 \x00\x00\x15\x0e\x00\x00\x26\xab\x13\x87\x09\x0c\x00\x2a\x00\x00\x26\xba\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7e \x00\x05\x53\x88\x0b\x7b\xc9\x80\x01\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x01\x8f\x0e\x00\x00\x00\x00\x00\x00\x2d\x00\x59 \x4e\x20\x00\x00\x00\x00\x00\x00\x00\x3c\x00\x02\x8b\x2b\x00\x00\x00\x42\x00 \x02\xd1\x08\x00\x05\x5c\x33\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 - Grottserver - Plain record: 0001000200d9010459555a3038313932304334465a47383231303337000000000000020000002 c0001000027740c03000f000012660c0b00110000150e000026ab1387090c002a000026ba0000 00000000000000000000000000000000007e000553880b7bc9800165000000000000000000000 00000000000018f0e0000000000002d00594e20000000000000003c00028b2b000000420002d1 0800055c330000000000000000000000000000000000150000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000
Johan ik kan ondertussen bevestigen dat het wel werkt wanneer de service draait en ik de omvormers uit zet (AC/DC) en opnieuw onder spanning zet. Je bovenstaande comment begrijp ik niet helemaal. Ik push normaal mijn local DNS naar alle IP adressen, moet ik het ip adres van de growatt server naar de dataloggers pushen als dns?Johan_meijer schreef op maandag 18 augustus 2025 @ 18:12:
Je zal inderdaad het adres (DNS) van de Growatt server in het IP adres van Grott moeten wijzigen.
Als 0103 en 0104 binnenkomt bij Grott dan krijg je info van je inverter.
[ Voor 7% gewijzigd door HE1 op 20-10-2025 15:31 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Als je home assistant gebruikt kan je een addon installeren van https://github.com/egguy/addon-grott-betacorsat schreef op dinsdag 21 oktober 2025 @ 07:10:
Is er iemand die in Jip en Janneke taal kan uitleggen hoe ik grottserver kan installeren op mijn nas met als doel mijn growat in ha uit te lezen. Ik heb mij ingelezen maar zoek naar handvaten om te beginnen, ben nog startende met ha.
[ Voor 160% gewijzigd door corsat op 21-10-2025 19:58 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Hmm, heb je meer logs van dit?corsat schreef op dinsdag 21 oktober 2025 @ 16:42:
Ik ben inmiddels opweg en heb via addon de growatt erin kunnen zetten maar bij mapping heb ik mijn growatt MIN 4200TL-XE met hopelijk de serie code die ik uit de app heb gehaald ingevoerd. Ik ben nu tot de laatste stap gekomen de datalogger en ik heb 3 regels in de ini file toegevoegd met het ip adres en datalogger code maar krijg bij het starten de volgende melding,
[19:54:36] INFO: Preparing to start...
[19:54:38] ERROR: Got unexpected response from the API: Service not enabled
[19:54:38] ERROR: Failed to get services from Supervisor API
Dit is mijn .ini bestand, ik twijfel of ik hier alles goed heb ingevuld.
[Server]
serverpassthrough = true
GET http://192.168.1.112:5782...r=4&datalogger=NAC5A330YR
PUT http://192.168.1.112:5782...gger=NAC5A330YR&value=0.1
GET http://192.168.1.112:5782...=[inverter-id]&format=dec
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
@corsat bij de instellingen van de addon (zie ook https://www.home-assistant.io/integrations/mqtt/)corsat schreef op donderdag 23 oktober 2025 @ 08:49:
Goede vraag over de mqtt, moet eerst even uitzoeken hoe deze aangezet moet worden.
[ Voor 12% gewijzigd door gerjanvdb op 23-10-2025 16:20 ]
Volgens mij heb ik een shinewilan alleen weet ik niet of het een X2 is, hoe zie ik dat?Tinusvolkel schreef op donderdag 23 oktober 2025 @ 09:22:
@corsat mocht het allemaal niet lukken dan kan je nog overwegen om de shinewilan-x2 aan te schaffen, deze ondersteund modbus tcp en had ik in notime werken in HA via de HACS Solax inverter modbus plugin.
Deze heeft ook een lekker snelle refresh tijd.
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
mqtt staat aan in mijn addon. Heb nog wat instellingen aangepast maar zonder suc6. Ik zie wel 2 poorten 5279 en 5782 en vraag mij af welke ik moet gebruiken of zijn ze beiden via de addon geactiveerd?gerjanvdb schreef op donderdag 23 oktober 2025 @ 16:18:
[...]
@corsat bij de instellingen van de addon (zie ook https://www.home-assistant.io/integrations/mqtt/)
De refresh tijd kan je evt aanpassen met command (in bijv postman)
PUT http://[your-ip]:5782/datalogger?command=register®ister=4&datalogger=[datalogger-id]&value=0.1
[Afbeelding]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
[ Voor 79% gewijzigd door corsat op 24-10-2025 13:01 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
@corsat mooi dat het nu werkt!. Je hebt al aangepast dat de shinelan de data naar HA/grott doorstuurt? dus door op de shinelan het Ip adres van HA in te stellen? Als je dat gedaan hebt dan verschijnen er bij 'Apparaten' -> MQTT een apparaat (van je omvormen) met alle gegevens (dat werkt alleen overdag wanneer er stroom wordt opgewekt natuurlijk)corsat schreef op donderdag 23 oktober 2025 @ 17:25:
De grott server draait inmiddels incl. mqtt. Mijn growatt server stond al in HA dus ik moet nog een keer testen of alles nu werk zoals het zou moeten werken, de informatie van mijn shinelan direct naar HA maar hoe test ik zoiets?
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Heb je de orginele growatt server integraties nog actief? (die moet dan uit)corsat schreef op zaterdag 25 oktober 2025 @ 22:22:
Bij apparaten staat mqtt al alleen zie ik geen entiteiten. Growatt server staat ook bij apparaten en daar zie ik mijn entiteiten dus vandaar dat ik mij nu afvraag of de info nu via de grottserver verloopt en hoe test ik dat? Mijn indruk is dat de gegevens via de grottserver in ha terecht komen en dat de shine server ook nog werkt.
[ Voor 24% gewijzigd door corsat op 31-10-2025 19:21 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
Oke, mocht je wat logs hebben, dan kan ik altijd even meekijken evt. Wellicht werkt de versie van mijn repo dan ook wel daarna. Heb nog wel een build error gefixed (een collega heeft deze nu ook draaien)corsat schreef op maandag 3 november 2025 @ 18:26:
Ik heb deze versie nu geïnstalleerd en gestart maar ergens staat er nog iets niet goed blijkbaar. De grottserver start wel maar er lijkt geen communicatie te zijn. Heb deze week weer wat tijd om eea na te lopen.
[ Voor 32% gewijzigd door gerjanvdb op 05-11-2025 13:29 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
[ Voor 19% gewijzigd door Dezorian op 12-11-2025 14:23 ]
Smarthomer | Home Assistant
[ Voor 5% gewijzigd door gerjanvdb op 04-12-2025 08:37 ]
/f/image/Ciw8VQdFx9NpUQzzRiPKJZSI.png?f=fotoalbum_large)
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
98
99
100
101
102
103
104
105
106
107
108
| <!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>link | 524: A timeout occurred</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<meta name="robots" content="noindex, nofollow" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/main.css" />
</head>
<body>
<div id="cf-wrapper">
<div id="cf-error-details" class="p-0">
<header class="mx-auto pt-10 lg:pt-6 lg:px-8 w-240 lg:w-full mb-8">
<h1 class="inline-block sm:block sm:mb-2 font-light text-60 lg:text-4xl text-black-dark leading-tight mr-2">
<span class="inline-block">A timeout occurred</span>
<span class="code-label">Error code 524</span>
</h1>
<div>
Visit <a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_524&utm_campaign=link" target="_blank" rel="noopener noreferrer">cloudflare.com</a> for more information.
</div>
<div class="mt-3">2025-12-26 14:52:12 UTC</div>
</header>
<div class="my-8 bg-gradient-gray">
<div class="w-240 lg:w-full mx-auto">
<div class="clearfix md:px-8">
<div id="cf-browser-status" class=" relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
<div class="relative mb-10 md:m-0">
<span class="cf-icon-browser block md:hidden h-20 bg-center bg-no-repeat"></span>
<span class="cf-icon-ok w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
</div>
<span class="md:block w-full truncate">You</span>
<h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
Browser
</h3>
<span class="leading-1.3 text-2xl text-green-success">Working</span>
</div>
<div id="cf-cloudflare-status" class=" relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
<div class="relative mb-10 md:m-0">
<a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_524&utm_campaign=link" target="_blank" rel="noopener noreferrer">
<span class="cf-icon-cloud block md:hidden h-20 bg-center bg-no-repeat"></span>
<span class="cf-icon-ok w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
</a>
</div>
<span class="md:block w-full truncate">Amsterdam</span>
<h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
<a href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_524&utm_campaign=link" target="_blank" rel="noopener noreferrer">
Cloudflare
</a>
</h3>
<span class="leading-1.3 text-2xl text-green-success">Working</span>
</div>
<div id="cf-host-status" class="cf-error-source relative w-1/3 md:w-full py-15 md:p-0 md:py-8 md:text-left md:border-solid md:border-0 md:border-b md:border-gray-400 overflow-hidden float-left md:float-none text-center">
<div class="relative mb-10 md:m-0">
<span class="cf-icon-server block md:hidden h-20 bg-center bg-no-repeat"></span>
<span class="cf-icon-error w-12 h-12 absolute left-1/2 md:left-auto md:right-0 md:top-0 -ml-6 -bottom-4"></span>
</div>
<span class="md:block w-full truncate">link</span>
<h3 class="md:inline-block mt-3 md:mt-0 text-2xl text-gray-600 font-light leading-1.3">
Host
</h3>
<span class="leading-1.3 text-2xl text-red-error">Error</span>
</div>
</div>
</div>
</div>
<div class="w-240 lg:w-full mx-auto mb-8 lg:px-8">
<div class="clearfix">
<div class="w-1/2 md:w-full float-left pr-6 md:pb-10 md:pr-0 leading-relaxed">
<h2 class="text-3xl font-normal leading-1.3 mb-4">What happened?</h2>
<p class="mb-2">The origin web server timed out responding to this request.</p><p>The likely cause is an overloaded background task, database or application, stressing the resources on the host web server.</p>
</div>
<div class="w-1/2 md:w-full float-left leading-relaxed">
<h2 class="text-3xl font-normal leading-1.3 mb-4">What can I do?</h2>
<h3 class="text-15 font-semibold mb-2">If you're a visitor of this website:</h3>
<p class="mb-6">Please try again in a few minutes.</p>
<h3 class="text-15 font-semibold mb-2">If you're the owner of this website:</h3>
<p>Please refer to the <a rel="noopener noreferrer" href="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-524/">Error 524</a> article:</p>
<ul class="ml-4">
<li>Contact your hosting provider; check for long-running processes or an overloaded web server.</li>
<li>Use status polling of large HTTP processes to avoid this error.</li>
<li>Run the long-running scripts on a <a rel="noopener noreferrer" href="https://developers.cloudflare.com/dns/proxy-status/#dns-only-records">grey-clouded subdomain</a>.</li>
<li>Enterprise customers can <a rel="noopener noreferrer" href="https://developers.cloudflare.com/support/troubleshooting/http-status-codes/cloudflare-5xx-errors/error-524/#resolution-on-cloudflare">increase the timeout setting</a> globally or for specific requests using Cache Rules.</li>
</ul>
</div>
</div>
</div>
<div class="cf-error-footer cf-wrapper w-240 lg:w-full py-10 sm:py-4 sm:px-8 mx-auto text-center sm:text-left border-solid border-0 border-t border-gray-300">
<p class="text-13">
<span class="cf-footer-item sm:block sm:mb-1">Cloudflare Ray ID: <strong class="font-semibold">9b416384b8855c45</strong></span>
<span class="cf-footer-separator sm:hidden">•</span>
<span id="cf-footer-item-ip" class="cf-footer-item hidden sm:block sm:mb-1">
Your IP:
<button type="button" id="cf-footer-ip-reveal" class="cf-footer-ip-reveal-btn">Click to reveal</button>
<span class="hidden" id="cf-footer-ip">86.85.181.150</span>
<span class="cf-footer-separator sm:hidden">•</span>
</span>
<span class="cf-footer-item sm:block sm:mb-1"><span>Performance & security by</span> <a rel="noopener noreferrer" href="https://www.cloudflare.com/5xx-error-landing?utm_source=errorcode_524&utm_campaign=link" id="brand_link" target="_blank">Cloudflare</a></span>
</p>
<script>(function(){function d(){var b=a.getElementById("cf-footer-item-ip"),c=a.getElementById("cf-footer-ip-reveal");b&&"classList"in b&&(b.classList.remove("hidden"),c.addEventListener("click",function(){c.classList.add("hidden");a.getElementById("cf-footer-ip").classList.remove("hidden")}))}var a=document;document.addEventListener&&a.addEventListener("DOMContentLoaded",d)})();</script>
</div><!-- /.error-footer -->
</div>
</div>
</body> |
Klopt het dat jouw versie alleen als native Home Assistant addon draait? Of is het ook mogelijk deze als docker image te hosten en hem over mqtt te verbinden met HA?gerjanvdb schreef op donderdag 4 december 2025 @ 08:21:
@BaseBoyNL De orginele versie van https://github.com/egguy/addon-grott draait op grott 2.8 daarmee kan je voor zover ik weet niet het vermogen van de omvormer instellen. Daarom heb ik deze repo geforkt en grottserver geupdate naar versie 3.2 daarmee kan je de update interval naar 6 seconden zetten, er voor kiezen om geen data naar de orginele growatt servers te versturen en het vermogen van de omvormer in te stellen zodat je niet teruglevert aan het net. Dat is https://github.com/gerjanvdbosch/addon-grott, zie https://github.com/gerjan...ott-beta/DOCS.md#inverter
Voor zover ik weet wordt er geen onderhoud meer gedaan aan grott
Smarthomer | Home Assistant
- Data less then minimum record length, data not processed
<socket.socket fd=7, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('192.168.1.4', 5279), raddr=('192.168.1.14', 1026)>
- Growatt packet received:
This too shall pass
Die berichten zijn volgens mij normaal. Ligt er misschien sneeuw op je panelen?Sharky schreef op dinsdag 6 januari 2026 @ 12:55:
Geen idee of het een lokaal probleem is, maar mijn docker geeft niets meer door aan Home Assistant sinds een paar dagen. Er zijn geen instellingen gewijzigd en alles ziet eruit zoals het hoort. Iemand een idee van de oorzaak?
[...]
Nee en ja. Normaal heeft het bericht ook inhoud, dus dat zou nu 0 moeten zijn voor bijvoorbeeld het huidige vermogen. Nu krijgt HA NaN door.s020506 schreef op dinsdag 6 januari 2026 @ 13:06:
[...]
Die berichten zijn volgens mij normaal. Ligt er misschien sneeuw op je panelen?
This too shall pass
Ik draai het niet in een docker, dus kan het niet precies reproduceren. Ik zie verschillende berichten te weinig data hebben, maar ook die wil data hebben.Sharky schreef op dinsdag 6 januari 2026 @ 13:23:
[...]
Nee en ja. Normaal heeft het bericht ook inhoud, dus dat zou nu 0 moeten zijn voor bijvoorbeeld het huidige vermogen. Nu krijgt HA NaN door.
Ik probeer je versie in home assistant te installeren en krijg een foutmelding:gerjanvdb schreef op donderdag 4 december 2025 @ 08:21:
De orginele versie van https://github.com/egguy/addon-grott draait op grott 2.8 ... ik deze repo geforkt en grottserver geupdate naar versie 3.2
Ik heb geprobeerd de image lokaal te builden en daar krijg ik geen error omdat ik bind-tools niet vastgezet heb (dus hij zoekt automatisch de laatste versie).Tsuranim schreef op maandag 26 januari 2026 @ 21:39:
[...]
Ik probeer je versie in home assistant te installeren en krijg een foutmelding:
#6 ERROR: process "/bin/bash -o pipefail -c apk add --update --no-cache bind-tools=9.18.41-r0" did not complete successfully: exit code: 1
------
> [2/8] RUN apk add --update --no-cache bind-tools=9.18.41-r0:
0.246 fetch https://dl-cdn.alpinelinu...in/x86_64/APKINDEX.tar.gz
0.408 fetch https://dl-cdn.alpinelinu...ty/x86_64/APKINDEX.tar.gz
1.088 ERROR: unable to select packages:
1.095 bind-tools-9.18.44-r0:
1.095 breaks: world[bind-tools=9.18.41-r0]
Wat ik begrijp als newbie is dat ik niet beschik over bind-tools=9.18.41-r0 (alleen hogere versies). Ben jij in de gelegenheid jouw fork hiermee compatibel te maken?
Ik had inderdaad je addon toegevoegd bij repositories en net de originele verwijderd. Maar nog steeds de foutmelding. Hoe kan ik zorgen dat bij mij de bind-tools niet vastgezet worden?gerjanvdb schreef op woensdag 28 januari 2026 @ 20:48:
[...]
Ik heb geprobeerd de image lokaal te builden en daar krijg ik geen error omdat ik bind-tools niet vastgezet heb (dus hij zoekt automatisch de laatste versie).
Heb je https://github.com/gerjanvdbosch/addon-grott toegevoegd bij de addons repositories? heb je toevallig de orginele ook geregistreerd en dat je per ongeluk die probeert te installeren?
[ Voor 13% gewijzigd door Tsuranim op 31-01-2026 14:18 ]
@Tsuranim Ah ik zie het inderdaad, lokaal had ik een andere versie. Ik heb het aangepast. Kan je het opnieuw proberen? (wel even check voor updates doen in HA bij de addons)Tsuranim schreef op zaterdag 31 januari 2026 @ 14:01:
[...]
Ik had inderdaad je addon toegevoegd bij repositories en net de originele verwijderd. Maar nog steeds de foutmelding. Hoe kan ik zorgen dat bij mij de bind-tools niet vastgezet worden?
Ik ben nieuw in github, maar in regel 9 van je docker file* staat:
RUN apk add --update --no-cache \
bind-tools=9.18.41-r0
* https://github.com/gerjan...ain/grott-beta/Dockerfile
Nu inderdaad geen foutmeldingen. Bedankt.gerjanvdb schreef op maandag 2 februari 2026 @ 18:55:
[...]
@Tsuranim Ah ik zie het inderdaad, lokaal had ik een andere versie. Ik heb het aangepast. Kan je het opnieuw proberen? (wel even check voor updates doen in HA bij de addons)
Mooizo! graag gedaanTsuranim schreef op woensdag 4 februari 2026 @ 11:04:
[...]
Nu inderdaad geen foutmeldingen. Bedankt.
1
| {} |
1
| C:\>curl -X PUT "http://192.168.1.65:5782/inverter/?command=register®ister=3&inverter=PYH7CE900X&value=100&format=dec" |
1
2
3
| - Possible Inverter serial PYH7CE900X en - pvserial : PYH7CE900X |
Dat komt omdat je een PUT doet ipv GET (jouw put command past de waarde aan, naar 100%), dus als je dat vervangt naar GET zou die wel iets terug moeten geven.GaMbiNo schreef op donderdag 5 februari 2026 @ 10:14:
Moi, ik heb sinds kort Grott ingeruild voor Grotsserver béta in docker, en ik krijg e.e.a. niet helemaal lekker werkend.
De data wordt netjes via poort 5279 aan Grottserver geleverd en deze zet het ook voor mij op een MQTT topic. So far so good maar als ik naar "http://192.168.1.65:5782/inverter" navigeer krijg ik geen data terug maar slechts:code:Ook een curl zoals deze levert niets op:
1{}code:Resultaat: no or invalid invertid specified
1 C:\>curl -X PUT "http://192.168.1.65:5782/inverter/?command=register®ister=3&inverter=PYH7CE900X&value=100&format=dec"
Het rare is dat dit op enig moment wel gewerkt heeft maar om voor mij onverklaarbare reden weer omgevallen is.
In de container log zie ik Grottserver wel de juiste inverterid resolven:code:Iemand een idee?
1 2 3 - Possible Inverter serial PYH7CE900X en - pvserial : PYH7CE900X
Dank voor het meedenken.gerjanvdb schreef op donderdag 5 februari 2026 @ 13:15:
[...]
Dat komt omdat je een PUT doet ipv GET (jouw put command past de waarde aan, naar 100%), dus als je dat vervangt naar GET zou die wel iets terug moeten geven.
zie: https://github.com/gerjan...e-datalogger-and-inverter
en https://github.com/johanm...documentatie/registers.md voor welke nummer welk register is
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
| # ─────────────────────────────────────────────────────────────
# Grott 3.x-dev (Alpha branch) – multi-arch
# ─────────────────────────────────────────────────────────────
FROM --platform=$BUILDPLATFORM python:3.11-slim AS build
ARG GROTT_BRANCH=Alpha
RUN apt-get update && apt-get install -y --no-install-recommends \
git gcc libpcap-dev iproute2 tcpdump && \
rm -rf /var/lib/apt/lists/*
RUN git clone --depth 1 --branch $GROTT_BRANCH \
https://github.com/johanmeijer/grott.git /src/grott
WORKDIR /src/grott
RUN python -m venv /opt/venv && /opt/venv/bin/pip install --no-cache-dir \
--upgrade pip && /opt/venv/bin/pip install --no-cache-dir \
paho-mqtt requests influxdb libscrc scapy psutil
# ─────────────────────────────────────────────────────────────
FROM python:3.11-slim AS runtime
ENV PATH="/opt/venv/bin:$PATH" \
PYTHONUNBUFFERED=1
COPY --from=build /opt/venv /opt/venv
COPY --from=build /src/grott /opt/grott
WORKDIR /opt/grott
# Optional bind-mount for custom config
VOLUME ["/config"]
# Listen on proxy and API ports when *not* using --network host
EXPOSE 5279/udp 5279/tcp 5782/tcp
ENTRYPOINT ["python", "grott.py"]
CMD ["-c", "/config/grott.ini"] |
[ Voor 58% gewijzigd door GaMbiNo op 05-02-2026 17:43 ]
Ah mooi om te lezen dat het gelukt isGaMbiNo schreef op donderdag 5 februari 2026 @ 13:28:
[...]
Dank voor het meedenken.
[knip]
-------------------------------------------------------------------------------------------------------------
edit:
Verkeerde image was het dus.![]()
Met dank aan Freekers van Github die deze docker file heeft gemaakt heb ik de Grott alpha image kunnen builden en draaien:code:Het werkt dus!
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# ───────────────────────────────────────────────────────────── # Grott 3.x-dev (Alpha branch) – multi-arch # ───────────────────────────────────────────────────────────── FROM --platform=$BUILDPLATFORM python:3.11-slim AS build ARG GROTT_BRANCH=Alpha RUN apt-get update && apt-get install -y --no-install-recommends \ git gcc libpcap-dev iproute2 tcpdump && \ rm -rf /var/lib/apt/lists/* RUN git clone --depth 1 --branch $GROTT_BRANCH \ https://github.com/johanmeijer/grott.git /src/grott WORKDIR /src/grott RUN python -m venv /opt/venv && /opt/venv/bin/pip install --no-cache-dir \ --upgrade pip && /opt/venv/bin/pip install --no-cache-dir \ paho-mqtt requests influxdb libscrc scapy psutil # ───────────────────────────────────────────────────────────── FROM python:3.11-slim AS runtime ENV PATH="/opt/venv/bin:$PATH" \ PYTHONUNBUFFERED=1 COPY --from=build /opt/venv /opt/venv COPY --from=build /src/grott /opt/grott WORKDIR /opt/grott # Optional bind-mount for custom config VOLUME ["/config"] # Listen on proxy and API ports when *not* using --network host EXPOSE 5279/udp 5279/tcp 5782/tcp ENTRYPOINT ["python", "grott.py"] CMD ["-c", "/config/grott.ini"]
Het werkt nog steeds goed. Maar ik loop vast op de volgende stap: aanpassen maximaal vermogen, door het volgende commando: PUT "http://192.168.1.115:5782/inverter?command=register®ister=3&inverter=[serial]&value={{ percentage }}"
Mooi dat het nog goed werkt.Tsuranim schreef op maandag 2 maart 2026 @ 22:01:
[...]
Het werkt nog steeds goed. Maar ik loop vast op de volgende stap: aanpassen maximaal vermogen, door het volgende commando: PUT "http://192.168.1.115:5782/inverter?command=register®ister=3&inverter=[serial]&value={{ percentage }}"
Maar het lijkt dat grott-server niet is opgestart. Ik zie in de home-asssistent GUI configuration wel de keuze port-number grott-server. Maar geen mogelijkheid om de server aan te zetten. Ik zie het ook niet terugkomen in de logs.
(reden waarom het ook lijkt dat de server niet gestart is: ook bij met browser naar 192.68.1.115:5782 gaan geeft "192.168.1.115 heeft geweigerd verbinding te maken.")
klopt het dat deze server voor het verwerken van commando's niet automatisch gestart wordt? En kan ik dit in de GUI configuratie aanzetten. En indien niet, weet jij hoe hett in de ini moet worden aangezet?
Bedankt voor je hulp. Probleem was iets anders. Ik had eerder GROTT als proxy ingesteld. Dan werkt aanpassen maximale output niet, kwam ik achter. Omzetten naar server, blijkbaar een periode wachten zodat inverter weer in grott wordt herkend (de serial) en het werkt.gerjanvdb schreef op dinsdag 3 maart 2026 @ 08:47:
[...]
Mooi dat het nog goed werkt. ....
[Afbeelding]
Ja dat werkt alleen met de server mode. Oh wat raar. Heb je de passthrough optie wel aan staan? die stuurt de data door naar de officiele growatt server (dan kan je het verbruik ook in de app zien)Tsuranim schreef op zaterdag 14 maart 2026 @ 15:25:
[...]
Bedankt voor je hulp. Probleem was iets anders. Ik had eerder GROTT als proxy ingesteld. Dan werkt aanpassen maximale output niet, kwam ik achter. Omzetten naar server, blijkbaar een periode wachten zodat inverter weer in grott wordt herkend (de serial) en het werkt.
Probleem is nu weer wel het lijkt dat ik dagelijks datalogger moet aan/uitzetten, want anders geeft hij de data niet door aan de growatt server.
:no_upscale():strip_icc():strip_exif()/f/image/3HVDeghz3sWvzgQMyRUCgM1Z.jpg?f=user_large)
[ Voor 3% gewijzigd door Hieke op 15-03-2026 11:20 ]
Panasonic K-series split 9 kW, gasloos sinds dec 23 | Tesla MY LR | PV 9,6 kWp | 2 x Zendure SF 2400 AC, 17.280 kWh
Ja passthrough staat ook aan. Gister werkte het niet, datalogger gereset en vooralsnog werkt het weer goed. Eerder voor het resetten soms wel, meestal niet. Logfiles grott op moment dat het niet werkt: ontbrekende/ongeldige tijdstempels in de pakketten en socket‑errors bij het forwarden naar poort 5279 van Growatt. “handlereadblesocket, exception in data forwarding 172.30.33.15:5279” .gerjanvdb schreef op zondag 15 maart 2026 @ 10:03:
[...]
Ja dat werkt alleen met de server mode. Oh wat raar. Heb je de passthrough optie wel aan staan? die stuurt de data door naar de officiele growatt server (dan kan je het verbruik ook in de app zien)
Ik dacht dat je bij de instellingen van de datalogger (waar je ook het IP adres moest aanpassen naar die van HA), dat menu kan je volgens mij ook de tijd (zone) instellen. Hopelijk blijft het nu goed werken.Tsuranim schreef op zondag 15 maart 2026 @ 12:19:
[...]
Ja passthrough staat ook aan. Gister werkte het niet, datalogger gereset en vooralsnog werkt het weer goed. Eerder voor het resetten soms wel, meestal niet. Logfiles grott op moment dat het niet werkt: ontbrekende/ongeldige tijdstempels in de pakketten en socket‑errors bij het forwarden naar poort 5279 van Growatt. “handlereadblesocket, exception in data forwarding 172.30.33.15:5279” .
Lijkt dus iets met de tijd van de datalogger fout te zijn, vreemd genoeg geen probleem voor HA. Maar ik kan volgens mij nergens tijd / time-server invullen bij de datalogger / omvormer.
Ja dat kan met deze addon: https://github.com/gerjanvdbosch/addon-grott (ik heb deze wel moeten forken van de orginele versie omdat voor elkaar te kijgen)Hieke schreef op zondag 15 maart 2026 @ 11:03:
Ik zie dat er een refreshrate van 1 minuut is bij de Grott-integratie via HACS in HA. Weet iemand hoe die waarde te verhogen is naar bijvoorbeeld 15 seconden? Met name het verversen van de waarde Actual Power zou prettig zijn...
[Afbeelding]
Datalogger is een ShineLan-X.
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
Even voor de beeldvorming: je kon voordat je HA gebruikte wel via Shinephone app inzage krijgen in de prestaties van beide omvormers?Bravertal schreef op woensdag 1 april 2026 @ 20:14:
Sinds afgelopen week heb ik Home Assistant. Ik heb geen verstand vann ICT. Mijn warmtepomp kan ik nu monitoren via ESP Home.
Ik heb 2 growatt omvormers en die heb ik ook in HA gezet. Ik kan nu echter niet meer de Shinephone app gebruiken om de daadwerkelijke opbrengst te zien.
Ik heb de Growatt 7000TL3-S op zolder en de Growatt MIC 3300TL-X in de schuur staan.
Ik wil dus 2 hardware "dingetjes" kopen om die in mijn omvormers te pluggen en om ze dan via esphome te kunnen monitoren.
Wat moet ik precies kopen?
Panasonic K-series split 9 kW, gasloos sinds dec 23 | Tesla MY LR | PV 9,6 kWp | 2 x Zendure SF 2400 AC, 17.280 kWh
Als je geen verstand hebt van ICT zoals je zelf schrijft, is het dan wel verstandig om met Home Assistant aan de slag te gaan? Home Assistant is nu niet meteen een stuk software waarbij alles uit of the box werkt en je zelf aan de slag zult moeten met dashboards, automations en aanverwante code.Bravertal schreef op woensdag 1 april 2026 @ 20:14:
Sinds afgelopen week heb ik Home Assistant. Ik heb geen verstand vann ICT. Mijn warmtepomp kan ik nu monitoren via ESP Home.
Ik heb 2 growatt omvormers en die heb ik ook in HA gezet. Ik kan nu echter niet meer de Shinephone app gebruiken om de daadwerkelijke opbrengst te zien.
Ik heb de Growatt 7000TL3-S op zolder en de Growatt MIC 3300TL-X in de schuur staan.
Ik wil dus 2 hardware "dingetjes" kopen om die in mijn omvormers te pluggen en om ze dan via esphome te kunnen monitoren.
Wat moet ik precies kopen?
Van klussen krijg je grijze haren
Daar heb je misschien wel gelijk in maar ik begin het leuk te vinden om te monitoren, vandaar dat ik ben begonnen bij de WP. Nu wil ik eigenlijk de panelen er ook bij hebben (en de wtw ook). Vandaar mijn vraag.fenrir schreef op vrijdag 3 april 2026 @ 16:36:
[...]
Als je geen verstand hebt van ICT zoals je zelf schrijft, is het dan wel verstandig om met Home Assistant aan de slag te gaan? Home Assistant is nu niet meteen een stuk software waarbij alles uit of the box werkt en je zelf aan de slag zult moeten met dashboards, automations en aanverwante code.
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
Via HA ging ik naar Dashboard bewerken en dan kon ik Growatt toevoegen (ik kon altijd mijn shinephone app in). Ik heb nu een "trucje" gedaan, extra inlog gemaakt bij Growatt en gekoppeld aan mijn omvormers. Vervolgens via HA gekoppeld. HA werkt gewoon en als het goed is kan ik morgen weer in mijn app.Hieke schreef op vrijdag 3 april 2026 @ 15:20:
[...]
Even voor de beeldvorming: je kon voordat je HA gebruikte wel via Shinephone app inzage krijgen in de prestaties van beide omvormers?
De 7000 ken ik niet. De MIC 3300TL-X ook niet, maar die zal vermoedelijk niet veel afwijken van het model dat ik heb, een MIC 2000TL-X. Ik heb daar een Growatt ShineLan-X datalogger aan gekoppeld en via ethernet-kabel wordt data naar mijn thuisnetwerk geleid. Heb voorheen een wifi-variant daarvan gehad maar die lag binnen 2 jaar al bij de milieustraat....
Als je voorheen wel in de Shinephone je data kon zien en nu niet meer zul je vermoedelijk software in HA hebben geïnstalleerd. Welke software dat is geef je niet aan. Is zinvol om tot een oplossing te komen.
En vaak kun je die die instellen als Server of Proxy waardoor je aangeeft dat na het uitlezen de data moet worden doorgeleid naar de servers van Growatt.
Zelf gebruik ik de integratie Grott daarvoor.
Heb er voor gekozen om data niet door te sturen naar China.
Persoonlijk geen goede ervaringen met ESP Home in relatie tot andere toepassingen. Dus ook niet met Growatt. Daar kan ik je niet bij helpen. De Growatt ShineLan-X datalogger werkt sindsdien simpel en probleemloos met Grott in HA.
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
Panasonic K-series split 9 kW, gasloos sinds dec 23 | Tesla MY LR | PV 9,6 kWp | 2 x Zendure SF 2400 AC, 17.280 kWh
Help mij, waar kan ik de juiste datalogger kopen dan?Hieke schreef op vrijdag 3 april 2026 @ 21:51:
Als dat werkt voor jou is dat prima natuurlijk. Maar heb wel vernomen dat de stabiliteit van Growatt servers soms wat te wensen overlaat. Hopelijk werkt je HA-applicatie dan wel gewoon door.
Alternatief is dan een eigen datalogger aanschaffen. Dan ben je onafhankelijk..
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
1
2
| ❯ kubectl logs deploy/grott | grep adjusted | grep 2026-04-04 | wc -l 216 |
1
2
3
4
| ❯ kubectl logs deploy/grott | grep adjusted | grep 2026-04-04 | uniq - Grott original time : 2026-04-04T07:26:53 adjusted UTC time for influx : 2026-04-04T07:26:53 - Grott original time : 2026-04-04T07:29:20 adjusted UTC time for influx : 2026-04-04T07:29:20 - Grott original time : 2026-04-04T07:30:29 adjusted UTC time for influx : 2026-04-04T07:30:29 |
[ Voor 0% gewijzigd door charlie_seven op 05-04-2026 17:48 . Reden: formatting ]
Zoek in Google search naar de Growatt ShineLan-X datalogger en je keuze is reuze. Kies als het enigszins kan voor de bekabelde variant van de dataloggers van Growatt. De wifi heb ik persoonlijk geen goede ervaringen mee.Bravertal schreef op vrijdag 3 april 2026 @ 22:03:
[...]
Help mij, waar kan ik de juiste datalogger kopen dan?
Heb je een link en is het plug and play?
Panasonic K-series split 9 kW, gasloos sinds dec 23 | Tesla MY LR | PV 9,6 kWp | 2 x Zendure SF 2400 AC, 17.280 kWh
Die dataloggers heb ik al maar die "rapporteren" toch aan de shinephone app.Hieke schreef op zondag 5 april 2026 @ 20:00:
[...]
Zoek in Google search naar de Growatt ShineLan-X datalogger en je keuze is reuze. Kies als het enigszins kan voor de bekabelde variant van de dataloggers van Growatt. De wifi heb ik persoonlijk geen goede ervaringen mee.
Als je dan Grott op HA installeert moet dat verder niet moeilijk zijn. Zelf heb ik Grott ook op NAS draaien en die stuurt zijn data via MQTT ook nog door naar HA op mijn RPI. Maar het moet zeker ook rechtstreeks naar HA kunnen.
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
Ik ervaar het zelfde probleem, ik zal er ook eens induiken. Bij mij is het spontaan ontstaan zonder dat er, bij mijn weten, oude data is verstuurd.charlie_seven schreef op zondag 5 april 2026 @ 17:47:
Nu, als ik op de Growatt server ga kijken, dan zie ik daar een ander probleem. Voor dezelfde dagen zie ik daar wel een normale grafiek van 's morgens tot 's middags, maar elke dag stopt de grafiek op een zo te zien random tijd tussen 11 en 13u.
Vandaag om 15u zie ik in de Shine app de inverter als "disconnected" en "Power: 0" maar bij de datalogger "Online", "Signal:good", "Connected" en de "Last Update" is een minuut geleden.
Als ik vanop de Growatt web portal het commando "turn on" probeer, krijg ik "Set Parameter Failure".
Op het schermpje van de inverter zelf zie ik echter 957 VA / 955 W / Ppv: 482/492 W dus die lijkt normaal te werken (het is een 4.2kW systeem maar op dat moment was het nogal bewolkt). Ook op de energiemeter in mijn zekeringkast zie ik dat ik op dat moment nog aan het net lever.
Dus het lijkt mij dat er mogelijk 2 (onafhankelijke?) problemen zijn:
#1 : in de voormiddag lijkt de logger correct te werken, want de grafieken kloppen in de app en portal. Maar grott gebruikt foutieve timestamps?
#2 : in de namiddag denkt de logger onterecht dat de inverter down is. Het rare is dat hij volgens de grott logs dan wel nog data stuurt (vandaag zie ik de hele namiddag nog logs in Grott maar elke keer met timestamp 2026-04-05T11:05:58) maar er verschijnt niets meer in de app/portal.
Enig idee wat er aan de hand kan zijn en/of hoe ik dit oplos?
Ehhh om de update frequentie naar 6 seconden te krijgen, kan dat geen kwaad? Oververhitting van de stick ofzo (althans dat gaf Gemini aan, ik heb er geen verstand van hoor).gerjanvdb schreef op zondag 15 maart 2026 @ 18:47:
[...]
Ja dat kan met deze addon: https://github.com/gerjanvdbosch/addon-grott (ik heb deze wel moeten forken van de orginele versie omdat voor elkaar te kijgen)
Om de update frequentie naar 6 seconden te krijgen moet je 0.1 invullen op de datalogger
Zie ook: https://github.com/gerjan...t-beta/DOCS.md#datalogger
https://github.com/gerjan...t-beta/DOCS.md#datalogger
MT Venus E met HW P1, WP: PUHZ-SW75YAA ERST30D-VM2ED.UK en Itho Daalderop WTW HRU 350 ECO unit HR RFT en 23 panelen á 335 wp (11 op oost en 12 op zuid), 13 panelen á 380 wp op noord.
Ziet je energy tab in HA er zoiets uit?Peetman schreef op zondag 5 april 2026 @ 20:42:
[...]
Ik ervaar het zelfde probleem, ik zal er ook eens induiken. Bij mij is het spontaan ontstaan zonder dat er, bij mijn weten, oude data is verstuurd.
Gedurende de rest van de dag blijft het opgewekte vermogen hangen op de laatste waarde en op een gegeven moment in de avond wordt het wel weer 0. Volgende ochtend werkt het weer tot ergens eind van de ochtend en dan herhaalt het probleem zich.
/f/image/T0OFJinQU6UyocNiAyEoaKUx.png?f=fotoalbum_large)
/f/image/jXxQPIEYLnG7M5ZOPSo30jAX.png?f=fotoalbum_large)
Bij mij komt een deel van de opbrengst er juist in de volgende ochtend bij (de lichtgele staafjes zijn van de Growatt omvormer):timbak02 schreef op maandag 6 april 2026 @ 19:06:
[...]
Ziet je energy tab in HA er zoiets uit?
[Afbeelding]
Een gekke piek in mijn geval altijd ergens rond 20:00 uur.
Mijn Grafana graph ziet er zoiets uit gedurende de dag:
[Afbeelding]
Ik heb 3 omvormers van Growatt.
Enige die geen probleem geeft is de Shine-Lan en de ShineX varianten vertonen het probleem.
Uiteindelijk zijn de totalen eind van de dag wel goed in mijn geval.
Moet nog eens de logs eens gaan doorspitten en door influxdb records gaan om te kijken of er iets geks is met de timestamps..
:strip_exif()/f/image/fT9xR3TGEzV09lDNYpaJKgh9.jpg?f=fotoalbum_large)
Geen idee eigenlijk, ik draai dit al een half jaar zo en ben er tevreden mee zo.Bravertal schreef op maandag 6 april 2026 @ 17:34:
[...]
Ehhh om de update frequentie naar 6 seconden te krijgen, kan dat geen kwaad? Oververhitting van de stick ofzo (althans dat gaf Gemini aan, ik heb er geen verstand van hoor).
[ Voor 10% gewijzigd door gerjanvdb op 07-04-2026 14:09 ]
Ik heb exact hetzelfde. Ik heb 3 omvormers en ze hangen alle drie aan Grott. Op alledrie heb ik op random momenten dat ze niks meer doorgeven. Gelukkig blijft de opwekking wel gewoon doorgaan en voor mijn gevoel wordt aan het einde van de dag op de volgende dag weer recht getrokken. Maar vreemd is het wel.Peetman schreef op zondag 5 april 2026 @ 20:42:
[...]
Ik ervaar het zelfde probleem, ik zal er ook eens induiken. Bij mij is het spontaan ontstaan zonder dat er, bij mijn weten, oude data is verstuurd.
Gedurende de rest van de dag blijft het opgewekte vermogen hangen op de laatste waarde en op een gegeven moment in de avond wordt het wel weer 0. Volgende ochtend werkt het weer tot ergens eind van de ochtend en dan herhaalt het probleem zich.
![]() | ![]() | ![]() |
[ Voor 33% gewijzigd door rens-br op 22-04-2026 20:15 ]
Ecodan 7,5kW Nibe F130 ventilatie warmtepomp, 300l RVS SWW, 8400wp zonnepanelen, LL airco/verwarming, 2 MARSTEK VENUS E firmware v153 BMS 215 combination CT003 v117 app v1.6.62
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
| substitutions:
device_description: Growatt Inverter
friendly_name: Growatt Inverter
name: Growatt
esphome:
name: growatt
esp8266:
board: esp07s
web_server:
port: 80
# Enable logging
logger:
baud_rate: 0
# Enable Home Assistant API
api:
encryption:
key: "5SBjTHcng9bTNrx7Hq9yIiqJQM+qY26yJOv4oxRHzvM="
ota:
platform: esphome
wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
# Enable fallback hotspot (captive portal) in case wifi connection fails
ap:
ssid: "${name} Fallback Hotspot"
password: "Yourpassword"
captive_portal:
time:
- platform: homeassistant
id: homeassistant_time
output:
# Blue Led
- id: light_bl
platform: gpio
pin: 16
# Green Led
- id: light_gr
platform: gpio
pin: 0
# Red Led
- id: light_rd
platform: gpio
pin: 2
uart:
id: mod_bus
tx_pin: 1
rx_pin: 3
baud_rate: 115200
debug:
direction: BOTH
modbus:
id: modbus1
uart_id: mod_bus
modbus_controller:
- id: growatt
# the Modbus device addr
address: 0x1
modbus_id: modbus1
setup_priority: -10
update_interval: 5s
command_throttle: 200ms
sensor:
- platform: modbus_controller
name: "${friendly_name} status"
address: 0
register_type: "read"
internal: true
accuracy_decimals: 0
id: status
- platform: modbus_controller
name: "${friendly_name} DcPower"
address: 9
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} DcVoltage"
address: 7
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} DcInputCurrent"
address: 8
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AcFrequency"
address: 37
register_type: "read"
unit_of_measurement: Hz
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.01
- platform: modbus_controller
name: "${friendly_name} AcVoltage"
address: 38
register_type: "read"
unit_of_measurement: V
device_class: voltage
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AcOutputCurrent"
address: 39
register_type: "read"
unit_of_measurement: A
device_class: current
icon: mdi:flash
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} AcPower"
address: 40
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} EnergyToday"
address: 53
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} EnergyTotal"
address: 55
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} PV2 EnergyToday"
address: 63
register_type: "read"
unit_of_measurement: kWh
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} PV2 EnergyTotal"
address: 65
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:flash
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Temperature"
address: 93
register_type: "read"
unit_of_measurement: C
device_class: temperature
icon: mdi:thermometer
value_type: U_WORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Discharging Power"
address: 3178
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:battery-arrow-down
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Charging Power"
address: 3180
register_type: "read"
unit_of_measurement: W
device_class: power
icon: mdi:battery-arrow-up-outline
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Voltage"
address: 3216 # Often battery voltage in some Growatt maps
register_type: "read"
unit_of_measurement: V
value_type: U_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Current"
address: 3217
register_type: "read"
unit_of_measurement: A
value_type: S_WORD
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Temperature"
address: 3218
register_type: "read"
value_type: S_WORD
unit_of_measurement: °C
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery SoC"
address: 3215 # ← changed
register_type: "read" # ← changed
unit_of_measurement: "%"
icon: mdi:home-battery
value_type: U_WORD
accuracy_decimals: 0
- platform: modbus_controller
name: "${friendly_name} Battery State"
address: 3212
register_type: "read"
icon: mdi:home-battery
value_type: U_WORD
- platform: modbus_controller
name: "${friendly_name} Battery Discharge Total"
address: 3182
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:battery-arrow-down
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
- platform: modbus_controller
name: "${friendly_name} Battery Charge Total"
address: 3184
register_type: "read"
unit_of_measurement: kWh
state_class: total_increasing
device_class: energy
icon: mdi:battery-arrow-up-outline
value_type: U_DWORD
accuracy_decimals: 1
filters:
- multiply: 0.1
text_sensor:
- platform: template
name: "Status state"
icon: mdi:eye
entity_category: diagnostic
lambda: |-
uint16_t value = static_cast<uint16_t>(id(status).state);
switch (value) {
case 0: return std::string("Standby");
case 1: return std::string("Normal");
case 2: return std::string("Discharge");
case 3: return std::string("Fault");
case 4: return std::string("Flash");
case 5: return std::string("PV Charging");
case 6: return std::string("AC Charging");
case 7: return std::string("Combined Charging");
case 8: return std::string("Combined Charging & Bypass");
case 9: return std::string("PV Charging & Bypass");
case 10: return std::string("AC Charging & Bypass");
case 11: return std::string("Bypass");
case 12: return std::string("PV Charge and Discharge");
default:
ESP_LOGW("WARNING", "Unexpected status_code value: %u", value); // Log unexpected values
return std::string("Unknown");
}
number:
- platform: modbus_controller
modbus_controller_id: growatt
id: max_output_power
name: "${friendly_name} Max Output Power"
address: 3
register_type: holding
value_type: U_WORD
min_value: 0
max_value: 100
step: 1
unit_of_measurement: "%"
entity_category: config
select:
- platform: template
name: "${friendly_name} Operation Mode"
icon: mdi:arrow-decision-outline
id: operation_mode
optimistic: true
initial_option: "Load First"
options:
- "Load First"
- "Battery First"
- "Grid First"
on_value:
then:
- lambda: |-
auto *ctrl = id(growatt);
if (!ctrl) return;
std::string mode = id(operation_mode).current_option(); // fixed
uint16_t mode_value;
if (mode == "Load First") {
mode_value = 32768; // Load First, enabled, start 00:00
} else if (mode == "Battery First") {
mode_value = 40960; // Battery First, enabled, start 00:00
} else { // Grid First
mode_value = 49152; // Grid First, enabled, start 00:00
}
// End time 23:59 = 23*256 + 59 = 5947
uint16_t end_time = 5947;
std::vector<uint16_t> data = {mode_value, end_time};
// Fixed: pass register count as third argument
auto command = esphome::modbus_controller::ModbusCommandItem::create_write_multiple_command(ctrl, 3038, data.size(), data);
ctrl->queue_command(command);
ESP_LOGI("mode", "Set mode to %s (register value %u)", mode.c_str(), mode_value); |
Nette oplossing, dit ga ik ook doen! Paar vraagjes als het mag:HopNotch schreef op woensdag 24 juli 2024 @ 21:29:
[...]
Ja en nee, er waren verschillende die delen hadden van wat ik nodig had. en die heb ik vervolgens samengebracht tot hetgeen dat ik heb draaien.
Onderstaand heb ik aangesloten op een Growatt MIN 4200TL
Ik gebruik de volgende hardware:
d1-mini
TTL to RS485 bordje
utpkabel
modbus stekker van de omvormer (wordt erbij geleverd als je die niet hebt weggegooid)
aansluiting d1-mini op ttl bord
D1mini - TTL
D2 - DE én RE
TX - DI
RX - RO
GND - GND
5V - VVC
Zie onderstaand de modbus stekker + de A en B poorten.
[Afbeelding]
Vervolgens heb je nog esphome:code:Number 100 is 100% open 0 is 0% omvormer helemaal dicht zetten.
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 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158--- esphome: name: growatt_inverter friendly_name: Growatt inverter esp8266: board: d1_mini # WiFi connection, correct these # with values for your WiFi. wifi: ssid: !secret wifi_ssid password: !secret wifi_password ap: ssid: "Growatt inv fallback hotspot" password: !secret wifi_ap_password captive_portal: # Enable logging. logger: baud_rate: 0 # Enable Home Assistant API. api: encryption: key: !secret api_password # Enable over-the-air updates. ota: platform: esphome password: !secret ota_password # Enable Web server. #web_server: # port: 80 # Sync time with Home Assistant. time: - platform: homeassistant id: homeassistant_time # Text sensors with general information. text_sensor: # Expose ESPHome version as sensor. - platform: version name: ESPHome Version # Expose WiFi information as sensors. - platform: wifi_info ip_address: name: IP ssid: name: SSID bssid: name: BSSID # Exposed buttons. button: # Button to restart the inverterfan. - platform: restart name: Restart uart: - id: gw_uart baud_rate: 9600 tx_pin: GPIO1 rx_pin: GPIO3 modbus: uart_id: gw_uart id: gw_modbus flow_control_pin: GPIO4 modbus_controller: - id: gw_modbus_c address: 0x1 modbus_id: gw_modbus setup_priority: -10 sensor: # Sensors with general information. # Uptime sensor. - platform: uptime name: Uptime # WiFi Signal sensor. - platform: wifi_signal name: WiFi Signal update_interval: 60s # Sensors with project specific information - platform: growatt_solar update_interval: 10s protocol_version: RTU2 inverter_status: name: Status Code phase_a: voltage: name: Voltage Phase A current: name: Current Phase A active_power: name: Power Phase A pv1: voltage: name: PV1 Voltage current: name: PV1 Current active_power: name: PV1 Active Power pv2: voltage: name: PV2 Voltage current: name: PV2 Current active_power: name: PV2 Active Power active_power: name: Grid Active Power pv_active_power: name: PV Active Power frequency: name: Frequency energy_production_day: name: Today's Generation total_energy_production: name: Total Energy Production inverter_module_temp: name: Module Temp icon: mdi:thermometer - platform: modbus_controller address: 94 name: IPM temp register_type: read value_type: U_WORD unit_of_measurement: "°C" icon: mdi:thermometer accuracy_decimals: 1 filters: - multiply: 0.1 number: - platform: modbus_controller name: Max Output Power address: 3 value_type: U_WORD min_value: 0 max_value: 100 entity_category: config
Ik heb nog een oude Shine WiFi. Heb je enig idee of die ook the flashen is?Ik gebruik een met ESPhome geflashte Shine-X module.
D1 voed ik met een usb-adapter. geeft geen problemen als de omvormer uit staat.Separator schreef op woensdag 15 juli 2026 @ 19:34:
[...]
Nette oplossing, dit ga ik ook doen! Paar vraagjes als het mag:
- Hoe voed je de D1, vanuit de omvormer of een externe voeding? De omvormer is snachts spanningsloos, geeft dat geen problemen met voeden via de omvormer?
- Waar gebruik je de UTP kabel voor? De D1 is toch een wifi bordje dat draadloos met HA communiceert?
- Heb je een nette oplossing qua behuizing/afwerking?
- Overige tips natuurlijk ook welkom :-)