EV telemetrie: skutečné čtení Teltonika TeltoCharge (konec stub-u)
poll_ev_chargers četl placeholder ('available'/0 W) — EV spotřeba se nikdy
neodečítala z bazálu a session detekce nefungovala. Nyní: blok registrů 0-40
jedním FC 3 (oficiální protokol rev 0.5), parse_teltocharge_frame (status z
reg 6 → available/preparing/charging/..., výkon reg 38, energie session reg 39,
proud max L1-L3 reg 3-5). Při selhání čtení se vzorek NEzapisuje (fabrikovaný
available by falešně ukončoval session).
fn_telemetry_ev_charger_sample: + p_current_a (drop staré 7-arg signatury).
6 nových testů parseru; plná sada beze změny. Docs: modbus-registers-teltocharge.md.
Po deployi: home-01 ev-charger-1/2 začnou posílat reálná data; bazál se začne
čistit od EV (EMA 00:30); rebuild stats má smysl až po ~2 týdnech čisté historie.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
docs/04-modules/modbus-registers-teltocharge.md
Normal file
42
docs/04-modules/modbus-registers-teltocharge.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# Teltonika TeltoCharge — Modbus registry (EMS)
|
||||
|
||||
Zdroj: oficiální „TeltoCharge Modbus RTU Communication protocol" rev 0.5
|
||||
(2024-07-23). Připojení: RS485 → Waveshare → Modbus TCP (endpoint
|
||||
`site_endpoint`, FC 3 čtení, FC 6/16 zápis). Wallbox musí být v aplikaci
|
||||
nastaven jako *secondary (server)*.
|
||||
|
||||
## Čtení (telemetry_collector, blok 0–40 jedním FC 3)
|
||||
|
||||
| Reg | Význam | Formát |
|
||||
|-----|--------|--------|
|
||||
| 0–2 | Napětí L1–L3 | int16, V |
|
||||
| 3–5 | Proud L1–L3 | int16, ×10 A |
|
||||
| 6 | **EVSE status (DLM)** | 0=C nabíjí · 1–3=B1–B3 připojeno · 4=D1 stop od EV · 5–6=D2–D3 zákaz · 7=A bez EV · 8=F chyba · 9=E |
|
||||
| 27 | Charge point state | 0–9 (informativní) |
|
||||
| 33 | IEC61851 stav | 0–8 |
|
||||
| 34/35 | Warning / Error bity | bitfield |
|
||||
| 38 | Okamžitý výkon | uint16, W |
|
||||
| 39 | Energie session | uint16, kWh×100 |
|
||||
| 40 | Trvání session | uint16, s |
|
||||
| 41–44 | Celková energie (FW ≥1.13) | uint64, kWh×100 |
|
||||
|
||||
Mapování stavů v EMS (`TELTO_STATUS_MAP` v `telemetry_collector.py`):
|
||||
7→`available`, 0→`charging`, 1–3→`preparing`, 4→`suspended_ev`,
|
||||
5–6→`suspended_evse`, 8→`faulted`, 9→`unknown`. Detekce příjezdu/odjezdu
|
||||
(`fn_ev_session_transition`) stojí na přechodu `available` ↔ ≠`available`.
|
||||
|
||||
**Při selhání čtení se vzorek NEzapisuje** — fabrikovaný `available` by falešně
|
||||
ukončil session a EV výkon 0 by špinil bazál (pravidlo 15).
|
||||
|
||||
## Zápis (budoucí řízení — zatím NEimplementováno)
|
||||
|
||||
| Reg | Význam | Hodnoty |
|
||||
|-----|--------|---------|
|
||||
| 15 | **Amps to use** (limit proudu) | 0 = stop, 6–32 A |
|
||||
| 16 | Start/Stop session | 0 nic · 1 stop · 2 start |
|
||||
| 19 | Communication timeout (watchdog) | 0–600 s (0 = vypnuto) |
|
||||
| 20 | Failsafe current | 0, 6–32 A |
|
||||
|
||||
Až se zapne řízení: zapisovat reg 15 přes journal `modbus_command`
|
||||
(pravidlo 17) a nastavit watchdog (reg 19/20) — při výpadku EMS wallbox
|
||||
spadne na failsafe proud.
|
||||
Reference in New Issue
Block a user