Solakon ONE Inverter

Monitor and control the Solakon ONE hybrid solar inverter via Modbus TCP

Current Release
1.0.18
Developer
Marco Bertulies
License
MIT

ioBroker adapter for the Solakon ONE hybrid solar inverter

Monitors and controls the Solakon ONE hybrid solar inverter (www.solakon.de) with battery storage over the local network via Modbus TCP (Port 502).

Deutsch / German documentation


Requirements

  • ioBroker with js-controller >= 6.0.0
  • Node.js >= 22
  • Solakon ONE inverter reachable in the local network
  • Modbus TCP enabled on the device (Port 502)

Installation

Install via the ioBroker Admin interface: Adapters → search for "solakon-one"Install.


Configuration

FieldDescriptionDefault
IP AddressIP of the Solakon ONE on the LAN192.168.1.100
PortModbus TCP port502
Modbus Device IDSlave address (1–247)1
Interval (s)Poll interval (1–300 s)30

Data Points

All data points are created under solakon-one.<instance>.* (e.g. solakon-one.0.* for the default instance number 0; multiple instances are possible).

Connection Status

IDDescriptionType
info.connectionConnection activeBoolean

Device Information (device.*)

IDDescription
device.modelModel name
device.serialSerial number
device.fw_masterFirmware version (Master)
device.fw_slaveFirmware version (Slave)

Photovoltaics (pv.*)

IDDescriptionUnit
pv.total_powerTotal PV powerW
pv.total_energyTotal PV energykWh
pv.pv1_voltagepv4_voltageString voltageV
pv.pv1_currentpv4_currentString currentA
pv.pv1_powerpv4_powerString powerW

Battery (battery.*)

IDDescriptionUnit
battery.socState of Charge (SoC)%
battery.voltageVoltageV
battery.currentCurrentA
battery.powerPower (+ charge, − discharge)W
battery.combined_powerCombined powerW
battery.total_chargeTotal charge energykWh
battery.total_dischargeTotal discharge energykWh
battery.bms1_sohState of Health (SoH)%
battery.design_energyNominal capacityWh
battery.ambient_tempAmbient temperature°C
battery.max_tempMaximum temperature°C
battery.min_tempMinimum temperature°C

Grid (grid.*)

IDDescriptionUnit
grid.off_gridIsland mode activeBoolean
grid.r_voltageGrid voltage phase RV
grid.s_voltageGrid voltage phase SV
grid.t_voltageGrid voltage phase TV
grid.frequencyGrid frequencyHz
grid.active_powerActive power (+ export, − import)W
grid.reactive_powerReactive powerkvar
grid.power_factorPower factor
grid.total_exportTotal feed-in energykWh
grid.total_importTotal purchased energykWh
grid.standardGrid standard (6=VDE0126, 7=VDE4105_DE)

Inverter (inverter.*)

IDDescriptionUnit
inverter.temperatureInternal temperature°C
inverter.frequencyOutput frequencyHz
inverter.daily_energyDaily yieldkWh
inverter.total_energyTotal yieldkWh
inverter.operating_modeOperating mode
inverter.network_statusNetwork status

Emergency Power / EPS (eps.*)

IDDescriptionUnit
eps.voltageEPS output voltageV
eps.currentEPS output currentA
eps.powerEPS output powerW

Status (status.*)

IDDescription
status.remote_controlActive remote control mode
status.remote_countdownRemaining time remote control (s)

Control (control.*) — writable

IDDescriptionRange
control.remote_control_modeRemote control mode0/1/3/5/7/9/11/13/15
control.remote_timeoutRemote control timeout (s)0–3600
control.remote_active_powerActive power setpoint (W)-100000–100000
control.remote_reactive_powerReactive power setpoint (var)-100000–100000
control.eps_outputEPS/UPS output0=Off, 2=EPS, 3=UPS
control.minimum_socMin. state of charge0–100 %
control.maximum_socMax. state of charge0–100 %
control.minimum_soc_ongridMin. SoC (grid-connected)0–100 %
control.max_charge_currentMax. charge current0–40 A
control.max_discharge_currentMax. discharge current0–40 A
control.operating_modeOperating mode0–7

Operating modes (operating_mode)

ValueDescription
0Unspecified
1Self-consumption
2Feed-in priority
3Backup
4Peak shaving
6Force charge
7Force discharge

Remote control modes (remote_control_mode)

ValueDescription
0Off
1Inverter export (PV priority)
3Inverter import (PV priority)
5Battery discharge
7Battery charge
9Grid export
11Grid import
13Inverter export (grid priority)
15Inverter import (grid priority)

Changelog

1.0.18 (2026-07-24)

  • Fix stale Modbus connection not being reset after a poll returns no data, which could cause the adapter to keep reusing a dead connection instead of reconnecting

1.0.17 (2026-07-24)

  • Speed up adapter startup by creating/healing all datapoints in parallel instead of sequentially
  • Make Modbus reconnect more robust (graceful socket close, automatic connect retry) to reduce ECONNRESET disconnects

1.0.16 (2026-07-23)

  • Fix Admin GUI crash when hovering enum values in the object tree (#44): common.states is now resolved to plain per-language strings instead of translation objects, with automatic self-healing for existing installations
  • Add common.desc (English/German) for control and status datapoints

1.0.15 (2026-06-28)

  • Fix README manufacturer link: use solakon.de instead of the unrelated Home Assistant integration repo

1.0.14 (2026-06-28)

  • Address manual review feedback: remove postinstall script, English log messages, i18n state labels and instanceObjects, translatable admin labels, sequential polling, README fixes, integration tests

1.0.13 (2026-06-11)

  • Fix invalid role 'level.power' for power setpoint states (E1008)

1.0.12 (2026-06-10)

  • Update @tsconfig/node22 to ^22.0.5 (W0083); migrate i18n to short format (S5601)

1.0.11 (2026-06-10)

  • Add CHANGELOG_OLD.md for older entries (W6020); add tsconfig.json and @tsconfig/node22 (S0085/S0087); add README link to CHANGELOG_OLD.md

1.0.10 (2026-06-10)

  • Fix W5005: use adapter.setTimeout in modbus.js; update eslint-config to 2.3.4; remove CHANGELOG_OLD.md

1.0.9 (2026-06-09)

  • Fix JSON syntax error in io-package.json; limit news entries to 7 (E1032)

1.0.7 (2026-06-09)

  • Fix @types/node version specifier: change >=22 to ^22.0.0 (W0066)

1.0.6 (2026-06-09)

  • Fix Node.js requirement in README (>=22); add @types/node devDependency

1.0.5 (2026-06-09)

  • Fix repo checker errors: require Node.js >=22, update release-script packages, remove redundant eslint devDependency, add macOS to CI test matrix, use this.setInterval/clearTimeout correctly

1.0.4 (2026-06-09)

  • Add multilingual names (11 languages) to all datapoints

1.0.3 (2026-05-30)

  • Add Node.js 24 to CI test matrix; use Node 24 for lint and deploy

1.0.2 (2026-04-13)

  • Fix: add changelog to README, remove obsolete .eslintrc.json, add release-script packages, VS Code schema, automerge workflow

1.0.1 (2026-04-13)

  • Fix: compact mode enabled, ESLint migrated to @iobroker/eslint-config, node: prefix for built-in modules, automated deploy workflow added

1.0.0 (2026-04-12)

  • Initial release
  • Modbus TCP communication
  • All sensor data points (PV, battery, grid, inverter, EPS)
  • All control data points (operating mode, SoC limits, remote control, EPS)
  • Admin UI with jsonConfig

For older changelog entries see CHANGELOG_OLD.md.


License

MIT License

Copyright (c) 2026 Marco Bertulies berto74online@gmail.com

Based on the Home Assistant integration for Solakon ONE.