Skip to content

Commit

Permalink
idle_periods_2 working
Browse files Browse the repository at this point in the history
  • Loading branch information
git-kick committed Feb 23, 2025
1 parent 33de26c commit 074ab2b
Show file tree
Hide file tree
Showing 17 changed files with 505 additions and 177 deletions.
52 changes: 44 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,10 @@ Here is what to configure when creating a new instance of the adapter. Settings
<tr>
<td>Checkbox for each E3/DC namespace</td>
<td>Data will be requested only for checked namespaces.</td>
</tr>
<tr>
<td>Max. index for initialisation of components</td>
<td>Adjust max. index as needed, e.g. if you have more batteries. This is used for initial detection of components. Exception: the PERIOD2 count says how many version 2 PERIOD objects will be created at least. NOTE that index starts with 0,1,..., i.e. if you have four batteries, max. index 3 is appropriate.</td>
</tr>
<td>Checkbox for Lazy SetState()</td>
<td>If checked (default), the adapter will write to ioBroker States only when values have changed - this reduces workload, better for smaller hardware. Uncheck this option and the adapter will call setState() after every polling iterval, also for unchanged values - better if you have an application depending on regular State.ts updates. </td>
Expand Down Expand Up @@ -311,31 +315,61 @@ The RSCP protocol groups *Tags* (i.e. states or values) into *Namespaces* (i.e.
<td>EMS (1)</td>
<td>IDLE_PERIOD_ACTIVE</td>
<td>boolean</td>
<td>(de-)activate idle period (2).</td>
<td>(de-)activate idle period.</td>
</tr>
<tr>
<td>EMS (1)</td>
<td>START_HOUR</td>
<td>number</td>
<td>Start hour of idle period (2).</td>
<td>Start hour of idle period.</td>
</tr>
<tr>
<td>EMS (1)</td>
<td>START_MINUTE</td>
<td>number</td>
<td>Start minute of idle period (2).</td>
<td>Start minute of idle period.</td>
</tr>
<tr>
<td>EMS (1)</td>
<td>END_HOUR</td>
<td>number</td>
<td>End hour of idle period (2).</td>
<td>End hour of idle period.</td>
</tr>
<tr>
<td>EMS (1)</td>
<td>END_MINUTE</td>
<td>number</td>
<td>End minute of idle period (2).</td>
<td>End minute of idle period.</td>
</tr>
<tr>
<td>EMS (2)</td>
<td>IDLE_PERIOD_TYPE</td>
<td>number</td>
<td>(V2) 0 = pause charging, 1 = pause discharging.</td>
</tr>
<tr>
<td>EMS (2)</td>
<td>PERIOD_ACTIVE</td>
<td>boolean</td>
<td>(V2) (de-)activate idle period.</td>
</tr>
<tr>
<td>EMS (2)</td>
<td>PERIOD_START</td>
<td>string</td>
<td>(V2) idle period begins at time-of-day like "12:30:00".</td>
</tr>
<tr>
<td>EMS (2)</td>
<td>PERIOD_STOP</td>
<td>string</td>
<td>(V2) idle period ends at time-of-day like "21:00:00".</td>
</tr>
<tr>
<td>EMS (2)</td>
<td>PERIOD_WEEKDAYS</td>
<td>string</td>
<td>(V2) idle period is enabled on weekdays like "135" where 1 = Monday, 2 = Tuesday, ... 7 = Sunday.</td>
</tr>
<tr>
<td>EP</td>
Expand Down Expand Up @@ -405,9 +439,9 @@ The RSCP protocol groups *Tags* (i.e. states or values) into *Namespaces* (i.e.
</tr>
</table>

Note (1): Full path is EMS.IDLE_PERIODS_(DIS)CHARGE.&lt;day-of-week&gt; - e.g. "EMS.IDLE_PERIODS_CHARGE.00-Monday". Changes are only sent "tuple sendig delay" after the last change.
Note (1): Full path is EMS.IDLE_PERIODS_(DIS)CHARGE.&lt;day-of-week&gt; - e.g. "EMS.IDLE_PERIODS_CHARGE.00-Monday". Changes are only sent "tuple sending delay" after the last change.

Note (2): Note that all IDLE_PERIOD tags are written only after the SET_IDLE_PERIOD delay, as defined in the configuration. The delay is restarted upon every change within one IDLE_PERIOD day.
Note (2): Full path is EMS.IDLE_PERIODS_2.&lt;counter&gt; - e.g. "EMS.IDLE_PERIODS_2.07.PERIOD_START". Changes are only sent "tuple sending delay" after the last change. (V2) means this is a tag introduced in 2024 for the new PERIODS_2 construct.

Note (3): Full path is DB.HISTORY_DATA_{DAY,WEEK,MONTH,YEAR} - e.g. "DB.HISTORY_DATA_DAY". Changes are only sent "tuple sendig delay" after the last change.

Expand Down Expand Up @@ -467,9 +501,11 @@ Here is a sample script for charge limit control - it is not meant for as-is usa
(git-kick)
* New RscpTags.json: added new tags from 01-2024 tag list.
**But keep** ...EMERGENCY_POWER_TEST... naming despite it changed to ...EMERGENCYPOWER_TEST... in the new tag-list (this affects four tags).
* Fixed [Issue #236](https://github.com/git-kick/ioBroker.e3dc-rscp/issues/236) - added handling for version 2 PERIODs.
* New instance settings for max. number of BAT/PVI/PM/PERIOD - so everybody who has e.g. 6 batteries or 3 power inverters can now adjust the detection range for his own setup. This fixes [Issue #249](https://github.com/git-kick/ioBroker.e3dc-rscp/issues/249)
* Fixed [Issue #241](https://github.com/git-kick/ioBroker.e3dc-rscp/issues/241) - modified PM index detection so that discountinuous index sets are handled correctly, like ( 0, 1, 3, 6 ).
* Fixed [Issue #249](https://github.com/git-kick/ioBroker.e3dc-rscp/issues/249) - increased BAT polling range to 0..3, i.e. max. four BATs (instead of two).
* Fixed E524, E525, S526 dev dependencies.
* Enhanced max. index handling to produce less debug log messages. (Introduced notIndexIds for non-index counts.)

### 1.3.1

Expand Down
23 changes: 14 additions & 9 deletions admin/i18n/de/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -162,11 +162,11 @@
"HISTORY_DATA_WEEK": "Daten einer Woche",
"HISTORY_DATA_YEAR": "Daten eines Jahres",
"HW_VERSION": "Hardware-Version",
"IDLE_PERIOD_ACTIVE": "Ruhezeit aktiv",
"IDLE_PERIOD_DAY": "Ruhezeit Tag",
"IDLE_PERIOD_HOUR": "Ruhezeit Stunde",
"IDLE_PERIOD_MINUTE": "Ruhezeit Minute",
"IDLE_PERIOD_TYPE": "Ruhezeit Typ",
"IDLE_PERIOD_ACTIVE": "Sperrzeit aktiv",
"IDLE_PERIOD_DAY": "Sperrzeit Tag",
"IDLE_PERIOD_HOUR": "Sperrzeit Stunde",
"IDLE_PERIOD_MINUTE": "Sperrzeit Minute",
"IDLE_PERIOD_TYPE": "Sperrzeit Typ",
"INFO": "Information",
"INODES": "I-nodes gesamt",
"INODES_AVAILABLE": "I-nodes frei",
Expand Down Expand Up @@ -213,10 +213,11 @@
"PARAM_TIME_LAST_EMPTY": "Batterie zuletzt leer",
"PARAM_TIME_LAST_FULL": "Batterie zuletzt voll",
"PARAM_TIME_TO_RETRY": "Zeit bis zur Wiederholung",
"PERIOD_ACTIVE": "Die Ruhezeit ist aktiviert",
"PERIOD_START": "Beginn der Ruhezeit",
"PERIOD_STOP": "Ende der Ruhezeit",
"PERIOD_WEEKDAYS": "Wochentage, denen die Ruhezeit zugeordnet ist",
"PERIOD_ACTIVE": "Die Sperrzeit ist aktiviert",
"PERIOD_DESCRIPTION": "Beschreibung für die Sperrzeit ",
"PERIOD_START": "Beginn der Sperrzeit",
"PERIOD_STOP": "Ende der Sperrzeit",
"PERIOD_WEEKDAYS": "Wochentage, denen die Sperrzeit zugeordnet ist",
"PM": "Leistungsmesser",
"PM_0_POWER": "PM0 Energie",
"PM_1_POWER": "PM1 Energie",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Maximale PV-Leistung",
"maxStartChargePower": "Maximale anfängliche Ladeleistung",
"maxStartDischargePower": "Maximale anfängliche Entladeleistung",
"maxindex_bat": "BAT (Batterien)",
"maxindex_pm": "PM (Leistungsmesser)",
"maxindex_pvi": "PVI (Wechselrichter)",
"minStartChargePower": "Minimale anfängliche Ladeleistung",
"minStartDischargePower": "Minimum anfängliche Entladeleistung",
"options": "Einstellungen",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Anfängliche Entladeleistung Standard",
"title_connection": "E3/DC-Verbindung",
"title_intervals": "Zeitintervalle für Senden",
"title_maxindex": "Max. Index zur Initialisierung der Komponenten - erster Index ist 0 (Null)",
"title_misc": "Verschiedenes",
"title_namespaces": "Auswahl der E3/DC-Namespaces, für die Daten abgefragt werden",
"title_polling_intervals": "Länge der Abfrageintervalle",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/en/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Latest battery full timestamp",
"PARAM_TIME_TO_RETRY": "Time to retry",
"PERIOD_ACTIVE": "Idle period is enabled",
"PERIOD_DESCRIPTION": "Idle period description",
"PERIOD_START": "Idle period start time of day",
"PERIOD_STOP": "Idle period end time of day",
"PERIOD_WEEKDAYS": "Weekdays where idle period is assigned",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Maximum PV power",
"maxStartChargePower": "Maximum start charge power",
"maxStartDischargePower": "Maximum start discharge power",
"maxindex_bat": "BAT (batteries)",
"maxindex_pm": "PM (power meters)",
"maxindex_pvi": "PVI (power inverters)",
"minStartChargePower": "Minimum start charge power",
"minStartDischargePower": "Minimum start discharge power",
"options": "Options",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Start discharge default",
"title_connection": "Setup E3/DC connection",
"title_intervals": "Set time intervals for sending",
"title_maxindex": "Max. index for initialisation of components - first index is 0 (zero)",
"title_misc": "Miscellaneous",
"title_namespaces": "Select E3/DC namespaces to query data for",
"title_polling_intervals": "Set data polling intervals",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/es/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Última marca de tiempo completa de la batería",
"PARAM_TIME_TO_RETRY": "Es hora de volver a intentarlo",
"PERIOD_ACTIVE": "El período de inactividad está habilitado",
"PERIOD_DESCRIPTION": "Descripción del período de inactividad",
"PERIOD_START": "Período de inactividad Hora de inicio del día",
"PERIOD_STOP": "Período de inactividad Hora de finalización del día",
"PERIOD_WEEKDAYS": "De lunes a viernes donde se asigna el período de inactividad",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Potencia máxima de descarga FCB [W]",
"maxStartChargePower": "Potencia máxima de carga de arranque [W]",
"maxStartDischargePower": "Potencia máxima de descarga de arranque [W]",
"maxindex_bat": "Bat (baterías)",
"maxindex_pm": "Index2 (períodos de la versión 2)",
"maxindex_pvi": "PVI (inversores de potencia)",
"minStartChargePower": "Potencia mínima de carga de arranque [W]",
"minStartDischargePower": "Potencia mínima de descarga de arranque [W]",
"options": "Opcion",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Inicio de descarga por defecto [W]",
"title_connection": "Configuración de la conexión E3 / DC",
"title_intervals": "Establecer intervalos de tiempo para la consulta y reenvío",
"title_maxindex": "Max. Números de componentes (utilizados para la inicialización)",
"title_misc": "Misceláneas",
"title_namespaces": "Seleccione espacios de nombres E3/DC para consultar los datos",
"title_polling_intervals": "Ajustar los intervalos de sondeo de datos",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/fr/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Dernière batterie horodatage complet",
"PARAM_TIME_TO_RETRY": "Il est temps de réessayer",
"PERIOD_ACTIVE": "La période d'inactivité est activée",
"PERIOD_DESCRIPTION": "Description de la période de ralenti",
"PERIOD_START": "Heure de début de la période de la période de la journée",
"PERIOD_STOP": "Heure de fin de la période de la période",
"PERIOD_WEEKDAYS": "En semaine où la période inactive est attribuée",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Puissance de décharge maximale FCB [W]",
"maxStartChargePower": "Puissance maximale de charge de démarrage [W]",
"maxStartDischargePower": "Puissance maximale de décharge de démarrage [W]",
"maxindex_bat": "Chauve-souris (batteries)",
"maxindex_pm": "Index2 (version 2 périodes)",
"maxindex_pvi": "PVI (onduleur de puissance)",
"minStartChargePower": "Puissance minimale de charge de démarrage [W]",
"minStartDischargePower": "Puissance de décharge minimale de démarrage [W]",
"options": "Option",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Démarrer la décharge par défaut [W]",
"title_connection": "Configuration de la connexion E3 / DC",
"title_intervals": "Définir des intervalles de temps pour la requête et le renvoi",
"title_maxindex": "Max. Nombres de composants (utilisés pour l'initialisation)",
"title_misc": "Divers",
"title_namespaces": "Sélectionnez les espaces de noms E3/DC pour interroger les données",
"title_polling_intervals": "Affiner les intervalles d'interrogation des données",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/it/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Ultima batteria timestamp completo",
"PARAM_TIME_TO_RETRY": "È ora di riprovare",
"PERIOD_ACTIVE": "Il periodo inattivo è abilitato",
"PERIOD_DESCRIPTION": "Descrizione del periodo inattivo",
"PERIOD_START": "Tempo di inizio del periodo di inattività",
"PERIOD_STOP": "Periodo di fine periodo del giorno del giorno",
"PERIOD_WEEKDAYS": "Giorni feriali in cui è assegnato il periodo inattivo",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Potenza massima di scarica FCB [W]",
"maxStartChargePower": "Potenza massima di carica iniziale [W]",
"maxStartDischargePower": "Potenza massima di scarico iniziale [W]",
"maxindex_bat": "Pipistrello (batterie)",
"maxindex_pm": "INDICE2 (versione della versione 2)",
"maxindex_pvi": "PVI (Power Inverter)",
"minStartChargePower": "Potenza minima di carica iniziale [W]",
"minStartDischargePower": "Potenza minima di scarico iniziale [W]",
"options": "Opzioni",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Avvio scarico predefinito [W]",
"title_connection": "Configurazione connessione E3 / DC",
"title_intervals": "Impostare intervalli di tempo per la query e la rispedizione",
"title_maxindex": "Max. Numeri di componenti (utilizzati per l'inizializzazione)",
"title_misc": "Varie",
"title_namespaces": "Selezionare gli spazi dei nomi E3 / DC per interrogare i dati",
"title_polling_intervals": "Ottimizzare gli intervalli di polling dei dati",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/nl/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Laatste batterij volledige tijdstempel",
"PARAM_TIME_TO_RETRY": "Tijd om het opnieuw te proberen",
"PERIOD_ACTIVE": "Inactieve periode is ingeschakeld",
"PERIOD_DESCRIPTION": "Inactieve periode beschrijving",
"PERIOD_START": "Inactieve periode starttijd van de dag",
"PERIOD_STOP": "Inactieve periode eindtijd van de dag",
"PERIOD_WEEKDAYS": "Weekdagen waar de inactieve periode wordt toegewezen",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Maximaal FCB-ontlaadvermogen [W]",
"maxStartChargePower": "Maximaal startvermogen [W]",
"maxStartDischargePower": "Maximaal startontladingsvermogen [W]",
"maxindex_bat": "Bat (batterijen)",
"maxindex_pm": "Index2 (versie 2 periodes)",
"maxindex_pvi": "PVI (Power Inverters)",
"minStartChargePower": "Minimaal startladingsvermogen [W]",
"minStartDischargePower": "Minimaal startontladingsvermogen [W]",
"options": "Optie",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Begin ontlading standaard [W]",
"title_connection": "E3/DC verbinding instellen",
"title_intervals": "Tijdintervallen instellen voor opvragen en opnieuw verzenden",
"title_maxindex": "Max. aantal componenten (gebruikt voor initialisatie)",
"title_misc": "Gemengd",
"title_namespaces": "Selecteer E3 / DC-naamruimten om gegevens op te vragen",
"title_polling_intervals": "Fijnafstellen van data polling intervallen",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/pl/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Najnowszy pełny znacznik czasu baterii",
"PARAM_TIME_TO_RETRY": "Czas spróbować ponownie",
"PERIOD_ACTIVE": "Okres bezczynności jest włączony",
"PERIOD_DESCRIPTION": "Opis bezczynności",
"PERIOD_START": "Idle Opieku W godzinach rozpoczęcia dnia",
"PERIOD_STOP": "Idle Okres kończy czas dnia",
"PERIOD_WEEKDAYS": "Dni powszednie, w których przypisany jest okres bezczynności",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Maksymalna moc rozładowania FCB [W]",
"maxStartChargePower": "Maksymalna moc ładowania rozruchowego [W]",
"maxStartDischargePower": "Maksymalna moc rozruchu [W]",
"maxindex_bat": "Nietoperz (baterie)",
"maxindex_pm": "Indeks2 (wersja 2 okresy)",
"maxindex_pvi": "PVI (falowniki energetyczne)",
"minStartChargePower": "Minimalna moc ładowania rozruchowego [W]",
"minStartDischargePower": "Minimalna moc rozruchu [W]",
"options": "Opcje",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Start rozładowanie domyślne [W]",
"title_connection": "Konfiguracja połączenia E3 / DC",
"title_intervals": "Ustawianie przedziałów czasowych dla zapytania i ponownego wysyłania",
"title_maxindex": "Max. liczba komponentów (używana do inicjalizacji)",
"title_misc": "Różnorodny",
"title_namespaces": "Wybierz przestrzenie nazw E3 / DC do odpytywania danych",
"title_polling_intervals": "Dostrajanie interwałów ankietowych danych",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/pt/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Mais recente bateria full timestamp",
"PARAM_TIME_TO_RETRY": "Hora de tentar novamente",
"PERIOD_ACTIVE": "Período ocioso está ativado",
"PERIOD_DESCRIPTION": "Descrição do período ocioso",
"PERIOD_START": "Período ocioso Hora de início do dia",
"PERIOD_STOP": "Período ocioso Hora final do dia",
"PERIOD_WEEKDAYS": "Dias da semana, onde o período ocioso é atribuído",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Potência máxima de descarga FCB [W]",
"maxStartChargePower": "Potência máxima de arranque [W]",
"maxStartDischargePower": "Potência máxima de descarga no arranque [W]",
"maxindex_bat": "Morcego (baterias)",
"maxindex_pm": "Index2 (versão 2 períodos)",
"maxindex_pvi": "PVI (inversores de energia)",
"minStartChargePower": "Potência mínima de arranque [W]",
"minStartDischargePower": "Potência mínima de descarga no arranque [W]",
"options": "Opcao",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Iniciar a predefinição da descarga [W]",
"title_connection": "Configurar a ligação E3 / DC",
"title_intervals": "Definir os intervalos de tempo para a pesquisa e a revenda",
"title_maxindex": "Máx. Números de componentes (usados ​​para inicialização)",
"title_misc": "Diversos",
"title_namespaces": "Seleccione os espaços de nomes E3/DC para onde procurar os dados",
"title_polling_intervals": "Intervalos de sondagem de dados de afinação fina",
Expand Down
5 changes: 5 additions & 0 deletions admin/i18n/ru/translations.json
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,7 @@
"PARAM_TIME_LAST_FULL": "Последняя полная временная метка батареи",
"PARAM_TIME_TO_RETRY": "Время повторить попытку",
"PERIOD_ACTIVE": "Период холостого хода включен",
"PERIOD_DESCRIPTION": "ОПИСАНИЕ ПЕРИОДА",
"PERIOD_START": "Период начала периода",
"PERIOD_STOP": "Периодический период времени дня",
"PERIOD_WEEKDAYS": "Будни, где простальный период назначается",
Expand Down Expand Up @@ -347,6 +348,9 @@
"maxPvPower": "Максимальная мощность разряда FCB [Вт]",
"maxStartChargePower": "Максимальная начальная мощность заряда [Вт]",
"maxStartDischargePower": "Максимальная начальная мощность разряда [Вт]",
"maxindex_bat": "Летучая мышь (батареи)",
"maxindex_pm": "Index2 (версия 2 периоды)",
"maxindex_pvi": "PVI (Power Inverters)",
"minStartChargePower": "Минимальная начальная мощность заряда [Вт]",
"minStartDischargePower": "Минимальная начальная мощность разряда [Вт]",
"options": "Опции",
Expand Down Expand Up @@ -375,6 +379,7 @@
"startDischargeDefault": "Начальная разрядка по умолчанию [Вт]",
"title_connection": "Настройка подключения E3/DC",
"title_intervals": "Установите временные интервалы для запроса и повторной отправки",
"title_maxindex": "Максимум количество компонентов (используется для инициализации)",
"title_misc": "Разнообразный",
"title_namespaces": "Выберите пространства имен E3/DC для запроса данных для",
"title_polling_intervals": "Точная настройка интервалов опроса данных",
Expand Down
Loading

0 comments on commit 074ab2b

Please sign in to comment.