{ "kind": "busloom-device-definition", "schemaVersion": 1, "id": "eastron.sdm230-modbus", "name": "Eastron SDM230-Modbus", "description": "Official core FC04 measurement map for the Eastron SDM230-Modbus single-phase meter, based on protocol revision V1.1. Values are 32-bit IEEE 754 floats in normal register order.", "tagGroups": [ { "id": "eastron.sdm230.group.live", "name": "Live electrical values", "color": "blue" }, { "id": "eastron.sdm230.group.energy", "name": "Energy", "color": "green" }, { "id": "eastron.sdm230.group.demand", "name": "Demand", "color": "orange" } ], "tags": [ { "id": "eastron.sdm230.input.000.voltage", "name": "Line-to-neutral voltage", "addressSpace": "inputRegisters", "address": 0, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "V", "description": "Phase 1 line-to-neutral voltage.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.006.current", "name": "Current", "addressSpace": "inputRegisters", "address": 6, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "A", "description": "Phase 1 current.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.012.active-power", "name": "Active power", "addressSpace": "inputRegisters", "address": 12, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Phase 1 active power.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.018.apparent-power", "name": "Apparent power", "addressSpace": "inputRegisters", "address": 18, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "VA", "description": "Phase 1 apparent power.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.024.reactive-power", "name": "Reactive power", "addressSpace": "inputRegisters", "address": 24, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "VAr", "description": "Phase 1 reactive power.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.030.power-factor", "name": "Power factor", "addressSpace": "inputRegisters", "address": 30, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "", "description": "Phase 1 power factor.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.036.phase-angle", "name": "Phase angle", "addressSpace": "inputRegisters", "address": 36, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "°", "description": "Phase 1 phase angle.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.070.frequency", "name": "Frequency", "addressSpace": "inputRegisters", "address": 70, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 2, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "Hz", "description": "Supply frequency.", "groupId": "eastron.sdm230.group.live" }, { "id": "eastron.sdm230.input.072.import-active-energy", "name": "Import active energy", "addressSpace": "inputRegisters", "address": 72, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "kWh", "description": "Imported active energy since the last reset.", "groupId": "eastron.sdm230.group.energy" }, { "id": "eastron.sdm230.input.074.export-active-energy", "name": "Export active energy", "addressSpace": "inputRegisters", "address": 74, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "kWh", "description": "Exported active energy since the last reset.", "groupId": "eastron.sdm230.group.energy" }, { "id": "eastron.sdm230.input.076.import-reactive-energy", "name": "Import reactive energy", "addressSpace": "inputRegisters", "address": 76, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "kVArh", "description": "Imported reactive energy since the last reset.", "groupId": "eastron.sdm230.group.energy" }, { "id": "eastron.sdm230.input.078.export-reactive-energy", "name": "Export reactive energy", "addressSpace": "inputRegisters", "address": 78, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "kVArh", "description": "Exported reactive energy since the last reset.", "groupId": "eastron.sdm230.group.energy" }, { "id": "eastron.sdm230.input.084.active-power-demand", "name": "Active power demand", "addressSpace": "inputRegisters", "address": 84, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Current active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.086.max-active-power-demand", "name": "Maximum active power demand", "addressSpace": "inputRegisters", "address": 86, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Maximum active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.088.forward-power-demand", "name": "Forward active power demand", "addressSpace": "inputRegisters", "address": 88, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Current forward active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.090.max-forward-power-demand", "name": "Maximum forward active power demand", "addressSpace": "inputRegisters", "address": 90, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Maximum forward active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.092.reverse-power-demand", "name": "Reverse active power demand", "addressSpace": "inputRegisters", "address": 92, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Current reverse active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.094.max-reverse-power-demand", "name": "Maximum reverse active power demand", "addressSpace": "inputRegisters", "address": 94, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 1, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "W", "description": "Maximum reverse active power demand.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.258.current-demand", "name": "Current demand", "addressSpace": "inputRegisters", "address": 258, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "A", "description": "Current current-demand value.", "groupId": "eastron.sdm230.group.demand" }, { "id": "eastron.sdm230.input.264.max-current-demand", "name": "Maximum current demand", "addressSpace": "inputRegisters", "address": 264, "dataType": "float32", "notation": "decimal", "registerCount": 2, "byteOrder": "bigEndian", "wordOrder": "mostSignificantFirst", "scale": 1, "offset": 0, "displayDecimals": 3, "minimum": null, "maximum": null, "valueLabels": [], "trueLabel": "ON", "falseLabel": "OFF", "alarms": [], "unit": "A", "description": "Maximum current-demand value.", "groupId": "eastron.sdm230.group.demand" } ], "views": [ { "id": "eastron.sdm230.view.live", "name": "Live electrical values", "type": "inputRegisters", "addressMode": "custom", "startAddress": 0, "quantity": 1, "addresses": [0, 6, 12, 18, 24, 30, 36, 70], "pollIntervalMs": 1000 }, { "id": "eastron.sdm230.view.energy", "name": "Energy", "type": "inputRegisters", "addressMode": "custom", "startAddress": 72, "quantity": 1, "addresses": [72, 74, 76, 78], "pollIntervalMs": 1000 }, { "id": "eastron.sdm230.view.demand", "name": "Demand", "type": "inputRegisters", "addressMode": "custom", "startAddress": 84, "quantity": 1, "addresses": [84, 86, 88, 90, 92, 94, 258, 264], "pollIntervalMs": 1000 } ] }