{ "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json", "mbmap": 2, "vendor": "Novus", "model": "RHT Climate", "models": [ "RHT Climate", "RHT Climate WM", "RHT Climate DM" ], "vendor_website": "novus.com.br", "description": "Temperature and humidity transmitter (wall and duct mount) with two analog outputs, two alarm outputs, buzzer and Modbus RTU over RS485: temperature, humidity and psychrometric values, min/max, outputs, alarms, forcing and diagnostics", "revision": 1, "revised": "2026-10-31", "firmware": "V1.4x or later", "firmware_min": "1.4", "source": "Novus RHT Climate WM / DM instruction manual V1.4x I (Portuguese), chapters 7 and 10", "sources": [ { "title": "Transmissor RHT Climate, modelos WM e DM - Manual de Instruções", "version": "V1.4x I", "url": "https://github.com/user-attachments/files/34218934/Manual_Transmissor_RHT_Climate_WM_DM_PT.pdf", "note": "linked in issue #93; section 10.1 and the option tables of chapter 7" } ], "notes": [ "Functions 03, 05, 06 and 16; writes with address 0 are broadcast.", "Serial defaults: address 1, 19200 bit/s, no parity. The device answers whatever the stop bits are.", "32-bit values are two registers, least significant word first; every register is big-endian. Both registers of a 32-bit value must be read or written together.", "The measurements are shown with two decimals. Units follow the unit system (register 127): SI (°C, mbar, g/m³, g/kg, kJ/kg) or US (°F, psi, gr/ft³, gr/lb, BTU/lb).", "The manual does not give the decimals of the 32-bit output limits and alarm setpoints; this map reads them with two decimals, like the measurements. Their ranges depend on the quantity chosen for the output or alarm.", "Settings with an input pair (103-106, 115-118, 135-138, 152-155, 169-172) are copied to the working pair (108-111, 120-123, 145-148, 162-165, 179-182) when in range; out-of-range inputs are flagged in register 343.", "Alarm 3 in the register table is the buzzer (models with display).", "Written from the manufacturer's manual; not tested on a device." ], "protocol": "rtu", "unit_id": 1, "baudrate": 19200, "databits": 8, "parity": "N", "stopbits": 1, "byte_order": "big", "word_order": "little", "address_base": 0, "x_status": "official", "enums": { "quantity": { "1": "Temperature", "2": "Relative humidity", "3": "Dew point", "4": "Wet bulb temperature", "5": "Absolute humidity", "6": "Frost point", "7": "Specific enthalpy", "8": "Vapor partial pressure", "9": "Mixing ratio" }, "quantity_off": { "0": "Off", "1": "Temperature", "2": "Relative humidity", "3": "Dew point", "4": "Wet bulb temperature", "5": "Absolute humidity", "6": "Frost point", "7": "Specific enthalpy", "8": "Vapor partial pressure", "9": "Mixing ratio" }, "no_yes": { "0": "No", "1": "Yes" }, "alarm_function": { "0": "Off", "1": "Sensor error", "2": "Below low setpoint", "3": "Above high setpoint", "4": "Between setpoints", "5": "Outside setpoints" } }, "registers": [ {"name": "Relative humidity", "group": "Measurements", "area": "holding", "address": 0, "type": "int32", "scale": 0.01, "access": "R", "description": "%RH", "unit": "%RH"}, {"name": "Temperature", "group": "Measurements", "area": "holding", "address": 2, "type": "int32", "scale": 0.01, "access": "R", "description": "°C (°F in US units)"}, {"name": "Wet bulb temperature", "group": "Measurements", "area": "holding", "address": 4, "type": "int32", "scale": 0.01, "access": "R", "description": "°C (°F in US units)"}, {"name": "Dew point", "group": "Measurements", "area": "holding", "address": 6, "type": "int32", "scale": 0.01, "access": "R", "description": "°C (°F in US units)"}, {"name": "Frost point", "group": "Measurements", "area": "holding", "address": 8, "type": "int32", "scale": 0.01, "access": "R", "description": "°C (°F in US units)"}, {"name": "Specific enthalpy", "group": "Measurements", "area": "holding", "address": 10, "type": "int32", "scale": 0.01, "access": "R", "description": "kJ/kg (BTU/lb in US units)"}, {"name": "Absolute humidity", "group": "Measurements", "area": "holding", "address": 12, "type": "int32", "scale": 0.01, "access": "R", "description": "g/m³ (gr/ft³ in US units)"}, {"name": "Water vapor partial pressure", "group": "Measurements", "area": "holding", "address": 14, "type": "int32", "scale": 0.01, "access": "R", "description": "mbar (psi in US units)"}, {"name": "Mixing ratio", "group": "Measurements", "area": "holding", "address": 16, "type": "int32", "scale": 0.01, "access": "R", "description": "g/kg (gr/lb in US units)"}, {"name": "Relative humidity minimum", "group": "Min and max", "area": "holding", "address": 18, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Relative humidity maximum", "group": "Min and max", "area": "holding", "address": 20, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Temperature minimum", "group": "Min and max", "area": "holding", "address": 22, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Temperature maximum", "group": "Min and max", "area": "holding", "address": 24, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Dew point minimum", "group": "Min and max", "area": "holding", "address": 26, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Dew point maximum", "group": "Min and max", "area": "holding", "address": 28, "type": "int32", "scale": 0.01, "access": "R", "description": "The manual gives a range of 0-1000 for this pair, unlike the measurement; read here with two decimals like the measurement"}, {"name": "Reset min and max", "group": "Min and max", "area": "holding", "address": 217, "type": "uint16", "access": "RW", "write_min": 0, "write_max": 1, "description": "Write 1 to reset every minimum and maximum"}, {"name": "Output 1 type", "group": "Analog output 1", "area": "holding", "address": 101, "type": "uint16", "access": "RW", "enum": {"0": "4-20 mA", "1": "0-10 V"}, "write_min": 0, "write_max": 1}, {"name": "Output 1 quantity", "group": "Analog output 1", "area": "holding", "address": 102, "type": "uint16", "access": "RW", "enum": "quantity_off", "write_min": 0, "write_max": 9}, {"name": "Output 1 high limit setting", "group": "Analog output 1", "area": "holding", "address": 103, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 108 when valid"}, {"name": "Output 1 low limit setting", "group": "Analog output 1", "area": "holding", "address": 105, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 110 when valid"}, {"name": "Output 1 on sensor error", "group": "Analog output 1", "area": "holding", "address": 107, "type": "uint16", "access": "RW", "enum": {"0": "Minimum", "1": "Maximum"}, "write_min": 0, "write_max": 1}, {"name": "Output 1 high limit", "group": "Analog output 1", "area": "holding", "address": 108, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Output 1 low limit", "group": "Analog output 1", "area": "holding", "address": 110, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Output 2 type", "group": "Analog output 2", "area": "holding", "address": 113, "type": "uint16", "access": "RW", "enum": {"0": "4-20 mA", "1": "0-10 V"}, "write_min": 0, "write_max": 1}, {"name": "Output 2 quantity", "group": "Analog output 2", "area": "holding", "address": 114, "type": "uint16", "access": "RW", "enum": "quantity_off", "write_min": 0, "write_max": 9}, {"name": "Output 2 high limit setting", "group": "Analog output 2", "area": "holding", "address": 115, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 120 when valid"}, {"name": "Output 2 low limit setting", "group": "Analog output 2", "area": "holding", "address": 117, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 122 when valid"}, {"name": "Output 2 on sensor error", "group": "Analog output 2", "area": "holding", "address": 119, "type": "uint16", "access": "RW", "enum": {"0": "Minimum", "1": "Maximum"}, "write_min": 0, "write_max": 1}, {"name": "Output 2 high limit", "group": "Analog output 2", "area": "holding", "address": 120, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Output 2 low limit", "group": "Analog output 2", "area": "holding", "address": 122, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Alarm 1 quantity", "group": "Alarm 1", "area": "holding", "address": 133, "type": "uint16", "access": "RW", "enum": "quantity", "write_min": 1, "write_max": 9}, {"name": "Alarm 1 function", "group": "Alarm 1", "area": "holding", "address": 134, "type": "uint16", "access": "RW", "enum": "alarm_function", "write_min": 0, "write_max": 5}, {"name": "Alarm 1 high setpoint setting", "group": "Alarm 1", "area": "holding", "address": 135, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 145 when valid"}, {"name": "Alarm 1 low setpoint setting", "group": "Alarm 1", "area": "holding", "address": 137, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 147 when valid"}, {"name": "Alarm 1 initial block", "group": "Alarm 1", "area": "holding", "address": 139, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Alarm 1 hysteresis", "group": "Alarm 1", "area": "holding", "address": 140, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 20, "description": "In the unit of the alarm quantity"}, {"name": "Alarm 1 on time", "group": "Alarm 1", "area": "holding", "address": 141, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Alarm 1 off time", "group": "Alarm 1", "area": "holding", "address": 142, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Alarm 1 on sensor error", "group": "Alarm 1", "area": "holding", "address": 143, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Alarm 1 sounds buzzer", "group": "Alarm 1", "area": "holding", "address": 144, "type": "uint16", "access": "RW", "enum": {"0": "Disabled", "1": "Enabled"}, "write_min": 0, "write_max": 1}, {"name": "Alarm 1 high setpoint", "group": "Alarm 1", "area": "holding", "address": 145, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Alarm 1 low setpoint", "group": "Alarm 1", "area": "holding", "address": 147, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Alarm 2 quantity", "group": "Alarm 2", "area": "holding", "address": 150, "type": "uint16", "access": "RW", "enum": "quantity", "write_min": 1, "write_max": 9}, {"name": "Alarm 2 function", "group": "Alarm 2", "area": "holding", "address": 151, "type": "uint16", "access": "RW", "enum": "alarm_function", "write_min": 0, "write_max": 5}, {"name": "Alarm 2 high setpoint setting", "group": "Alarm 2", "area": "holding", "address": 152, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 162 when valid"}, {"name": "Alarm 2 low setpoint setting", "group": "Alarm 2", "area": "holding", "address": 154, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 164 when valid"}, {"name": "Alarm 2 initial block", "group": "Alarm 2", "area": "holding", "address": 156, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Alarm 2 hysteresis", "group": "Alarm 2", "area": "holding", "address": 157, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 20, "description": "In the unit of the alarm quantity"}, {"name": "Alarm 2 on time", "group": "Alarm 2", "area": "holding", "address": 158, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Alarm 2 off time", "group": "Alarm 2", "area": "holding", "address": 159, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Alarm 2 on sensor error", "group": "Alarm 2", "area": "holding", "address": 160, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Alarm 2 sounds buzzer", "group": "Alarm 2", "area": "holding", "address": 161, "type": "uint16", "access": "RW", "enum": {"0": "Disabled", "1": "Enabled"}, "write_min": 0, "write_max": 1}, {"name": "Alarm 2 high setpoint", "group": "Alarm 2", "area": "holding", "address": 162, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Alarm 2 low setpoint", "group": "Alarm 2", "area": "holding", "address": 164, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Buzzer quantity", "group": "Buzzer", "area": "holding", "address": 167, "type": "uint16", "access": "RW", "enum": "quantity", "write_min": 1, "write_max": 9}, {"name": "Buzzer function", "group": "Buzzer", "area": "holding", "address": 168, "type": "uint16", "access": "RW", "enum": "alarm_function", "write_min": 0, "write_max": 5}, {"name": "Buzzer high setpoint setting", "group": "Buzzer", "area": "holding", "address": 169, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 179 when valid"}, {"name": "Buzzer low setpoint setting", "group": "Buzzer", "area": "holding", "address": 171, "type": "int32", "scale": 0.01, "access": "RW", "description": "Two decimals assumed, as in the measurements; copied to register 181 when valid"}, {"name": "Buzzer initial block", "group": "Buzzer", "area": "holding", "address": 173, "type": "uint16", "access": "RW", "enum": "no_yes", "write_min": 0, "write_max": 1}, {"name": "Buzzer hysteresis", "group": "Buzzer", "area": "holding", "address": 174, "type": "uint16", "scale": 0.1, "access": "RW", "write_min": 0, "write_max": 20, "description": "In the unit of the alarm quantity"}, {"name": "Buzzer on time", "group": "Buzzer", "area": "holding", "address": 175, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Buzzer off time", "group": "Buzzer", "area": "holding", "address": 176, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 6500}, {"name": "Buzzer on sensor error", "group": "Buzzer", "area": "holding", "address": 177, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Buzzer sounds buzzer", "group": "Buzzer", "area": "holding", "address": 178, "type": "uint16", "access": "RW", "enum": {"0": "Disabled", "1": "Enabled"}, "write_min": 0, "write_max": 1}, {"name": "Buzzer high setpoint", "group": "Buzzer", "area": "holding", "address": 179, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Buzzer low setpoint", "group": "Buzzer", "area": "holding", "address": 181, "type": "int32", "scale": 0.01, "access": "R", "description": "Two decimals assumed, as in the measurements"}, {"name": "Humidity filter", "group": "Configuration", "area": "holding", "address": 125, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 300}, {"name": "Temperature filter", "group": "Configuration", "area": "holding", "address": 126, "type": "uint16", "unit": "s", "access": "RW", "write_min": 0, "write_max": 300}, {"name": "Unit system", "group": "Configuration", "area": "holding", "address": 127, "type": "uint16", "access": "RW", "enum": {"0": "SI", "1": "US"}, "write_min": 0, "write_max": 1}, {"name": "Temperature offset", "group": "Configuration", "area": "holding", "address": 192, "type": "int16", "scale": 0.1, "access": "RW", "description": "±5.0 °C (±9.0 °F)"}, {"name": "Humidity offset", "group": "Configuration", "area": "holding", "address": 193, "type": "int16", "scale": 0.1, "unit": "%RH", "access": "RW", "write_min": -5, "write_max": 5}, {"name": "Atmospheric pressure", "group": "Configuration", "area": "holding", "address": 200, "type": "uint16", "access": "RW", "description": "Used for the psychrometric calculations: 1013 = 1013 mbar in SI units, 147 = 14.7 psi in US units"}, {"name": "Display third line", "group": "Display", "area": "holding", "address": 187, "type": "uint16", "access": "RW", "enum": {"0": "Dew point", "1": "Wet bulb temperature", "2": "Absolute humidity", "3": "Frost point", "4": "Specific enthalpy", "5": "Vapor partial pressure", "6": "Mixing ratio", "7": "Off"}, "write_min": 0, "write_max": 7}, {"name": "Backlight", "group": "Display", "area": "holding", "address": 209, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "Always on", "2": "15 s after a key press"}, "write_min": 0, "write_max": 2}, {"name": "Up key second function", "group": "Display", "area": "holding", "address": 221, "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Silence buzzer", "2": "Silence buzzer and turn alarm output off"}, "write_min": 0, "write_max": 2}, {"name": "Down key second function", "group": "Display", "area": "holding", "address": 222, "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Clear min and max"}, "write_min": 0, "write_max": 1}, {"name": "Output 1 forcing enabled", "group": "Forcing", "area": "holding", "address": 201, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced output 1 value", "group": "Forcing", "area": "holding", "address": 202, "type": "uint16", "access": "RW", "description": "0-10.00 V or 3.6-21.00 mA; the manual does not give the encoding"}, {"name": "Output 2 forcing enabled", "group": "Forcing", "area": "holding", "address": 203, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced output 2 value", "group": "Forcing", "area": "holding", "address": 204, "type": "uint16", "access": "RW", "description": "0-10.00 V or 3.6-21.00 mA; the manual does not give the encoding"}, {"name": "Alarm 1 forcing enabled", "group": "Forcing", "area": "holding", "address": 205, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced alarm 1 state", "group": "Forcing", "area": "holding", "address": 206, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Alarm 2 forcing enabled", "group": "Forcing", "area": "holding", "address": 207, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced alarm 2 state", "group": "Forcing", "area": "holding", "address": 208, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Buzzer forcing enabled", "group": "Forcing", "area": "holding", "address": 211, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced buzzer state", "group": "Forcing", "area": "holding", "address": 212, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Humidity forcing enabled", "group": "Forcing", "area": "holding", "address": 213, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Temperature forcing enabled", "group": "Forcing", "area": "holding", "address": 215, "type": "uint16", "access": "RW", "enum": {"0": "Off", "1": "On"}, "write_min": 0, "write_max": 1}, {"name": "Forced humidity", "group": "Forcing", "area": "holding", "address": 214, "type": "uint16", "scale": 0.1, "unit": "%RH", "access": "RW", "write_min": 0, "write_max": 100}, {"name": "Forced temperature", "group": "Forcing", "area": "holding", "address": 216, "type": "int16", "scale": 0.1, "access": "RW", "description": "°C (°F in US units)"}, {"name": "Baud rate", "group": "Communication", "area": "holding", "address": 184, "type": "uint16", "access": "RW", "enum": {"0": "1200", "1": "2400", "2": "4800", "3": "9600", "4": "19200", "5": "38400", "6": "57600", "7": "115200"}, "write_min": 0, "write_max": 7}, {"name": "Parity", "group": "Communication", "area": "holding", "address": 185, "type": "uint16", "access": "RW", "enum": {"0": "None", "1": "Even", "2": "Odd"}, "write_min": 0, "write_max": 2}, {"name": "Modbus address", "group": "Communication", "area": "holding", "address": 186, "type": "uint16", "access": "RW", "write_min": 1, "write_max": 247}, {"name": "Output 1 overload", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 1, "access": "R"}, {"name": "Output 2 overload", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 2, "access": "R"}, {"name": "Alarm 1 output on", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 3, "access": "R"}, {"name": "Alarm 2 output on", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 4, "access": "R"}, {"name": "Alarm 1 condition", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 5, "access": "R"}, {"name": "Alarm 2 condition", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 6, "access": "R"}, {"name": "Buzzer on alarm 1", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 7, "access": "R"}, {"name": "Buzzer on alarm 2", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 8, "access": "R"}, {"name": "Buzzer on", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 9, "access": "R"}, {"name": "Alarm 1 forced", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 10, "access": "R"}, {"name": "Alarm 2 forced", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 11, "access": "R"}, {"name": "Output 1 forced", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 12, "access": "R"}, {"name": "Output 2 forced", "group": "Diagnostics", "area": "holding", "address": 341, "type": "bool", "bit": 13, "access": "R"}, {"name": "Sensor error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 0, "access": "R"}, {"name": "Saturation vapor pressure error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 1, "access": "R"}, {"name": "Vapor pressure error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 2, "access": "R"}, {"name": "Dew point error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 3, "access": "R"}, {"name": "Absolute humidity error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 4, "access": "R"}, {"name": "Mixing ratio error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 5, "access": "R"}, {"name": "Wet bulb error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 8, "access": "R"}, {"name": "Enthalpy error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 9, "access": "R"}, {"name": "Frost point error", "group": "Diagnostics", "area": "holding", "address": 342, "type": "bool", "bit": 11, "access": "R"}, {"name": "Output 1 limit setting out of range", "group": "Diagnostics", "area": "holding", "address": 343, "type": "bool", "bit": 1, "access": "R"}, {"name": "Output 2 limit setting out of range", "group": "Diagnostics", "area": "holding", "address": 343, "type": "bool", "bit": 2, "access": "R"}, {"name": "Alarm 1 setpoint setting out of range", "group": "Diagnostics", "area": "holding", "address": 343, "type": "bool", "bit": 3, "access": "R"}, {"name": "Alarm 2 setpoint setting out of range", "group": "Diagnostics", "area": "holding", "address": 343, "type": "bool", "bit": 4, "access": "R"}, {"name": "Buzzer setpoint setting out of range", "group": "Diagnostics", "area": "holding", "address": 343, "type": "bool", "bit": 5, "access": "R"}, {"name": "Serial number", "group": "Identity", "area": "holding", "address": 300, "type": "uint32", "word_order": "big", "access": "R", "role": "serial", "description": "Register 300 is the high part"}, {"name": "Firmware version", "group": "Identity", "area": "holding", "address": 302, "type": "uint16", "access": "R", "role": "firmware"}, {"name": "Release version", "group": "Identity", "area": "holding", "address": 303, "type": "uint16", "access": "R"}, {"name": "ID", "group": "Identity", "area": "holding", "address": 304, "type": "uint16", "access": "R"}, {"name": "Model code", "group": "Identity", "area": "holding", "address": 305, "type": "uint16", "access": "R", "description": "The manual does not list the codes"}, {"name": "Device tag", "group": "Identity", "area": "holding", "address": 224, "type": "string", "length": 10, "byte_order": "little", "access": "RW", "description": "Up to 20 characters, first character in the low byte"} ] }