onStorageBlockUpdated() fed chargingRate from wChaGra() and dischargingRate from wDisChaGra(). Those are the gradients, in percent of WChaMax per second, and read only on several inverters. The matching actions write InWRte and OutWRte, in percent of WChaMax. The user wrote one quantity and read back another. Feed the two rate states from inWRte() and outWRte(), and keep the gradients under names that cannot be mistaken for setpoints: chargeGradient and dischargeGradient, read only. enableDischarging was never reconciled either, while enableCharging was. It stayed frozen on the last written value and drifted silently as soon as the inverter changed StorCtl_Mod on its own. Reconcile both flags. The mapping moves into SunSpecStorageLogic so it can be exercised on a register dump without a running nymea.
SunSpec
Connect nymea to SunSpec devices over Modbus TCP
Supported Things
- SunSpec Inverter
- Model ID 101 & 111 Single phase inverter
- Model ID 102 & 112 Split phase inverter
- Model ID 103 & 113 Three phase inverter
- SunSpec Meter
- Model ID 201 & 211 Single phase meter
- Model ID 202 & 212 Split phase meter
- Model ID 203 & 213 Three phase meter
- SunSpec Storage
- Model ID 124
Tested connections
- SolarEdge (with custom battery)
Requirements
- The package 'nymea-plugin-sunspec' must be installed.
- The SunSpec device must support SunSpec over modbus TCP