{
  "spec_version": 1,
  "slug": "intesis-inmbssam001-samsung",
  "manufacturer": "HMS Networks (Intesis)",
  "model": "INMBSSAM001R100 – Samsung NASA units to Modbus RTU interface",
  "category": "Protocol gateway",
  "supplier_url": "https://www.hms-networks.com/docs/default-source/products/intesis/manuals-and-guides---manuals/user-manual-inmbssam001r100.pdf",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "HighFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 2
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [],
  "holding_registers": [
    {
      "address": 0,
      "count": 1,
      "name": "AC unit on/off",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = off, 1 = on."
    },
    {
      "address": 1,
      "count": 1,
      "name": "AC unit mode",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = Auto, 1 = Heat, 2 = Dry, 3 = Fan, 4 = Cool; the available values depend on the indoor unit."
    },
    {
      "address": 2,
      "count": 1,
      "name": "AC unit fan speed",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = Auto, 1 = Low, 2 = Mid, 3 = High, 4 = Turbo."
    },
    {
      "address": 3,
      "count": 1,
      "name": "AC unit up/down vane position",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = swing off (auto), 10 = swing on."
    },
    {
      "address": 4,
      "count": 1,
      "name": "AC unit temperature setpoint",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "-32768 = initialization value; cooling 18..30 °C (raw 180..300 at the factory degC x10 setting), heating 16..30 °C, 65..86 °F."
    },
    {
      "address": 5,
      "count": 1,
      "name": "AC unit temperature reference",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "-32768 = initialization value; -41..38 °C."
    },
    {
      "address": 6,
      "count": 1,
      "name": "Window contact",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = closed (default), 1 = open."
    },
    {
      "address": 7,
      "count": 1,
      "name": "Gateway disablement",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = INMBSSAM001R100 enabled (default), 1 = disabled. Stored in non-volatile memory."
    },
    {
      "address": 8,
      "count": 1,
      "name": "AC remote control disablement",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = remote controller enabled (default), 1 = disabled. Stored in non-volatile memory."
    },
    {
      "address": 9,
      "count": 1,
      "name": "AC unit operation time",
      "data_type": "UInt16",
      "units": "h",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0..65535 hours, counts the time the indoor unit is in the 'On' state."
    },
    {
      "address": 10,
      "count": 1,
      "name": "AC unit alarm status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = no alarm condition, 1 = alarm condition."
    },
    {
      "address": 11,
      "count": 1,
      "name": "Error code",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = no error; 65535 (= -1) = communication error between gateway and AC indoor unit; any other value is listed in the manual's error-code table."
    },
    {
      "address": 13,
      "count": 1,
      "name": "'Open Window' switch-off timeout",
      "data_type": "UInt16",
      "units": "min",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0..30 minutes; factory setting 30."
    },
    {
      "address": 14,
      "count": 1,
      "name": "Modbus RTU baud rate",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "2400 / 4800 / 9600 (default) / 19200 / 38400 / 57600 / 76800 / 115200 bps."
    },
    {
      "address": 15,
      "count": 1,
      "name": "Modbus slave address",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "1..63."
    },
    {
      "address": 22,
      "count": 1,
      "name": "Indoor unit ambient temperature from external sensor",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "RW",
      "description": "-32768 = no external sensor value; otherwise a temperature supplied from the Modbus side."
    },
    {
      "address": 23,
      "count": 1,
      "name": "AC real temperature setpoint",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "Current setpoint in the indoor unit; equals register 4 when no external temperature is provided; 16..31 °C."
    },
    {
      "address": 26,
      "count": 1,
      "name": "AC unit left/right vane position",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = swing off (auto), 10 = swing on."
    },
    {
      "address": 40,
      "count": 1,
      "name": "Window contact on/off disablement",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = the window contact is not disabling on/off (default), 1 = it is."
    },
    {
      "address": 43,
      "count": 1,
      "name": "Filter reset",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "Write 1 to reset the filter sign."
    },
    {
      "address": 44,
      "count": 1,
      "name": "Filter status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = ok, 1 = filter cleaning required."
    },
    {
      "address": 49,
      "count": 1,
      "name": "Device ID",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0x2E00."
    },
    {
      "address": 50,
      "count": 1,
      "name": "Software version",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Gateway firmware version."
    },
    {
      "address": 66,
      "count": 1,
      "name": "Return path temperature",
      "data_type": "Int16",
      "units": "°C",
      "scale_factor": 0.1,
      "offset": 0,
      "access": "R",
      "description": "-32768 = initialization value; the range is specific to the indoor unit."
    },
    {
      "address": 67,
      "count": 1,
      "name": "Number of indoor units connected",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Indoor units on the same remote-control bus."
    },
    {
      "address": 68,
      "count": 1,
      "name": "Internal indoor-unit array index reported",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Position in the gateway's internal array of the indoor unit whose status is currently reported."
    },
    {
      "address": 69,
      "count": 1,
      "name": "Indoor unit address reported",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Address of the indoor unit that reports its status on the remote-control bus."
    },
    {
      "address": 97,
      "count": 1,
      "name": "Block periodic sendings",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "0 = non-blocked (default), 1 = blocked."
    },
    {
      "address": 99,
      "count": 1,
      "name": "Reset / reboot device",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "W",
      "description": "Write 1 to reset the gateway."
    }
  ],
  "combined_registers": [],
  "notes": "Source: HMS Networks / Intesis user manual 'INMBSSAM001R100 (Samsung NASA) Samsung NASA units to Modbus RTU interface', r1.4, section 4.2 'Modbus Registers' (4.2.1 control and status, 4.2.2 configuration). The gateway is Modbus RTU (RS-485) and exposes its own fixed holding-register map that mirrors the indoor unit; reach it through a Modbus RTU-to-TCP gateway using the factory serial settings above (9600 bps, 8-N-2, Modbus server address 1; the gateway auto-detects 8-N-1 and 8-N-2). All registers are 16-bit unsigned holding registers, big-endian. The addresses in this file are the manual's base-0 'protocol addresses' (the manual also prints a base-1 'PLC address', which is always this address + 1). Temperature registers are signed 16-bit and their magnitude follows the gateway's DIP switches (degC x1, degC x10 or degF), so the 0.1 scale factors below assume the factory default degC x10; with the x1 setting the readings are whole degrees. This file covers the NASA variant of the Samsung gateway; the older non-NASA order code INMBSSAM001R000 has its own manual and a different indoor-unit addressing block. Registers 68/69 report which indoor unit on the remote-control bus the gateway is currently reporting status for."
}
