Heb het nu na 1 dag hacken draaien.tryingtohack schreef op zondag 17 november 2024 @ 18:35:
[...]
Zou iemand voor mij dit script kunnen reviewen, eventueel testen op een raspberry met debian en python 3? (Mijn multiplus GX komt pas eind volgende week binnen).
Zaken die veranderd moesten worden in de standaard MP2 config na installatie:
0. Stel grid code in (Europe voor NL)
1. Zet ESS assistant aan
2. Ze mode "external control" aan (=mode 3)
3. enable service->modbus tcp in settings
Register is 37 en niet 2700/2716. Deze zijn voor mode 2.
Unit Id is voor mij 228 en niet 100.
Elke 14-15 seconde de register moet worden herschreven,anders stop de MP. In de documentatie staat trouwens 60 maar met de laatste firmware (502) lijkt het niet (meer) te kloppen.
Aangepaste en werkend geteste script:
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
| #!/usr/bin/env python3
import sys
import time
from pymodbus.client import ModbusTcpClient as ModbusClient
from pymodbus.payload import BinaryPayloadBuilder, Endian, BinaryPayloadDecoder
if len(sys.argv) != 2:
print('Missing Setpoint argument [W] or too many arguments were given')
sys.exit()
else:
setpoint_value = sys.argv[1]
register = 37
unit_id = 228
def Sendline():
print('Setting AC GRID SetPoint to [W]: ', setpoint_value)
try:
C = ModbusClient(host='192.168.0.214', port=502)
builder = BinaryPayloadBuilder(byteorder=Endian.BIG, wordorder=Endian.BIG)
builder.reset()
builder.add_16bit_int(int(setpoint_value))
payload = builder.to_registers()
C.write_register(register, payload[0], unit_id)
time.sleep(1)
msg = C.read_holding_registers(register, 1, unit_id)
decoder = BinaryPayloadDecoder.fromRegisters(msg.registers, byteorder=Endian.BIG)
msg = decoder.decode_16bit_int()
print('Actual AC GRID Setpoint is [W]: ', msg)
C.close()
except:
print ('Error, cannot communicate with GX device')
while 1:
Sendline()
time.sleep(12) |
/f/image/kKJmC4h5LbQLSsILIkb5j6et.png?f=fotoalbum_large)

/f/image/ItZssKjtBLmpmspFEsnNeqEg.png?f=fotoalbum_large)
:no_upscale():strip_icc():strip_exif()/f/image/vOlVNrmA8mfwuxK4TtAk00zV.jpg?f=user_large)
:no_upscale():strip_icc():strip_exif()/f/image/KbZFPgh7Lv42zaODX9TtQrqH.jpg?f=user_large)
:strip_exif()/f/image/nyw0pcDSPWXkRHQQIajtcPXv.jpg?f=fotoalbum_large)
:no_upscale():strip_icc():strip_exif()/f/image/5QzrJPHmQDqai2IzVHlkllsh.jpg?f=user_large)
:strip_exif()/f/image/i0HjI5kD9LUtzekNtKyVAdBv.jpg?f=fotoalbum_medium)
:strip_exif()/f/image/88losGLeCEdolo3412HCz1Eg.jpg?f=fotoalbum_medium)
:strip_exif()/f/image/FpUxcukT78QmEtpnTayytIeU.png?f=user_large)
/f/image/cZS4Ej7IDG71vY5uyqtsub4w.png?f=fotoalbum_large)
:strip_exif()/f/image/YT8J4MKc0yW46wAO9lLkGxbc.jpg?f=fotoalbum_large)