diff --git a/ClimacontrolRegulator/form.json b/ClimacontrolRegulator/form.json index 25199b0..1e94c5b 100644 --- a/ClimacontrolRegulator/form.json +++ b/ClimacontrolRegulator/form.json @@ -44,6 +44,8 @@ "rowCount": 10, "add": true, "delete": true, + "onEdit": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", + "onAdd": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", "sort": { "column": "TemperatureValue", "direction": "ascending" diff --git a/ClimacontrolRegulator/locale.json b/ClimacontrolRegulator/locale.json index b540c53..9fc4a92 100644 --- a/ClimacontrolRegulator/locale.json +++ b/ClimacontrolRegulator/locale.json @@ -37,6 +37,7 @@ "Holiday/Party end": "Urlaub/Party Ende", "Time cannot be in the past": "Zeitpunkt kann nicht in der Vergangenheit liegen", "Time too far in the future": "Zeitpunkt zu weit in der Zukunft", + "Too many temperatures on schedule. Crop to 31 actions.": "Zu viele Temperaturen im Zeitplan. Auf 31 Aktionen reduziert.", "This module is free for non-commercial use,\r\nDonations in support of the author are accepted here:": "Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos,\r\nSchenkungen als Unterstützung für den Autor werden hier akzeptiert:" } } diff --git a/ClimacontrolRegulator/module.php b/ClimacontrolRegulator/module.php index e06fc9e..0948523 100644 --- a/ClimacontrolRegulator/module.php +++ b/ClimacontrolRegulator/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMHeatingDevice.php'; // HMBase Klasse diff --git a/DisplayStatusAnzeige/README.md b/DisplayStatusAnzeige/README.md index 1a74d9e..a67b685 100644 --- a/DisplayStatusAnzeige/README.md +++ b/DisplayStatusAnzeige/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/DisplayStatusAnzeige/module.php b/DisplayStatusAnzeige/module.php index 8338ddf..c90528b 100644 --- a/DisplayStatusAnzeige/module.php +++ b/DisplayStatusAnzeige/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/ExtendedConfigurator/README.md b/ExtendedConfigurator/README.md index 51a52dd..ab4fc0f 100644 --- a/ExtendedConfigurator/README.md +++ b/ExtendedConfigurator/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/ExtendedConfigurator/module.php b/ExtendedConfigurator/module.php index ac039f1..dddb047 100644 --- a/ExtendedConfigurator/module.php +++ b/ExtendedConfigurator/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse require_once __DIR__ . '/../libs/HMTypes.php'; // HMTypes Data diff --git a/HeatingDevice/form.json b/HeatingDevice/form.json index 7615799..3b7cd56 100644 --- a/HeatingDevice/form.json +++ b/HeatingDevice/form.json @@ -44,6 +44,8 @@ "rowCount": 10, "add": true, "delete": true, + "onEdit": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", + "onAdd": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", "sort": { "column": "TemperatureValue", "direction": "ascending" diff --git a/HeatingDevice/locale.json b/HeatingDevice/locale.json index 189c682..6cacd7f 100644 --- a/HeatingDevice/locale.json +++ b/HeatingDevice/locale.json @@ -53,6 +53,7 @@ "Button lock": "Tastensperre", "Device lock": "Gerätesperre", "Mode locked": "Modus gesperrt", + "Too many temperatures on schedule. Crop to 31 actions.": "Zu viele Temperaturen im Zeitplan. Auf 31 Aktionen reduziert.", "This module is free for non-commercial use,\r\nDonations in support of the author are accepted here:": "Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos,\r\nSchenkungen als Unterstützung für den Autor werden hier akzeptiert:" } } diff --git a/HeatingDevice/module.php b/HeatingDevice/module.php index e4b0b0e..2a8d60c 100644 --- a/HeatingDevice/module.php +++ b/HeatingDevice/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../HeatingGroup/module.php'; // HMBase Klasse diff --git a/HeatingGroup/form.json b/HeatingGroup/form.json index 50207ad..e6b71b1 100644 --- a/HeatingGroup/form.json +++ b/HeatingGroup/form.json @@ -50,6 +50,8 @@ "rowCount": 10, "add": true, "delete": true, + "onEdit": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", + "onAdd": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", "sort": { "column": "TemperatureValue", "direction": "ascending" diff --git a/HeatingGroup/locale.json b/HeatingGroup/locale.json index 189c682..6cacd7f 100644 --- a/HeatingGroup/locale.json +++ b/HeatingGroup/locale.json @@ -53,6 +53,7 @@ "Button lock": "Tastensperre", "Device lock": "Gerätesperre", "Mode locked": "Modus gesperrt", + "Too many temperatures on schedule. Crop to 31 actions.": "Zu viele Temperaturen im Zeitplan. Auf 31 Aktionen reduziert.", "This module is free for non-commercial use,\r\nDonations in support of the author are accepted here:": "Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos,\r\nSchenkungen als Unterstützung für den Autor werden hier akzeptiert:" } } diff --git a/HeatingGroup/module.php b/HeatingGroup/module.php index 2213103..4a46bcb 100644 --- a/HeatingGroup/module.php +++ b/HeatingGroup/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMHeatingDevice.php'; // HMBase Klasse diff --git a/HeatingGroupHmIP/form.json b/HeatingGroupHmIP/form.json index 88b66a5..8d0e46b 100644 --- a/HeatingGroupHmIP/form.json +++ b/HeatingGroupHmIP/form.json @@ -50,6 +50,8 @@ "rowCount": 10, "add": true, "delete": true, + "onEdit": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", + "onAdd": "foreach ($ScheduleTemps as $Temp){$Data[]=$Temp;} IPS_RequestAction($id,'EditScheduleTemps',json_encode($Data));", "sort": { "column": "TemperatureValue", "direction": "ascending" diff --git a/HeatingGroupHmIP/locale.json b/HeatingGroupHmIP/locale.json index 156d1e2..d785b5d 100644 --- a/HeatingGroupHmIP/locale.json +++ b/HeatingGroupHmIP/locale.json @@ -68,6 +68,7 @@ "Lowering temperature cooling": "Absenktemperatur kühlen", "Window open temperature": "Fenster offen Temperatur", " minutes": " Minuten", + "Too many temperatures on schedule. Crop to 31 actions.": "Zu viele Temperaturen im Zeitplan. Auf 31 Aktionen reduziert.", "This module is free for non-commercial use,\r\nDonations in support of the author are accepted here:": "Dieses Modul ist für die nicht kommerzielle Nutzung kostenlos,\r\nSchenkungen als Unterstützung für den Autor werden hier akzeptiert:" } } diff --git a/HeatingGroupHmIP/module.php b/HeatingGroupHmIP/module.php index c20aff8..9ba0700 100644 --- a/HeatingGroupHmIP/module.php +++ b/HeatingGroupHmIP/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMHeatingDevice.php'; // HMBase Klasse diff --git a/HomeMaticScript/README.md b/HomeMaticScript/README.md index ab54155..bfc992b 100644 --- a/HomeMaticScript/README.md +++ b/HomeMaticScript/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/HomeMaticScript/module.php b/HomeMaticScript/module.php index 7a41944..41fc6b2 100644 --- a/HomeMaticScript/module.php +++ b/HomeMaticScript/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; diff --git a/ParaInterface/module.php b/ParaInterface/module.php index c4b740a..20feda6 100644 --- a/ParaInterface/module.php +++ b/ParaInterface/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/PowerMeter/README.md b/PowerMeter/README.md index 9b228f5..0020263 100644 --- a/PowerMeter/README.md +++ b/PowerMeter/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/PowerMeter/module.php b/PowerMeter/module.php index 30dc9d7..71ff9c7 100644 --- a/PowerMeter/module.php +++ b/PowerMeter/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/Programme/README.md b/Programme/README.md index c36c94e..3da3539 100644 --- a/Programme/README.md +++ b/Programme/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/Programme/module.php b/Programme/module.php index d9d3ee4..c7d206b 100644 --- a/Programme/module.php +++ b/Programme/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/README.md b/README.md index c6c59f7..8440ce4 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) @@ -140,11 +140,15 @@ Erweitert IPS um die native Unterstützung von: ### 2. Changelog +Version 3.74: +* Konfiguration der festen Temperaturen lässt beim Bearbeiten keine ungültigen oder doppelten Werte mehr zu. +* Übersteigt die Summe der festen Temperaturen mit denen aus den Geräten ausgelesenen Temperaturen die Anzahl von 31, so wird eine Warnung in das Log geschrieben und die Anzahl auf 31 begrenzt (maximale Anzahl der Aktionen von einem Wochenplan). + Version 3.73: -* Neue Eigenschaft in der Konfiguration der Heizgruppen und des HM-CC-TC Instanzen, um feste Temperaturen als Auswahl für den Wochenplan einzustellen. +* Neue Eigenschaft in der Konfiguration der Heizgruppen und der HM-CC-TC Instanzen, um feste Temperaturen als Auswahl für den Wochenplan einzustellen. Version 3.71: -* Neue Eigenschaft in der Konfiguration der Heizgruppen und des HM-CC-TC Instanzen, um das Verhalten des Modus bei manueller Bedienung der Soll-Temperatur einzustellen. +* Neue Eigenschaft in der Konfiguration der Heizgruppen und der HM-CC-TC Instanzen, um das Verhalten des Modus bei manueller Bedienung der Soll-Temperatur einzustellen. * Fehlermeldungen wenn Aktives Zeitprofil in der Konfiguration abgeschaltet und Zeitplan eingeschaltet war. * Zeitplan schaltet sofort um, wenn sich aktive Zeitprofil ändert. * HeatingDevice (Heizkörperthermostat) HM-CC-RT-DN ergänzt. diff --git a/RFInterface/README.md b/RFInterface/README.md index f078e7c..55a631b 100644 --- a/RFInterface/README.md +++ b/RFInterface/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/RFInterface/module.php b/RFInterface/module.php index b5cb784..922833f 100644 --- a/RFInterface/module.php +++ b/RFInterface/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/RFInterfaceConfigurator/README.md b/RFInterfaceConfigurator/README.md index feb08c6..5963b17 100644 --- a/RFInterfaceConfigurator/README.md +++ b/RFInterfaceConfigurator/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/RFInterfaceConfigurator/module.php b/RFInterfaceConfigurator/module.php index 6458c74..c694738 100644 --- a/RFInterfaceConfigurator/module.php +++ b/RFInterfaceConfigurator/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/RFInterfaceSplitter/README.md b/RFInterfaceSplitter/README.md index 51a52dd..ab4fc0f 100644 --- a/RFInterfaceSplitter/README.md +++ b/RFInterfaceSplitter/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/RFInterfaceSplitter/module.php b/RFInterfaceSplitter/module.php index d0deb2b..6d49c1a 100644 --- a/RFInterfaceSplitter/module.php +++ b/RFInterfaceSplitter/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/Systemvariablen/README.md b/Systemvariablen/README.md index ea23a8a..5e4203d 100644 --- a/Systemvariablen/README.md +++ b/Systemvariablen/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/Systemvariablen/module.php b/Systemvariablen/module.php index dffc4d8..0050971 100644 --- a/Systemvariablen/module.php +++ b/Systemvariablen/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/WRInterface/README.md b/WRInterface/README.md index a0a869f..c922d27 100644 --- a/WRInterface/README.md +++ b/WRInterface/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/WRInterface/module.php b/WRInterface/module.php index 895a8cb..2fe9fb2 100644 --- a/WRInterface/module.php +++ b/WRInterface/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/ePaperStatusAnzeige/README.md b/ePaperStatusAnzeige/README.md index 0ff1001..e3d0908 100644 --- a/ePaperStatusAnzeige/README.md +++ b/ePaperStatusAnzeige/README.md @@ -1,5 +1,5 @@ [![SDK](https://img.shields.io/badge/Symcon-PHPModul-red.svg)](https://www.symcon.de/service/dokumentation/entwicklerbereich/sdk-tools/sdk-php/) -[![Version](https://img.shields.io/badge/Modul%20version-3.73-blue.svg)]() +[![Version](https://img.shields.io/badge/Modul%20version-3.74-blue.svg)]() [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-green.svg)](https://creativecommons.org/licenses/by-nc-sa/4.0/) [![Version](https://img.shields.io/badge/Symcon%20Version-6.1%20%3E-green.svg)](https://community.symcon.de/t/ip-symcon-6-1-stable-changelog/40276-IP-Symcon-5-1-%28Stable%29-Changelog) [![Check Style](https://github.com/Nall-chan/HomematicExtended/workflows/Check%20Style/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) [![Run Tests](https://github.com/Nall-chan/HomematicExtended/workflows/Run%20Tests/badge.svg)](https://github.com/Nall-chan/HomematicExtended/actions) diff --git a/ePaperStatusAnzeige/module.php b/ePaperStatusAnzeige/module.php index 7491d40..8f14c4c 100644 --- a/ePaperStatusAnzeige/module.php +++ b/ePaperStatusAnzeige/module.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/../libs/HMBase.php'; // HMBase Klasse diff --git a/library.json b/library.json index 531aead..a5296ee 100644 --- a/library.json +++ b/library.json @@ -6,7 +6,7 @@ "compatibility": { "version": "6.1" }, - "version": "3.7", - "build": 373, - "date": 1705830639 + "version": "3.74", + "build": 374, + "date": 1705949629 } \ No newline at end of file diff --git a/libs/HMBase.php b/libs/HMBase.php index 7ddbcef..ff253e0 100644 --- a/libs/HMBase.php +++ b/libs/HMBase.php @@ -10,7 +10,7 @@ * @author Michael Tröger * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 - * @version 3.73 + * @version 3.74 */ eval('declare(strict_types=1);namespace HMExtended {?>' . file_get_contents(__DIR__ . '/helper/DebugHelper.php') . '}'); eval('declare(strict_types=1);namespace HMExtended {?>' . file_get_contents(__DIR__ . '/helper/BufferHelper.php') . '}'); diff --git a/libs/HMHeatingDevice.php b/libs/HMHeatingDevice.php index b4abe6d..b0a0204 100644 --- a/libs/HMHeatingDevice.php +++ b/libs/HMHeatingDevice.php @@ -11,7 +11,7 @@ * @copyright 2023 Michael Tröger * @license https://creativecommons.org/licenses/by-nc-sa/4.0/ CC BY-NC-SA 4.0 * - * @version 3.73 + * @version 3.74 */ require_once __DIR__ . '/HMBase.php'; // HMBase Klasse @@ -134,9 +134,6 @@ public function ApplyChanges() { parent::ApplyChanges(); - if ($this->FixScheduleTempsProperty()) { - return; - } $this->WeekProfile = 1; $Address = $this->ReadPropertyString(\HMExtended\Device\Property::Address); $this->SetReceiveDataFilter($Address == '' ? '.*9999999999.*' : '.*"DeviceID":"' . $Address . static::ValuesChannel . '.*'); @@ -208,6 +205,10 @@ public function RequestAction($Ident, $Value) return true; } switch ($Ident) { + case 'EditScheduleTemps': + $ScheduleTemps = json_decode($Value, true); + $this->FixScheduleTemps($ScheduleTemps); + return true; case 'getParam': $this->GetParamsAndSetVariable(); return true; @@ -314,12 +315,6 @@ protected function SetParamVariables(array $Params) } } } - /*if ($ScheduleActionHasChanged) { - // todo wenn array zu groß war, Meldung ausgeben. - asort($ScheduleTemps); - $ScheduleTemps = array_slice($ScheduleTemps, 0, 32, true); - $this->SetTempColorsAttribute($ScheduleTemps); - }*/ $this->WeekSchedules = $ScheduleData; foreach ($Params as $Ident => $Value) { @$this->SetValue($Ident, $Value); @@ -407,6 +402,7 @@ private function RefreshScheduleObject() $ActionId = array_search($Slot[self::TEMP], $Actions); if ($ActionId === false) { $this->SendDebug('not found', $Slot[self::TEMP], 0); + continue; } IPS_SetEventScheduleGroupPoint($EventId, $Group['ID'], $PointId, $StartHour, $StartMinute, 0, $ActionId); if ($Slot[self::TIME] == 1440) { @@ -601,25 +597,23 @@ private function CreateProfile($Profile) } /** - * FixScheduleTempsProperty + * FixScheduleTemps * * Cleanup illegal Temps. * NumberSpinner hat keine StepSize :( * * @return bool */ - private function FixScheduleTempsProperty(): bool + private function FixScheduleTemps(array $ScheduleTemps) { - $ScheduleTemps = json_decode($this->ReadPropertyString(\HMExtended\Device\Property::ScheduleTemps), true); $HasFixed = false; - foreach ($ScheduleTemps as &$Temp) { + $NewScheduleTemps = []; + foreach ($ScheduleTemps as $Temp) { if ($Temp['TemperatureValue'] < 5) { - unset($Temp); $HasFixed = true; continue; } if ($Temp['TemperatureValue'] > 30) { - unset($Temp); $HasFixed = true; continue; } @@ -630,14 +624,17 @@ private function FixScheduleTempsProperty(): bool $Temp['TemperatureValue'] = floor($Temp['TemperatureValue']) + 0.5; } $HasFixed = true; + } + if (in_array($Temp, $NewScheduleTemps)) { + $HasFixed = true; continue; } + + $NewScheduleTemps[] = $Temp; } if ($HasFixed) { - IPS_SetProperty($this->InstanceID, \HMExtended\Device\Property::ScheduleTemps, json_encode($ScheduleTemps)); - IPS_ApplyChanges($this->InstanceID); + $this->UpdateFormField('ScheduleTemps', 'values', json_encode($NewScheduleTemps)); } - return $HasFixed; } private function UpdateScheduleActions(array $Event, array $ScheduleData): array @@ -647,8 +644,17 @@ private function UpdateScheduleActions(array $Event, array $ScheduleData): array foreach (static::$Weekdays as $Index => $Day) { $ScheduleTemps = array_merge($ScheduleTemps, array_column($ScheduleData[$Index], self::TEMP)); } + $ScheduleTemps = array_unique($ScheduleTemps); + if (count($ScheduleTemps) > 31) { + $this->LogMessage($this->Translate('Too many temperatures on schedule. Crop to 31 actions.'), KL_WARNING); + $ScheduleTemps = array_slice($ScheduleTemps, 0, 32); + } $ScheduleTempsProperty = array_column(json_decode($this->ReadPropertyString(\HMExtended\Device\Property::ScheduleTemps), true), 'TemperatureValue'); $ScheduleTemps = array_unique(array_merge($ScheduleTemps, $ScheduleTempsProperty), SORT_NUMERIC); + if (count($ScheduleTemps) > 31) { + $this->LogMessage($this->Translate('Too many temperatures on schedule. Crop to 31 actions.'), KL_WARNING); + $ScheduleTemps = array_slice($ScheduleTemps, 0, 32); + } sort($ScheduleTemps); $StepSize = 260 / count($ScheduleTemps);