feat(open3e): vitocal-can gateway config in git #1615
@@ -0,0 +1,56 @@
|
||||
# vitocal-can
|
||||
|
||||
Waveshare ESP32-S3-RS485-CAN running unmodified boonkerz/open3e-esp32
|
||||
(upstream CI artifact `site-dev`), on Vitocal 250-A socket A
|
||||
(Klemme 1 = CAN L, Klemme 3 = CAN H, no GND/shield, jumper H1 = NC).
|
||||
Replaces the `heating-can` stack on edge-1. YouTrack S28-28.
|
||||
|
||||
- mDNS: `vitocal-can.local`
|
||||
- DNS (DHCP): `open3e.iot.renner.uno`. The firmware sends its compiled-in
|
||||
`CONFIG_LWIP_LOCAL_HOSTNAME`.
|
||||
|
||||
## Files
|
||||
|
||||
- `settings.json`: apply with `PUT /api/settings`. No password: the MQTT
|
||||
password is pushed by mqtt-account-controller.
|
||||
- `points.json`: apply with `PUT /api/points`. 120 UDS datapoints (30 s,
|
||||
fixed topics matching the Home Assistant packages), including the 29 One
|
||||
Base ZigBee slots on 0x6c3 (topics `onebase_<DID:04d>_<didName>`), and 7
|
||||
E380 frames (10 s). Compact JSON with default fields omitted: the API takes
|
||||
request bodies of at most 16384 bytes (`MAX_BODY`).
|
||||
|
||||
## One Base ZigBee slots (ECU 0x6c3)
|
||||
|
||||
The 29 slots need a firmware with open3e-esp32 PR #20 (codec trees in PSRAM,
|
||||
merged 2026-11-09, first in 0.2.0+2d9002b; S28-52). Without it a compiled
|
||||
codec stays in internal RAM for each polled point (allocations < 16 KiB are
|
||||
internal, `CONFIG_SPIRAM_MALLOC_ALWAYSINTERNAL`), one slot costs ~8 KB, and 29
|
||||
slots exhausted internal RAM (`internalMin` 16 B, crash in task `wifi`). Do
|
||||
not load this `points.json` on an older firmware.
|
||||
|
||||
Home Assistant reads health from `/api/status` and `/api/sysinfo` (REST
|
||||
sensors in `packages/open3e.yaml`).
|
||||
|
||||
Measured internal heap (`/api/sysinfo`, free / min in bytes):
|
||||
|
||||
| Loaded | free | min |
|
||||
|---|---|---|
|
||||
| 0 points | 161,923 | |
|
||||
| 46 Vitocal | 115,163 | 73,040 |
|
||||
| + 29 VX3 | 114,067 | 49,228 |
|
||||
| + 16 VCMU + 7 E380 | 108,315 | 40,064 |
|
||||
| + 1 ZigBee slot | 100,295 | 39,828 |
|
||||
|
||||
The hostname is part of the Wi-Fi settings: `POST /api/wifi`
|
||||
`{"ssid":"Renner IoT","hostname":"vitocal-can"}`. An omitted `pass` keeps the
|
||||
stored one.
|
||||
|
||||
## Firmware update
|
||||
|
||||
1. `POST /api/ota` with `open3e-gateway.bin`.
|
||||
2. Wait for `pendingVerify: false` in `/api/status` (60 s).
|
||||
3. `POST /api/storage` with `storage.bin`. This wipes `points.json`, so apply
|
||||
`points.json` again afterwards.
|
||||
|
||||
Only one UDS client on the bus: never load `points.json` while `heating-can`
|
||||
on edge-1 is running.
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,21 @@
|
||||
{
|
||||
"mqtt": {
|
||||
"enabled": true,
|
||||
"host": "mqtt.renner.uno",
|
||||
"port": 1883,
|
||||
"user": "vitocal-can",
|
||||
"baseTopic": "open3e",
|
||||
"format": "onebase_{didNumber:04d}_{didName}",
|
||||
"cmndTopic": "open3e/cmnd",
|
||||
"haDiscovery": false,
|
||||
"haPrefix": "homeassistant"
|
||||
},
|
||||
"system": {
|
||||
"writeEnabled": true,
|
||||
"rawWriteEnabled": false,
|
||||
"em380Enabled": true,
|
||||
"collectEnabled": false,
|
||||
"rawCanIds": "",
|
||||
"tz": "CET-1CEST,M3.5.0,M10.5.0/3"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user