Updated external content (Jenkins build 2245)
parent
edd55d738d
commit
ad68c7f348
File diff suppressed because one or more lines are too long
|
@ -75,8 +75,8 @@ FreeboxOS binding has the following configuration parameters:
|
|||
| Application Token | appToken | Token generated by the Freebox Server. | Yes | |
|
||||
| Network Device Discovery | discoverNetDevice | Enable the discovery of network device things. | No | false |
|
||||
| Background Discovery Interval | discoveryInterval | Interval in minutes - 0 disables background discovery | No | 10 |
|
||||
| HTTPS Available | httpsAvailable | Tells if https has been configured on the Freebox | No | false |
|
||||
| HTTPS port | httpsPort | Port to use for remote https access to the Freebox Api | No | 15682 |
|
||||
| HTTPS Available | httpsAvailable | Tells if HTTPS has been configured on the Freebox | No | false |
|
||||
| HTTPS port | httpsPort | Port to use for HTTPS access to the Freebox Api | No | 443 |
|
||||
| Websocket Reconnect Interval | wsReconnectInterval | Disconnection interval, in minutes- 0 disables websocket usage | No | 60 |
|
||||
|
||||
If the parameter *apiDomain* is not set, the binding will use the default address used by Free to access your Freebox Server (mafreebox.freebox.fr).
|
||||
|
|
|
@ -17,23 +17,24 @@ install: auto
|
|||
|
||||
This binding uses the [Fronius Solar API V1](https://www.fronius.com/en/solar-energy/installers-partners/technical-data/all-products/system-monitoring/open-interfaces/fronius-solar-api-json-) to obtain data from Fronius devices.
|
||||
|
||||
It supports Fronius inverters and Fronius Smart Meter.
|
||||
Supports:
|
||||
It supports Fronius inverters, smart meters and Ohmpilot devices connected to a Fronius Datamanager 1.0 / 2.0, Fronius Datalogger or with integrated Solar API V1 support.
|
||||
|
||||
Inverters with integrated Solar API V1 support include:
|
||||
|
||||
- Fronius Galvo
|
||||
- Fronius Primo
|
||||
- Fronius Symo
|
||||
- Fronius Symo Gen24
|
||||
- Fronius Smart Meter 63A
|
||||
- Fronius Smart Meter TS 65A-3
|
||||
- Fronius Ohmpilot
|
||||
- Fronius Symo Gen24 Plus
|
||||
|
||||
## Supported Things
|
||||
|
||||
| Thing Type | Description |
|
||||
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `bridge` | The Bridge |
|
||||
| `powerinverter` | Fronius Galvo, Symo and other Fronius inverters in combination with the Fronius Datamanager 1.0 / 2.0 or Fronius Datalogger. You can add multiple inverters that depend on the same datalogger with different device ids. (Default 1) |
|
||||
| `meter` | Fronius Smart Meter. You can add multiple smart meters with different device ids. (The default id = 0) |
|
||||
| `ohmpilot` | Fronius Ohmpilot. (The default id = 0) |
|
||||
| Thing Type | Description |
|
||||
|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||
| `bridge` | The Bridge |
|
||||
| `powerinverter` | Fronius Galvo, Symo and other Fronius inverters: You can add multiple inverters that depend on the same datalogger with different device ids. (default id = 1) |
|
||||
| `meter` | Fronius Smart Meter: You can add multiple smart meters with different device ids. (default id = 0) |
|
||||
| `ohmpilot` | Fronius Ohmpilot ( default id = 0) |
|
||||
|
||||
## Discovery
|
||||
|
||||
|
@ -47,10 +48,12 @@ The binding has no configuration options, all configuration is done at `bridge`,
|
|||
|
||||
### Bridge Thing Configuration
|
||||
|
||||
| Parameter | Description |
|
||||
| ----------------- | ----------------------------------------------------- |
|
||||
| `hostname` | The hostname or IP address of your Fronius Datalogger |
|
||||
| `refreshInterval` | Refresh interval in seconds |
|
||||
| Parameter | Description | Required |
|
||||
|-------------------|--------------------------------------------------------------------------------|----------|
|
||||
| `hostname` | The hostname or IP address of your Fronius Datamanager, Datalogger or inverter | Yes |
|
||||
| `username` | The username to authenticate with the inverter settings for battery control | No |
|
||||
| `password` | The password to authenticate with the inverter settings for battery control | No |
|
||||
| `refreshInterval` | Refresh interval in seconds | No |
|
||||
|
||||
### Powerinverter Thing Configuration
|
||||
|
||||
|
@ -153,6 +156,65 @@ The binding has no configuration options, all configuration is done at `bridge`,
|
|||
| `modelId` | The model name of the ohmpilot |
|
||||
| `serialNumber` | The serial number of the ohmpilot |
|
||||
|
||||
## Actions
|
||||
|
||||
:::tip Warning
|
||||
Battery control uses the battery management's time-dependent battery control settings of the inverter settings and therefore overrides user-specified time of use settings.
|
||||
Please note that user-specified time of use plans cannot be used together with battery control, as battery control will override the user-specified time of use settings.
|
||||
:::
|
||||
|
||||
The `powerinverter` Thing provides actions to control the battery charging and discharging behaviour of hybrid inverters, such as Symo Gen24 Plus, if username and password are provided in the bridge configuration.
|
||||
|
||||
You can retrieve the actions as follows:
|
||||
|
||||
:::: tabs
|
||||
|
||||
::: tab DSL
|
||||
|
||||
```java
|
||||
val froniusInverterActions = getActions("fronius", "fronius:powerinverter:mybridge:myinverter")
|
||||
```
|
||||
:::
|
||||
|
||||
::: tab JS
|
||||
|
||||
```javascript
|
||||
var froniusInverterActions = actions.thingActions('fronius', 'fronius:powerinverter:mybridge:myinverter');
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
::::
|
||||
|
||||
Where the first parameter must always be `fronius` and the second must be the full Thing UID of the inverter.
|
||||
|
||||
### Available Actions
|
||||
|
||||
Once the actions instance has been retrieved, you can invoke the following methods:
|
||||
|
||||
- `resetBatteryControl()`: Remove all battery control schedules from the inverter.
|
||||
- `holdBatteryCharge()`: Prevent the battery from discharging (removes all battery control schedules first and applies all the time).
|
||||
- `addHoldBatteryChargeSchedule(LocalTime from, LocalTime until)`: Add a schedule to prevent the battery from discharging in the specified time range.
|
||||
- `addHoldBatteryChargeSchedule(ZonedDateTime from, ZonedDateTime until)`: Add a schedule to prevent the battery from discharging in the specified time range.
|
||||
- `forceBatteryCharging(QuantityType<Power> power)`: Force the battery to charge with the specified power (removes all battery control schedules first and applies all the time).
|
||||
- `addForcedBatteryChargingSchedule(LocalTime from, LocalTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range.
|
||||
- `addForcedBatteryChargingSchedule(ZonedDateTime from, ZonedDateTime until, QuantityType<Power> power)`: Add a schedule to force the battery to charge with the specified power in the specified time range.
|
||||
|
||||
### Examples
|
||||
|
||||
```javascript
|
||||
var froniusInverterActions = actions.thingActions('fronius', 'fronius:powerinverter:mybridge:myinverter');
|
||||
|
||||
froniusInverterActions.resetBatteryControl();
|
||||
froniusInverterActions.holdBatteryCharge();
|
||||
froniusInverterActions.forceBatteryCharging(Quantity('5 kW'));
|
||||
|
||||
froniusInverterActions.resetBatteryControl();
|
||||
froniusInverterActions.addHoldBatteryChargeSchedule(time.toZDT('18:00'), time.toZDT('22:00'));
|
||||
froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('22:00'), time.toZDT('23:59'), Quantity('5 kW'));
|
||||
froniusInverterActions.addForcedBatteryChargingSchedule(time.toZDT('00:00'), time.toZDT('06:00'), Quantity('5 kW'));
|
||||
```
|
||||
|
||||
## Full Example
|
||||
|
||||
demo.things:
|
||||
|
|
|
@ -213,6 +213,7 @@ The channel expects values on the corresponding MQTT topic to be in this format
|
|||
- **on**: An optional string (like "Open") that is recognized as `UP` state.
|
||||
- **off**: An optional string (like "Close") that is recognized as `DOWN` state.
|
||||
- **stop**: An optional string (like "Stop") that is recognized as `STOP` state.
|
||||
- **stopCommandTopic**: An optional topic to send `STOP` commands to. If not set, `STOP` commands are sent to the main **commandTopic**.
|
||||
|
||||
Internally `UP` is converted to 0%, `DOWN` to 100%.
|
||||
If strings are defined for these values, they are used for sending commands to the broker, too.
|
||||
|
|
|
@ -0,0 +1,304 @@
|
|||
---
|
||||
id: solarman
|
||||
label: Solarman Logger
|
||||
title: Solarman Logger - Bindings
|
||||
type: binding
|
||||
description: "Binding used to communicate with Solarman (IGEN-Tech) v5 based solar inverter data loggers in direct-mode over the local network."
|
||||
since: 3x
|
||||
install: auto
|
||||
---
|
||||
|
||||
<!-- Attention authors: Do not edit directly. Please add your changes to the appropriate source repository -->
|
||||
|
||||
{% include base.html %}
|
||||
|
||||
# Solarman Logger Binding
|
||||
|
||||
Binding used to communicate with Solarman (IGEN-Tech) v5 based solar inverter data loggers in direct-mode over the local network.
|
||||
More information about the different types of stick loggers is available on the [Solarman](https://www.solarmanpv.com/products/data-logger/stick-logger/) site.
|
||||
|
||||
These data loggers are used by inverters from a lot of manufacturers, just to name a few:
|
||||
|
||||
- Deye
|
||||
- Sofar
|
||||
- Solis
|
||||
- ZCS Azzurro
|
||||
- KStar
|
||||
|
||||
## Supported Things
|
||||
|
||||
The `solarman:logger` thing supports reading data from a Solarman LSW-3 Stick Logger (it might also work with LSE-3 and maybe others) when connected to a supported inverter.
|
||||
|
||||
It was tested on a SUN-12K-SG04LP3-EU only, but because the implementation uses the inverter definitions created as part of Stephan Joubert's Home Assistant plugin it **might** work with the other inverters supported by the plugin.
|
||||
|
||||
## Thing Configuration
|
||||
|
||||
To connect the logger you need the IP address of the logger and its serial number.
|
||||
The IP address can be obtained from your router and the serial number can either be read from the label of the logger, or by connecting to the logger with a browser (default user/pass: admin/admin) and getting it from the Status page.
|
||||
*Please note* that you need the "Device serial number" from the "Device information" section, not the "Inverter serial number".
|
||||
|
||||
### `logger` Thing Configuration
|
||||
|
||||
| Name | Type | Description | Default | Required | Advanced |
|
||||
|--------------------|---------|--------------------------------------------------------|---------|----------|----------|
|
||||
| hostname | text | Hostname or IP address of the Solarman logger | N/A | yes | no |
|
||||
| serialNumber | text | Serial number of the Solarman logger | N/A | yes | no |
|
||||
| inverterType | text | The type of inverter connected to the logger | N/A | yes | no |
|
||||
| port | integer | Port of the Solarman logger | 8899 | no | yes |
|
||||
| refreshInterval | integer | Interval the device is polled in sec. | 60 | no | yes |
|
||||
| additionalRequests | text | Additional requests besides the ones in the definition | N/A | no | yes |
|
||||
|
||||
The `inverterType` parameter governs what registers the binding will read from the logger and what channels it will expose.
|
||||
|
||||
Possible values:
|
||||
|
||||
| Inverter Type | Inverters supported | Notes |
|
||||
|--------------------|---------------------------------------------|------------------------------------------------------------------|
|
||||
| deye_hybrid | DEYE/Sunsynk/SolArk Hybrid inverters | used when no lookup specified |
|
||||
| deye_sg04lp3 | DEYE/Sunsynk/SolArk Hybrid 8/12K-SG04LP3 | e.g. 12K-SG04LP3-EU |
|
||||
| deye_string | DEYE/Sunsynk/SolArk String inverters | e.g. SUN-4/5/6/7/8/10/12K-G03 Plus |
|
||||
| deye_2mppt | DEYE Microinverter with 2 MPPT Trackers | e.g. SUN600G3-EU-230 / SUN800G3-EU-230 / SUN1000G3-EU-230 |
|
||||
| deye_4mppt | DEYE Microinverter with 4 MPPT Trackers | e.g. SUN1300G3-EU-230 / SUN1600G3-EU-230 / SUN2000G3-EU-230 |
|
||||
| sofar_lsw3 | SOFAR Inverters | |
|
||||
| sofar_g3hyd | SOFAR Hybrid Three-Phase inverter | HYD 6000 or rebranded (three-phase), ex. ZCS Azzurro 3PH HYD-ZSS |
|
||||
| sofar_hyd3k-6k-es | SOFAR Hybrid Single-Phase inverter | HYD 6000 or rebranded (single-phase), ex. ZCS Azzurro HYD-ZSS |
|
||||
| solis_hybrid | SOLIS Hybrid inverter | |
|
||||
| solid_1p8k-5g | SOLIS 1P8K-5G | |
|
||||
| zcs_azzurro-ktl-v3 | ZCS Azzurro KTL-V3 inverters | ZCS Azzurro 3.3/4.4/5.5/6.6 KTL-V3 (rebranded Sofar KTLX-G3) |
|
||||
|
||||
The `additionalRequests` allows the user to specify additional address ranges to be polled. The format of the value is `mb_functioncode1:start1-end1, mb_functioncode2:start2-end2,...`
|
||||
For example `"0x03:0x27D-0x27E"` will issue an additional read for Holding Registers between `0x27D` and `0x27E`.
|
||||
|
||||
This is useful when coupled with user defined channels, for example a thing definition like the one below will also read the register for the AC frequency on a Deye inverter, besides the ones pre-defined in the `deye_sg04lp3` inverter definition.
|
||||
|
||||
```java
|
||||
Thing solarman:logger:local [ hostname="x.x.x.x", inverterType="deye_sg04lp3", serialNumber="1234567890", additionalRequests="0x03:0x27D-0x27E" ] {
|
||||
Channels:
|
||||
Type number : Inverter_Frequency [scale="0.01", uom="Hz", rule="3", registers="0x27E"]
|
||||
}
|
||||
```
|
||||
|
||||
**Please note** As of this writing inverter types besides the `deye_sg04lp3` were not tested to work.
|
||||
If you have one of those inverters and it works, please drop me a message, if it doesn't work, please open an issue and I'll try to fix it.
|
||||
|
||||
## Channels
|
||||
|
||||
The list of channels is not static, it is generated dynamically based on the inverter type selected.
|
||||
|
||||
This is the list you get for the `deye_sg04lp3` inverter type:
|
||||
|
||||
| Channel | Type | Read/Write | Description |
|
||||
|------------------------------------------|--------|--------------|-------------------------------------------------------|
|
||||
| alert-alert | Number | R | Alert \[0x0229,0x022A,0x022B,0x022C,0x022D,0x022E\] |
|
||||
| battery-battery-current | Number | R | Battery Current \[0x024F\] |
|
||||
| battery-battery-power | Number | R | Battery Power \[0x024E\] |
|
||||
| battery-battery-soc | Number | R | Battery SOC \[0x024C\] |
|
||||
| battery-battery-temperature | Number | R | Battery Temperature \[0x024A\] |
|
||||
| battery-battery-voltage | Number | R | Battery Voltage \[0x024B\] |
|
||||
| battery-daily-battery-charge | Number | R | Daily Battery Charge \[0x0202\] |
|
||||
| battery-daily-battery-discharge | Number | R | Daily Battery Discharge \[0x0203\] |
|
||||
| battery-total-battery-charge | Number | R | Total Battery Charge \[0x0204,0x0205\] |
|
||||
| battery-total-battery-discharge | Number | R | Total Battery Discharge \[0x0206,0x0207\] |
|
||||
| grid-daily-energy-bought | Number | R | Daily Energy Bought \[0x0208\] |
|
||||
| grid-daily-energy-sold | Number | R | Daily Energy Sold \[0x0209\] |
|
||||
| grid-external-ct-l1-power | Number | R | External CT L1 Power \[0x0268\] |
|
||||
| grid-external-ct-l2-power | Number | R | External CT L2 Power \[0x0269\] |
|
||||
| grid-external-ct-l3-power | Number | R | External CT L3 Power \[0x026A\] |
|
||||
| grid-grid-voltage-l1 | Number | R | Grid Voltage L1 \[0x0256\] |
|
||||
| grid-grid-voltage-l2 | Number | R | Grid Voltage L2 \[0x0257\] |
|
||||
| grid-grid-voltage-l3 | Number | R | Grid Voltage L3 \[0x0258\] |
|
||||
| grid-internal-ct-l1-power | Number | R | Internal CT L1 Power \[0x025C\] |
|
||||
| grid-internal-ct-l2-power | Number | R | Internal CT L2 Power \[0x025D\] |
|
||||
| grid-internal-ct-l3-power | Number | R | Internal CT L3 Power \[0x025E\] |
|
||||
| grid-total-energy-bought | Number | R | Total Energy Bought \[0x020A,0x020B\] |
|
||||
| grid-total-energy-sold | Number | R | Total Energy Sold \[0x020C\] |
|
||||
| grid-total-grid-power | Number | R | Total Grid Power \[0x0271\] |
|
||||
| grid-total-grid-production | Number | R | Total Grid Production \[0x020C,0x020D\] |
|
||||
| inverter-ac-temperature | Number | R | AC Temperature \[0x021D\] |
|
||||
| inverter-communication-board-version-no- | Number | R | Communication Board Version No \[0x0011\] |
|
||||
| inverter-control-board-version-no- | Number | R | Control Board Version No \[0x000D\] |
|
||||
| inverter-current-l1 | Number | R | Current L1 \[0x0276\] |
|
||||
| inverter-current-l2 | Number | R | Current L2 \[0x0277\] |
|
||||
| inverter-current-l3 | Number | R | Current L3 \[0x0278\] |
|
||||
| inverter-dc-temperature | Number | R | DC Temperature \[0x021C\] |
|
||||
| inverter-frequency | Number | R | Number Value \[0x27E\] |
|
||||
| inverter-inverter-id | String | R | Inverter ID \[0x0003,0x0004,0x0005,0x0006,0x0007\] |
|
||||
| inverter-inverter-l1-power | Number | R | Inverter L1 Power \[0x0279\] |
|
||||
| inverter-inverter-l2-power | Number | R | Inverter L2 Power \[0x027A\] |
|
||||
| inverter-inverter-l3-power | Number | R | Inverter L3 Power \[0x027B\] |
|
||||
| solar-daily-production | Number | R | Daily Production \[0x0211\] |
|
||||
| solar-pv1-current | Number | R | PV1 Current \[0x02A5\] |
|
||||
| solar-pv1-power | Number | R | PV1 Power \[0x02A0\] |
|
||||
| solar-pv1-voltage | Number | R | PV1 Voltage \[0x02A4\] |
|
||||
| solar-pv2-current | Number | R | PV2 Current \[0x02A7\] |
|
||||
| solar-pv2-power | Number | R | PV2 Power \[0x02A1\] |
|
||||
| solar-pv2-voltage | Number | R | PV2 Voltage \[0x02A6\] |
|
||||
| solar-total-production | Number | R | Total Production \[0x0216,0x0217\] |
|
||||
| upload-daily-load-consumption | Number | R | Daily Load Consumption \[0x020E\] |
|
||||
| upload-load-l1-power | Number | R | Load L1 Power \[0x028A\] |
|
||||
| upload-load-l2-power | Number | R | Load L2 Power \[0x028B\] |
|
||||
| upload-load-l3-power | Number | R | Load L3 Power \[0x028C\] |
|
||||
| upload-load-voltage-l1 | Number | R | Load Voltage L1 \[0x0284\] |
|
||||
| upload-load-voltage-l2 | Number | R | Load Voltage L2 \[0x0285\] |
|
||||
| upload-load-voltage-l3 | Number | R | Load Voltage L3 \[0x0286\] |
|
||||
| upload-total-load-consumption | Number | R | Total Load Consumption \[0x020F,0x0210\] |
|
||||
| upload-total-load-power | Number | R | Total Load Power \[0x028D\] |
|
||||
|
||||
## Full Example
|
||||
|
||||
This is an example for a DEYE 12kW (SUN-12K-SG04LP3-EU) hybrid inverter
|
||||
|
||||
### `solarman.things`
|
||||
|
||||
Please replace the `hostname` and `serialNumber` with the correct values for your logger.
|
||||
|
||||
```java
|
||||
Thing solarman:logger:local [hostname="x.x.x.x",inverterType="deye_sg04lp3",serialNumber="1234567890"]
|
||||
```
|
||||
|
||||
### `solarman.items`
|
||||
|
||||
Items file example for a SUN-12K-SG04LP3-EU inverter
|
||||
|
||||
```text
|
||||
Number:Dimensionless Communication_Board_Version_No "Communication Board Version No [%s]" (solarman) {channel="solarman:logger:local:inverter-communication-board-version-no-"}
|
||||
Number:Dimensionless Control_Board_Version_No "Control Board Version No [%s]" (solarman) {channel="solarman:logger:local:inverter-control-board-version-no-"}
|
||||
String Inverter_Id "Inverter Id [%s]" (solarman) {channel="solarman:logger:local:inverter-inverter-id"}
|
||||
Number:Temperature AC_Temperature "AC Temperature [%.1f °C]" (solarman) {channel="solarman:logger:local:inverter-ac-temperature", unit="°C"}
|
||||
Number:Temperature DC_Temperature "DC Temperature [%.1f °C]" (solarman) {channel="solarman:logger:local:inverter-dc-temperature", unit="°C"}
|
||||
Number:Power Inverter_L1_Power "Inverter L1 Power [%d W]" (solarman) {channel="solarman:logger:local:inverter-inverter-l1-power", unit="W"}
|
||||
Number:Power Inverter_L2_Power "Inverter L2 Power [%d W]" (solarman) {channel="solarman:logger:local:inverter-inverter-l2-power", unit="W"}
|
||||
Number:Power Inverter_L3_Power "Inverter L3 Power [%d W]" (solarman) {channel="solarman:logger:local:inverter-inverter-l3-power", unit="W"}
|
||||
Number:ElectricCurrent Current_L1 "Current L1 [%.1f A]" (solarman) {channel="solarman:logger:local:inverter-current-l1", unit="A"}
|
||||
Number:ElectricCurrent Current_L2 "Current L2 [%.1f A]" (solarman) {channel="solarman:logger:local:inverter-current-l2", unit="A"}
|
||||
Number:ElectricCurrent Current_L3 "Current L3 [%.1f A]" (solarman) {channel="solarman:logger:local:inverter-current-l3", unit="A"}
|
||||
Number:Power External_CT_L1_Power "External CT L1 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-external-ct-l1-power", unit="W"}
|
||||
Number:Power External_CT_L2_Power "External CT L2 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-external-ct-l2-power", unit="W"}
|
||||
Number:Power External_CT_L3_Power "External CT L3 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-external-ct-l3-power", unit="W"}
|
||||
Number:Power Internal_CT_L1_Power "Internal CT L1 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-internal-ct-l1-power", unit="W"}
|
||||
Number:Power Internal_CT_L2_Power "Internal CT L2 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-internal-ct-l2-power", unit="W"}
|
||||
Number:Power Internal_CT_L3_Power "Internal CT L3 Power [%d W]" (solarman) {channel="solarman:logger:local:grid-internal-ct-l3-power", unit="W"}
|
||||
Number:ElectricPotential Grid_Voltage_L1 "Grid Voltage L1 [%d V]" (solarman) {channel="solarman:logger:local:grid-grid-voltage-l1", unit="V"}
|
||||
Number:ElectricPotential Grid_Voltage_L2 "Grid Voltage L2 [%d V]" (solarman) {channel="solarman:logger:local:grid-grid-voltage-l2", unit="V"}
|
||||
Number:ElectricPotential Grid_Voltage_L3 "Grid Voltage L3 [%d V]" (solarman) {channel="solarman:logger:local:grid-grid-voltage-l3", unit="V"}
|
||||
Number:Power Total_Grid_Power "Total Instant Grid Power [%d W]" (solarman) {channel="solarman:logger:local:grid-total-grid-power", unit="W"}
|
||||
Number:Energy Total_Grid_Production "Total Grid Feed-in [%.1f kWh]" (solarman) {channel="solarman:logger:local:grid-total-grid-production", unit="kWh"}
|
||||
Number:Energy Daily_Energy_Sold "Daily Energy Sold [%d Wh]" (solarman) {channel="solarman:logger:local:grid-daily-energy-sold", unit="Wh"}
|
||||
Number:Energy Total_Energy_Sold "Total Energy Sold [%d kWh]" (solarman) {channel="solarman:logger:local:grid-total-energy-sold", unit="kWh"}
|
||||
Number:Energy Total_Energy_Bought "Total Energy Bought [%d kWh]" (solarman) {channel="solarman:logger:local:grid-total-energy-bought", unit="kWh"}
|
||||
Number:Energy Daily_Energy_Bought "Daily Energy Bought [%d kWh]" (solarman) {channel="solarman:logger:local:grid-daily-energy-bought", unit="kWh"}
|
||||
Number:Energy Daily_Production "Daily Production [%.1f kWh]" (solarman) {channel="solarman:logger:local:solar-daily-production", unit="kWh"}
|
||||
Number:Energy Total_Production "Total Production [%d kWh]" (solarman) {channel="solarman:logger:local:solar-total-production", unit="kWh"}
|
||||
Number:Energy Daily_Load_Consumption "Daily Load Consumption [%.1f kWh]" (solarman) {channel="solarman:logger:local:upload-daily-load-consumption", unit="kWh"}
|
||||
Number:Energy Total_Load_Consumption "Total Load Consumption [%d kWh]" (solarman) {channel="solarman:logger:local:upload-total-load-consumption", unit="kWh"}
|
||||
Number:Power Load_L1_Power "Load L1 Power [%d W]" (solarman) {channel="solarman:logger:local:upload-load-l1-power", unit="W"}
|
||||
Number:Power Load_L2_Power "Load L2 Power [%d W]" (solarman) {channel="solarman:logger:local:upload-load-l2-power", unit="W"}
|
||||
Number:Power Load_L3_Power "Load L3 Power [%d W]" (solarman) {channel="solarman:logger:local:upload-load-l3-power", unit="W"}
|
||||
Number:Power Total_Load_Power "Total Load Power [%d W]" (solarman) {channel="solarman:logger:local:upload-total-load-power", unit="W"}
|
||||
Number:ElectricPotential Load_Voltage_L1 "Load Voltage L1 [%d V]" (solarman) {channel="solarman:logger:local:upload-load-voltage-l1", unit="V"}
|
||||
Number:ElectricPotential Load_Voltage_L2 "Load Voltage L2 [%d V]" (solarman) {channel="solarman:logger:local:upload-load-voltage-l2", unit="V"}
|
||||
Number:ElectricPotential Load_Voltage_L3 "Load Voltage L3 [%d V]" (solarman) {channel="solarman:logger:local:upload-load-voltage-l3", unit="V"}
|
||||
Number:Energy Daily_Energy_Consumption "Daily Energy Consumption [%d kWh]" (solarman) {channel="solarman:logger:local:upload-daily-load-consumption", unit="kWh"}
|
||||
Number:Energy Total_Energy_Consumption "Total Energy Consumption [%d kWh]" (solarman) {channel="solarman:logger:local:upload-total-load-consumption", unit="kWh"}
|
||||
Number:ElectricCurrent PV1_Current "PV1 Current [%.1f A]" (solarman) {channel="solarman:logger:local:solar-pv1-current", unit="A"}
|
||||
Number:Power PV1_Power "PV1 Power [%d W]" (solarman) {channel="solarman:logger:local:solar-pv1-power", unit="W"}
|
||||
Number:ElectricPotential PV1_Voltage "PV1 Voltage [%d V]" (solarman) {channel="solarman:logger:local:solar-pv1-voltage", unit="V"}
|
||||
Number:ElectricCurrent PV2_Current "PV2 Current [%.1f A]" (solarman) {channel="solarman:logger:local:solar-pv2-current", unit="A"}
|
||||
Number:Power PV2_Power "PV2 Power [%d W]" (solarman) {channel="solarman:logger:local:solar-pv2-power", unit="W"}
|
||||
Number:ElectricPotential PV2_Voltage "PV2 Voltage [%d V]" (solarman) {channel="solarman:logger:local:solar-pv2-voltage", unit="V"}
|
||||
Number:Dimensionless Battery_SOC "Battery SOC [%d %%]" (solarman) {channel="solarman:logger:local:battery-battery-soc", unit="%"}
|
||||
Number:ElectricCurrent Battery_Current "Battery Current [%.1f A]" (solarman) {channel="solarman:logger:local:battery-battery-current", unit="A"}
|
||||
Number:Power Battery_Power "Battery Power [%d W]" (solarman) {channel="solarman:logger:local:battery-battery-power", unit="W"}
|
||||
Number:ElectricPotential Battery_Voltage "Battery Voltage [%.2f V]" (solarman) {channel="solarman:logger:local:battery-battery-voltage", unit="V"}
|
||||
Number:Temperature Battery_Temperature "Battery Temperature [%.1f °C]" (solarman) {channel="solarman:logger:local:battery-battery-temperature", unit="°C"}
|
||||
Number:Energy Daily_Battery_Charge "Daily Battery Charge [%.1f kWh]" (solarman) {channel="solarman:logger:local:battery-daily-battery-charge", unit="kWh"}
|
||||
Number:Energy Daily_Battery_Discharge "Daily Battery Discharge [%.1f kWh]" (solarman) {channel="solarman:logger:local:battery-daily-battery-discharge", unit="kWh"}
|
||||
Number:Energy Total_Battery_Charge "Total Battery Charge [%d kWh]" (solarman) {channel="solarman:logger:local:battery-total-battery-charge", unit="kWh"}
|
||||
Number:Energy Total_Battery_Discharge "Total Battery Discharge [%d kWh]" (solarman) {channel="solarman:logger:local:battery-total-battery-discharge", unit="kWh"}
|
||||
Number Alert "Alert [%s]" (solarman) {channel="solarman:logger:local:alert-alert"}
|
||||
```
|
||||
|
||||
### `solarman.sitemap`
|
||||
|
||||
Sitemap example for a SUN-12K-SG04LP3-EU inverter
|
||||
|
||||
```perl
|
||||
sitemap solarman label="Solarman"
|
||||
{
|
||||
Frame label="Inverter"{
|
||||
Text item=Communication_Board_Version_No icon="solar"
|
||||
Text item=Control_Board_Version_No icon="solar"
|
||||
Text item=Inverter_Id icon="solar"
|
||||
Text item=AC_Temperature icon="temperature"
|
||||
Text item=DC_Temperature icon="temperature"
|
||||
Text item=Inverter_L1_Power icon="poweroutlet"
|
||||
Text item=Inverter_L2_Power icon="poweroutlet"
|
||||
Text item=Inverter_L3_Power icon="poweroutlet"
|
||||
Text item=Current_L1 icon="line"
|
||||
Text item=Current_L2 icon="line"
|
||||
Text item=Current_L3 icon="line"
|
||||
}
|
||||
|
||||
Frame label="Battery"{
|
||||
Text item=Battery_SOC icon="battery"
|
||||
Text item=Battery_Current icon="current"
|
||||
Text item=Battery_Power icon="power"
|
||||
Text item=Battery_Voltage icon="voltage"
|
||||
Text item=Battery_Temperature icon="temperature"
|
||||
Text item=Daily_Battery_Charge icon="renewable"
|
||||
Text item=Daily_Battery_Discharge icon="battery"
|
||||
Text item=Total_Battery_Charge icon="renewable"
|
||||
Text item=Total_Battery_Discharge icon="battery"
|
||||
}
|
||||
|
||||
Frame label="Solar"{
|
||||
Text item=Total_Production icon="solar"
|
||||
Text item=Daily_Production icon="solar"
|
||||
Text item=PV1_Current icon="solar"
|
||||
Text item=PV1_Power icon="solar"
|
||||
Text item=PV1_Voltage icon="solar"
|
||||
Text item=PV2_Current icon="solar"
|
||||
Text item=PV2_Power icon="solar"
|
||||
Text item=PV2_Voltage icon="solar"
|
||||
}
|
||||
|
||||
Frame label="Grid"{
|
||||
Text item=Total_Grid_Production icon="power"
|
||||
Text item=Total_Grid_Power icon="power"
|
||||
Text item=External_CT_L1_Power icon="power"
|
||||
Text item=External_CT_L2_Power icon="power"
|
||||
Text item=External_CT_L3_Power icon="power"
|
||||
Text item=Internal_CT_L1_Power icon="power"
|
||||
Text item=Internal_CT_L2_Power icon="power"
|
||||
Text item=Internal_CT_L3_Power icon="power"
|
||||
Text item=Grid_Voltage_L1 icon="power"
|
||||
Text item=Grid_Voltage_L2 icon="power"
|
||||
Text item=Grid_Voltage_L3 icon="power"
|
||||
Text item=Daily_Energy_Sold icon="power"
|
||||
Text item=Total_Energy_Sold icon="power"
|
||||
Text item=Daily_Energy_Bought icon="power"
|
||||
Text item=Total_Energy_Bought icon="power"
|
||||
}
|
||||
|
||||
Frame label="Load"{
|
||||
Text item=Daily_Load_Consumption icon="power"
|
||||
Text item=Total_Load_Consumption icon="power"
|
||||
Text item=Load_L1_Power icon="power"
|
||||
Text item=Load_L2_Power icon="power"
|
||||
Text item=Load_L3_Power icon="power"
|
||||
Text item=Load_Voltage_L1 icon="power"
|
||||
Text item=Load_Voltage_L2 icon="power"
|
||||
Text item=Load_Voltage_L3 icon="power"
|
||||
Text item=Total_Load_Power icon="power"
|
||||
}
|
||||
|
||||
Frame label="Alert"{
|
||||
Text item=Alert icon="alert"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Acknowledgments
|
||||
|
||||
The code's creation draws significant inspiration from [Stephan Joubert's Home Assistant plugin](https://github.com/StephanJoubert/home_assistant_solarman), which provides the inverter definitions used in the project.
|
||||
Additionally, the [pysolarmanv5 module](https://pysolarmanv5.readthedocs.io/en/latest/index.html) was a valuable resource, as it offers an excellent explanation of the Solarman V5 protocol.
|
|
@ -12,7 +12,7 @@
|
|||
<context>url</context>
|
||||
<label>Url</label>
|
||||
<description>Database url</description>
|
||||
<default>http://localhost:9999</default>
|
||||
<default>http://localhost:8086</default>
|
||||
</parameter>
|
||||
<parameter name="user" type="text" required="true">
|
||||
<label>Username</label>
|
||||
|
|
|
@ -13,6 +13,18 @@
|
|||
<label>Hostname</label>
|
||||
<description>The hostname or IP address of the Fronius gateway/device</description>
|
||||
</parameter>
|
||||
<parameter name="username" type="text" required="false">
|
||||
<label>Username</label>
|
||||
<description>The username to access the configuration of the Fronius gateway/device, required only for battery
|
||||
control</description>
|
||||
<default>customer</default>
|
||||
</parameter>
|
||||
<parameter name="password" type="text" required="false">
|
||||
<context>password</context>
|
||||
<label>Password</label>
|
||||
<description>The password to access the configuration of the Fronius gateway/device, required only for battery
|
||||
control</description>
|
||||
</parameter>
|
||||
<parameter name="refreshInterval" type="integer" min="1">
|
||||
<label>Refresh Interval</label>
|
||||
<description>Specifies the refresh interval in seconds.</description>
|
||||
|
|
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="solarman"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<channel-type id="string">
|
||||
<item-type>String</item-type>
|
||||
<label>Text Value</label>
|
||||
<config-description-ref uri="channel-type-config:solarman:string-channel"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="number">
|
||||
<item-type>Number</item-type>
|
||||
<label>Number Value</label>
|
||||
<config-description-ref uri="channel-type-config:solarman:number-channel"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="datetime">
|
||||
<item-type>DateTime</item-type>
|
||||
<label>Datetime Value</label>
|
||||
<config-description-ref uri="channel-type-config:solarman:datetime-channel"/>
|
||||
</channel-type>
|
||||
|
||||
<channel-type id="dynamic">
|
||||
<item-type>String</item-type>
|
||||
<label>Dynamic Channel</label>
|
||||
<config-description-ref uri="channel-type-config:solarman:dynamic-channel"/>
|
||||
</channel-type>
|
||||
|
||||
</thing:thing-descriptions>
|
|
@ -0,0 +1,69 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<thing:thing-descriptions bindingId="solarman"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:thing="https://openhab.org/schemas/thing-description/v1.0.0"
|
||||
xsi:schemaLocation="https://openhab.org/schemas/thing-description/v1.0.0 https://openhab.org/schemas/thing-description-1.0.0.xsd">
|
||||
|
||||
<!-- Sample Thing Type -->
|
||||
<thing-type id="logger" extensible="true">
|
||||
<label>Solarman Logger</label>
|
||||
<description>This thing allows communication with Solarman (IGEN-Tech) v5 based solar inverter data loggers over the
|
||||
local network. Compatible with inverters from manufacturers such as Deye, Sofar, Solis, ZCS Azzurro, and KStar.</description>
|
||||
|
||||
<config-description>
|
||||
<parameter name="hostname" type="text" required="true">
|
||||
<context>network-address</context>
|
||||
<label>Hostname</label>
|
||||
<description>Hostname or IP address of the Solarman logger.</description>
|
||||
<advanced>false</advanced>
|
||||
</parameter>
|
||||
<parameter name="port" type="integer" required="false">
|
||||
<label>Port</label>
|
||||
<description>Port of the Solarman logger (default 8899).</description>
|
||||
<default>8899</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="inverterType" type="text" required="true">
|
||||
<label>Inverter Type</label>
|
||||
<description>The type of inverter connected to the logger (default deye_sg04lp3).</description>
|
||||
<advanced>false</advanced>
|
||||
<options>
|
||||
<option value="deye_2mppt">DEYE Microinverter with 2 MPPT Trackers (deye_2mppt)</option>
|
||||
<option value="deye_4mppt">DEYE Microinverter with 4 MPPT Trackers (deye_4mppt)</option>
|
||||
<option value="deye_hybrid">Generic DEYE/Sunsynk/SolArk Hybrid inverters (deye_hybrid)</option>
|
||||
<option value="deye_sg04lp3">DEYE/Sunsynk/SolArk Hybrid 8/12K-SG04LP3 (deye_sg04lp3)</option>
|
||||
<option value="deye_string">Generic DEYE/Sunsynk/SolArk String inverters (deye_string)</option>
|
||||
<option value="kstar_hybrid">KSTAR Hybrid Inverter (kstar_hybrid)</option>
|
||||
<option value="sofar_g3hyd">SOFAR Hybrid Three-Phase Inverter (sofar_g3hyd)</option>
|
||||
<option value="sofar_hyd3k-6k-es">SOFAR Hybrid Single-Phase Inverter (sofar_hyd3k-6k-es)</option>
|
||||
<option value="sofar_lsw3">SOFAR Inverters (sofar_lsw3)</option>
|
||||
<option value="sofar_wifikit">SOFAR WifiKit (sofar_wifikit)</option>
|
||||
<option value="solis_1p8k-5g">SOLIS 1P8K-5G (solis_1p8k-5g)</option>
|
||||
<option value="solis_hybrid">SOLIS Hybrid Inverter (solis_hybrid)</option>
|
||||
<option value="zcs_azzurro-ktl-v3">ZCS Azzurro KTL-V3 Inverters (zcs_azzurro-ktl-v3)</option>
|
||||
</options>
|
||||
</parameter>
|
||||
<parameter name="serialNumber" type="text" required="true">
|
||||
<label>Serial Number</label>
|
||||
<description>Serial number of the Solarman logger.</description>
|
||||
<advanced>false</advanced>
|
||||
</parameter>
|
||||
<parameter name="refreshInterval" type="integer" required="false" unit="s" min="30">
|
||||
<label>Refresh Interval</label>
|
||||
<description>Interval to query the logger (default 60).</description>
|
||||
<default>60</default>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
<parameter name="additionalRequests" type="text" required="false">
|
||||
<label>Additional Requests</label>
|
||||
<description>Additional requests besides the ones defined in the inverter definition.
|
||||
Format is
|
||||
mb_functioncode1:start1-end1, mb_functioncode2:start2-end2,...
|
||||
Example 0x03:0x0000-0x0100,0x03:0x0200-0x0300
|
||||
</description>
|
||||
<advanced>true</advanced>
|
||||
</parameter>
|
||||
</config-description>
|
||||
</thing-type>
|
||||
|
||||
</thing:thing-descriptions>
|
Loading…
Reference in New Issue