{
    "title": "WB-MR3LV",
    "device_type": "WB-MR3LV",
    "deprecated": true,
    "group": "g-wb",
    "device": {
        "name": "WB-MR3LV",
        "id": "wb-mr3lv",
        "max_read_registers": 0,
        "response_timeout_ms": 1,
        "frame_timeout_ms": 8,
        "enable_wb_continuous_read": true,

        "groups": [
            {
                "title": "Input 0",
                "id": "input_0"
            },
            {
                "title": "Input 1",
                "id": "input_1"
            },
            {
                "title": "Input 2",
                "id": "input_2"
            },
            {
                "title": "Input 3",
                "id": "input_3"
            },
            {
                "title": "Outputs",
                "id": "outputs"
            },
            {
                "title": "HW Info",
                "id": "hw_info"
            }
        ],

        "setup": [
            {
                "title": "disable legacy input mode control",
                "address": 5,
                "reg_type": "holding",
                "value": 0
            }
        ],

        "parameters": {
            "in0_mode": {
                "title": "Input 0 Mode",
                "address": 16,
                "reg_type": "holding",
                "enum": [2, 3, 4],
                "default": 2,
                "enum_titles": [
                    "turn off all outputs",
                    "control disabled",
                    "operate according to mapping-matix"
                ],
                "group": "input_0",
                "order": 1
            },
            "in0_debounce_ms": {
                "title": "Input 0 Debounce (ms)",
                "address": 27,
                "reg_type": "holding",
                "min": 0,
                "max": 100,
                "default": 50,
                "group": "input_0",
                "order": 2
            },
            "in1_mode": {
                "title": "Input 1 Mode",
                "address": 9,
                "reg_type": "holding",
                "enum": [0, 1, 2, 3, 4],
                "default": 0,
                "enum_titles": [
                    "push button",
                    "latching switch",
                    "turn off all outputs",
                    "control disabled",
                    "operate according to mapping-matix"
                ],
                "group": "input_1",
                "order": 1
            },
            "in1_debounce_ms": {
                "title": "Input 1 Debounce (ms)",
                "address": 20,
                "reg_type": "holding",
                "min": 0,
                "max": 100,
                "default": 50,
                "group": "input_1",
                "order": 2
            },
            "in2_mode": {
                "title": "Input 2 Mode",
                "address": 10,
                "reg_type": "holding",
                "enum": [0, 1, 2, 3, 4],
                "default": 0,
                "enum_titles": [
                    "push button",
                    "latching switch",
                    "turn off all outputs",
                    "control disabled",
                    "operate according to mapping-matix"
                ],
                "group": "input_2",
                "order": 1
            },
            "in2_debounce_ms": {
                "title": "Input 2 Debounce (ms)",
                "address": 21,
                "reg_type": "holding",
                "min": 0,
                "max": 100,
                "default": 50,
                "group": "input_2",
                "order": 2
            },
            "in3_mode": {
                "title": "Input 3 Mode",
                "address": 11,
                "reg_type": "holding",
                "enum": [0, 1, 2, 3, 4],
                "default": 0,
                "enum_titles": [
                    "push button",
                    "latching switch",
                    "turn off all outputs",
                    "control disabled",
                    "operate according to mapping-matix"
                ],
                "group": "input_3",
                "order": 1
            },
            "in3_debounce_ms": {
                "title": "Input 3 Debounce (ms)",
                "address": 22,
                "reg_type": "holding",
                "min": 0,
                "max": 100,
                "default": 50,
                "group": "input_3",
                "order": 2
            },
            "outputs_restore_state": {
                "title": "Restore Last Outputs State After Power On",
                "address": 6,
                "reg_type": "holding",
                "enum": [0, 1],
                "default": 0,
                "enum_titles": ["no", "yes"],
                "group": "outputs",
                "order": 1
            },
            "safety_timer_s": {
                "title": "Safety Timer (s)",
                "address": 8,
                "reg_type": "holding",
                "default": 3600,
                "group": "outputs",
                "order": 2
            }
        },

        "channels": [
            {
                "name": "Input 0",
                "reg_type": "discrete",
                "address": 7,
                "type": "switch",
                "group": "input_0"
            },
            {
                "name": "Input 0 counter",
                "reg_type": "input",
                "address": 39,
                "type": "value",
                "group": "input_0"
            },
            {
                "name": "Input 0 freq",
                "reg_type": "input",
                "address": 54,
                "type": "value",
                "format": "u32",
                "scale": 1.52588e-5,
                "round_to": 0.001,
                "enabled": false,
                "group": "input_0"
            },
            {
                "name": "Input 1",
                "reg_type": "discrete",
                "address": 0,
                "type": "switch",
                "group": "input_1"
            },
            {
                "name": "Input 1 counter",
                "reg_type": "input",
                "address": 32,
                "type": "value",
                "group": "input_1"
            },
            {
                "name": "Input 1 freq",
                "reg_type": "input",
                "address": 40,
                "type": "value",
                "format": "u32",
                "scale": 1.52588e-5,
                "round_to": 0.001,
                "enabled": false,
                "group": "input_1"
            },
            {
                "name": "Input 2",
                "reg_type": "discrete",
                "address": 1,
                "type": "switch",
                "group": "input_2"
            },
            {
                "name": "Input 2 counter",
                "reg_type": "input",
                "address": 33,
                "type": "value",
                "group": "input_2"
            },
            {
                "name": "Input 2 freq",
                "reg_type": "input",
                "address": 42,
                "type": "value",
                "format": "u32",
                "scale": 1.52588e-5,
                "round_to": 0.001,
                "enabled": false,
                "group": "input_2"
            },
            {
                "name": "Input 3",
                "reg_type": "discrete",
                "address": 2,
                "type": "switch",
                "group": "input_3"
            },
            {
                "name": "Input 3 counter",
                "reg_type": "input",
                "address": 34,
                "type": "value",
                "group": "input_3"
            },
            {
                "name": "Input 3 freq",
                "reg_type": "input",
                "address": 44,
                "type": "value",
                "format": "u32",
                "scale": 1.52588e-5,
                "round_to": 0.001,
                "enabled": false,
                "group": "input_3"
            },
            {
                "name": "K1",
                "reg_type": "coil",
                "address": 0,
                "type": "switch",
                "group": "outputs"
            },
            {
                "name": "K2",
                "reg_type": "coil",
                "address": 1,
                "type": "switch",
                "group": "outputs"
            },
            {
                "name": "K3",
                "reg_type": "coil",
                "address": 2,
                "type": "switch",
                "group": "outputs"
            },
            {
                "name": "Serial",
                "reg_type": "input",
                "address": 270,
                "type": "text",
                "format": "u32",
                "group": "hw_info"
            },
            {
                "name": "Supply Voltage",
                "reg_type": "input",
                "address": 121,
                "type": "voltage",
                "scale": 0.001,
                "enabled": false,
                "group": "hw_info"
            },
            {
                "name": "Uptime",
                "reg_type": "input",
                "address": 104,
                "type": "text",
                "format": "u32",
                "enabled": false,
                "group": "hw_info"
            }
        ]
    }
}
