Files
ems/docs/04-modules/modbus-registers-mim-b19n.md
Dusan Vojacek e2688bb899
Some checks failed
CI and deploy / migration-check (push) Successful in 18s
CI and deploy / deploy (push) Has been cancelled
TČ ŽIVÉ: MIM adresa 5 (V101), fix dekódování defrost (0xFF = off)
Rozchozeno po třech vrstvách: protokol převodníku Modbus TCP to RTU
(byl None), parita EVEN, adresa MIM 5 (seed měl 1). První živé čtení:
EHS typ 115, comm ready, mode heat, prostor 20 °C, voda 54.4 °C, TUV
zásobník 46.6 °C, bez chyb. Defrost reg: 0 i 0xFF znamená OFF (manuál),
bool() by 255 četl jako zapnuto.

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

4.1 KiB
Raw Blame History

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 i 0xFF = off, jiné hodnoty = 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 večer — ŽIVÉ)

Rozchozeno: převodník TCP Server :502, protokol Modbus TCP to RTU (default None = mrtvo!), 9600 8E1, adresa MIM 5. První čtení: EHS typ 115, comm ready 0b111, mode heat, prostor 20.0 °C, voda 54.4 °C, TUV 46.6 °C, bez chyb. Časté zádrhely při oživování: protokol None, parita None místo EVEN, adresa DIP (čte se jen při startu).