sonnen-battery-api
Version:
A Node.js package for interacting with Sonnen's Battery API v2
298 lines (222 loc) • 7.89 kB
Markdown
# Sonnen Battery API
The `sonnen-battery-api` package allows you to interact with Sonnen's Battery API v2 to control various configuration elements of your Sonnen battery system. This package simplifies communication with the Sonnen API and provides an easy-to-use Node.js interface.
## Installation
To use this package in your Node.js project, you can install it via npm:
```bash
npm install sonnen-battery-api
```
## Usage
```javascript
const SonnenBatteryAPI = require('sonnen-battery-api');
// Initialize the SonnenBatteryAPI class with your server details and authentication token
const sonnenBattery = new SonnenBatteryAPI('your-server-ip', 'your-server-port', 'your-auth-token');
// Example: Set the operating mode
sonnenBattery.setOperatingMode('mode_value')
.then(data => {
console.log('Operating mode set:', data);
})
.catch(error => {
console.error('Error:', error);
});
```
### `getOperatingMode()`
- **Description**: Fetches the current operating mode of the Sonnen battery system.
- **Usage**:
```javascript
const mode = await sonnenBattery.getOperatingMode();
console.log('Operating mode:', mode);
```
### `getBatteryInfo()`
- **Description**: Fetches battery information.
- **Usage**:
```javascript
const batteryInfo = await sonnenBattery.getBatteryInfo();
console.log('Battery information:', batteryInfo);
```
### `getBatteryStatus()`
- **Description**: Fetches battery status information.
- **Usage**:
```javascript
const batteryStatus = await sonnenBattery.getBatteryStatus();
console.log('Battery status:', batteryStatus);
```
### `getInverterInfo()`
- **Description**: Fetches inverter information.
- **Usage**:
```javascript
const inverterInfo = await sonnenBattery.getInverterInfo();
console.log('Inverter information:', inverterInfo);
```
### `getLatestData()`
- **Description**: Fetches the latest data from the Sonnen battery system.
- **Usage**:
```javascript
const latestData = await sonnenBattery.getLatestData();
console.log('Latest data:', latestData);
```
### `getConfigurations()`
- **Description**: Fetches the system configurations.
- **Usage**:
```javascript
const configurations = await sonnenBattery.getConfigurations();
console.log('Configurations:', configurations);
```
### `setOperatingMode(mode)`
- **Description**: Sets the operating mode of the Sonnen battery system.
- **Usage**:
```javascript
await sonnenBattery.setOperatingMode('mode_value');
```
### `setPrognosisCharging(enabled)`
- **Description**: Sets the prognosis charging.
- **Usage**:
```javascript
await sonnenBattery.setPrognosisCharging(true);
```
### `setMicrogridReEnable(enabled)`
- **Description**: Sets the microgrid re-enable.
- **Usage**:
```javascript
await sonnenBattery.setMicrogridReEnable(true);
```
### `setTimeOfUseSchedule(schedule)`
- **Description**: Sets the time-of-use schedule.
- **Usage**:
```javascript
await sonnenBattery.setTimeOfUseSchedule(schedule);
```
### `setUserInputTimeOne(time)`
- **Description**: Sets user input time one.
- **Usage**:
```javascript
await sonnenBattery.setUserInputTimeOne(time);
```
### `setUserInputTimeTwo(time)`
- **Description**: Sets user input time two.
- **Usage**:
```javascript
await sonnenBattery.setUserInputTimeTwo(time);
```
### `setUserInputTimeThree(time)`
- **Description**: Sets user input time three.
- **Usage**:
```javascript
await sonnenBattery.setUserInputTimeThree(time);
```
### `setSOC(soc)`
- **Description**: Sets the state of charge.
- **Usage**:
```javascript
await sonnenBattery.setSOC(soc);
```
### `setCHPMaxSOC(maxSOC)`
- **Description**: Sets maximum SOC for combined heat and power.
- **Usage**:
```javascript
await sonnenBattery.setCHPMaxSOC(maxSOC);
```
### `setCHPMinSOC(minSOC)`
- **Description**: Sets minimum SOC for combined heat and power.
- **Usage**:
```javascript
await sonnenBattery.setCHPMinSOC(minSOC);
```
### `setGeneratorType(generatorType)`
- **Description**: Sets generator type.
- **Usage**:
```javascript
await sonnenBattery.setGeneratorType(generatorType);
```
### `setGeneratorPowerSetPoint(powerSetPoint)`
- **Description**: Sets generator power set point.
- **Usage**:
```javascript
await sonnenBattery.setGeneratorPowerSetPoint(powerSetPoint);
```
### `setUSMicrogridReEnable(enabled)`
- **Description**: Sets the re-enable microgrid for the US system.
- **Usage**:
```javascript
await sonnenBattery.setUSMicrogridReEnable(true);
```
### `setUSUserInputTimeOne(time)`
- **Description**: Sets user input time one for the US system.
- **Usage**:
```javascript
await sonnenBattery.setUSUserInputTimeOne(time);
```
### `setUSUserInputTimeTwo(time)`
- **Description**: Sets user input time two for the US system.
- **Usage**:
```javascript
await sonnenBattery.setUSUserInputTimeTwo(time);
```
### `setUSUserInputTimeThree(time)`
- **Description**: Sets user input time three for the US system.
- **Usage**:
```javascript
await sonnenBattery.setUSUserInputTimeThree(time);
```
### `setFixedPowerFactor(factor)`
- **Description**: Sets fixed power factor.
- **Usage**:
```javascript
await sonnenBattery.setFixedPowerFactor(factor);
```
### `setFixedPowerFactorActive(active)`
- **Description**: Sets the active state of fixed power factor.
- **Usage**:
```javascript
await sonnenBattery.setFixedPowerFactorActive(true);
```
### `setFixedPowerFactorLagging(lagging)`
- **Description**: Sets the lagging state of fixed power factor.
- **Usage**:
```javascript
await sonnenBattery.setFixedPowerFactorLagging(true);
```
### `setHeaterOperatingMode(mode)`
- **Description**: Sets heater operating mode.
- **Usage**:
```javascript
await sonnenBattery.setHeaterOperatingMode(mode);
```
### `setHeaterTemperatureMax(temperature)`
- **Description**: Sets maximum heater temperature.
- **Usage**:
```javascript
await sonnenBattery.setHeaterTemperatureMax(temperature);
```
### `setHeaterTemperatureMin(temperature)`
- **Description**: Sets minimum heater temperature.
- **Usage**:
```javascript
await sonnenBattery.setHeaterTemperatureMin(temperature);
```
## Battery Configuration Elements
Here are some of the available configuration elements that you can control using this package:
- `EM_OperatingMode`: Set the operating mode.
- `EM_Prognosis_Charging`: Set the prognosis charging.
- `EM_RE_ENABLE_MICROGRID`: Set the microgrid re-enable.
- `EM_ToU_Schedule`: Set the time-of-use schedule.
- `EM_USER_INPUT_TIME_ONE`: Set user input time one.
- `EM_USER_INPUT_TIME_TWO`: Set user input time two.
- `EM_USER_INPUT_TIME_THREE`: Set user input time three.
- `EM_USOC`: Set the state of charge.
- `EM_US_CHP_Max_SOC`: Set maximum SOC for combined heat and power.
- `EM_US_CHP_Min_SOC`: Set minimum SOC for combined heat and power.
- `EM_US_GENRATOR_TYPE`: Set generator type.
- `EM_US_GEN_POWER_SET_POINT`: Set generator power set point.
- `EM_US_RE_ENABLE_MICROGRID`: Set the re-enable microgrid for the US system.
- `EM_US_USER_INPUT_TIME_ONE`: Set user input time one for the US system.
- `EM_US_USER_INPUT_TIME_TWO`: Set user input time two for the US system.
- `EM_US_USER_INPUT_TIME_THREE`: Set user input time three for the US system.
- `NVM_PfcFixedCosPhi`: Set fixed power factor.
- `NVM_PfcIsFixedCosPhiActive`: Set the active state of fixed power factor.
- `NVM_PfcIsFixedCosPhiLagging`: Set the lagging state of fixed power factor.
- `SH_HeaterOperatingMode`: Set heater operating mode.
- `SH_HeaterTemperatureMax`: Set maximum heater temperature.
- `SH_HeaterTemperatureMin`: Set minimum heater temperature.
Please refer to the Sonnen Battery API documentation for more details on these configuration elements.
## License
This package is open-source and available under the [MIT License](LICENSE).