- 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>
85 lines
4.0 KiB
Markdown
85 lines
4.0 KiB
Markdown
# 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 1–247 (č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 0–47, nastavená na jednotce) má blok
|
||
**base = 50 + IU×50**. home-01 EHS = IU 0 → blok 50–99. Hodnoty teplot
|
||
**°C×10, signed**, big endian. Po startu MIM jsou všechny registry 0, dokud
|
||
nedoběhne tracking (~minuty).
|
||
|
||
### Modulové registry (PDU 0–3)
|
||
|
||
| 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, 100–999) | 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, 115–117 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 18–30, heat 16–30) | R/W | |
|
||
| +9 | Prostorová teplota ×10 | R | → `room_temp_c` |
|
||
| +13 | Chybový kód jednotky (0 OK, 100–999) | 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 15–65 °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 30–70 °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ů 0–2 a 50–75
|
||
(`/tmp/probe_mim.py` vzor).
|