Appearance
Solar MPPT (function 10)
A solar charge controller. It reports which charge stage it is in — or, when it is off, why — together with what the panels are producing and what it is delivering to the battery. A third frame publishes the charger's configured setpoints, and the command topic can change them.
stateenum:off,bulk,absorption,float,fault.offReasonenum:"",Input power too low,Switch Off,Unknwon error.
Published
device/10/<i>/life
expireAfterSec: 30.
data field | Type | Unit | Description |
|---|---|---|---|
state / stateCode | string / int | — | Charger state (enum) |
offReason / offReasonCode | string / int | — | Reason when off |
voltage | number (1 dec) | V | Charger voltage |
current | number (1 dec) | A | Current (signed) |
temperatureSolarPanel | int | °C | Panel temperature |
json
{
"data": {
"state": "bulk",
"stateCode": 1,
"offReason": "",
"offReasonCode": 0,
"voltage": 28.4,
"current": 12.5,
"temperatureSolarPanel": 34
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}device/10/<i>/state
expireAfterSec: 30.
data field | Type | Unit | Description |
|---|---|---|---|
temperatureRegulator | int | °C | Regulator temperature |
faultCode | int | — | Raw fault code |
voltagePanel | number (1 dec) | V | Panel voltage |
currentPanel | number (1 dec) | A | Panel current (signed) |
json
{
"data": {
"temperatureRegulator": 41,
"faultCode": 0,
"voltagePanel": 62.3,
"currentPanel": 8.1
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}device/10/<i>/charger/parameters
expireAfterSec: 5. Common charger settings frame.
data field | Type | Unit | Description |
|---|---|---|---|
absorptionVoltage | number (1 dec) | V | Absorption setpoint |
floatVoltage | number (1 dec) | V | Float setpoint |
maxCurrent | number (0 dec) | A | Max charge current |
absorptionTimeLimit | int | — | Absorption time limit |
json
{
"data": {
"absorptionVoltage": 14.4,
"floatVoltage": 13.6,
"maxCurrent": 50,
"absorptionTimeLimit": 7200
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 5
}
}bash
mosquitto_sub -h 127.0.0.1 -t 'device/10/+/#' -vCommand — device/10/<i>/command
Regex ^device/10/([[:digit:]]+)/command$. Each call carries either an on/off request or one Set* parameter. requestOff clears any parameter set in the same message.
| Field | Type | Description |
|---|---|---|
requestOn | bool | Enable charger |
requestOff | bool | Disable charger |
clearError | bool | Clear error |
EnterBatterySafeMode | bool | Enter battery safe mode |
EnterAutomaticEqualisationMode | int | Auto equalisation mode |
SetBatteryAbsorptionTimeLimit | int | Absorption time limit |
SetBatteryAbsorptionVoltage | number | Absorption voltage (V) |
SetBatteryFloatVoltage | number | Float voltage (V) |
SetBatteryEqualisationVoltage | number | Equalisation voltage (V) |
SetBatteryTempCompensation | int | Temp compensation (mV/°C) |
SetBatteryType | int | Battery type id |
SetBatteryMaximumCurrent | number | Max charge current (A) |
SetBatteryVoltage | int | Battery nominal voltage (V) |
bash
mosquitto_pub -h 127.0.0.1 -t 'device/10/0/command' -m '{"requestOn":true}'
mosquitto_pub -h 127.0.0.1 -t 'device/10/0/command' -m '{"clearError":true}'
mosquitto_pub -h 127.0.0.1 -t 'device/10/0/command' -m '{"SetBatteryFloatVoltage":13.6}'