iobroker.solakon-one 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.de.md +190 -0
- package/README.md +193 -0
- package/admin/i18n/de/translations.json +9 -0
- package/admin/i18n/en/translations.json +9 -0
- package/admin/i18n/es/translations.json +9 -0
- package/admin/i18n/fr/translations.json +9 -0
- package/admin/i18n/it/translations.json +9 -0
- package/admin/i18n/nl/translations.json +9 -0
- package/admin/i18n/pl/translations.json +9 -0
- package/admin/i18n/pt/translations.json +9 -0
- package/admin/i18n/ru/translations.json +9 -0
- package/admin/i18n/uk/translations.json +9 -0
- package/admin/i18n/zh-cn/translations.json +9 -0
- package/admin/jsonConfig.json +59 -0
- package/admin/solakon.png +0 -0
- package/io-package.json +151 -0
- package/lib/modbus.js +312 -0
- package/lib/registers.js +202 -0
- package/main.js +413 -0
- package/package.json +47 -0
- package/postinstall.js +23 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 Solakon ONE ioBroker Adapter
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.de.md
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# ioBroker.solakon-one
|
|
2
|
+
|
|
3
|
+
**ioBroker Adapter für den Solakon ONE Hybrid-Wechselrichter**
|
|
4
|
+
|
|
5
|
+
Überwacht und steuert den Solakon ONE Hybrid-Solar-Wechselrichter mit Batteriespeicher über das lokale Netzwerk via **Modbus TCP** (Port 502).
|
|
6
|
+
|
|
7
|
+
**[English documentation](README.md)**
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Voraussetzungen
|
|
12
|
+
|
|
13
|
+
- ioBroker mit js-controller >= 6.0.0
|
|
14
|
+
- Node.js >= 20
|
|
15
|
+
- Solakon ONE Wechselrichter im lokalen Netzwerk erreichbar
|
|
16
|
+
- Modbus TCP auf dem Gerät aktiviert (Port 502)
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Installation
|
|
21
|
+
|
|
22
|
+
1. ioBroker Admin-Oberfläche öffnen
|
|
23
|
+
2. **Adapter** → **+ Adapter hinzufügen**
|
|
24
|
+
3. Tab **"Von URL installieren"** (GitHub-Icon) wählen
|
|
25
|
+
4. URL eingeben: `https://github.com/berto-1974/ioBroker.solakon-one`
|
|
26
|
+
5. **Installieren** klicken
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Konfiguration
|
|
31
|
+
|
|
32
|
+
| Feld | Beschreibung | Standard |
|
|
33
|
+
|------|-------------|---------|
|
|
34
|
+
| **IP-Adresse** | IP des Solakon ONE im LAN | `192.168.1.100` |
|
|
35
|
+
| **Port** | Modbus TCP Port | `502` |
|
|
36
|
+
| **Modbus Geräte-ID** | Slave-Adresse (1–247) | `1` |
|
|
37
|
+
| **Intervall (s)** | Abfrageintervall (1–300 s) | `30` |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Datenpunkte
|
|
42
|
+
|
|
43
|
+
Alle Datenpunkte werden unter `solakon-one.0.*` erstellt.
|
|
44
|
+
|
|
45
|
+
### Verbindungsstatus
|
|
46
|
+
|
|
47
|
+
| ID | Beschreibung | Typ |
|
|
48
|
+
|----|-------------|-----|
|
|
49
|
+
| `info.connection` | Verbindung aktiv | Boolean |
|
|
50
|
+
|
|
51
|
+
### Geräteinformationen (`device.*`)
|
|
52
|
+
|
|
53
|
+
| ID | Beschreibung |
|
|
54
|
+
|----|-------------|
|
|
55
|
+
| `device.model` | Modellbezeichnung |
|
|
56
|
+
| `device.serial` | Seriennummer |
|
|
57
|
+
| `device.fw_master` | Firmware-Version (Master) |
|
|
58
|
+
| `device.fw_slave` | Firmware-Version (Slave) |
|
|
59
|
+
|
|
60
|
+
### Photovoltaik (`pv.*`)
|
|
61
|
+
|
|
62
|
+
| ID | Beschreibung | Einheit |
|
|
63
|
+
|----|-------------|---------|
|
|
64
|
+
| `pv.total_power` | PV-Gesamtleistung | W |
|
|
65
|
+
| `pv.total_energy` | PV-Energie gesamt | kWh |
|
|
66
|
+
| `pv.pv1_voltage` … `pv4_voltage` | String-Spannung | V |
|
|
67
|
+
| `pv.pv1_current` … `pv4_current` | String-Strom | A |
|
|
68
|
+
| `pv.pv1_power` … `pv4_power` | String-Leistung | W |
|
|
69
|
+
|
|
70
|
+
### Batterie (`battery.*`)
|
|
71
|
+
|
|
72
|
+
| ID | Beschreibung | Einheit |
|
|
73
|
+
|----|-------------|---------|
|
|
74
|
+
| `battery.soc` | Ladestand (SoC) | % |
|
|
75
|
+
| `battery.voltage` | Spannung | V |
|
|
76
|
+
| `battery.current` | Strom | A |
|
|
77
|
+
| `battery.power` | Leistung (+ Laden, − Entladen) | W |
|
|
78
|
+
| `battery.combined_power` | Kombinierte Leistung | W |
|
|
79
|
+
| `battery.total_charge` | Ladeenergie gesamt | kWh |
|
|
80
|
+
| `battery.total_discharge` | Entladeenergie gesamt | kWh |
|
|
81
|
+
| `battery.bms1_soh` | Gesundheitszustand (SoH) | % |
|
|
82
|
+
| `battery.design_energy` | Nennkapazität | Wh |
|
|
83
|
+
| `battery.ambient_temp` | Umgebungstemperatur | °C |
|
|
84
|
+
| `battery.max_temp` | Maximaltemperatur | °C |
|
|
85
|
+
| `battery.min_temp` | Minimaltemperatur | °C |
|
|
86
|
+
|
|
87
|
+
### Netz (`grid.*`)
|
|
88
|
+
|
|
89
|
+
| ID | Beschreibung | Einheit |
|
|
90
|
+
|----|-------------|---------|
|
|
91
|
+
| `grid.off_grid` | Inselbetrieb aktiv | Boolean |
|
|
92
|
+
| `grid.r_voltage` | Netzspannung Phase R | V |
|
|
93
|
+
| `grid.s_voltage` | Netzspannung Phase S | V |
|
|
94
|
+
| `grid.t_voltage` | Netzspannung Phase T | V |
|
|
95
|
+
| `grid.frequency` | Netzfrequenz | Hz |
|
|
96
|
+
| `grid.active_power` | Wirkleistung (+ Export, − Import) | W |
|
|
97
|
+
| `grid.reactive_power` | Blindleistung | kvar |
|
|
98
|
+
| `grid.power_factor` | Leistungsfaktor | – |
|
|
99
|
+
| `grid.total_export` | Einspeisung gesamt | kWh |
|
|
100
|
+
| `grid.total_import` | Bezug gesamt | kWh |
|
|
101
|
+
| `grid.standard` | Netzstandard (6=VDE0126, 7=VDE4105_DE) | – |
|
|
102
|
+
|
|
103
|
+
### Wechselrichter (`inverter.*`)
|
|
104
|
+
|
|
105
|
+
| ID | Beschreibung | Einheit |
|
|
106
|
+
|----|-------------|---------|
|
|
107
|
+
| `inverter.temperature` | Innentemperatur | °C |
|
|
108
|
+
| `inverter.frequency` | Ausgangsfrequenz | Hz |
|
|
109
|
+
| `inverter.daily_energy` | Tagesernte | kWh |
|
|
110
|
+
| `inverter.total_energy` | Gesamtertrag | kWh |
|
|
111
|
+
| `inverter.operating_mode` | Betriebsmodus | – |
|
|
112
|
+
| `inverter.network_status` | Netzwerkstatus | – |
|
|
113
|
+
|
|
114
|
+
### Notstrom / EPS (`eps.*`)
|
|
115
|
+
|
|
116
|
+
| ID | Beschreibung | Einheit |
|
|
117
|
+
|----|-------------|---------|
|
|
118
|
+
| `eps.voltage` | EPS-Ausgangsspannung | V |
|
|
119
|
+
| `eps.current` | EPS-Ausgangsstrom | A |
|
|
120
|
+
| `eps.power` | EPS-Ausgangsleistung | W |
|
|
121
|
+
|
|
122
|
+
### Status (`status.*`)
|
|
123
|
+
|
|
124
|
+
| ID | Beschreibung |
|
|
125
|
+
|----|-------------|
|
|
126
|
+
| `status.remote_control` | Aktiver Fernsteuerungsmodus |
|
|
127
|
+
| `status.remote_countdown` | Restzeit Fernsteuerung (s) |
|
|
128
|
+
|
|
129
|
+
### Steuerung (`control.*`) — schreibbar
|
|
130
|
+
|
|
131
|
+
| ID | Beschreibung | Wertebereich |
|
|
132
|
+
|----|-------------|-------------|
|
|
133
|
+
| `control.remote_control_mode` | Fernsteuerungsmodus | 0/1/3/5/7/9/11/13/15 |
|
|
134
|
+
| `control.remote_timeout` | Fernsteuerung Timeout (s) | 0–3600 |
|
|
135
|
+
| `control.remote_active_power` | Wirkleistung Sollwert (W) | -100000–100000 |
|
|
136
|
+
| `control.remote_reactive_power` | Blindleistung Sollwert (var) | -100000–100000 |
|
|
137
|
+
| `control.eps_output` | EPS/UPS Ausgang | 0=Aus, 2=EPS, 3=UPS |
|
|
138
|
+
| `control.minimum_soc` | Min. Ladestand | 0–100 % |
|
|
139
|
+
| `control.maximum_soc` | Max. Ladestand | 0–100 % |
|
|
140
|
+
| `control.minimum_soc_ongrid` | Min. Ladestand (Netzbetrieb) | 0–100 % |
|
|
141
|
+
| `control.max_charge_current` | Max. Ladestrom | 0–40 A |
|
|
142
|
+
| `control.max_discharge_current` | Max. Entladestrom | 0–40 A |
|
|
143
|
+
| `control.operating_mode` | Betriebsmodus | 0–7 |
|
|
144
|
+
|
|
145
|
+
#### Betriebsmodi (`operating_mode`)
|
|
146
|
+
|
|
147
|
+
| Wert | Beschreibung |
|
|
148
|
+
|------|-------------|
|
|
149
|
+
| 0 | Nicht festgelegt |
|
|
150
|
+
| 1 | Eigenverbrauch |
|
|
151
|
+
| 2 | Einspeisepriorität |
|
|
152
|
+
| 3 | Backup |
|
|
153
|
+
| 4 | Spitzenlastkappung |
|
|
154
|
+
| 6 | Laden erzwingen |
|
|
155
|
+
| 7 | Entladen erzwingen |
|
|
156
|
+
|
|
157
|
+
#### Fernsteuerungs-Modi (`remote_control_mode`)
|
|
158
|
+
|
|
159
|
+
| Wert | Beschreibung |
|
|
160
|
+
|------|-------------|
|
|
161
|
+
| 0 | Aus |
|
|
162
|
+
| 1 | Wechselrichter Export (PV Priorität) |
|
|
163
|
+
| 3 | Wechselrichter Import (PV Priorität) |
|
|
164
|
+
| 5 | Batterie Entladen |
|
|
165
|
+
| 7 | Batterie Laden |
|
|
166
|
+
| 9 | Netz Export |
|
|
167
|
+
| 11 | Netz Import |
|
|
168
|
+
| 13 | Wechselrichter Export (Netz Priorität) |
|
|
169
|
+
| 15 | Wechselrichter Import (Netz Priorität) |
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## Changelog
|
|
174
|
+
|
|
175
|
+
### 1.0.0 (2026-04-12)
|
|
176
|
+
- Erstveröffentlichung
|
|
177
|
+
- Modbus TCP Kommunikation
|
|
178
|
+
- Alle Sensor-Datenpunkte (PV, Batterie, Netz, Wechselrichter, EPS)
|
|
179
|
+
- Alle Steuerungs-Datenpunkte (Betriebsmodus, SoC-Grenzen, Fernsteuerung, EPS)
|
|
180
|
+
- Admin-UI mit jsonConfig
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
## Lizenz
|
|
185
|
+
|
|
186
|
+
MIT License
|
|
187
|
+
|
|
188
|
+
Copyright (c) 2026 Marco Bertulies <berto74online@gmail.com>
|
|
189
|
+
|
|
190
|
+
Basierend auf der [Home Assistant Integration für Solakon ONE](https://github.com/solakon/solakon-one-homeassistant).
|
package/README.md
ADDED
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# ioBroker.solakon-one
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/iobroker.solakon-one)
|
|
4
|
+
[](LICENSE)
|
|
5
|
+
|
|
6
|
+
**ioBroker adapter for the Solakon ONE hybrid solar inverter**
|
|
7
|
+
|
|
8
|
+
Monitors and controls the Solakon ONE hybrid solar inverter with battery storage over the local network via **Modbus TCP** (Port 502).
|
|
9
|
+
|
|
10
|
+
**[Deutsch / German documentation](README.de.md)**
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Requirements
|
|
15
|
+
|
|
16
|
+
- ioBroker with js-controller >= 6.0.0
|
|
17
|
+
- Node.js >= 20
|
|
18
|
+
- Solakon ONE inverter reachable in the local network
|
|
19
|
+
- Modbus TCP enabled on the device (Port 502)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Installation
|
|
24
|
+
|
|
25
|
+
1. Open ioBroker Admin interface
|
|
26
|
+
2. **Adapters** → **+ Add adapter**
|
|
27
|
+
3. Select the tab **"Install from URL"** (GitHub icon)
|
|
28
|
+
4. Enter URL: `https://github.com/berto-1974/ioBroker.solakon-one`
|
|
29
|
+
5. Click **Install**
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Configuration
|
|
34
|
+
|
|
35
|
+
| Field | Description | Default |
|
|
36
|
+
|-------|-------------|---------|
|
|
37
|
+
| **IP Address** | IP of the Solakon ONE on the LAN | `192.168.1.100` |
|
|
38
|
+
| **Port** | Modbus TCP port | `502` |
|
|
39
|
+
| **Modbus Device ID** | Slave address (1–247) | `1` |
|
|
40
|
+
| **Interval (s)** | Poll interval (1–300 s) | `30` |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Data Points
|
|
45
|
+
|
|
46
|
+
All data points are created under `solakon-one.0.*`.
|
|
47
|
+
|
|
48
|
+
### Connection Status
|
|
49
|
+
|
|
50
|
+
| ID | Description | Type |
|
|
51
|
+
|----|-------------|------|
|
|
52
|
+
| `info.connection` | Connection active | Boolean |
|
|
53
|
+
|
|
54
|
+
### Device Information (`device.*`)
|
|
55
|
+
|
|
56
|
+
| ID | Description |
|
|
57
|
+
|----|-------------|
|
|
58
|
+
| `device.model` | Model name |
|
|
59
|
+
| `device.serial` | Serial number |
|
|
60
|
+
| `device.fw_master` | Firmware version (Master) |
|
|
61
|
+
| `device.fw_slave` | Firmware version (Slave) |
|
|
62
|
+
|
|
63
|
+
### Photovoltaics (`pv.*`)
|
|
64
|
+
|
|
65
|
+
| ID | Description | Unit |
|
|
66
|
+
|----|-------------|------|
|
|
67
|
+
| `pv.total_power` | Total PV power | W |
|
|
68
|
+
| `pv.total_energy` | Total PV energy | kWh |
|
|
69
|
+
| `pv.pv1_voltage` … `pv4_voltage` | String voltage | V |
|
|
70
|
+
| `pv.pv1_current` … `pv4_current` | String current | A |
|
|
71
|
+
| `pv.pv1_power` … `pv4_power` | String power | W |
|
|
72
|
+
|
|
73
|
+
### Battery (`battery.*`)
|
|
74
|
+
|
|
75
|
+
| ID | Description | Unit |
|
|
76
|
+
|----|-------------|------|
|
|
77
|
+
| `battery.soc` | State of Charge (SoC) | % |
|
|
78
|
+
| `battery.voltage` | Voltage | V |
|
|
79
|
+
| `battery.current` | Current | A |
|
|
80
|
+
| `battery.power` | Power (+ charge, − discharge) | W |
|
|
81
|
+
| `battery.combined_power` | Combined power | W |
|
|
82
|
+
| `battery.total_charge` | Total charge energy | kWh |
|
|
83
|
+
| `battery.total_discharge` | Total discharge energy | kWh |
|
|
84
|
+
| `battery.bms1_soh` | State of Health (SoH) | % |
|
|
85
|
+
| `battery.design_energy` | Nominal capacity | Wh |
|
|
86
|
+
| `battery.ambient_temp` | Ambient temperature | °C |
|
|
87
|
+
| `battery.max_temp` | Maximum temperature | °C |
|
|
88
|
+
| `battery.min_temp` | Minimum temperature | °C |
|
|
89
|
+
|
|
90
|
+
### Grid (`grid.*`)
|
|
91
|
+
|
|
92
|
+
| ID | Description | Unit |
|
|
93
|
+
|----|-------------|------|
|
|
94
|
+
| `grid.off_grid` | Island mode active | Boolean |
|
|
95
|
+
| `grid.r_voltage` | Grid voltage phase R | V |
|
|
96
|
+
| `grid.s_voltage` | Grid voltage phase S | V |
|
|
97
|
+
| `grid.t_voltage` | Grid voltage phase T | V |
|
|
98
|
+
| `grid.frequency` | Grid frequency | Hz |
|
|
99
|
+
| `grid.active_power` | Active power (+ export, − import) | W |
|
|
100
|
+
| `grid.reactive_power` | Reactive power | kvar |
|
|
101
|
+
| `grid.power_factor` | Power factor | – |
|
|
102
|
+
| `grid.total_export` | Total feed-in energy | kWh |
|
|
103
|
+
| `grid.total_import` | Total purchased energy | kWh |
|
|
104
|
+
| `grid.standard` | Grid standard (6=VDE0126, 7=VDE4105_DE) | – |
|
|
105
|
+
|
|
106
|
+
### Inverter (`inverter.*`)
|
|
107
|
+
|
|
108
|
+
| ID | Description | Unit |
|
|
109
|
+
|----|-------------|------|
|
|
110
|
+
| `inverter.temperature` | Internal temperature | °C |
|
|
111
|
+
| `inverter.frequency` | Output frequency | Hz |
|
|
112
|
+
| `inverter.daily_energy` | Daily yield | kWh |
|
|
113
|
+
| `inverter.total_energy` | Total yield | kWh |
|
|
114
|
+
| `inverter.operating_mode` | Operating mode | – |
|
|
115
|
+
| `inverter.network_status` | Network status | – |
|
|
116
|
+
|
|
117
|
+
### Emergency Power / EPS (`eps.*`)
|
|
118
|
+
|
|
119
|
+
| ID | Description | Unit |
|
|
120
|
+
|----|-------------|------|
|
|
121
|
+
| `eps.voltage` | EPS output voltage | V |
|
|
122
|
+
| `eps.current` | EPS output current | A |
|
|
123
|
+
| `eps.power` | EPS output power | W |
|
|
124
|
+
|
|
125
|
+
### Status (`status.*`)
|
|
126
|
+
|
|
127
|
+
| ID | Description |
|
|
128
|
+
|----|-------------|
|
|
129
|
+
| `status.remote_control` | Active remote control mode |
|
|
130
|
+
| `status.remote_countdown` | Remaining time remote control (s) |
|
|
131
|
+
|
|
132
|
+
### Control (`control.*`) — writable
|
|
133
|
+
|
|
134
|
+
| ID | Description | Range |
|
|
135
|
+
|----|-------------|-------|
|
|
136
|
+
| `control.remote_control_mode` | Remote control mode | 0/1/3/5/7/9/11/13/15 |
|
|
137
|
+
| `control.remote_timeout` | Remote control timeout (s) | 0–3600 |
|
|
138
|
+
| `control.remote_active_power` | Active power setpoint (W) | -100000–100000 |
|
|
139
|
+
| `control.remote_reactive_power` | Reactive power setpoint (var) | -100000–100000 |
|
|
140
|
+
| `control.eps_output` | EPS/UPS output | 0=Off, 2=EPS, 3=UPS |
|
|
141
|
+
| `control.minimum_soc` | Min. state of charge | 0–100 % |
|
|
142
|
+
| `control.maximum_soc` | Max. state of charge | 0–100 % |
|
|
143
|
+
| `control.minimum_soc_ongrid` | Min. SoC (grid-connected) | 0–100 % |
|
|
144
|
+
| `control.max_charge_current` | Max. charge current | 0–40 A |
|
|
145
|
+
| `control.max_discharge_current` | Max. discharge current | 0–40 A |
|
|
146
|
+
| `control.operating_mode` | Operating mode | 0–7 |
|
|
147
|
+
|
|
148
|
+
#### Operating modes (`operating_mode`)
|
|
149
|
+
|
|
150
|
+
| Value | Description |
|
|
151
|
+
|-------|-------------|
|
|
152
|
+
| 0 | Unspecified |
|
|
153
|
+
| 1 | Self-consumption |
|
|
154
|
+
| 2 | Feed-in priority |
|
|
155
|
+
| 3 | Backup |
|
|
156
|
+
| 4 | Peak shaving |
|
|
157
|
+
| 6 | Force charge |
|
|
158
|
+
| 7 | Force discharge |
|
|
159
|
+
|
|
160
|
+
#### Remote control modes (`remote_control_mode`)
|
|
161
|
+
|
|
162
|
+
| Value | Description |
|
|
163
|
+
|-------|-------------|
|
|
164
|
+
| 0 | Off |
|
|
165
|
+
| 1 | Inverter export (PV priority) |
|
|
166
|
+
| 3 | Inverter import (PV priority) |
|
|
167
|
+
| 5 | Battery discharge |
|
|
168
|
+
| 7 | Battery charge |
|
|
169
|
+
| 9 | Grid export |
|
|
170
|
+
| 11 | Grid import |
|
|
171
|
+
| 13 | Inverter export (grid priority) |
|
|
172
|
+
| 15 | Inverter import (grid priority) |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## Changelog
|
|
177
|
+
|
|
178
|
+
### 1.0.0 (2026-04-12)
|
|
179
|
+
- Initial release
|
|
180
|
+
- Modbus TCP communication
|
|
181
|
+
- All sensor data points (PV, battery, grid, inverter, EPS)
|
|
182
|
+
- All control data points (operating mode, SoC limits, remote control, EPS)
|
|
183
|
+
- Admin UI with jsonConfig
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## License
|
|
188
|
+
|
|
189
|
+
MIT License
|
|
190
|
+
|
|
191
|
+
Copyright (c) 2026 Marco Bertulies <berto74online@gmail.com>
|
|
192
|
+
|
|
193
|
+
Based on the [Home Assistant integration for Solakon ONE](https://github.com/solakon/solakon-one-homeassistant).
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP-Adresse",
|
|
3
|
+
"Modbus TCP Port": "Modbus TCP Port",
|
|
4
|
+
"Modbus Geräte-ID": "Modbus Geräte-ID",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Aktualisierungsintervall (Sekunden)",
|
|
6
|
+
"Standard: 502": "Standard: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Modbus Slave-Adresse (Standard: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Zeitintervall für Datenabruf (1–300 Sekunden)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP Address",
|
|
3
|
+
"Modbus TCP Port": "Modbus TCP Port",
|
|
4
|
+
"Modbus Geräte-ID": "Modbus Device ID",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Update Interval (seconds)",
|
|
6
|
+
"Standard: 502": "Default: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Modbus slave address (default: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "How often to poll the device (1–300 seconds)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "Dirección IP",
|
|
3
|
+
"Modbus TCP Port": "Puerto Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID del dispositivo Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Intervalo de actualización (segundos)",
|
|
6
|
+
"Standard: 502": "Predeterminado: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Dirección esclava Modbus (predeterminado: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Con qué frecuencia se consulta el dispositivo (1–300 segundos)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "Adresse IP",
|
|
3
|
+
"Modbus TCP Port": "Port Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID de l'appareil Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Intervalle de mise à jour (secondes)",
|
|
6
|
+
"Standard: 502": "Par défaut: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Adresse esclave Modbus (par défaut: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "À quelle fréquence l'appareil est interrogé (1–300 secondes)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "Indirizzo IP",
|
|
3
|
+
"Modbus TCP Port": "Porta Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID dispositivo Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Intervallo di aggiornamento (secondi)",
|
|
6
|
+
"Standard: 502": "Predefinito: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Indirizzo slave Modbus (predefinito: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Con quale frequenza viene interrogato il dispositivo (1–300 secondi)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP-adres",
|
|
3
|
+
"Modbus TCP Port": "Modbus TCP-poort",
|
|
4
|
+
"Modbus Geräte-ID": "Modbus apparaat-ID",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Updateinterval (seconden)",
|
|
6
|
+
"Standard: 502": "Standaard: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Modbus slave-adres (standaard: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Hoe vaak het apparaat wordt bevraagd (1–300 seconden)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "Adres IP",
|
|
3
|
+
"Modbus TCP Port": "Port Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID urządzenia Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Interwał aktualizacji (sekundy)",
|
|
6
|
+
"Standard: 502": "Domyślnie: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Adres slave Modbus (domyślnie: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Jak często urządzenie jest odpytywane (1–300 sekund)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "Endereço IP",
|
|
3
|
+
"Modbus TCP Port": "Porta Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID do dispositivo Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Intervalo de atualização (segundos)",
|
|
6
|
+
"Standard: 502": "Padrão: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Endereço slave Modbus (padrão: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Com que frequência o dispositivo é consultado (1–300 segundos)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP-адрес",
|
|
3
|
+
"Modbus TCP Port": "Порт Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID устройства Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Интервал обновления (секунды)",
|
|
6
|
+
"Standard: 502": "По умолчанию: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Адрес ведомого Modbus (по умолчанию: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Как часто опрашивается устройство (1–300 секунд)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP-адреса",
|
|
3
|
+
"Modbus TCP Port": "Порт Modbus TCP",
|
|
4
|
+
"Modbus Geräte-ID": "ID пристрою Modbus",
|
|
5
|
+
"Update-Intervall (Sekunden)": "Інтервал оновлення (секунди)",
|
|
6
|
+
"Standard: 502": "За замовчуванням: 502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Адреса підлеглого Modbus (за замовчуванням: 1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "Як часто опитується пристрій (1–300 секунд)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
{
|
|
2
|
+
"IP Adresse": "IP地址",
|
|
3
|
+
"Modbus TCP Port": "Modbus TCP端口",
|
|
4
|
+
"Modbus Geräte-ID": "Modbus设备ID",
|
|
5
|
+
"Update-Intervall (Sekunden)": "更新间隔(秒)",
|
|
6
|
+
"Standard: 502": "默认:502",
|
|
7
|
+
"Modbus Slave-Adresse (Standard: 1)": "Modbus从站地址(默认:1)",
|
|
8
|
+
"Wie oft werden die Daten abgerufen (1–300 Sekunden)": "设备轮询频率(1–300秒)"
|
|
9
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "panel",
|
|
3
|
+
"i18n": true,
|
|
4
|
+
"items": {
|
|
5
|
+
"host": {
|
|
6
|
+
"type": "text",
|
|
7
|
+
"label": "IP Adresse",
|
|
8
|
+
"placeholder": "192.168.1.100",
|
|
9
|
+
"xs": 12,
|
|
10
|
+
"sm": 12,
|
|
11
|
+
"md": 6,
|
|
12
|
+
"lg": 6,
|
|
13
|
+
"xl": 6,
|
|
14
|
+
"validator": "^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$",
|
|
15
|
+
"validatorErrorText": "Bitte eine gültige IP-Adresse eingeben",
|
|
16
|
+
"help": "IP-Adresse des Solakon ONE Geräts im lokalen Netzwerk",
|
|
17
|
+
"noTranslation": true
|
|
18
|
+
},
|
|
19
|
+
"port": {
|
|
20
|
+
"type": "number",
|
|
21
|
+
"label": "Modbus TCP Port",
|
|
22
|
+
"default": 502,
|
|
23
|
+
"min": 1,
|
|
24
|
+
"max": 65535,
|
|
25
|
+
"xs": 12,
|
|
26
|
+
"sm": 12,
|
|
27
|
+
"md": 3,
|
|
28
|
+
"lg": 3,
|
|
29
|
+
"xl": 3,
|
|
30
|
+
"help": "Standard: 502"
|
|
31
|
+
},
|
|
32
|
+
"slaveId": {
|
|
33
|
+
"type": "number",
|
|
34
|
+
"label": "Modbus Geräte-ID",
|
|
35
|
+
"default": 1,
|
|
36
|
+
"min": 1,
|
|
37
|
+
"max": 247,
|
|
38
|
+
"xs": 12,
|
|
39
|
+
"sm": 12,
|
|
40
|
+
"md": 3,
|
|
41
|
+
"lg": 3,
|
|
42
|
+
"xl": 3,
|
|
43
|
+
"help": "Modbus Slave-Adresse (Standard: 1)"
|
|
44
|
+
},
|
|
45
|
+
"scanInterval": {
|
|
46
|
+
"type": "number",
|
|
47
|
+
"label": "Update-Intervall (Sekunden)",
|
|
48
|
+
"default": 30,
|
|
49
|
+
"min": 1,
|
|
50
|
+
"max": 300,
|
|
51
|
+
"xs": 12,
|
|
52
|
+
"sm": 12,
|
|
53
|
+
"md": 6,
|
|
54
|
+
"lg": 6,
|
|
55
|
+
"xl": 6,
|
|
56
|
+
"help": "Wie oft werden die Daten abgerufen (1–300 Sekunden)"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
Binary file
|