A .NET 10 library for communicating with E3DC S10 home battery systems via the proprietary RSCP (Remote Storage Control Protocol) over TCP. Includes a full-featured sample dashboard application.
- Binary RSCP protocol implementation — framing, CRC32, Rijndael-256 encryption
- Akka.Streams-based reactive data pipeline with automatic reconnection
- Typed snapshot API covering all major RSCP namespaces: EMS, BAT, PVI, PM, DCDC, EP, WB, DB, INFO
- Sample web dashboard demonstrating real-time monitoring, history queries, live tag exploration, and protocol-level request building
- Protocol layer — full binary framing, CRC32 validation, Rijndael-256 AES-compatible encryption
- Fluent request builder — type-safe tag descriptors for every RSCP namespace
- Typed snapshots —
EmsPowerSnapshot,BatterySnapshot,InverterSnapshot,PowerMeterSnapshot,DcdcSnapshot,EpSnapshot,WallboxSnapshot, and more - Reactive pipeline — Akka.Streams source with automatic TCP reconnection and backpressure
- Tiered polling — fast (2 s), medium (10 s), and startup tiers with demand-driven activation
A four-tab web dashboard demonstrating end-to-end usage of the connector.
Real-time energy flow schematic, scrollable power history chart, live KPI tiles, and detailed status panels for battery, inverter, power meter, DCDC converter, emergency power, and wallbox.
Query E3DC on-device stored data across day, week, month, and year resolutions. Results are displayed as bar charts.
Live tag tree showing every polled RSCP tag with its current value — useful for discovering what your device exposes.
Three-panel RSCP protocol workbench: tag browser, request composer, and raw response viewer. Lets you craft arbitrary RSCP requests and inspect the parsed response.
# Clone
git clone https://github.com/Leberkas-org/e3dc.net.git
cd e3dc.net
# Configure — fill in your E3DC credentials
# Edit samples/E3dc.Net.Dashboard/appsettings.json
# Run
dotnet run --project samples/E3dc.Net.Dashboard
# Or with Docker
cd samples && docker compose up -d --buildsrc/
E3dc.Net/ Core RSCP protocol library (framing, encryption, request builder, typed snapshots)
samples/
E3dc.Net.Dashboard/ Full web dashboard application
docs/ VitePress documentation site
test/
E3dc.Net.Tests/ Unit tests
Edit samples/E3dc.Net.Dashboard/appsettings.json:
{
"E3DC": {
"Host": "192.168.1.100",
"User": "",
"Password": "",
"RscpKey": "",
"FastPollingIntervalSeconds": 2,
"MediumPollingIntervalSeconds": 10,
"HistoryRetentionMinutes": 60,
"BatDeviceIndex": 0,
"PviDeviceIndex": 0,
"PmDeviceIndex": 6,
"DcdcDeviceIndex": 0,
"WbDeviceIndex": 0
}
}| Field | Description |
|---|---|
Host |
IP address of the E3DC S10 on your local network |
User / Password |
E3DC portal credentials |
RscpKey |
RSCP encryption key set in the E3DC device settings |
*DeviceIndex |
Zero-based device indices (check your installation; PM default is 6) |



