Skip to content

configuration register

tobiasfaust edited this page Dec 29, 2022 · 18 revisions

The whole modbus protocol can be configure by register.h. It´s implemented by json.

The first Level are the inverter type. The second Level are "configuration" and "data". Third Level are the data level and contains the items of available "id data" and "live data".

Configuration

This section describes the behaviour of modbus protocoll of selected inverter

Option Example Description
RequestLiveData "#ClientID", "0x04", "0x00", "0x00", "0x00", "0x77"],["#ClientID", "0x04", "0x00", "0x78", "0x00", "0x77" The Request message for Live Data. See hints below.
RequestIdData ["#ClientID", "0x03", "0x00", "0x00", "0x00", "0x14"] Same as RequestLiveData, but only one Request are implemented
LiveDataFunctionPos 1 At this position the function code is expect
LiveDataFunctionCode 0x04 This Code indicates livedata in byte string
IDDataFunctionPos 1 At this position the function code is expect
IdDataFunctionCode 0x03 This Code indicates IDdata in byte string
LiveDataStartsAtPos 3 At this position livedata bytes start
IdDataStartsAtPos 3 At this position IDdata bytes start
LiveDataErrorPos 1 At this position the error code is expect if Live Data was requested
LiveDataErrorCode 0x83 This code indicates an error of requeted Live data
IdDataErrorPos 1 At this position the error code is expect if ID Data was requested
IdDataErrorCode 0x84 This code indicates an error of requested ID Data
LiveDataSuccessPos 1 At this position the success code is expect if Live Data was requested
LiveDataSuccessCode 0x03 This code indicates a successful response of Live Data
IdDataSuccessPos 1 At this position the success code is expect if ID Data was requested
IdDataSuccessCode 0x04 This code indicates a successful response of ID Data

Hints for request messages of live data

It´s possible to request multiples, because only max 255 bytes are allowed to get back. So this item is designed as array of byte arrays. Each Message array will send, waiting 100ms, get response, waiting 1000ms and the next loop starts. Only after the last request message the whole concatinated response of all requests starts to parse. That means, the item positions are increasing.

If you want to add new items or change something it´s recommend to enable at least debug level 4.

process to get available inverters from json

there is a process implemented to get all avaialbe inverters from json. So a random item is picked up to get the json small. The selected item is: IdDataStartsAtPos. So please don´t change this name. Otherwise the Inverter selection list don´t work properly.

Items Data Level

ID Data

This section describes the available items of Inverter ID-Data.

The configured name "InverterSN" is showing at status webgiu page. Please don´t change the name.

Live Data

This section describes the available items of Livedata.

config in register.h

Option Example Description
position [67, 68] byte position in inverter answer
name Input Energy Charge Today internal unique name, this name is a part of mqtt topic name too
realname InputEnergyChargeToday a pretty writable name in webgui
datatype float need to convert from byte to target value. Possible datatypes: string, integer, float
factor 0.1 need to get the right value too
unit kWh only for showing in webgui

Clone this wiki locally