The SMA Power Reducer Box is a device for control of PV plants via some external control (usually ripple receiver from the grid operator). It has 4 digital inputs to select from up to 16 states of active and reactive power limitation.
For whatever reason, reading the current active power limitation setpoint value via Modbus is not possible. Nor can the value be read from the inverters or other plant devices – or SMA Webbox – using Modbus.
The solution I came up with is a bit hacky – but using Mango Automation, you can configure a HTTP retriever data source and regex expression to scrape and parse the value from the Power Reducer Box’s internal web server:
The public-access URL for the setpoint is:
http:\/\/1.2.3.4\/index.php?module=PlantStatus&action=index
And this is the regex expression that will match the active power limitation setpoint:
(?<=L3: )(.*)(?=%)
And here is the complete JSON export:
{ "dataSources":[ { "xid":"DS_158029", "name":"Power Reducer Box", "enabled":true, "type":"HTTP_RETRIEVER", "alarmLevels":{ "PARSE_EXCEPTION":"NONE", "DATA_RETRIEVAL_FAILURE":"INFORMATION", "SET_POINT_FAILURE":"NONE" }, "purgeType":"YEARS", "updatePeriodType":"MINUTES", "quantize":true, "retries":2, "setPointUrl":"", "timeoutSeconds":30, "updatePeriods":5, "url":"http:\/\/1.2.3.4\/index.php?module=PlantStatus&action=index", "purgeOverride":true, "purgePeriod":1 } ], "dataPoints":[ { "xid":"DP_172704", "name":"Active Power Limitation Setpoint", "enabled":true, "loggingType":"ON_CHANGE", "intervalLoggingPeriodType":"MINUTES", "intervalLoggingType":"INSTANT", "purgeType":"YEARS", "pointLocator":{ "dataType":"NUMERIC", "ignoreIfMissing":false, "setPointName":"", "settable":false, "timeFormat":"", "timeRegex":"", "valueFormat":"###.#", "valueRegex":"(?<=L3: )(.*)(?=%)" }, "eventDetectors":[ { "xid":"PED_028817", "type":"LOW_LIMIT", "alarmLevel":"INFORMATION", "limit":99.0, "durationType":"SECONDS", "duration":60, "alias":"" } ], "plotType":"STEP", "unit":"%", "chartColour":"", "chartRenderer":{ "type":"TABLE", "limit":10 }, "dataSourceXid":"DS_158029", "defaultCacheSize":1, "deviceName":"Power Reducer Box", "discardExtremeValues":false, "discardHighLimit":0.0, "discardLowLimit":0.0, "intervalLoggingPeriod":15, "intervalLoggingSampleWindowSize":0, "overrideIntervalLoggingSamples":false, "purgeOverride":true, "purgePeriod":1, "textRenderer":{ "type":"PLAIN", "useUnitAsSuffix":true, "unit":"%", "renderedUnit":"%", "suffix":"" }, "tolerance":0.0 } ] }
Leave a Reply