System Architecture
Status: DRAFT
EMS Backend / Cloud
|
NATS over secure link
|
VPN path
|
outbound connections
|
+---------v---------+
| EMS Gateway |
| Raspberry Pi Zero |
| |
| Supervisor |
| NATS client |
| VPN client |
| Modbus drivers |
+---------+---------+
|
RS485
|
+------v------+
| Inverter |
+-------------+
Backend identity model
The backend stores a device record associated with:
- customer e-mail/account
- Raspberry Pi serial number
- device-specific security identity (TODO: document exact NATS identity and VPN credential identifiers)
The Raspberry Pi serial number is an inventory identifier. It must not be treated as a secret or as sufficient proof of device identity.
Control model
Cloud commands should be semantic operations, for example:
SetScheduleSetOperatingModeStartGridChargeStopGridChargeEnableExportDisableExport
The gateway validates the command before translating it into inverter-specific Modbus operations.