{
  "spec_version": 1,
  "slug": "sentek-drill-drop-probe",
  "manufacturer": "Sentek",
  "model": "Drill & Drop / TriSCAN probe with Sentek Modbus interface",
  "category": "Soil sensor",
  "supplier_url": "https://sentektechnologies.com/download/sentek-modbus-manual-rs485-232-ver-3-6/",
  "default_configuration": {
    "protocol": "modbus_tcp",
    "port": 502,
    "unit_id": 1,
    "addressing": "zero_based",
    "byte_order": "BigEndian",
    "word_order": "LowFirst",
    "native_interface": "rs485",
    "serial": {
      "parity": "None",
      "baud_rate": 9600,
      "data_bits": 8,
      "stop_bits": 2
    }
  },
  "coils": [],
  "discrete_inputs": [],
  "input_registers": [
    {
      "address": 0,
      "count": 1,
      "name": "Last measurement selection",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Holds the value written to holding register 40001 when the last measurement was started; it keeps that value after the measurement completes."
    },
    {
      "address": 1,
      "count": 1,
      "name": "Measurement status",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "0 = no measurement, 1 = measurement in progress, 2 = measurement completed with no errors, 3 = measurement completed but errors occurred. An error means a sensor failed or no configured sensors were selected (sensors with depth 0 are not configured)."
    },
    {
      "address": 2,
      "count": 2,
      "name": "Moisture sensor selection for current scan",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "32-bit mask of the moisture sensors being scanned; bit 0 is the first sensor. Written by the probe from holding register 40002."
    },
    {
      "address": 4,
      "count": 2,
      "name": "Salinity sensor selection for current scan",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "32-bit mask of the salinity sensors being scanned; bit 0 is the first sensor."
    },
    {
      "address": 6,
      "count": 2,
      "name": "Temperature sensor selection for current scan",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "32-bit mask of the temperature sensors being scanned; bit 0 is the first sensor."
    },
    {
      "address": 8,
      "count": 2,
      "name": "Detected moisture sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of the configured/detected moisture sensors, in sensor-address order; unconfigured sensors do not appear."
    },
    {
      "address": 10,
      "count": 2,
      "name": "Detected salinity sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of the configured/detected salinity sensors."
    },
    {
      "address": 12,
      "count": 2,
      "name": "Detected temperature sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of the configured/detected temperature sensors."
    },
    {
      "address": 14,
      "count": 2,
      "name": "Sampled moisture sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of moisture sensors already read during the current scan; it indicates scan progress, not failed sensors."
    },
    {
      "address": 16,
      "count": 2,
      "name": "Sampled salinity sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of salinity sensors already read during the current scan."
    },
    {
      "address": 18,
      "count": 2,
      "name": "Sampled temperature sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of temperature sensors already read during the current scan."
    },
    {
      "address": 20,
      "count": 2,
      "name": "Humidity sensor selection for current scan",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "32-bit mask of the humidity sensors being scanned. Note: the humidity masks are not consecutive with the temperature masks."
    },
    {
      "address": 22,
      "count": 2,
      "name": "Detected humidity sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of the configured/detected humidity sensors."
    },
    {
      "address": 24,
      "count": 2,
      "name": "Sampled humidity sensors mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Mask of humidity sensors already read during the current scan. Absolute register 30025; the manual prints its relative address as 0x0019, which is one higher than the 30025 - 30001 arithmetic gives (0x0018 = 24) — the absolute address was used."
    },
    {
      "address": 100,
      "count": 1,
      "name": "Maximum number of sensors per type",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Low byte = maximum number of sensors per type (32); high byte = number of types allocated in the implementation (0, kept for compatibility with firmware before 1.4.1)."
    },
    {
      "address": 101,
      "count": 1,
      "name": "Moisture sensor 1 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 102,
      "count": 1,
      "name": "Moisture sensor 2 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 103,
      "count": 1,
      "name": "Moisture sensor 3 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 104,
      "count": 1,
      "name": "Moisture sensor 4 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 105,
      "count": 1,
      "name": "Moisture sensor 5 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 106,
      "count": 1,
      "name": "Moisture sensor 6 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 107,
      "count": 1,
      "name": "Moisture sensor 7 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 108,
      "count": 1,
      "name": "Moisture sensor 8 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 109,
      "count": 1,
      "name": "Moisture sensor 9 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 110,
      "count": 1,
      "name": "Moisture sensor 10 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 111,
      "count": 1,
      "name": "Moisture sensor 11 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 112,
      "count": 1,
      "name": "Moisture sensor 12 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 113,
      "count": 1,
      "name": "Moisture sensor 13 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 114,
      "count": 1,
      "name": "Moisture sensor 14 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 115,
      "count": 1,
      "name": "Moisture sensor 15 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 116,
      "count": 1,
      "name": "Moisture sensor 16 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). A depth of 0 means the sensor is not configured and it will not appear in the detected-sensors mask."
    },
    {
      "address": 132,
      "count": 1,
      "name": "Salinity sensor 1 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 133,
      "count": 1,
      "name": "Salinity sensor 2 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 134,
      "count": 1,
      "name": "Salinity sensor 3 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 135,
      "count": 1,
      "name": "Salinity sensor 4 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 136,
      "count": 1,
      "name": "Salinity sensor 5 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 137,
      "count": 1,
      "name": "Salinity sensor 6 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 138,
      "count": 1,
      "name": "Salinity sensor 7 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 139,
      "count": 1,
      "name": "Salinity sensor 8 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 140,
      "count": 1,
      "name": "Salinity sensor 9 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 141,
      "count": 1,
      "name": "Salinity sensor 10 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 142,
      "count": 1,
      "name": "Salinity sensor 11 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 143,
      "count": 1,
      "name": "Salinity sensor 12 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 144,
      "count": 1,
      "name": "Salinity sensor 13 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 145,
      "count": 1,
      "name": "Salinity sensor 14 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 146,
      "count": 1,
      "name": "Salinity sensor 15 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 147,
      "count": 1,
      "name": "Salinity sensor 16 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 164,
      "count": 1,
      "name": "Temperature sensor 1 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 165,
      "count": 1,
      "name": "Temperature sensor 2 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 166,
      "count": 1,
      "name": "Temperature sensor 3 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 167,
      "count": 1,
      "name": "Temperature sensor 4 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 168,
      "count": 1,
      "name": "Temperature sensor 5 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 169,
      "count": 1,
      "name": "Temperature sensor 6 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 170,
      "count": 1,
      "name": "Temperature sensor 7 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 171,
      "count": 1,
      "name": "Temperature sensor 8 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 172,
      "count": 1,
      "name": "Temperature sensor 9 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 173,
      "count": 1,
      "name": "Temperature sensor 10 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 174,
      "count": 1,
      "name": "Temperature sensor 11 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 175,
      "count": 1,
      "name": "Temperature sensor 12 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 176,
      "count": 1,
      "name": "Temperature sensor 13 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 177,
      "count": 1,
      "name": "Temperature sensor 14 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 178,
      "count": 1,
      "name": "Temperature sensor 15 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 179,
      "count": 1,
      "name": "Temperature sensor 16 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10 (e.g. 102 means 10.2). 0 = not configured."
    },
    {
      "address": 196,
      "count": 1,
      "name": "Humidity sensor 1 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 197,
      "count": 1,
      "name": "Humidity sensor 2 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 198,
      "count": 1,
      "name": "Humidity sensor 3 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 199,
      "count": 1,
      "name": "Humidity sensor 4 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 200,
      "count": 1,
      "name": "Humidity sensor 5 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 201,
      "count": 1,
      "name": "Humidity sensor 6 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 202,
      "count": 1,
      "name": "Humidity sensor 7 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 203,
      "count": 1,
      "name": "Humidity sensor 8 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 204,
      "count": 1,
      "name": "Humidity sensor 9 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 205,
      "count": 1,
      "name": "Humidity sensor 10 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 206,
      "count": 1,
      "name": "Humidity sensor 11 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 207,
      "count": 1,
      "name": "Humidity sensor 12 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 208,
      "count": 1,
      "name": "Humidity sensor 13 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 209,
      "count": 1,
      "name": "Humidity sensor 14 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 210,
      "count": 1,
      "name": "Humidity sensor 15 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 211,
      "count": 1,
      "name": "Humidity sensor 16 depth",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "Depth of the sensor, dimensionless and multiplied by 10. 0 = not configured."
    },
    {
      "address": 256,
      "count": 2,
      "name": "Cooked moisture reading, sensor 1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 258,
      "count": 2,
      "name": "Cooked moisture reading, sensor 2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 260,
      "count": 2,
      "name": "Cooked moisture reading, sensor 3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 262,
      "count": 2,
      "name": "Cooked moisture reading, sensor 4",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 264,
      "count": 2,
      "name": "Cooked moisture reading, sensor 5",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 266,
      "count": 2,
      "name": "Cooked moisture reading, sensor 6",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 268,
      "count": 2,
      "name": "Cooked moisture reading, sensor 7",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 270,
      "count": 2,
      "name": "Cooked moisture reading, sensor 8",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 272,
      "count": 2,
      "name": "Cooked moisture reading, sensor 9",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 274,
      "count": 2,
      "name": "Cooked moisture reading, sensor 10",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 276,
      "count": 2,
      "name": "Cooked moisture reading, sensor 11",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 278,
      "count": 2,
      "name": "Cooked moisture reading, sensor 12",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 280,
      "count": 2,
      "name": "Cooked moisture reading, sensor 13",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 282,
      "count": 2,
      "name": "Cooked moisture reading, sensor 14",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 284,
      "count": 2,
      "name": "Cooked moisture reading, sensor 15",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 286,
      "count": 2,
      "name": "Cooked moisture reading, sensor 16",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked (calibrated) moisture value. Valid values are +0.0 to +101.0; out-of-range results and failed sensors return IEEE Not-a-Number. Register pair with low word at the lower address."
    },
    {
      "address": 320,
      "count": 2,
      "name": "Cooked salinity reading, sensor 1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 322,
      "count": 2,
      "name": "Cooked salinity reading, sensor 2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 324,
      "count": 2,
      "name": "Cooked salinity reading, sensor 3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 326,
      "count": 2,
      "name": "Cooked salinity reading, sensor 4",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 328,
      "count": 2,
      "name": "Cooked salinity reading, sensor 5",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 330,
      "count": 2,
      "name": "Cooked salinity reading, sensor 6",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 332,
      "count": 2,
      "name": "Cooked salinity reading, sensor 7",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 334,
      "count": 2,
      "name": "Cooked salinity reading, sensor 8",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 336,
      "count": 2,
      "name": "Cooked salinity reading, sensor 9",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 338,
      "count": 2,
      "name": "Cooked salinity reading, sensor 10",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 340,
      "count": 2,
      "name": "Cooked salinity reading, sensor 11",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 342,
      "count": 2,
      "name": "Cooked salinity reading, sensor 12",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 344,
      "count": 2,
      "name": "Cooked salinity reading, sensor 13",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 346,
      "count": 2,
      "name": "Cooked salinity reading, sensor 14",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 348,
      "count": 2,
      "name": "Cooked salinity reading, sensor 15",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 350,
      "count": 2,
      "name": "Cooked salinity reading, sensor 16",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked salinity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 384,
      "count": 2,
      "name": "Cooked temperature reading, sensor 1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 386,
      "count": 2,
      "name": "Cooked temperature reading, sensor 2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 388,
      "count": 2,
      "name": "Cooked temperature reading, sensor 3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 390,
      "count": 2,
      "name": "Cooked temperature reading, sensor 4",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 392,
      "count": 2,
      "name": "Cooked temperature reading, sensor 5",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 394,
      "count": 2,
      "name": "Cooked temperature reading, sensor 6",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 396,
      "count": 2,
      "name": "Cooked temperature reading, sensor 7",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 398,
      "count": 2,
      "name": "Cooked temperature reading, sensor 8",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 400,
      "count": 2,
      "name": "Cooked temperature reading, sensor 9",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 402,
      "count": 2,
      "name": "Cooked temperature reading, sensor 10",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 404,
      "count": 2,
      "name": "Cooked temperature reading, sensor 11",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 406,
      "count": 2,
      "name": "Cooked temperature reading, sensor 12",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 408,
      "count": 2,
      "name": "Cooked temperature reading, sensor 13",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 410,
      "count": 2,
      "name": "Cooked temperature reading, sensor 14",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 412,
      "count": 2,
      "name": "Cooked temperature reading, sensor 15",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 414,
      "count": 2,
      "name": "Cooked temperature reading, sensor 16",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked temperature value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 448,
      "count": 2,
      "name": "Cooked humidity reading, sensor 1",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 450,
      "count": 2,
      "name": "Cooked humidity reading, sensor 2",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 452,
      "count": 2,
      "name": "Cooked humidity reading, sensor 3",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 454,
      "count": 2,
      "name": "Cooked humidity reading, sensor 4",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 456,
      "count": 2,
      "name": "Cooked humidity reading, sensor 5",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 458,
      "count": 2,
      "name": "Cooked humidity reading, sensor 6",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 460,
      "count": 2,
      "name": "Cooked humidity reading, sensor 7",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 462,
      "count": 2,
      "name": "Cooked humidity reading, sensor 8",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 464,
      "count": 2,
      "name": "Cooked humidity reading, sensor 9",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 466,
      "count": 2,
      "name": "Cooked humidity reading, sensor 10",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 468,
      "count": 2,
      "name": "Cooked humidity reading, sensor 11",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 470,
      "count": 2,
      "name": "Cooked humidity reading, sensor 12",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 472,
      "count": 2,
      "name": "Cooked humidity reading, sensor 13",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 474,
      "count": 2,
      "name": "Cooked humidity reading, sensor 14",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 476,
      "count": 2,
      "name": "Cooked humidity reading, sensor 15",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    },
    {
      "address": 478,
      "count": 2,
      "name": "Cooked humidity reading, sensor 16",
      "data_type": "Float32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "R",
      "description": "IEEE-754 32-bit floating point cooked humidity value for the sensor. Register pair with low word at the lower address."
    }
  ],
  "holding_registers": [
    {
      "address": 0,
      "count": 1,
      "name": "Measurement command",
      "data_type": "UInt16",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Write 0 = no action, 1 = read the sensors selected in 40002-40009, 2 = read all detected moisture sensors, 3 = read all detected salinity sensors, 4 = read all detected temperature sensors, 5 = read all detected humidity sensors. Writing another value, or writing while the register is non-zero, returns exception 'illegal data value'; do not write while input register 30002 reports a measurement in progress."
    },
    {
      "address": 1,
      "count": 2,
      "name": "Moisture sensor selection mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Bit mask selecting the moisture sensors to scan when 40001 = 1; bit 0 is the first sensor."
    },
    {
      "address": 3,
      "count": 2,
      "name": "Salinity sensor selection mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Bit mask selecting the salinity sensors to scan when 40001 = 1."
    },
    {
      "address": 5,
      "count": 2,
      "name": "Temperature sensor selection mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Bit mask selecting the temperature sensors to scan when 40001 = 1."
    },
    {
      "address": 7,
      "count": 2,
      "name": "Humidity sensor selection mask",
      "data_type": "UInt32",
      "units": "",
      "scale_factor": 1,
      "offset": 0,
      "access": "RW",
      "description": "Bit mask selecting the humidity sensors to scan when 40001 = 1."
    }
  ],
  "combined_registers": [],
  "notes": "Source: Sentek 'Modbus Interface Manual — RS232/RS485', version 3.7 (Sentek Pty Ltd, 2025), published on the vendor's download page for the Sentek Modbus probe interface: 'Setting up the probe interface' / 'Setting the probe interface' (communication settings), 'Modbus Communication' (framing, RTU/ASCII), 'Register Map — Input Registers' (pages 23-25) and 'Register Map — Holding Registers' (page 26), plus 'Data Types' (page 27). The manual applies to Sentek probes fitted with the Modbus interface board (Drill & Drop, EnviroPro-style multi-depth probes): moisture, salinity and temperature sensors at configured depths, plus humidity masks on the interfaces that support them. Stored addresses are the manual's own relative (hex) addresses, e.g. 30001 = 0x0000 and 30257 = 0x0100, so addressing is zero_based; 16-bit registers are big-endian and 32-bit values carry the LOW word in the LOWER register address (manual, 'Data Types'), hence word_order LowFirst. Factory serial settings: 'The default settings are RTU mode, 9600 baud, no parity' (page 11) and the framing rule on the same manual ('8 data bits ... either one (if parity is used) or two (if no parity) stop bits'), i.e. 9600 8N2. The factory slave address is NOT stated: the manual only gives the configurable range 1-247 and says the address is set in the Probe Configuration Utility, so unit 1 here is a placeholder to be matched to the probe's configured address before reading. Only the first 16 sensors of each type are listed because the manual states that present Sentek probes have a maximum of 16 sensors per type (the map allows 32). Deliberately omitted: the per-sensor 'cooked' humidity block beyond sensor 16, ASCII-mode specific registers (the app uses Modbus RTU through a gateway), and the probe configuration/normalisation coefficients, which the manual keeps in the Probe Configuration Utility rather than in documented register rows."
}
