iobroker.marstek-venus 0.1.4

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/README.md ADDED
@@ -0,0 +1,184 @@
1
+ # ioBroker.marstek-venus Adapter
2
+
3
+ The ioBroker.marstek-venus adapter provides full integration with Marstek Venus series energy storage systems, implementing the official Open API for complete device control and monitoring.
4
+
5
+ ## Key Features
6
+
7
+ - ✅ **Full device auto-discovery** on local network
8
+ - ✅ **3-tier polling system** for optimized updates:
9
+ - **Fast poll** (default 1s): Power values (pv, grid, battery, load)
10
+ - **Normal poll** (default 10s): All status values
11
+ - **Slow poll** (10min): Network status
12
+ - ✅ **Request deduplication** - prevents overlapping requests
13
+ - ✅ **Automatic retry** - 1 retry with 2000ms timeout per request
14
+ - ✅ **Complete state coverage** (battery, power, energy, network, device info)
15
+ - ✅ **Full control support** (Auto/AI/Manual/Passive modes)
16
+ - ✅ **Manual mode configuration** (time slots, weekdays, power, enable/disable)
17
+ - ✅ **Passive mode configuration** (power, duration)
18
+ - ✅ **Energy monitoring** (PV, grid import/export, load)
19
+ - ✅ **Network status monitoring** (IP, WiFi, BLE)
20
+ - ✅ **Energy meter with phase measurements** (A/B/C phases)
21
+
22
+ ## Installation
23
+
24
+ 1. **Enable Open API** in Marstek mobile app and note UDP port (default 30000)
25
+ 2. **Install adapter** via ioBroker admin interface
26
+ 3. **Configure instance**:
27
+ - Auto discovery (recommended) or manual IP entry
28
+ - Set UDP port as configured in app
29
+ - Adjust poll interval and fastPollInterval (default 1000ms)
30
+ 4. **Save and start** adapter
31
+
32
+ ## Configuration Options
33
+
34
+ | Parameter | Description | Default |
35
+ |-----------|-------------|---------|
36
+ | **ipAddress** | Leave empty for auto-discovery, or enter device IP | (empty) |
37
+ | **udpPort** | UDP port for communication | 30000 |
38
+ | **pollInterval** | Normal poll interval for all status values (ms) | 10000 |
39
+ | **fastPollInterval** | Fast poll interval for power values (ms) | 1000 |
40
+ | **requestTimeout** | Request timeout before retry (ms) | 2000 |
41
+ | **maxRetries** | Max retry attempts per request | 1 |
42
+ | **autoDiscovery** | Enable automatic device discovery | true |
43
+
44
+ ## States Documentation
45
+
46
+ ### Battery States
47
+ - **`marstek-venus.0.battery.soc`** - State of charge (0-100%) | %, ro
48
+ - **`marstek-venus.0.battery.temperature`** - Battery temperature in °C | °C, ro
49
+ - **`marstek-venus.0.battery.capacity`** - Remaining capacity in Wh | Wh, ro
50
+ - **`marstek-venus.0.battery.ratedCapacity`** - Rated capacity in Wh | Wh, ro
51
+ - **`marstek-venus.0.battery.chargingAllowed`** - Charging permitted (true/false) | bool, rw
52
+ - **`marstek-venus.0.battery.dischargingAllowed`** - Discharging permitted (true/false) | bool, rw
53
+
54
+ ### Power States
55
+ - **`marstek-venus.0.power.pv`** - PV power generation in W | W, ro
56
+ - **`marstek-venus.0.power.pvVoltage`** - PV voltage in V | V, ro
57
+ - **`marstek-venus.0.power.pvCurrent`** - PV current in A | A, ro
58
+ - **`marstek-venus.0.power.grid`** - Grid power flow (positive=import, negative=export) | W, ro
59
+ - **`marstek-venus.0.power.battery`** - Battery power flow in W | W, ro
60
+ - **`marstek-venus.0.power.load`** - Load consumption in W | W, ro
61
+
62
+ ### Energy States
63
+ - **`marstek-venus.0.energy.pvTotal`** - Total PV energy generated in Wh | Wh, ro
64
+ - **`marstek-venus.0.energy.gridImport`** - Total grid energy imported in Wh | Wh, ro
65
+ - **`marstek-venus.0.energy.gridExport`** - Total grid energy exported in Wh | Wh, ro
66
+ - **`marstek-venus.0.energy.loadTotal`** - Total load energy consumed in Wh | Wh, ro
67
+
68
+ ### Control States
69
+ - **`marstek-venus.0.control.mode`** - Operating mode (Auto/AI/Manual/Passive) | enum, rw
70
+ - **`marstek-venus.0.control.passivePower`** - Passive mode power target in W (positive=charge, negative=discharge) | W, rw
71
+ - **`marstek-venus.0.control.passiveDuration`** - Passive mode duration in seconds | s, rw
72
+ - **`marstek-venus.0.control.manualTimeNum`** - Manual mode time slot (0-9) | number, rw
73
+ - **`marstek-venus.0.control.manualStartTime`** - Manual mode start time (HH:MM) | string, rw
74
+ - **`marstek-venus.0.control.manualEndTime`** - Manual mode end time (HH:MM) | string, rw
75
+ - **`marstek-venus.0.control.manualWeekdays`** - Manual mode weekdays (1=Mon, 127=all) | number, rw
76
+ - **`marstek-venus.0.control.manualPower`** - Manual mode power target in W | W, rw
77
+ - **`marstek-venus.0.control.manualEnable`** - Enable manual mode schedule (true/false) | bool, rw
78
+
79
+ ### Network States
80
+ - **`marstek-venus.0.network.ip`** - Device IP address | ip, ro
81
+ - **`marstek-venus.0.network.ssid`** - WiFi SSID | string, ro
82
+ - **`marstek-venus.0.network.rssi`** - WiFi signal strength in dBm | dBm, ro
83
+ - **`marstek-venus.0.network.bleState`** - BLE connection state (connected/disconnected) | enum, ro
84
+
85
+ ### Info States
86
+ - **`marstek-venus.0.info.device`** - Device model (Venus A, B, C, D, E) | string, ro
87
+ - **`marstek-venus.0.info.firmware`** - Firmware version number | string, ro
88
+ - **`marstek-venus.0.info.mac`** - Device MAC address | mac, ro
89
+ - **`marstek-venus.0.info.connection`** - Connection status (true/false) | bool, ro
90
+
91
+ ### Energy Meter States
92
+ - **`marstek-venus.0.energymeter.ctState`** - CT sensor connection state (0=disconnected, 1=connected) | enum, ro
93
+ - **`marstek-venus.0.energymeter.powerA`** - Phase A power in W | W, ro
94
+ - **`marstek-venus.0.energymeter.powerB`** - Phase B power in W | W, ro
95
+ - **`marstek-venus.0.energymeter.powerC`** - Phase C power in W | W, ro
96
+ - **`marstek-venus.0.energymeter.powerTotal`** - Total three-phase power in W | W, ro
97
+
98
+ ## Control and Operation
99
+
100
+ ### Switching Modes
101
+ - **Auto**: Fully automatic operation based on device algorithms
102
+ - **AI**: AI-powered optimization mode
103
+ - **Manual**: Schedule-based manual control with 10 time slots
104
+ - **Passive**: Maintain battery at specified power level for specified duration
105
+
106
+ ### Manual Mode Configuration
107
+ Manual mode uses 10 time slots per day (0-9). Configure:
108
+ - **`control.manualTimeNum`** - Select time slot (0-9)
109
+ - **`control.manualStartTime`** - Start time for the slot (HH:MM)
110
+ - **`control.manualEndTime`** - End time for the slot (HH:MM)
111
+ - **`control.manualWeekdays`** - Bitmask for weekdays (1=Mon, 127=all)
112
+ - **`control.manualPower`** - Target power for the slot in W
113
+ - **`control.manualEnable`** - Enable this time slot
114
+
115
+ ### Passive Mode Configuration
116
+ - **`control.passivePower`** - Target power level in W (positive=charge, negative=discharge)
117
+ - **`control.passiveDuration`** - Duration in seconds (0-86400)
118
+
119
+ ## API Implementation
120
+
121
+ The adapter implements 100% of the official Marstek Open API Revision 1.0:
122
+
123
+ - `Marstek.GetDevice` - Device discovery and information
124
+ - `Wifi.GetStatus` - WiFi connection status
125
+ - `BLE.GetStatus` - Bluetooth status
126
+ - `Bat.GetStatus` - Battery detailed status
127
+ - `PV.GetStatus` - PV array status
128
+ - `ES.GetStatus` - Energy storage system status
129
+ - `ES.GetMode` - Current operating mode
130
+ - `ES.SetMode` - Set operating mode and configuration
131
+ - `EM.GetStatus` - Energy meter measurements
132
+
133
+ ## Troubleshooting
134
+
135
+ ### Discovery Issues
136
+ - Ensure UDP port 30000 is open and matches mobile app configuration
137
+ - Check that device is on the same network subnet
138
+ - Try manually entering IP address if auto-discovery fails
139
+ - Verify device WiFi connection is working
140
+
141
+ ### Connection Problems
142
+ - Check firewall settings allowing UDP traffic
143
+ - Verify network connectivity to device
144
+ - Restart adapter and device
145
+ - Check WiFi signal strength (network.rssi)
146
+
147
+ ### Polling Issues
148
+ - Adjust `fastPollInterval` for power value update frequency (default 1000ms)
149
+ - Adjust `pollInterval` for normal status update frequency (default 10000ms)
150
+ - Adjust `requestTimeout` if device needs more time to respond (default 2000ms)
151
+ - Increase `maxRetries` for unreliable network connections
152
+ - Slow poll runs every 10 minutes for network status
153
+
154
+ ### State Updates Not Working
155
+ - Verify control states are writable (some are read-only)
156
+ - Check that mode changes are properly configured
157
+ - Ensure manual mode settings are valid
158
+
159
+ ## Changelog
160
+
161
+ ### 0.1.2
162
+ - Removed invalid ES.GetInfo call which was causing Method not found errors
163
+ - Device information is now obtained exclusively during discovery
164
+
165
+ ### 0.1.1
166
+ - Added 3-tier polling system (fast/normal/slow)
167
+ - Added request deduplication to prevent overlapping requests
168
+ - Added automatic retry (1 attempt with 2000ms timeout per request)
169
+ - Optimized power value updates with dedicated fast poll
170
+
171
+ ### 0.1.0
172
+ - Initial release
173
+ - Full API implementation
174
+ - Auto discovery support
175
+ - All operating modes implemented
176
+
177
+ ## Support
178
+
179
+ For support, visit the ioBroker forum or GitHub repository. When reporting issues, please include:
180
+ - Adapter version
181
+ - Device model
182
+ - Firmware version
183
+ - Network configuration
184
+ - Detailed error messages
@@ -0,0 +1,71 @@
1
+ {
2
+ "type": "panel",
3
+ "items": {
4
+ "_header": {
5
+ "type": "header",
6
+ "text": "Marstek Venus Configuration",
7
+ "size": 2
8
+ },
9
+ "_info": {
10
+ "type": "staticText",
11
+ "label": "Pre-requirements: Enable Open API in the official Marstek mobile app first, note the configured UDP port (default: 30000), and ensure device and ioBroker are on the same local network.",
12
+ "newLine": true
13
+ },
14
+ "ipAddress": {
15
+ "type": "text",
16
+ "label": "Device IP Address",
17
+ "placeholder": "192.168.1.xxx",
18
+ "sm": 6,
19
+ "newLine": true
20
+ },
21
+ "udpPort": {
22
+ "type": "number",
23
+ "label": "UDP Port",
24
+ "min": 1,
25
+ "max": 65535,
26
+ "default": 30000,
27
+ "sm": 6
28
+ },
29
+ "pollInterval": {
30
+ "type": "number",
31
+ "label": "Poll interval (ms)",
32
+ "min": 500,
33
+ "max": 60000,
34
+ "default": 10000,
35
+ "sm": 6,
36
+ "newLine": true
37
+ },
38
+ "fastPollInterval": {
39
+ "type": "number",
40
+ "label": "Fast poll interval (ms)",
41
+ "min": 100,
42
+ "max": 10000,
43
+ "default": 1000,
44
+ "sm": 6
45
+ },
46
+ "requestTimeout": {
47
+ "type": "number",
48
+ "label": "Request timeout (ms)",
49
+ "min": 1000,
50
+ "max": 30000,
51
+ "default": 5000,
52
+ "sm": 6,
53
+ "newLine": true
54
+ },
55
+ "maxRetries": {
56
+ "type": "number",
57
+ "label": "Max retries",
58
+ "min": 0,
59
+ "max": 5,
60
+ "default": 1,
61
+ "sm": 6
62
+ },
63
+ "autoDiscovery": {
64
+ "type": "checkbox",
65
+ "label": "Auto discover devices on network",
66
+ "default": true,
67
+ "sm": 6,
68
+ "newLine": true
69
+ }
70
+ }
71
+ }
Binary file
package/admin/words.js ADDED
@@ -0,0 +1,68 @@
1
+ /* eslint-disable no-undef */
2
+ /* exported systemDictionary */
3
+ systemDictionary = {
4
+ "marstek-venus settings": {
5
+ en: "Marstek Venus settings",
6
+ de: "Marstek Venus Einstellungen",
7
+ },
8
+ ipAddress: {
9
+ en: "Device IP Address",
10
+ de: "Geräte IP Adresse",
11
+ },
12
+ udpPort: {
13
+ en: "UDP Port",
14
+ de: "UDP Port",
15
+ },
16
+ pollInterval: {
17
+ en: "Poll interval (ms)",
18
+ de: "Abfrageintervall (ms)",
19
+ },
20
+ autoDiscovery: {
21
+ en: "Auto discover devices",
22
+ de: "Geräte automatisch erkennen",
23
+ },
24
+ ipAddress_help: {
25
+ en: "Leave empty to use auto-discovery, or enter the device's IP address if known",
26
+ de: "Leer lassen um automatische Erkennung zu verwenden, oder geben Sie die IP-Adresse des Geräts ein, falls bekannt",
27
+ },
28
+ udpPort_help: {
29
+ en: "UDP port for communication with the device (default 30000, must match the port configured in the Marstek mobile app)",
30
+ de: "UDP-Port für die Kommunikation mit dem Gerät (Standard 30000, muss mit dem in der Marstek-Mobile-App konfigurierten Port übereinstimmen)",
31
+ },
32
+ pollInterval_help: {
33
+ en: "How often to query the device for data (lower values for more real-time updates, higher for less device load)",
34
+ de: "Wie oft das Gerät nach Daten abgefragt wird (niedrigere Werte für Echtzeit-Updates, höhere für geringere Gerätebelastung)",
35
+ },
36
+ fastPollInterval: {
37
+ en: "Fast poll interval (ms) - power values",
38
+ de: "Schnelles Abfrageintervall (ms) - Leistungswerte",
39
+ },
40
+ fastPollInterval_help: {
41
+ en: "How often to query power values (pv, grid, battery, load). Lower values = faster updates for power data",
42
+ de: "Wie oft Leistungswerte abgefragt werden (pv, grid, battery, load). Niedrigere Werte = schnellere Updates für Leistungsdaten",
43
+ },
44
+ requestTimeout: {
45
+ en: "Request timeout (ms)",
46
+ de: "Anfrage-Timeout (ms)",
47
+ },
48
+ requestTimeout_help: {
49
+ en: "How long to wait for a response before retrying (higher for slow devices)",
50
+ de: "Wie lange auf eine Antwort gewartet wird, bevor erneut versucht wird (höher für langsame Geräte)",
51
+ },
52
+ maxRetries: {
53
+ en: "Max retries per request",
54
+ de: "Max. Wiederholungen pro Anfrage",
55
+ },
56
+ maxRetries_help: {
57
+ en: "Number of retry attempts if a request times out (0 = no retries)",
58
+ de: "Anzahl der Wiederholungsversuche bei Timeout (0 = keine Wiederholungen)",
59
+ },
60
+ autoDiscovery_help: {
61
+ en: "Enable automatic device discovery on the local network (recommended for first-time setup)",
62
+ de: "Automatische Geräteerkennung im lokalen Netzwerk aktivieren (empfohlen für die Ersteinrichtung)",
63
+ },
64
+ discover: {
65
+ en: "Discover devices",
66
+ de: "Geräte suchen",
67
+ },
68
+ };
@@ -0,0 +1,206 @@
1
+ {
2
+ "common": {
3
+ "name": "marstek-venus",
4
+ "version": "0.1.4",
5
+ "titleLang": {
6
+ "en": "Marstek Venus Energy Storage",
7
+ "de": "Marstek Venus Energiespeicher",
8
+ "ru": "Marstek Venus накопитель энергии",
9
+ "pt": "Marstek Venus Armazenamento de Energia",
10
+ "nl": "Marstek Venus Energieopslag",
11
+ "fr": "Marstek Venus Stockage d'énergie",
12
+ "it": "Marstek Venus Accumulo di energia",
13
+ "es": "Marstek Venus Almacenamiento de energía",
14
+ "pl": "Marstek Venus Magazyn energii",
15
+ "uk": "Marstek Venus Накопичувач енергії",
16
+ "zh-cn": "Marstek Venus 储能"
17
+ },
18
+ "desc": {
19
+ "en": "Adapter for Marstek Venus C/D/E energy storage devices",
20
+ "de": "Adapter für Marstek Venus C/D/E Energiespeichergeräte",
21
+ "ru": "Адаптер для устройств накопления энергии Marstek Venus C/D/E",
22
+ "pt": "Adaptador para dispositivos de armazenamento de energia Marstek Venus C/D/E",
23
+ "nl": "Adapter voor Marstek Venus C/D/E energieopslagapparaten",
24
+ "fr": "Adaptateur pour les dispositifs de stockage d'énergie Marstek Venus C/D/E",
25
+ "it": "Adapter per dispositivi di accumulo energetico Marstek Venus C/D/E",
26
+ "es": "Adaptador para dispositivos de almacenamiento de energía Marstek Venus C/D/E",
27
+ "pl": "Adapter do urządzeń magazynowania energii Marstek Venus C/D/E",
28
+ "uk": "Адаптер для пристроїв накопичення енергії Marstek Venus C/D/E",
29
+ "zh-cn": "Marstek Venus C/D/E 储能设备适配器"
30
+ },
31
+ "descLang": {
32
+ "en": "Integrates Marstek Venus battery inverters with ioBroker using official local Open API",
33
+ "de": "Integriert Marstek Venus Batteriewechselrichter mit ioBroker über die offizielle lokale Open API"
34
+ },
35
+ "news": {
36
+ "0.1.4": {
37
+ "en": "Fixed repository validation issues, updated adapter naming conventions",
38
+ "de": "Repository-Validierungsprobleme behoben, Adapter-Namenskonventionen aktualisiert",
39
+ "ru": "Исправлены проблемы проверки репозитория, обновлены соглашения об именовании адаптеров",
40
+ "pt": "Corrigidos problemas de validação do repositório, atualizadas convenções de nomenclatura do adaptador",
41
+ "nl": "Repository-validatieproblemen opgelost, adapter naamgevingsconventies bijgewerkt",
42
+ "fr": "Corrigé les problèmes de validation du dépôt, mis à jour les conventions de nommage des adaptateurs",
43
+ "it": "Risolti problemi di validazione del repository, aggiornate le convenzioni di denominazione dell'adapter",
44
+ "es": "Corregidos problemas de validación del repositorio, actualizadas convenciones de nomenclatura del adaptador",
45
+ "pl": "Naprawiono problemy z walidacją repozytorium, zaktualizowano konwencje nazewnictwa adaptera",
46
+ "uk": "Виправлено проблеми перевірки репозиторію, оновлено угоди про найменування адаптерів",
47
+ "zh-cn": "修复了存储库验证问题,更新了适配器命名规范"
48
+ },
49
+ "0.1.2": {
50
+ "en": "Removed invalid ES.GetInfo call, device info obtained via discovery only",
51
+ "de": "Ungültiger ES.GetInfo Aufruf entfernt, Geräteinformationen werden nur über Discovery abgerufen",
52
+ "ru": "Удален недопустимый вызов ES.GetInfo, информация об устройстве получается только через обнаружение",
53
+ "pt": "Removida chamada ES.GetInfo inválida, informações do dispositivo obtidas apenas via descoberta",
54
+ "nl": "Ongeldige ES.GetInfo-aanroep verwijderd, apparaatinformatie alleen verkregen via discovery",
55
+ "fr": "Supprimé l'appel ES.GetInfo invalide, informations sur l'appareil obtenues uniquement via la découverte",
56
+ "it": "Rimossa chiamata ES.GetInfo non valida, informazioni sul dispositivo ottenute solo tramite discovery",
57
+ "es": "Eliminada llamada ES.GetInfo no válida, información del dispositivo obtenida solo a través de discovery",
58
+ "pl": "Usunięto nieprawidłowe wywołanie ES.GetInfo, informacje o urządzeniu uzyskiwane tylko poprzez odnajdywanie",
59
+ "uk": "Видалено недійсний виклик ES.GetInfo, інформація про пристрій отримується лише через виявлення",
60
+ "zh-cn": "移除了无效的 ES.GetInfo 调用,设备信息仅通过发现获取"
61
+ },
62
+ "0.1.1": {
63
+ "en": "Added 3-tier polling system, request deduplication, automatic retry, optimized power updates",
64
+ "de": "3-stufiges Polling-System hinzugefügt, Anfrage-Deduplizierung, automatische Wiederholung, optimierte Leistungsaktualisierungen",
65
+ "ru": "Добавлена 3-уровневая система опроса, дедупликация запросов, автоматический повтор, оптимизированные обновления мощности",
66
+ "pt": "Adicionado sistema de polling de 3 níveis, desduplicação de solicitações, repetição automática, atualizações de energia otimizadas",
67
+ "nl": "3-tier polling systeem toegevoegd, aanvraagdeduplicatie, automatische herhaal, geoptimaliseerde vermogensupdates",
68
+ "fr": "Ajouté un système de polling à 3 niveaux, déduplication des requêtes, retry automatique, mises à jour de puissance optimisées",
69
+ "it": "Aggiunto sistema di polling a 3 livelli, deduplicazione delle richieste, retry automatico, aggiornamenti di potenza ottimizzati",
70
+ "es": "Añadido sistema de polling de 3 niveles, deduplicación de solicitudes, reintento automático, actualizaciones de potencia optimizadas",
71
+ "pl": "Dodano 3-poziomowy system odpytywania, deduplikację żądań, automatyczne ponawianie, zoptymalizowane aktualizacje mocy",
72
+ "uk": "Додано 3-рівневу систему опитування, дедуплікацію запитів, автоматичне повторювання, оптимізовані оновлення потужності",
73
+ "zh-cn": "添加了3层轮询系统,请求去重,自动重试,优化了功率更新"
74
+ },
75
+ "0.1.0": {
76
+ "en": "Initial release",
77
+ "de": "Erstveröffentlichung",
78
+ "ru": "Первоначальный выпуск",
79
+ "pt": "Versão inicial",
80
+ "nl": "Eerste release",
81
+ "fr": "Version initiale",
82
+ "it": "Release iniziale",
83
+ "es": "Lanzamiento inicial",
84
+ "pl": "Pierwsze wydanie",
85
+ "uk": "Початковий випуск",
86
+ "zh-cn": "初始版本"
87
+ }
88
+ },
89
+ "icon": "marstek-venus.png",
90
+ "extIcon": "https://raw.githubusercontent.com/Slugger2k/ioBroker.marstek-venus/master/admin/marstek-venus.png",
91
+ "type": "energy",
92
+ "authors": [
93
+ "ioBroker Community"
94
+ ],
95
+ "licenseInformation": {
96
+ "license": "MIT",
97
+ "type": "free"
98
+ },
99
+ "platform": "Javascript/Node.js",
100
+ "mode": "daemon",
101
+ "compact": true,
102
+ "tier": 3,
103
+ "supportedCompact": true,
104
+ "noConfig": false,
105
+ "noIntro": false,
106
+ "connectionType": "local",
107
+ "dataSource": "poll",
108
+ "dependencies": [
109
+ {
110
+ "js-controller": ">=5.0.19"
111
+ }
112
+ ],
113
+ "keywords": [
114
+ "marstek",
115
+ "venus",
116
+ "battery",
117
+ "solar",
118
+ "energy storage",
119
+ "inverter",
120
+ "pv"
121
+ ],
122
+ "logLevel": "info",
123
+ "translated": false,
124
+ "adminUI": {"config": "json"},
125
+ "supportedMessages": [
126
+ "sendTo"
127
+ ],
128
+ "readme": "https://github.com/Slugger2k/ioBroker.marstek-venus#readme",
129
+ "bugs": "https://github.com/Slugger2k/ioBroker.marstek-venus/issues",
130
+ "changelog": "https://github.com/Slugger2k/ioBroker.marstek-venus/blob/master/CHANGELOG.md"
131
+ },
132
+ "native": {
133
+ "ipAddress": "",
134
+ "udpPort": 30000,
135
+ "pollInterval": 10000,
136
+ "fastPollInterval": 1000,
137
+ "requestTimeout": 5000,
138
+ "maxRetries": 1,
139
+ "autoDiscovery": true
140
+ },
141
+ "instanceObjects": [
142
+ {
143
+ "_id": "info",
144
+ "type": "channel",
145
+ "common": {
146
+ "name": "Information",
147
+ "role": "info"
148
+ },
149
+ "native": {}
150
+ },
151
+ {
152
+ "_id": "battery",
153
+ "type": "channel",
154
+ "common": {
155
+ "name": "Battery",
156
+ "role": "battery"
157
+ },
158
+ "native": {}
159
+ },
160
+ {
161
+ "_id": "power",
162
+ "type": "channel",
163
+ "common": {
164
+ "name": "Power",
165
+ "role": "power"
166
+ },
167
+ "native": {}
168
+ },
169
+ {
170
+ "_id": "energy",
171
+ "type": "channel",
172
+ "common": {
173
+ "name": "Energy",
174
+ "role": "energy"
175
+ },
176
+ "native": {}
177
+ },
178
+ {
179
+ "_id": "control",
180
+ "type": "channel",
181
+ "common": {
182
+ "name": "Control",
183
+ "role": "control"
184
+ },
185
+ "native": {}
186
+ },
187
+ {
188
+ "_id": "network",
189
+ "type": "channel",
190
+ "common": {
191
+ "name": "Network",
192
+ "role": "info.network"
193
+ },
194
+ "native": {}
195
+ },
196
+ {
197
+ "_id": "energymeter",
198
+ "type": "channel",
199
+ "common": {
200
+ "name": "Energy Meter",
201
+ "role": "meter"
202
+ },
203
+ "native": {}
204
+ }
205
+ ]
206
+ }
@@ -0,0 +1,13 @@
1
+ // Adapter Config for Marstek Venus
2
+ // This file is required by ioBroker's adapter system
3
+ // It's typically generated during build process, but we'll create a minimal version
4
+
5
+ // This is a placeholder that allows the adapter to load properly
6
+ // In a real build, this would contain the actual adapter configuration logic
7
+
8
+ if (typeof module !== "undefined" && module.exports) {
9
+ module.exports = {
10
+ // Minimal adapter config object
11
+ // Actual implementation would be in main.js
12
+ };
13
+ }