Files
ems/docs/04-modules/modbus-registers-mim-b19n.md
Dusan Vojacek d63a85a2ea
Some checks failed
CI and deploy / migration-check (push) Failing after 7m29s
CI and deploy / deploy (push) Has been skipped
TČ Samsung přes MIM-B19N: endpoint 172.16.1.17, plný poll, registry doc
- V096: endpoint home-01 TČ z placeholderu 192.168.1.103 na reálný Waveshare
  RS485 TO POE ETH (B) 172.16.1.17:502; telemetry_heat_pump.room_temp_c.
- R__048: fn_telemetry_heat_pump_sample rozšířena (water_inlet, room_temp,
  defrost, alarm_code) — drop/comment bez parametrů dle konvence.
- poll_heat_pump: místo TODO stubu (zapisoval dummy 45/55 °C!) skutečné čtení
  MIM bloku 50-75 + defrost reg 2; gate na comm_status ready (jinak skip);
  operating_mode off/heat/cool/auto/dhw/error; power_w NULL (MIM příkon nemá).
- docs/04-modules/modbus-registers-mim-b19n.md (mapa, 9600 8E1, DIP adresa,
  troubleshooting E6xx) + heat-pump.md odkaz.

Živý stav: TCP :502 OK, Modbus bez odpovědi (čeká na protokol převodníku /
paritu EVEN / polaritu A-B — checklist v docu).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-12 18:24:10 +02:00

85 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Samsung MIM-B19N(T) — Modbus registry (TČ EHS, home-01)
Modbus interface modul Samsungu (DVM/EHS). EMS k němu mluví přes Waveshare
**RS485 TO POE ETH (B)** na **172.16.1.17:502** (V096; dříve placeholder
192.168.1.103). Zdroj: instalační manuál MIM-B19N(T) (DB68-07538A-03).
## Sériová linka a převodník — POVINNÉ nastavení
| Parametr | Hodnota |
|---|---|
| Baud rate | **9600** |
| Data bits | 8 |
| Parita | **EVEN** (nejčastější chyba — Waveshare default je None!) |
| Stop bit | 1 |
| Protokol | Modbus RTU, MIM = **slave** |
| Adresa MIM | DIP SW4/SW5 + rotary SW1, rozsah 1247 (čte se jen při zapnutí!); EMS `unit_id` = tato adresa (home-01: 1) |
| Waveshare work mode | TCP Server, local port **502**, protokol **Modbus TCP ↔ RTU** (jinak EMS nespojí — port 502 zavřený) |
| FC podporované | 0x03, 0x04 čtení; 0x06, 0x10 zápis |
| Mezera mezi dotazy | ≥ 10 ms po poslední odpovědi |
Polarita A/B: při prohození MIM neodpovídá vůbec (timeout na FC3), Y-GRN LED
na MIM nebliká k BMS. 7segment na MIM: `E6`+`16` střídavě = ztracená
komunikace, `E6`+`04` = tracking nedoběhl, `E6`+`34` = chybná adresa.
## Adresace registrů
Vnitřní jednotka IU (adresa 047, nastavená na jednotce) má blok
**base = 50 + IU×50**. home-01 EHS = IU 0 → blok 5099. Hodnoty teplot
**°C×10, signed**, big endian. Po startu MIM jsou všechny registry 0, dokud
nedoběhne tracking (~minuty).
### Modulové registry (PDU 03)
| Reg | Význam | R/W |
|---|---|---|
| 0 | Stav modulu: b0 address error, b1 comm error R1/R2, b2 tracking error | R |
| 1 | Chybový kód venkovní jednotky (0 = OK, 100999) | R |
| 2 | Defrost (0/0xFF off, jinak on) | R |
| 3 | Bzučák (0 on / 1 off) | W |
### Blok vnitřní jednotky (base+offset; EHS sloupec)
| Off | Význam | R/W | Poznámka |
|---|---|---|---|
| +0 | Comm status: b0 exist, b1 type OK, b2 ready, b3 comm error | R | **gate pollu: (v&7)==7** |
| +1 | Typ jednotky (lower byte): 110 HE, 115117 EHS, 120 HT | R | |
| +2 | Zapnuto/vypnuto (0/1) | R/W | |
| +3 | Režim: 0 auto, 1 cool, 4 heat | R/W | |
| +8 | Set teplota ×10 (cool 1830, heat 1630) | R/W | |
| +9 | Prostorová teplota ×10 | R | → `room_temp_c` |
| +13 | Chybový kód jednotky (0 OK, 100999) | R | → `alarm_code` |
| +14 | Blokace dálkového ovládání (0x0000 / 0x6363) | R/W | |
| +15 | Teplota vody vstup ×10 | R | → `water_inlet_temp_c` |
| +16 | Teplota vody výstup ×10 | R | → `water_outlet_temp_c` |
| +18 | Set teplota výstupní vody ×10 (EHS heat 1565 °C) | R/W | budoucí řízení |
| +22 | TUV zapnuto/vypnuto | R/W | |
| +23 | TUV režim: 0 Eco, 1 Standard, 2 Power, 3 Force (jen EHS) | R/W | |
| +24 | TUV set teplota ×10 (EHS 3070 °C) | R/W | budoucí řízení |
| +25 | TUV teplota zásobníku ×10 | R | → `tuv_tank_temp_c` |
| +28 | Tichý režim (0/1) | R/W | |
| +29 | Away (0/1) | R/W | |
## Telemetrie EMS (poll 60 s, `poll_heat_pump`)
Jeden FC3 blok base+0..+25 (26 registrů) + modulový reg 2 (defrost) →
`ems.fn_telemetry_heat_pump_sample`. `operating_mode`: `off` / `heat` /
`cool` / `auto` / `dhw` / `heat+dhw` / `error` / (`offline` se nezapisuje —
vzorek se přeskočí, jednotka bez trackingu hlásí samé nuly).
**Příkon (`power_w`) MIM neposkytuje** — zůstává NULL, dokud nebude
elektroměr (Shelly EM / Chint na RS485). Bazální spotřeba (CLAUDE.md §15)
do té doby TČ neodečítá.
**Zápisy (on/off, set teploty, TUV)**: zatím neimplementováno; půjdou přes
control exporter + `modbus_command` journal jako u Deye (FC 0x06/0x10).
Pozn. manuálu: každý write MIM přepošle jednotce, i když hodnota nemění —
zapisovat jen při skutečné změně.
## Stav zapojení (2026-06-12)
Převodník na 172.16.1.17 odpovídá (ping, web UI :80 „RS485 TO POE ETH (B)"),
**port 502 zatím zavřený** → ve web UI nastavit TCP Server :502 + Modbus
TCP↔RTU převod a sériovku 9600 8E1. Pak ověřit FC3 čtení bloků 02 a 5075
(`/tmp/probe_mim.py` vzor).