Node-RED node to query the web interface of SMA inverters
npm install node-red-contrib-sma-webconnectNode-RED node to query the web interface of SMA inverters or storage systems.
```
npm install node-red-contrib-sma-webconnect
Configure the IP address, user group and password in the node properties. Uncheck the "Use HTTPS connection" checkbox if your device doesn't support HTTPS.
`json`
{
"available_sessions": 3,
"grid_consumption": 0,
"grid_feedin": 6546,
"phase1_voltage": 230.12,
"phase2_voltage": 231.01,
"phase3_voltage": 230.55,
"power": 7608
}
The node provides preset configurations for Sunny Boy 1AV-40, Sunny Tripower and Sunny Boy Storage 2.5 units to read basic values from those devices. But it is also possible to configure the node with a input message to read additional values from your devices.
To read custom values the node needs an configuration object as payload under the "sma_config" key. This configuration consists of an id (DeviceClassId, see table below) and a list of ids of the values you want to read.
json
{
"sma_config": {
"id": "1",
"values": {
"6100_0046E500": {
"name": "phase1_voltage",
"divider": 100
},
"6100_0046E600": {
"name": "phase2_voltage",
"divider": 100
},
"6100_0046E700": {
"name": "phase3_voltage",
"divider": 100
},
"6100_40463600": {
"name": "grid_feedin",
"divider": 1
},
"6100_40463700": {
"name": "grid_consumption",
"divider": 1
},
"6100_40263F00": {
"name": "power",
"divider": 1
}
}
}
}
`
* sma_config: this will tell the node to use the provided input payload, the device selection in the node settings will be ignored (required)
* id: The DeviceClassId to tell the node how to extract the values (required)
* values: list of value ids that should be read (required)
* value_id: id of value that should be read (required)
* name: custom name for the read value (required)
* divider: sets a divider for the read value (optional)| Device Type | DeviceClassId |
|-------------|---------------|
| Inverter | 1 |
| Battery | 7 |
| Hybrid | 9 |
$3
The necessary message and value ids can easily be obtained by visiting the /spotvalues page of your device webinterface and by using the developer tools of your browser.$3
The following steps show you how to obtain the
DeviceClassId ("message_id") and the value ids ("value_id") you will have to provide in the input payload to read custom values from the devices.1. Connect to the web interface of your device, i.e.
http(s)://192.168.1.42/#/login
2. Open the overview section of your device, i.e. http(s)://192.168.1.42/#/spotvalues
3. Open your browsers developer tools
4. Get the message id of your device by opening the network tab of the developer tools and selecting the XHR filter
* select one of the responses from the /getValues.json endpoint | !Find message id |
|:--:|
| the red is the message
id and the green a possible value_id |5. get the
value_id of your wanted values by using the inspect function of the developer tools
* open the accordions and search for the values you want to read
* use the inspect tool to select the displayed value and show the value_id
| !Find value id |
|:--:|
| the value id should be a 13 character long string, in this example it's 6380_40251E00` |