{ "kind": "busloom-device-definition", "schemaVersion": 1, "id": "waveshare.modbus-poe-eth-relay-30ch", "name": "Waveshare Modbus POE ETH Relay 30CH", "description": "Core register map transcribed from the official Modbus POE ETH Relay 30CH protocol documentation.", "tagGroups": [ { "id": "waveshare.modbus.poe.eth.relay.30ch.group.outputs", "name": "Relay outputs", "color": "orange" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.group.device", "name": "Device information", "color": "neutral" } ], "tags": [ { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.000.relay-1", "name": "Relay 1", "addressSpace": "coils", "address": 0, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.001.relay-2", "name": "Relay 2", "addressSpace": "coils", "address": 1, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.002.relay-3", "name": "Relay 3", "addressSpace": "coils", "address": 2, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.003.relay-4", "name": "Relay 4", "addressSpace": "coils", "address": 3, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.004.relay-5", "name": "Relay 5", "addressSpace": "coils", "address": 4, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.005.relay-6", "name": "Relay 6", "addressSpace": "coils", "address": 5, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.006.relay-7", "name": "Relay 7", "addressSpace": "coils", "address": 6, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.007.relay-8", "name": "Relay 8", "addressSpace": "coils", "address": 7, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.008.relay-9", "name": "Relay 9", "addressSpace": "coils", "address": 8, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.009.relay-10", "name": "Relay 10", "addressSpace": "coils", "address": 9, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.010.relay-11", "name": "Relay 11", "addressSpace": "coils", "address": 10, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.011.relay-12", "name": "Relay 12", "addressSpace": "coils", "address": 11, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.012.relay-13", "name": "Relay 13", "addressSpace": "coils", "address": 12, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.013.relay-14", "name": "Relay 14", "addressSpace": "coils", "address": 13, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.014.relay-15", "name": "Relay 15", "addressSpace": "coils", "address": 14, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.015.relay-16", "name": "Relay 16", "addressSpace": "coils", "address": 15, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.016.relay-17", "name": "Relay 17", "addressSpace": "coils", "address": 16, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.017.relay-18", "name": "Relay 18", "addressSpace": "coils", "address": 17, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.018.relay-19", "name": "Relay 19", "addressSpace": "coils", "address": 18, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.019.relay-20", "name": "Relay 20", "addressSpace": "coils", "address": 19, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.020.relay-21", "name": "Relay 21", "addressSpace": "coils", "address": 20, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.021.relay-22", "name": "Relay 22", "addressSpace": "coils", "address": 21, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.022.relay-23", "name": "Relay 23", "addressSpace": "coils", "address": 22, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.023.relay-24", "name": "Relay 24", "addressSpace": "coils", "address": 23, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.024.relay-25", "name": "Relay 25", "addressSpace": "coils", "address": 24, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.025.relay-26", "name": "Relay 26", "addressSpace": "coils", "address": 25, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.026.relay-27", "name": "Relay 27", "addressSpace": "coils", "address": 26, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.027.relay-28", "name": "Relay 28", "addressSpace": "coils", "address": 27, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.028.relay-29", "name": "Relay 29", "addressSpace": "coils", "address": 28, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.coil.029.relay-30", "name": "Relay 30", "addressSpace": "coils", "address": 29, "dataType": "boolean", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": null, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Relay state; read with FC01 and control with FC05 or FC15.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.outputs" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.holding.16384.device-address", "name": "Device address", "addressSpace": "holdingRegisters", "address": 16384, "dataType": "uint16", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 0, "minimum": 1, "maximum": 255, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Fixed Modbus gateway address.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.device" }, { "id": "waveshare.modbus.poe.eth.relay.30ch.holding.32768.software-version", "name": "Software version", "addressSpace": "holdingRegisters", "address": 32768, "dataType": "uint16", "notation": "decimal", "registerCount": 1, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 0.01, "offset": 0, "displayDecimals": 2, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Raw integer scaled by 0.01; 100 represents version 1.00.", "groupId": "waveshare.modbus.poe.eth.relay.30ch.group.device" } ], "views": [ { "id": "waveshare.modbus.poe.eth.relay.30ch.view.outputs", "name": "Relay outputs", "type": "coils", "addressMode": "range", "startAddress": 0, "quantity": 30, "addresses": [], "pollIntervalMs": 500 }, { "id": "waveshare.modbus.poe.eth.relay.30ch.view.device", "name": "Device information", "type": "holdingRegisters", "addressMode": "custom", "startAddress": 16384, "quantity": 1, "addresses": [ 16384, 32768 ], "pollIntervalMs": 5000 } ] }