Skip to content

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.

  • state enum: off, bulk, absorption, float, fault.
  • offReason enum: "", Input power too low, Switch Off, Unknwon error.

Published ​

device/10/<i>/life ​

expireAfterSec: 30.

data fieldTypeUnitDescription
state / stateCodestring / int—Charger state (enum)
offReason / offReasonCodestring / int—Reason when off
voltagenumber (1 dec)VCharger voltage
currentnumber (1 dec)ACurrent (signed)
temperatureSolarPanelint°CPanel 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 fieldTypeUnitDescription
temperatureRegulatorint°CRegulator temperature
faultCodeint—Raw fault code
voltagePanelnumber (1 dec)VPanel voltage
currentPanelnumber (1 dec)APanel 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 fieldTypeUnitDescription
absorptionVoltagenumber (1 dec)VAbsorption setpoint
floatVoltagenumber (1 dec)VFloat setpoint
maxCurrentnumber (0 dec)AMax charge current
absorptionTimeLimitint—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/+/#' -v

Command — 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.

FieldTypeDescription
requestOnboolEnable charger
requestOffboolDisable charger
clearErrorboolClear error
EnterBatterySafeModeboolEnter battery safe mode
EnterAutomaticEqualisationModeintAuto equalisation mode
SetBatteryAbsorptionTimeLimitintAbsorption time limit
SetBatteryAbsorptionVoltagenumberAbsorption voltage (V)
SetBatteryFloatVoltagenumberFloat voltage (V)
SetBatteryEqualisationVoltagenumberEqualisation voltage (V)
SetBatteryTempCompensationintTemp compensation (mV/°C)
SetBatteryTypeintBattery type id
SetBatteryMaximumCurrentnumberMax charge current (A)
SetBatteryVoltageintBattery 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}'

Integration of multiplexed solutions
MUXEN and the MUXEN logo are trademarks of MUXEN SAS.