Protocols

SolisConnect supports local Modbus, SolisCloud, and dual-protocol entries. All modes use the same Home Assistant entity definitions and the same internal register cache, so adding cloud support does not create a second copy of every entity.

Modes

Mode

Reads

Writes

Best use

Modbus over TCP or serial

Full local register set for the selected inverter model

Full mapped Modbus writes

Preferred when local access is reliable.

SolisCloud API

Mapped inverterDetail fields plus mapped control CIDs

Verified control CIDs only

Use when local Modbus is unavailable or as a slower remote path.

Modbus + SolisCloud failover

One active protocol polls; the backup remains idle until failover

Active protocol first, then healthy backup where possible

Use when Modbus should normally be primary but cloud can cover outages, or the reverse.

Modbus + SolisCloud manual

One active protocol polls; a select entity chooses Modbus or cloud

Active protocol first, then healthy backup where possible

Use for maintenance or when you want explicit control of the active transport.

In dual failover mode the integration monitors the active protocol, switches after sustained health loss, and can return to the configured primary after it has been healthy for a recovery period. In manual mode the Active Protocol select entity controls which protocol polls.

SolisCloud capability

SolisCloud support is intentionally mapped into the same register/entity model as Modbus. Cloud-only mode marks entities unavailable when their registers are not covered by the current cloud mappings.

Current cloud write support is limited to verified CIDs and CID families:

CID or range

Register(s)

Purpose

636

43110

Storage mode bitfield

157

43024

Backup/reserved SOC

158

43011

Over-discharge SOC

160

43018

Force-charge SOC

696

43074

Feed-in power limit

5916-5927

43707 bits 0-11

TOU V2 slot enable switches

5928-5933, 5965, 5969, 5973, 5977, 5981, 5984

43708, 43715, … / 43750, 43757, …

TOU V2 slot SOC values

5947-5963, 5966-5986

43709-43710, … / 43751-43752, …

TOU V2 slot current/voltage values

5946, 5949, 5952, 5955, 5958, 5961, 5964, 5968, 5972, 5976, 5980, 5987

43711-43714, … / 43753-43756, …

TOU V2 HH:MM-HH:MM time slots

103

43141-43170

V1 Time-Charging (18-value composite string; see docs/source/tou.md)

Cloud writes read the previous CID value, send the control command, update the cache optimistically, and verify after SolisCloud catches up. If the cloud value does not match, SolisConnect restores the value reported by the device. While a write’s verify is pending (up to ~15-30s), the regular poll cycle skips republishing that specific register so it can’t overwrite the optimistic value with stale cloud-side data in the meantime.

The TOU V2 timed-slot CID family (5916-5987) is mapped into SolisConnect’s local 43707-43791 register model. Feature detection: SolisCloud CID 6798 reports whether TOU V2 is enabled (43605 / 0xAA55); in cloud-only mode, SolisConnect reads this once at first poll and disables the TOU V2 entities if the device doesn’t support it. The confirmed HMI-version threshold for V2 support is 0x4B00 (an earlier, incorrect note in this project said 0xFB00); the config flow now auto-detects has_v2 from the HMI version on both protocols, independent of the CID 6798 gate.

SolisCloud also reports the inverter’s HMI Version (register 33001 “DSP Version” and 33002 “HMI Version” are populated from the inverterDetail fields dspmVersionAll/hmiVersionAll) so firmware version sensors work the same in cloud-only mode as they do over Modbus.

The older Time-Charging (TOU V1) schedule is now also mapped over cloud via control CID 103 — see docs/source/tou.md for the field layout, the Modbus/cloud current-value compromise, and the not-yet-live-verified caveat.

Operational notes

Home Assistant lists SolisConnect as local_polling in manifest.json. That is still the best single Home Assistant class for the integration because local Modbus is the full-featured path, even though cloud-only and dual entries can use the SolisCloud API.

If you run another SolisCloud integration with the same key, such as hultenvp/solis-sensor, it may add significant SolisCloud atRead traffic. Consider disabling the other integration while testing SolisConnect cloud mode.

If old debug logs captured SolisCloud credentials before redaction was added, rotate the SolisCloud key secret and remove old logs.

References

The local Modbus foundation comes from the upstream project SolisConnect was forked from: Pho3niX90/solis_modbus. The SolisCloud support was framed with reference to mkuthan/solis-cloud-control (Solis Cloud Controls: control CIDs, TOU V2 slots, yuanzhi write semantics) and hultenvp/solis-sensor (SolisCloud API access patterns).