iobroker.zendure-solarflow 1.15.3 → 2.0.0-alpha.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/README.md CHANGED
@@ -55,6 +55,14 @@ You can still do firmware updates with the official Zendure app via bluetooth an
55
55
  Credits goes to https://github.com/reinhard-brandstaedter/solarflow which helped a lot with the knowledge about the MQTT server from Zendure! Thanks!
56
56
 
57
57
  ## Changelog
58
+ ### 2.0.0-alpha.0 (2025-07-18)
59
+
60
+ - Breaking Change: Add control parameter 'setDeviceAutomation' which emulates Zendure's Smart Matching mode. Since there were concerns that setting limits would be stored in the flash memory, I recommend using this device automation instead of 'setInputLimit'/'setOutputLimit' from now on. You can use negative values for charging and positive for feed in.
61
+
62
+ ### 1.15.4 (2025-07-17)
63
+
64
+ - Add smart mode control parameter for more devices
65
+
58
66
  ### 1.15.3 (2025-07-17)
59
67
 
60
68
  - Match case sensitive product key for SF 2400 AC and SF 800 in settings if local mode is used
@@ -178,6 +178,26 @@ const ac2400ControlStates = [
178
178
  role: "indicator.lowbat",
179
179
  read: true,
180
180
  write: false
181
+ },
182
+ {
183
+ nameDe: "Smart Mode",
184
+ nameEn: "Smart Mode",
185
+ type: "boolean",
186
+ title: "smartMode",
187
+ role: "switch",
188
+ read: true,
189
+ write: true
190
+ },
191
+ {
192
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
193
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
194
+ type: "number",
195
+ title: "setDeviceAutomationLimit",
196
+ role: "value.power",
197
+ read: true,
198
+ write: true,
199
+ min: 0,
200
+ unit: "W"
181
201
  }
182
202
  ];
183
203
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/ac2400ControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const ac2400ControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 2400,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 2400,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const ac2400ControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 2400,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 2400,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -187,6 +187,26 @@ const aceControlStates = [
187
187
  role: "switch",
188
188
  read: true,
189
189
  write: true
190
+ },
191
+ {
192
+ nameDe: "Smart Mode",
193
+ nameEn: "Smart Mode",
194
+ type: "boolean",
195
+ title: "smartMode",
196
+ role: "switch",
197
+ read: true,
198
+ write: true
199
+ },
200
+ {
201
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
202
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
203
+ type: "number",
204
+ title: "setDeviceAutomationLimit",
205
+ role: "value.power",
206
+ read: true,
207
+ write: true,
208
+ min: 0,
209
+ unit: "W"
190
210
  }
191
211
  ];
192
212
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/aceControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const aceControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 900,\n step: 100,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 3,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"Normal work mode\",\n 2: \"Never turn off\",\n 3: \"Automatic shutdown AC\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"DC Schalter\",\n nameEn: \"DC switch\",\n type: \"boolean\",\n title: \"dcSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const aceControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 900,\n step: 100,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 3,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"Normal work mode\",\n 2: \"Never turn off\",\n 3: \"Automatic shutdown AC\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"DC Schalter\",\n nameEn: \"DC switch\",\n type: \"boolean\",\n title: \"dcSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -164,6 +164,17 @@ const aioControlStates = [
164
164
  role: "indicator.lowbat",
165
165
  read: true,
166
166
  write: false
167
+ },
168
+ {
169
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
170
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
171
+ type: "number",
172
+ title: "setDeviceAutomationLimit",
173
+ role: "value.power",
174
+ read: true,
175
+ write: true,
176
+ min: 0,
177
+ unit: "W"
167
178
  }
168
179
  ];
169
180
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/aioControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const aioControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const aioControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -188,6 +188,17 @@ const hubControlStates = [
188
188
  role: "indicator.lowbat",
189
189
  read: true,
190
190
  write: false
191
+ },
192
+ {
193
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
194
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
195
+ type: "number",
196
+ title: "setDeviceAutomationLimit",
197
+ role: "value.power",
198
+ read: true,
199
+ write: true,
200
+ min: 0,
201
+ unit: "W"
191
202
  }
192
203
  ];
193
204
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/hubControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const hubControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 900, // Hyper, AC2400, Solarflow800 = MEHR, sonst 900\n step: 100, // Hyper, AC2400, Solarflow800 = 1, sonst 100\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const hubControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 900, // Hyper, AC2400, Solarflow800 = MEHR, sonst 900\n step: 100, // Hyper, AC2400, Solarflow800 = 1, sonst 100\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -177,6 +177,26 @@ const hyperControlStates = [
177
177
  role: "indicator.lowbat",
178
178
  read: true,
179
179
  write: false
180
+ },
181
+ {
182
+ nameDe: "Smart Mode",
183
+ nameEn: "Smart Mode",
184
+ type: "boolean",
185
+ title: "smartMode",
186
+ role: "switch",
187
+ read: true,
188
+ write: true
189
+ },
190
+ {
191
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
192
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
193
+ type: "number",
194
+ title: "setDeviceAutomationLimit",
195
+ role: "value.power",
196
+ read: true,
197
+ write: true,
198
+ min: 0,
199
+ unit: "W"
180
200
  }
181
201
  ];
182
202
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/hyperControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const hyperControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 1200,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const hyperControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 1200,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -178,6 +178,26 @@ const solarflow800ControlStates = [
178
178
  role: "indicator.lowbat",
179
179
  read: true,
180
180
  write: false
181
+ },
182
+ {
183
+ nameDe: "Smart Mode",
184
+ nameEn: "Smart Mode",
185
+ type: "boolean",
186
+ title: "smartMode",
187
+ role: "switch",
188
+ read: true,
189
+ write: true
190
+ },
191
+ {
192
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
193
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
194
+ type: "number",
195
+ title: "setDeviceAutomationLimit",
196
+ role: "value.power",
197
+ read: true,
198
+ write: true,
199
+ min: 0,
200
+ unit: "W"
181
201
  }
182
202
  ];
183
203
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/solarflow800ControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const solarflow800ControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const solarflow800ControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,4BAA+C;AAAA,EAC1D;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;",
6
6
  "names": []
7
7
  }
@@ -178,6 +178,26 @@ const solarflow800ProControlStates = [
178
178
  role: "indicator.lowbat",
179
179
  read: true,
180
180
  write: false
181
+ },
182
+ {
183
+ nameDe: "Smart Mode",
184
+ nameEn: "Smart Mode",
185
+ type: "boolean",
186
+ title: "smartMode",
187
+ role: "switch",
188
+ read: true,
189
+ write: true
190
+ },
191
+ {
192
+ nameDe: "Ger\xE4te Automation Limit (negativ = Laden, positiv = Einspeisen)",
193
+ nameEn: "Device Automation Limit (negative = charging, positive = feed in)",
194
+ type: "number",
195
+ title: "setDeviceAutomationLimit",
196
+ role: "value.power",
197
+ read: true,
198
+ write: true,
199
+ min: 0,
200
+ unit: "W"
181
201
  }
182
202
  ];
183
203
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/constants/solarflow800ProControlStates.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const solarflow800ProControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 1000,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n];\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\nimport { ISolarflowState } from \"../models/ISolarflowState\";\n\nexport const solarflow800ProControlStates: ISolarflowState[] = [\n {\n nameDe: \"Energieplan-Einstellung\",\n nameEn: \"Energyplan\",\n type: \"number\",\n title: \"autoModel\",\n role: \"value\",\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 6: \"Battery priority mode\",\n 7: \"Appointment mode\",\n 8: \"Smart Matching Mode\",\n 9: \"Smart CT Mode\",\n 10: \"Electricity Price\",\n },\n },\n {\n nameDe: \"Setzen des Lade-Limits\",\n nameEn: \"Control of the charge limit\",\n title: \"chargeLimit\",\n type: \"number\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 40,\n max: 100,\n unit: \"%\",\n },\n {\n nameDe: \"Setzen des Entlade-Limits\",\n nameEn: \"Control of the discharge limit\",\n type: \"number\",\n title: \"dischargeLimit\",\n role: \"value.battery\",\n read: true,\n write: true,\n min: 0,\n max: 50,\n unit: \"%\",\n },\n {\n nameDe: \"Sounds am HUB aktivieren\",\n nameEn: \"Enable buzzer on HUB\",\n type: \"boolean\",\n title: \"buzzerSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Einzustellende Ausgangsleistung\",\n nameEn: \"Control of the output limit\",\n type: \"number\",\n title: \"setOutputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 800,\n unit: \"W\",\n },\n {\n nameDe: \"Einstellung des Bypass Modus\",\n nameEn: \"Setting of bypass mode\",\n type: \"number\",\n title: \"passMode\",\n role: \"switch\",\n read: true,\n write: true,\n states: {\n 0: \"Automatic\",\n 1: \"Always off\",\n 2: \"Always on\",\n },\n },\n {\n nameDe: \"Am n\u00E4chsten Tag Bypass auf Automatik\",\n nameEn: \"Automatic recovery of bypass\",\n type: \"boolean\",\n title: \"autoRecover\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Verhalten wenn minimale reservierte Ladung erreicht\",\n nameEn: \"Behavior when minimum reserved charge is reached\",\n type: \"number\",\n title: \"hubState\",\n role: \"value\",\n read: true,\n write: true,\n min: 0,\n max: 1,\n states: {\n 0: \"Stop output and standby\",\n 1: \"Stop output and shut down\",\n },\n },\n {\n nameDe: \"Einzustellende Eingangsleistung\",\n nameEn: \"Control of the input limit\",\n type: \"number\",\n title: \"setInputLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n max: 1000,\n step: 1,\n unit: \"W\",\n },\n {\n nameDe: \"AC Schalter\",\n nameEn: \"AC switch\",\n type: \"boolean\",\n title: \"acSwitch\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"AC Modus\",\n nameEn: \"AC mode\",\n type: \"number\",\n title: \"acMode\",\n role: \"switch\",\n min: 0,\n max: 2,\n step: 1,\n read: true,\n write: true,\n states: {\n 0: \"Nothing\",\n 1: \"AC input mode\",\n 2: \"AC output mode\",\n },\n },\n {\n nameDe: \"Niedrige Batteriespannung erkannt\",\n nameEn: \"Low Voltage on battery detected\",\n type: \"boolean\",\n title: \"lowVoltageBlock\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Auf 100% laden, Akku muss kalibriert werden!\",\n nameEn: \"Charge to 100%, battery needs to be calibrated\",\n type: \"boolean\",\n title: \"fullChargeNeeded\",\n role: \"indicator.lowbat\",\n read: true,\n write: false,\n },\n {\n nameDe: \"Smart Mode\",\n nameEn: \"Smart Mode\",\n type: \"boolean\",\n title: \"smartMode\",\n role: \"switch\",\n read: true,\n write: true,\n },\n {\n nameDe: \"Ger\u00E4te Automation Limit (negativ = Laden, positiv = Einspeisen)\",\n nameEn: \"Device Automation Limit (negative = charging, positive = feed in)\",\n type: \"number\",\n title: \"setDeviceAutomationLimit\",\n role: \"value.power\",\n read: true,\n write: true,\n min: 0,\n unit: \"W\",\n },\n];\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGO,MAAM,+BAAkD;AAAA,EAC7D;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,IAAI;AAAA,IACN;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,EACR;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,KAAK;AAAA,IACL,KAAK;AAAA,IACL,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,IACP,MAAM;AAAA,IACN,MAAM;AAAA,IACN,OAAO;AAAA,IACP,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AACF;",
6
6
  "names": []
7
7
  }
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var helpers_exports = {};
20
20
  __export(helpers_exports, {
21
+ getMinAndMaxOutputLimitForProductKey: () => getMinAndMaxOutputLimitForProductKey,
21
22
  getProductNameFromProductKey: () => getProductNameFromProductKey
22
23
  });
23
24
  module.exports = __toCommonJS(helpers_exports);
@@ -43,8 +44,63 @@ const getProductNameFromProductKey = (productKey) => {
43
44
  return "";
44
45
  }
45
46
  };
47
+ const getMinAndMaxOutputLimitForProductKey = (productKey, limit) => {
48
+ const productName = getProductNameFromProductKey(productKey);
49
+ if (limit < 100 && limit != 90 && limit != 60 && limit != 30 && limit != 0) {
50
+ if (limit < 100 && limit > 90 && !(productName == null ? void 0 : productName.includes("hyper")) && !(productName == null ? void 0 : productName.includes("2400 ac")) && !(productName == null ? void 0 : productName.includes("solarflow 800"))) {
51
+ limit = 90;
52
+ } else if (limit > 60 && limit < 90 && !(productName == null ? void 0 : productName.includes("hyper")) && !(productName == null ? void 0 : productName.includes("2400 ac")) && !(productName == null ? void 0 : productName.includes("solarflow 800"))) {
53
+ limit = 60;
54
+ } else if (limit > 30 && limit < 60 && !(productName == null ? void 0 : productName.includes("hyper")) && !(productName == null ? void 0 : productName.includes("2400 ac")) && !(productName == null ? void 0 : productName.includes("solarflow 800"))) {
55
+ limit = 30;
56
+ } else if (limit < 30) {
57
+ limit = 30;
58
+ }
59
+ }
60
+ switch (productName == null ? void 0 : productName.toLocaleLowerCase()) {
61
+ case "hyper 2000":
62
+ if (limit > 1200) {
63
+ limit = 1200;
64
+ }
65
+ break;
66
+ case "solarflow 800":
67
+ if (limit > 800) {
68
+ limit = 800;
69
+ }
70
+ break;
71
+ case "solarflow2.0":
72
+ if (limit > 1200) {
73
+ limit = 1200;
74
+ }
75
+ break;
76
+ case "solarflow hub 2000":
77
+ if (limit > 1200) {
78
+ limit = 1200;
79
+ }
80
+ break;
81
+ case "solarflow aio zy":
82
+ if (limit > 1200) {
83
+ limit = 1200;
84
+ }
85
+ break;
86
+ case "solarflow 800 pro":
87
+ if (limit > 800) {
88
+ limit = 800;
89
+ }
90
+ break;
91
+ case "solarflow 2400 ac":
92
+ if (limit > 2400) {
93
+ limit = 2400;
94
+ }
95
+ break;
96
+ default:
97
+ break;
98
+ }
99
+ return limit;
100
+ };
46
101
  // Annotate the CommonJS export names for ESM import in node:
47
102
  0 && (module.exports = {
103
+ getMinAndMaxOutputLimitForProductKey,
48
104
  getProductNameFromProductKey
49
105
  });
50
106
  //# sourceMappingURL=helpers.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/helpers/helpers.ts"],
4
- "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\n\nexport const getProductNameFromProductKey = (productKey: string): string => {\n switch (productKey.toLowerCase()) {\n case \"73bktv\":\n return \"solarflow2.0\";\n case \"a8yh63\":\n return \"solarflow hub 2000\";\n case \"ywf7hv\":\n return \"solarflow aio zy\";\n case \"ja72u0ha\":\n return \"hyper 2000\";\n case \"gda3tb\":\n return \"hyper 2000\";\n case \"8bm93h\":\n return \"ace 1500\";\n case \"bc8b7f\":\n return \"solarflow 2400 ac\";\n case \"b1nhmc\":\n return \"solarflow 800\";\n default:\n return \"\";\n }\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,+BAA+B,CAAC,eAA+B;AAC1E,UAAQ,WAAW,YAAY,GAAG;AAAA,IAChC,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;",
4
+ "sourcesContent": ["/* eslint-disable @typescript-eslint/indent */\n\nexport const getProductNameFromProductKey = (productKey: string): string => {\n switch (productKey.toLowerCase()) {\n case \"73bktv\":\n return \"solarflow2.0\";\n case \"a8yh63\":\n return \"solarflow hub 2000\";\n case \"ywf7hv\":\n return \"solarflow aio zy\";\n case \"ja72u0ha\":\n return \"hyper 2000\";\n case \"gda3tb\":\n return \"hyper 2000\";\n case \"8bm93h\":\n return \"ace 1500\";\n case \"bc8b7f\":\n return \"solarflow 2400 ac\";\n case \"b1nhmc\":\n return \"solarflow 800\";\n default:\n return \"\";\n }\n};\n\nexport const getMinAndMaxOutputLimitForProductKey = (\n productKey: string,\n limit: number\n): number => {\n const productName = getProductNameFromProductKey(productKey);\n\n if (limit < 100 && limit != 90 && limit != 60 && limit != 30 && limit != 0) {\n // NUR Solarflow HUB: Das Limit kann unter 100 nur in 30er Schritten gesetzt werden, dH. 30/60/90/100, wir rechnen das also um\n if (\n limit < 100 &&\n limit > 90 &&\n !productName?.includes(\"hyper\") &&\n !productName?.includes(\"2400 ac\") &&\n !productName?.includes(\"solarflow 800\")\n ) {\n limit = 90;\n } else if (\n limit > 60 &&\n limit < 90 &&\n !productName?.includes(\"hyper\") &&\n !productName?.includes(\"2400 ac\") &&\n !productName?.includes(\"solarflow 800\")\n ) {\n limit = 60;\n } else if (\n limit > 30 &&\n limit < 60 &&\n !productName?.includes(\"hyper\") &&\n !productName?.includes(\"2400 ac\") &&\n !productName?.includes(\"solarflow 800\")\n ) {\n limit = 30;\n } else if (limit < 30) {\n limit = 30;\n }\n }\n\n switch (productName?.toLocaleLowerCase()) {\n case \"hyper 2000\":\n if (limit > 1200) {\n limit = 1200;\n }\n break;\n case \"solarflow 800\":\n if (limit > 800) {\n limit = 800;\n }\n break;\n case \"solarflow2.0\":\n if (limit > 1200) {\n limit = 1200;\n }\n break;\n case \"solarflow hub 2000\":\n if (limit > 1200) {\n limit = 1200;\n }\n break;\n case \"solarflow aio zy\":\n if (limit > 1200) {\n limit = 1200;\n }\n break;\n case \"solarflow 800 pro\":\n if (limit > 800) {\n limit = 800;\n }\n break;\n case \"solarflow 2400 ac\":\n if (limit > 2400) {\n limit = 2400;\n }\n break;\n default:\n break;\n }\n\n return limit;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,+BAA+B,CAAC,eAA+B;AAC1E,UAAQ,WAAW,YAAY,GAAG;AAAA,IAChC,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO;AAAA,EACX;AACF;AAEO,MAAM,uCAAuC,CAClD,YACA,UACW;AACX,QAAM,cAAc,6BAA6B,UAAU;AAE3D,MAAI,QAAQ,OAAO,SAAS,MAAM,SAAS,MAAM,SAAS,MAAM,SAAS,GAAG;AAE1E,QACE,QAAQ,OACR,QAAQ,MACR,EAAC,2CAAa,SAAS,aACvB,EAAC,2CAAa,SAAS,eACvB,EAAC,2CAAa,SAAS,mBACvB;AACA,cAAQ;AAAA,IACV,WACE,QAAQ,MACR,QAAQ,MACR,EAAC,2CAAa,SAAS,aACvB,EAAC,2CAAa,SAAS,eACvB,EAAC,2CAAa,SAAS,mBACvB;AACA,cAAQ;AAAA,IACV,WACE,QAAQ,MACR,QAAQ,MACR,EAAC,2CAAa,SAAS,aACvB,EAAC,2CAAa,SAAS,eACvB,EAAC,2CAAa,SAAS,mBACvB;AACA,cAAQ;AAAA,IACV,WAAW,QAAQ,IAAI;AACrB,cAAQ;AAAA,IACV;AAAA,EACF;AAEA,UAAQ,2CAAa,qBAAqB;AAAA,IACxC,KAAK;AACH,UAAI,QAAQ,MAAM;AAChB,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,KAAK;AACf,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,MAAM;AAChB,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,MAAM;AAChB,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,MAAM;AAChB,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,KAAK;AACf,gBAAQ;AAAA,MACV;AACA;AAAA,IACF,KAAK;AACH,UAAI,QAAQ,MAAM;AAChB,gBAAQ;AAAA,MACV;AACA;AAAA,IACF;AACE;AAAA,EACJ;AAEA,SAAO;AACT;",
6
6
  "names": []
7
7
  }
package/build/main.js CHANGED
@@ -53,6 +53,7 @@ class ZendureSolarflow extends utils.Adapter {
53
53
  this.deviceList = [];
54
54
  this.paths = void 0;
55
55
  this.pack2Devices = [];
56
+ this.msgCounter = 7e5;
56
57
  this.lastLogin = void 0;
57
58
  this.mqttClient = void 0;
58
59
  this.resetValuesJob = void 0;
@@ -354,6 +355,14 @@ class ZendureSolarflow extends utils.Adapter {
354
355
  state.val ? true : false
355
356
  );
356
357
  break;
358
+ case "setDeviceAutomationLimit":
359
+ (0, import_mqttService.setDeviceAutomationLimit)(
360
+ this,
361
+ productKey,
362
+ deviceKey,
363
+ Number(state.val)
364
+ );
365
+ break;
357
366
  }
358
367
  break;
359
368
  default: