-
Notifications
You must be signed in to change notification settings - Fork 66
MQTT
Only OpenDTU-OnBattery specific topics are documented here. Refer to the upstream documentation for documentation of topics that are part of the upstream OpenDTU project and therefore are also part of OpenDTU-OnBattery.
Topic | R / W | Description | Value / Unit |
---|---|---|---|
victron/[serial]/PID | R | Product description | text |
victron/[serial]/SER | R | Serial number | text |
victron/[serial]/FW | R | Firmware number | int |
victron/[serial]/LOAD | R | Load output state | ON / OFF |
victron/[serial]/CS | R | State of operation | text e. g. "Bulk" |
victron/[serial]/ERR | R | Error code | text e. g. "No error" |
victron/[serial]/OR | R | Off reasen | text e. g. "Not off" |
victron/[serial]/MPPT | R | Tracker operation mode | text e. g. "MPP Tracker active" |
victron/[serial]/HSDS | R | Day sequence number (0...364) | int in days |
Topic | R / W | Description | Value / Unit |
---|---|---|---|
victron/[serial]/V | R | Voltage | Volt (V) |
victron/[serial]/I | R | Current | Ampere (A) |
Topic | R / W | Description | Value / Unit |
---|---|---|---|
victron/[serial]/VPV | R | Voltage | Volt (V) |
victron/[serial]/PPV | R | Power | Watt (W) |
victron/[serial]/H19 | R | Yield total (user resettable counter) | Kilo watt hours (kWh) |
victron/[serial]/H20 | R | Yield today | Kilo watt hours (kWh) |
victron/[serial]/H21 | R | Maximum power today | Watt (W) |
victron/[serial]/H22 | R | Yield yesterday | Kilo watt hours (kWh) |
victron/[serial]/H23 | R | Maximum power yesterday | Watt (W) |
Topic | R / W | Description | Value / Unit |
---|---|---|---|
battery/settings/chargeVoltage | R | Voltage | Volt (V) |
battery/settings/chargeCurrentLimitation | R | BMS requested max. charge current | Ampere (A) |
battery/settings/dischargeCurrentLimitation | R | BMS requested max. discharge current | Ampere (A) |
battery/stateOfCharge | R | State of Health | % |
battery/stateOfHealth | R | State of Charge | % |
battery/dataAge | R | How old the data is | Seconds |
battery/voltage | R | Actual voltage | Volt (V) |
battery/current | R | Actual current | Ampere (A) |
battery/temperature" | R | Actual temperature | °C |
battery/alarm/overCurrentDischarge | R | Alarm: High discharge current | 0 / 1 |
battery/alarm/underTemperature | R | Alarm: Low temperature | 0 / 1 |
battery/alarm/overTemperature | R | Alarm: High temperature | 0 / 1 |
battery/alarm/underVoltage | R | Alarm: Low voltage | 0 / 1 |
battery/alarm/overVoltage | R | Alarm: High voltage | 0 / 1 |
battery/alarm/bmsInternal | R | Alarm: BMS internal | 0 / 1 |
battery/alarm/overCurrentCharge | R | ||
battery/warning/highCurrentDischarge | R | Warning: High discharge current | 0 / 1 |
battery/warning/lowTemperature | R | Warning: Low temperature | 0 / 1 |
battery/warning/highTemperature | R | Warning: High temperature | 0 / 1 |
battery/warning/lowVoltage | R | Warning: Low voltage | 0 / 1 |
battery/warning/highVoltage | R | Warning: High voltage | 0 / 1 |
battery/warning/bmsInternal | R | Warning: BMS internal | 0 / 1 |
battery/manufacturer | R | Manufacturer | String |
battery/charging/chargeEnabled | R | Charge enabled flag | 0 / 1 |
battery/charging/dischargeEnabled | R | Discharge enabled flag | 0 / 1 |
battery/charging/chargeImmediately | R | Charge immediately flag | 0 / 1 |
Topic | R / W | Description | Value / Unit |
---|---|---|---|
huawei/cmd/limit_online_voltage | W | Online voltage (i.e. CAN bus connected) | Volt (V) |
huawei/cmd/limit_online_current | W | Online current (i.e. CAN bus connected) | Ampere (A) |
huawei/cmd/limit_offline_voltage | W | Offline voltage (i.e. CAN bus not connected) | Volt (V) |
huawei/cmd/limit_offline_current | W | Offline current (i.e. CAN bus not connected) | Ampere (A) |
huawei/cmd/mode | W | Controls GPIO output pin to switch slot detect | 0 (off) / 1 (on) / 2 (set automatically depending on online_current value) / 3 (set automatically based on Power Meter reading ) |
huawei/mode | R | Currently set charging mode | see above |
huawei/data_age | R | How old the data is | Seconds |
huawei/input_voltage | R | Input voltage | Volt (V) |
huawei/input_current | R | Input current | Ampere (A) |
huawei/input_power | R | Input power | Watt (W) |
huawei/output_voltage | R | Output voltage | Volt (V) |
huawei/output_current | R | Output current | Ampere (A) |
huawei/max_output_current | R | Maximum output current (set using the online limit) | Ampere (A) |
huawei/output_power | R | Output power | Watt (W) |
huawei/input_temp | R | Input air temperature | °C |
huawei/output_temp | R | Output air temperature | °C |
huawei/efficiency | R | Efficiency | Percentage |
If the inverter is solar-powered, none of the thresholds are published and publishing to the respective cmd
topic has no effect.
Note that, depending on your settings, some of the thresholds might have no effect. Refer to the DPL documentation to understand the thresholds.
Topic | Limitation |
---|---|
powerlimiter/status/threshold/voltage/start | |
powerlimiter/status/threshold/voltage/stop | |
powerlimiter/status/threshold/voltage/full_solar_passthrough_start | Not published if VE.Direct not enabled |
powerlimiter/status/threshold/voltage/full_solar_passthrough_stop | Not published if VE.Direct not enabled |
powerlimiter/status/threshold/soc/start | Not published if no battery interface configured or SoC is set to be ignored |
powerlimiter/status/threshold/soc/stop | Not published if no battery interface configured or SoC is set to be ignored |
powerlimiter/status/threshold/soc/full_solar_passthrough | Not published if no battery interface configured or SoC is set to be ignored or VE.Direct not enabled |
All thresholds have respective cmd
topics (replace status
with cmd
), which allow to override the threshold. The overrides are non-persistent, unless the Web API/UI is used to save the DPL settings (the DPL settings will show the override values).
Example: Use topic "powerlimiter/cmd/threshold/voltage/start" to override the battery discharge cycle start voltage threshold.
Topic | R / W | Description | Value |
---|---|---|---|
powerlimiter/cmd/mode | W | Power Limiter operation mode | see below |
powerlimiter/status/mode | R | Get Power Limiter operation mode | see below |
Setting any a mode through MQTT has no effect if the Power Limiter is disabled by configuration in the web application. The Power Limiter will stay off in that case.
When using the web application to change DPL settings, the DPL mode will be reset to normal operation.
Three modes are implemented:
- 0 - Normal operation: The Power Limiter works as configured through the web application.
- 1 - Fully disable with inverter shut down: The inverter is shut down and afterwards the Power Limiter stops operating, as if it was disabled in the web application. Note that this means that the inverter can start producing power if the web application or an MQTT topic is used to control it.
-
2 - Unconditional Full Solar-Passthrough: The power limit is set such that all available solar power is fed into the home, irrespective of grid consumption. Essentially, the inverter mimics the behavior of a traditional, non-smart inverter. Depending on your configuration, the inverter's limit is set to the following:
- Inverter is powered by a battery: The inverter's limit is set to the solar power output (VE.Direct interface), adjusted for efficiency, such that no energy from the battery is consumed. Note that if VE.Direct is disabled or the data is outdated, the inverter is shut down instead. This mode can be particularly useful in scenarios where solar power is better stored elsewhere, such as in an electric car.
- Inverter is powered by solar modules: The inverter's limit is set to the upper limit configured in the DPL settings (starting from releases 2024.04.xx).
The DPL counts the amount of times an attempt to configure the inverter to a particular state times out. This counter is used to decide to sent an inverter restart command, hoping to "revive" the inverter. If the counter keeps increasing even after multiple restart commands have been issued, the ESP restarts as a last resort. The thresholds to perform these actions are hard coded to 10 and 20 timeouts, respectively.
Topic powerlimiter/status/inverter_update_timeouts
can be monitored to be alerted by these timeouts.
| Topic | R / W | Description | Value | | powerlimiter/status/upper_power_limit | R | set maximum power limit of inverter | 0..P_max_inverter [W] |
- Home
- FAQ
- First-Time Installation
- Device Profiles (Pin Config)
- Upgrade from OpenDTU
- Getting Help
- Hilfe erhalten
- Builds & Examples
- ESP32 Versions and Memory
- Victron MPPT solar charger
- VE.Direct
- Victron Smartshunt
- Victron Smart Battery Sense
- Warning on Victron MPPT 100/20
- Pylontech battery
- Pytes battery
- Huawei AC PSU
- SBS Unipower Battery
- Jikong JK BMS
- HOYMILES
- Einschaltstrombegrenzung für Balkonkraftwerke - Inrush current limiter
- Live View
- Farbe des Wechselrichterfensters
- Power Meter
- Dynamic Power Limiter
- Dynamic Power Limiter ‐ (Full) Solar‐Passthrough
- Dynamic Power Limiter Limitations
- DC Voltage ‐ Load correction factor
- Battery
- Battery-Tipps
- 24V Battery issues with Hoymiles
- Home Assistant
- Grafana Dashboard
- XXL Balkonkraftwerk 1500 Watt und mehr! Worauf Ihr achten solltet!
- Wie gefährlich kann ein Balkonkraftwerk werden (FI‐Schutzschalter)
- Hardware Purchase Tipp
- Fan speed controller ‐ add temperature sensing to any fan
- Cable length(s) between battery and inverter
- Kabellänge(n) zwischen Batterie und Wechselrichter
- Diodes ‐ Bypass vs. Blocking Diodes
- Impact of high start-currents to the inverter
- Making Cables for your HOYMILES‐CAUTION