Appearance
Converter — inverter/charger (function 6)
A converter between two power sides — typically shore or generator AC on one side and the battery bank on the other. A reversible unit is both an inverter and a charger, so it publishes two frames: life for the output side and state for the input side, each with its own voltage and current. Commands force it on, off, charger-only or inverter-only, and set the AC input current limits.
stateenum:off,bulk,absorption,float,fault.deviceModeenum:charger only,inverter only,on,off,automatic.
Published
device/6/<i>/life (output side)
expireAfterSec: 30.
data field | Type | Unit | Description |
|---|---|---|---|
state | string | — | Converter state (enum) |
stateCode | int | — | Raw state |
inType / inTypeCode | string / int | — | Input type ac/dc |
outType / outTypeCode | string / int | — | Output type ac/dc |
reversible | bool | — | Reversible device |
inAvailable | bool | — | Input source available |
temperature | int | °C | Temperature |
fe | int | — | Raw FE byte |
voltage | number (1 dec) | V | Output voltage |
current | number (1 dec) | A | Output current (signed) |
json
{
"data": {
"state": "absorption",
"stateCode": 2,
"inType": "ac",
"inTypeCode": 0,
"outType": "dc",
"outTypeCode": 1,
"reversible": true,
"inAvailable": true,
"temperature": 45,
"fe": 0,
"voltage": 27.6,
"current": 40.0
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}device/6/<i>/state (input side)
expireAfterSec: 30.
data field | Type | Unit | Description |
|---|---|---|---|
ActiveAcInput | int | — | Active AC input index |
chargerFct / chargerFctCode | string / int | — | Charger function disable/enable |
inverterFct / inverterFctCode | string / int | — | Inverter function disable/enable |
deviceModeCode / deviceMode | int / string | — | Device mode (enum) |
voltage | number (1 dec) | V | Input voltage |
current | number (1 dec) | A | Input current (signed) |
currentMaxAC2 | number (1 dec) | A | Max input current limit |
json
{
"data": {
"ActiveAcInput": 1,
"chargerFct": "enable",
"chargerFctCode": 1,
"inverterFct": "disable",
"inverterFctCode": 0,
"deviceModeCode": 4,
"deviceMode": "automatic",
"voltage": 230.0,
"current": 6.2,
"currentMaxAC2": 16.0
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}device/6/<i>/limit-ac-1 and device/6/<i>/limit-ac-2
expireAfterSec: 30. Current limits per AC input (all number, 1 dec, A).
| Topic | data fields |
|---|---|
limit-ac-1 | AC1_minimum_current_limit, AC1_maximal_current_limit, AC1_actual_limit |
limit-ac-2 | AC2_minimum_current_limit, AC2_maximal_current_limit, AC2_actual_limit |
json
{
"data": {
"AC1_minimum_current_limit": 4.0,
"AC1_maximal_current_limit": 50.0,
"AC1_actual_limit": 32.0
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}bash
mosquitto_sub -h 127.0.0.1 -t 'device/6/+/#' -vCommand — device/6/<i>/command
Regex ^device/6/([[:digit:]]+)/command$. auto clears forceOn/forceOff. forceOn+forceOff → forceOn cleared. If both AC max set, AC2 is dropped. setCurrentAC*Max value is in amps (encoded ×10 on the bus).
| Field | Type | Description |
|---|---|---|
auto | bool | Automatic mode |
forceOn | bool | Force on |
forceOff | bool | Force off |
forceInverterOnly | bool | Inverter only |
forceChargerOnly | bool | Charger only |
setCurrentAC1Max | int | AC1 max current (A) |
setCurrentAC2Max | int | AC2 max current (A) |
bash
mosquitto_pub -h 127.0.0.1 -t 'device/6/0/command' -m '{"forceOn":true}'
mosquitto_pub -h 127.0.0.1 -t 'device/6/0/command' -m '{"forceChargerOnly":true}'
mosquitto_pub -h 127.0.0.1 -t 'device/6/0/command' -m '{"setCurrentAC2Max":16}'