{ "kind": "busloom-device-definition", "schemaVersion": 1, "id": "eastron.sdm120-modbus", "name": "Eastron SDM120-Modbus", "description": "Official core FC04 measurement map for the Eastron SDM120-Modbus single-phase meter, based on protocol revision V2.4. Values are 32-bit IEEE 754 floats in normal register order.", "tagGroups": [ { "id": "eastron.sdm120.group.live", "name": "Live electrical values", "color": "blue" }, { "id": "eastron.sdm120.group.energy", "name": "Energy", "color": "green" }, { "id": "eastron.sdm120.group.demand", "name": "Demand", "color": "orange" } ], "tags": [ { "id": "eastron.sdm120.input.000.voltage", "name": "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": "Line voltage.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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": "Line current.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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": "Instantaneous active power.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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": "Instantaneous apparent power.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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": "Instantaneous reactive power.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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": "Signed power factor.", "groupId": "eastron.sdm120.group.live" }, { "id": "eastron.sdm120.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.sdm120.group.live" }, { "id": "eastron.sdm120.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.", "groupId": "eastron.sdm120.group.energy" }, { "id": "eastron.sdm120.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.", "groupId": "eastron.sdm120.group.energy" }, { "id": "eastron.sdm120.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.", "groupId": "eastron.sdm120.group.energy" }, { "id": "eastron.sdm120.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.", "groupId": "eastron.sdm120.group.energy" }, { "id": "eastron.sdm120.input.084.total-power-demand", "name": "Total system 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 total active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.086.max-total-power-demand", "name": "Maximum total system 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 total active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.088.import-power-demand", "name": "Import 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 imported active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.090.max-import-power-demand", "name": "Maximum import 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 imported active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.092.export-power-demand", "name": "Export 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 exported active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.094.max-export-power-demand", "name": "Maximum export 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 exported active power demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.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 line-current demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.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 line-current demand.", "groupId": "eastron.sdm120.group.demand" }, { "id": "eastron.sdm120.input.342.total-active-energy", "name": "Total active energy", "addressSpace": "inputRegisters", "address": 342, "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": "Total active energy according to the configured measurement mode.", "groupId": "eastron.sdm120.group.energy" }, { "id": "eastron.sdm120.input.344.total-reactive-energy", "name": "Total reactive energy", "addressSpace": "inputRegisters", "address": 344, "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": "Total reactive energy.", "groupId": "eastron.sdm120.group.energy" } ], "views": [ { "id": "eastron.sdm120.view.live", "name": "Live electrical values", "type": "inputRegisters", "addressMode": "custom", "startAddress": 0, "quantity": 1, "addresses": [0, 6, 12, 18, 24, 30, 70], "pollIntervalMs": 1000 }, { "id": "eastron.sdm120.view.energy", "name": "Energy", "type": "inputRegisters", "addressMode": "custom", "startAddress": 72, "quantity": 1, "addresses": [72, 74, 76, 78, 342, 344], "pollIntervalMs": 1000 }, { "id": "eastron.sdm120.view.demand", "name": "Demand", "type": "inputRegisters", "addressMode": "custom", "startAddress": 84, "quantity": 1, "addresses": [84, 86, 88, 90, 92, 94, 258, 264], "pollIntervalMs": 1000 } ] }