Via einem SerialSniffer habe ich das ShineBus Tool abgehorcht und habe herausgefunden dass die RS485 vom Growatt MIC komplett andere Daten ausgibt, und auch auf anderes antwortet, als es die verfügbare Doku sagt.
Wenn du inzwischen eine brauchbare Liste was davon was ist hast wäre es nett!
Heute programmiert, in Powershell, damit ich den Wechselrichter direkt auslesen kann anstatt via Cloud Umweg umd besser steuern zu können:
# Read Growatt MIC 500-3300 current wattage via Powershell and RS485 USB adapter.
# I simply don't like relying on cloud, and I want it faster than every five Minutes.
# Joachim Otahal April 2024
#
#$COM = [System.IO.Ports.SerialPort]::getportnames()
[string]$COM = "COM3"
[int]$Timeout = 4
# Modbus command for "give me your data"
[byte[]]$GetGrowattStatus=(0x01,0x04,0x0b,0xb8,0x00,0x7d,0xb2,0x2a)
$port = New-Object System.IO.Ports.SerialPort $COM,9600,None,8,one
$port.Open()
$port.Write($GetGrowattStatus,0,$GetGrowattStatus.Count)
# Response is not fast, but wait no more than $Timeout seconds
for ($i=0;$i -lt $Timeout*4;$i++) {
Start-Sleep -Milliseconds 250
if ($port.BytesToRead -gt 0) {
#Write-Verbose $i -Verbose
$Data=@()
while ($port.BytesToRead -gt 0) {
$Data += [byte]$port.ReadByte()
}
$GrowattWatt = ($Data[7] * 256 + $Data[8])/10
$i=[int]::MaxValue
}
}
$port.Close()
$GrowattWatt
# 7,8 = Watt aktuell, 15,16 Watt aktuell, 53,54 Frequenz, 55,56 = Volt, 79,80 = Volt
Das Modbus-log von der Statusanzeige des Shinebus als "Modbus view" - in der Hex Variante, was sich nicht so gut darstellen lässt, sieht man dass ein Teil der Antworten das Gerät als "String" ist, welche Wattstärke freigeschaltet ist, Seriennummer und so weiter:
Packet 64: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:05,6238551 +0,0467421
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Starting Address: 0
Number of Registers: 45
Parsed As:
Address: 40000-40044 (45)
CRC:34263 (OK)
Packet 97: MODBUS Response (packet size: 95, data size: 91), 2024-04-04 07:30:05,8433831 +0,0000098
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Parsed As:
Register0: 1
Register1: 509
Register2: 0
Register3: 100
Register4: 0
Register5: 10000
Register6: 0
Register7: 20000
Register8: 1000
Register9: 18248
Register10: 12590
Register11: 12288
Register12: 23105
Register13: 16737
Register14: 94
...
CRC:33439 (OK)
Packet 98: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:05,8461831 +0,0028000
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Starting Address: 45
Number of Registers: 45
Parsed As:
Address: 40045-40089 (45)
CRC:5598 (OK)
Packet 131: MODBUS Response (packet size: 95, data size: 91), 2024-04-04 07:30:06,0479129 +0,0000118
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Parsed As:
Register0: 2024
Register1: 4
Register2: 4
Register3: 7
Register4: 29
Register5: 33
Register6: 4
Register7: 1840
Register8: 2875
Register9: 4750
Register10: 5150
Register11: 1035
Register12: 2875
Register13: 4750
Register14: 5150
...
CRC:51585 (OK)
Packet 132: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:06,0489403 +0,0010274
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Starting Address: 90
Number of Registers: 45
Parsed As:
Address: 40090-40134 (45)
CRC:42436 (OK)
Packet 165: MODBUS Response (packet size: 95, data size: 91), 2024-04-04 07:30:06,2494084 +0,0000071
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Parsed As:
Register0: 0
Register1: 5020
Register2: 50
Register3: 2369
Register4: 2461
Register5: 2231
Register6: 2139
Register7: 20
Register8: 5
Register9: 2415
Register10: 2300
Register11: 10000
Register12: 10000
Register13: 10000
Register14: 10000
...
CRC:55179 (OK)
Packet 166: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:06,2659701 +0,0165617
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Starting Address: 23
Number of Registers: 5
Parsed As:
Address: 40023-40027 (5)
CRC:13773 (OK)
Packet 179: MODBUS Response (packet size: 15, data size: 11), 2024-04-04 07:30:06,7818032 +0,0000069
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Parsed As:
Register0: 0
Register1: 0
Register2: 0
Register3: 0
Register4: 0
CRC:9398 (OK)
Packet 180: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:06,7910590 +0,0092558
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Starting Address: 3001
Number of Registers: 15
Parsed As:
Address: 43001-43015 (15)
CRC:54799 (OK)
Packet 197: MODBUS Response (packet size: 35, data size: 31), 2024-04-04 07:30:07,2975296 +0,0000066
Mode: RTU
Address: 1 (Slave)
Function: 3 (Read Holding Registers)
Parsed As:
Register0: 18002
Register1: 18999
Register2: 17228
Register3: 17712
Register4: 19010
Register5: 0
Register6: 0
Register7: 0
Register8: 0
Register9: 0
Register10: 0
Register11: 0
Register12: 0
Register13: 0
Register14: 0
CRC:49442 (OK)
Packet 198: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:08,5621386 +1,2646090
Mode: RTU
Address: 1 (Slave)
Function: 4 (Read Input Registers)
Starting Address: 3000
Number of Registers: 125
Parsed As:
Address: 33000-33124 (125)
CRC:45610 (OK)
Packet 275: MODBUS Response (packet size: 255, data size: 251), 2024-04-04 07:30:08,9717808 +0,0000104
Mode: RTU
Address: 1 (Slave)
Function: 4 (Read Input Registers)
Parsed As:
Register0: 1
Register1: 0
Register2: 491
Register3: 664
Register4: 7
Register5: 0
Register6: 491
Register7: 0
Register8: 0
Register9: 0
Register10: 0
Register11: 0
Register12: 0
Register13: 0
Register14: 0
...
CRC:8463 (OK)
Packet 276: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:08,9965740 +0,0247932
Mode: RTU
Address: 1 (Slave)
Function: 4 (Read Input Registers)
Starting Address: 3125
Number of Registers: 125
Parsed As:
Address: 33125-33249 (125)
CRC:9077 (OK)
Packet 353: MODBUS Response (packet size: 255, data size: 251), 2024-04-04 07:30:09,4101219 +0,0000092
Mode: RTU
Address: 1 (Slave)
Function: 4 (Read Input Registers)
Parsed As:
Register0: 0
Register1: 0
Register2: 0
Register3: 0
Register4: 0
Register5: 0
Register6: 0
Register7: 0
Register8: 0
Register9: 0
Register10: 0
Register11: 0
Register12: 0
Register13: 0
Register14: 0
...
CRC:14275 (OK)
Packet 354: MODBUS Request (packet size: 8, data size: 4), 2024-04-04 07:30:09,5808511 +0,1707292