# Teltonika TeltoCharge — Modbus registry (EMS)

Zdroj: oficiální „TeltoCharge Modbus RTU Communication protocol" rev 0.5
(2024-07-23). Připojení: sdílená RS485 sběrnice → Waveshare RS485 TO POE ETH (B) **172.16.1.16:502** (V097; 9600 8N1, Modbus TCP↔RTU; WB1 = unit 1, WB2 = unit 2, plánovaný Chint = unit 3) → 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.
