{
  "$schema": "https://raw.githubusercontent.com/nobrega8/mbmap-library/main/schema/mbmap-2.schema.json",
  "mbmap": 2,
  "vendor": "Kohler",
  "model": "Decision-Maker 340",
  "models": ["Decision-Maker 340"],
  "vendor_website": "rehlko.com",
  "revision": 3,
  "revised": "2026-11-10",
  "source": "Kohler, \"Protocol Operation: Modbus Communications Protocol\", TP-6113 12/21; https://techcomm.kohler.com/techcomm/pdf/tp6113.pdf",
  "notes": [
    "Decision-Maker 340 generator set controller (through the Modbus/KBUS converter).",
    "Baud rate must be 9600 to match the KBUS side of the converter.",
    "Addresses are zero-based: the manual register 40001 is address 0.",
    "The manual limits a read to 50 registers. Only the monitoring part of the register table is in this map.",
    "Data is available over Modbus RTU (8N1); Modbus TCP needs a Modbus/Ethernet converter."
  ],
  "parity": "N",
  "databits": 8,
  "stopbits": 1,
  "max_read_registers": 50,
  "byte_order": "big",
  "word_order": "little",
  "address_base": 0,
  "x_status": "official",
  "sources": [
    {"title": "Protocol Operation: Modbus Communications Protocol (TP-6113)", "version": "12/21", "date": "2021-12", "url": "https://techcomm.kohler.com/techcomm/pdf/tp6113.pdf", "note": "section 3; register tables also compared with edition 9/14"}
  ],
  "registers": [
    {"name": "System Time", "area": "holding", "address": 1, "type": "uint16", "access": "R"},
    {"name": "Day of Week", "area": "holding", "address": 2, "type": "uint16", "access": "R"},
    {"name": "Month", "area": "holding", "address": 3, "type": "uint16", "access": "R"},
    {"name": "Day", "area": "holding", "address": 4, "type": "uint16", "access": "R"},
    {"name": "Year", "area": "holding", "address": 5, "type": "uint16", "access": "R"},
    {"name": "Week of Month", "area": "holding", "address": 6, "type": "uint16", "access": "R"},
    {"name": "Voltage L1-L2", "area": "holding", "address": 7, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Voltage L2-L3", "area": "holding", "address": 8, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Voltage L3-L1", "area": "holding", "address": 9, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Frequency", "area": "holding", "address": 10, "type": "uint16", "unit": "Hz", "access": "R"},
    {"name": "Voltage L1-L0", "area": "holding", "address": 11, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Voltage L2-L0", "area": "holding", "address": 12, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Voltage L3-L0", "area": "holding", "address": 13, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "Alert Code", "area": "holding", "address": 14, "type": "uint16", "access": "R"},
    {"name": "Engine Speed", "area": "holding", "address": 15, "type": "uint16", "access": "R"},
    {"name": "Coolant Temp", "area": "holding", "address": 16, "type": "uint16", "access": "R"},
    {"name": "Oil Pressure", "area": "holding", "address": 17, "type": "uint16", "access": "R"},
    {"name": "Battery Voltage", "area": "holding", "address": 18, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"},
    {"name": "L1 Current", "area": "holding", "address": 19, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "L2 Current", "area": "holding", "address": 20, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "L3 Current", "area": "holding", "address": 21, "type": "uint16", "unit": "A", "access": "R"},
    {"name": "Power Factor", "area": "holding", "address": 22, "type": "uint16", "scale": 0.01, "access": "R"},
    {"name": "Total Real Power", "area": "holding", "address": 23, "type": "uint16", "unit": "kW", "access": "R"},
    {"name": "Percent of Max. Power", "area": "holding", "address": 24, "type": "uint16", "scale": 0.01, "unit": "%", "access": "R"},
    {"name": "Status", "area": "holding", "address": 33, "type": "uint16", "access": "R"},
    {"name": "Engine Start Time", "area": "holding", "address": 47, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Crank Time", "area": "holding", "address": 48, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Crank Pause Time", "area": "holding", "address": 49, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Num of Crank Cycles", "area": "holding", "address": 50, "type": "uint16", "access": "R"},
    {"name": "Engine Cooldown Time", "area": "holding", "address": 51, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Over Voltage Time Delay", "area": "holding", "address": 52, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Under Voltage Time Delay", "area": "holding", "address": 53, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Starting Aid Time", "area": "holding", "address": 54, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 1 Inhibit Time", "area": "holding", "address": 55, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 1 Delay Time", "area": "holding", "address": 56, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 2 Inhibit Time", "area": "holding", "address": 57, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 2 Delay Time", "area": "holding", "address": 58, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 3 Inhibit Time", "area": "holding", "address": 59, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 3 Delay Time", "area": "holding", "address": 60, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 4 Inhibit Time", "area": "holding", "address": 61, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Aux 4 Delay Time", "area": "holding", "address": 62, "type": "uint16", "unit": "s", "access": "R"},
    {"name": "Over Voltage Trip Point", "area": "holding", "address": 63, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Under Voltage Trip Point", "area": "holding", "address": 64, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Over Freq Trip Point", "area": "holding", "address": 65, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Under Freq Trip Point", "area": "holding", "address": 66, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Over Speed Trip Point", "area": "holding", "address": 67, "type": "uint16", "unit": "%", "access": "R"},
    {"name": "Low Battery Voltage Trip Point", "area": "holding", "address": 68, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"},
    {"name": "High Battery Voltage Trip Point", "area": "holding", "address": 69, "type": "uint16", "scale": 0.1, "unit": "V", "access": "R"},
    {"name": "System Voltage", "area": "holding", "address": 70, "type": "uint16", "unit": "V", "access": "R"},
    {"name": "System Frequency", "area": "holding", "address": 71, "type": "uint16", "unit": "Hz", "access": "R"}
  ]
}
