` - Standard auto
+- `html.td_tag_border_bottom` Rand unten vom TAG `` in Pixel - Standard 1
+- `html.td_tag_border_color` Randfarbe unten vom TAG ` | ` - Standard #424242
+- `html.td_tag_border_right` Rand rechts vom TAG ` | ` in Pixel - Standard 1
+- `html.td_tag_cell` Platz um den Text vom TAG ` | ` in Pixel (padding) - Standard 6
+- `html.top_font_family` Schriftfamilie von Kopfzeile und Fußzeile - Standard Helvetica
+- `html.top_font_size` Schriftgröße von Kopfzeile und Fußzeile in Pixel - Standard 20
+- `html.top_font_weight` Schriftstärke von Kopfzeile und Fußzeile - Standard normal"
+- `html.top_text` Eigener Text für die Kopfzeile - Standard your text
+- `html.top_text_color` Schriftfarbe von Kopfzeile und Fußzeile - Standard #ffffff
+- `html.update` Manuelles Update starten
+
+![vis_object_1.png](img/vis_object_1.png)
+
+- Klick auf den Schriftzug `Letzte Aktualisierung` um ein manuelles Update durchzuführen
+- Icon anklicken um das Widget zu aktivieren/deaktivieren
+- Um ein Auslöser zu löschen muss man erst einen Haken setzen und dann den Button `delete` drücken
+- Zeiten/Astro ändern und den Button `save` drücken um die Änderungen zu übernehmen
+- Wochentag anklicken um diesen zu aktivieren/deaktivieren
+
+![vis_view_1.png](img/vis_view_1.png)
+![vis_view_2.png](img/vis_view_2.png)
+
+### Function NUR für VIS-2!!!
+
+[Zusammenfassung](#zusammenfassung)
+
+NUR bei VIS-2 müssen leider die unten aufgeführten Funktionen manuell eingefügt werden (siehe Bilder)
+
+![vis2_object.png](img/vis2_object.png)
+![vis2_script.png](img/vis2_script.png)
+
+```java
+function deleteTrigger(stateId, command, id, dataid, count) {
+ var check = document.getElementById('delete' + count).checked;
+ if (ckeck) {
+ var data = {
+ "command": command,
+ "message": {
+ "triggerid": id,
+ "dataId": dataid,
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+ }
+}
+function changeweekdays(stateId, command, dataid, id, changeid, type) {
+ if (type === "OneTimeTrigger") return;
+ var data = {
+ "command": command,
+ "message": {
+ "changeid": changeid,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function updateTrigger(stateId) {
+ vis.conn.setState(stateId + '.html.update', { val: true, ack: false });
+}
+function setState(stateId, value) {
+ vis.conn.setState(stateId, { val: value == 'false' ? false : true, ack: false });
+}
+function sendToAstro(stateId, command, dataid, id, count) {
+ var timeselect = document.getElementById('timeselect' + count).value;
+ var shift = document.getElementById('shift' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "astrotime": timeselect,
+ "shift": shift,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToDateTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('datetime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('nexttime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+```
+
+### CSS
+
+[Zusammenfassung](#zusammenfassung)
+
+```
+app-on-off-schedules-widget {
+ /* Primary color (button background, toggle switch color) */
+ --ts-widget-primary-color: #337ab7;
+
+ /* Background color of the widget */
+ --ts-widget-bg-color: #424242;
+ /* Background color of the triggers */
+ --ts-widget-trigger-bg-color: #272727;
+
+ /* Foreground color (font color and scrollbar color) */
+ --ts-widget-fg-color: white;
+ /* Font color of the switched states id */
+ --ts-widget-oid-fg-color: #a5a5a5;
+ /* Font color in buttons */
+ --ts-widget-btn-fg-color: white;
+ /* Font color of a disabled weekday */
+ --ts-widget-weekdays-disabled-fg-color: #5D5D5D;
+ /* Font color of an enabled weekday */
+ --ts-widget-weekdays-enabled-fg-color: white;
+ /* Font color of the name of the widget (defaults to --ts-widget-fg-color) */
+ --ts-widget-name-fg-color: white;
+ /* Font color of switched time (defaults to --ts-widget-fg-color) */
+ --ts-widget-switched-time-fg-color: white;
+ /* Font color of switched value (defaults to --ts-widget-fg-color)*/
+ --ts-widget-switched-value-fg-color: white;
+ /* Font color of the astro time (defaults to --ts-widget-fg-color) */
+ --ts-widget-astro-time-fg-color: black;
+ /* Font color of the astro time's shift */
+ --ts-widget-astro-shift-fg-color: #5d5d5d;
+ /* Font color of condition (defaults to --ts-widget-fg-color) */
+ --ts-widget-condition-fg-color: white;
+ /* Font color of toogle button off */
+ --ts-widget-off-color: #c0c0c0;
+ /* Color background toogle button off */
+ --ts-widget-off-color-container: #808080;
+ /* Color of next astro switching time */
+ --ts-widget-astro-next-fg-color: white;
+
+ /* Font family used in the whole widget */
+ --ts-widget-font-family: 'Roboto', 'Segoe UI', BlinkMacSystemFont, system-ui, -apple-system;
+ /* Font size of the name of the widget */
+ --ts-widget-name-font-size: 2em;
+ /* Font size of the switched oid */
+ --ts-widget-oid-font-size: 30px;
+ /* Font size of switch text */
+ --ts-widget-state-action-width: 65px;
+ /* Font size of next astro switching time */
+ --ts-widget-astro-next-font-size: 2em;
+ /* Width of date time input */
+ --ts-widget-datetime-width: 230px;
+
+ /* Display of edit name button. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-edit-name-button-display: block;
+ /* Display of condition. Use 'none' to hide the condition and 'block' to show it
+ -ts-widget-condition-display: block;
+ /* Display of time icon. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-time-icon-display: none;
+
+ /* Applies a filter to icons used in buttons (safe, edit, remove, cancel), for
+ white use invert(1) and for black invert(0) */
+ --ts-widget-img-btn-filter: invert(1);
+
+ /* Add trigger dropdown background color */
+ --ts-widget-add-trigger-dropdown-bg-color: #f1f1f1;
+ /* Add trigger dropdown font color */
+ --ts-widget-add-trigger-dropdown-fg-color: black;
+ /* Add trigger dropdown hover background color */
+ --ts-widget-add-trigger-dropdown-hover-bg-color: #ddd;
+
+ /* ! Changing these may break the layout, change at your own risk */
+
+ /* Font size of weekdays */
+ --ts-widget-weekdays-font-size: 23px;
+ /* Font size of switched value (on/off) */
+ --ts-widget-switched-value-font-size: 2em;
+ /* Font size of switched time */
+ --ts-widget-switched-time-font-size: 2em;
+ /* Font size of the astro time (e.g. Sunrise, ...) */
+ --ts-widget-astro-time-font-size: 1.5em;
+ /* Font size of the astro time's shift */
+ --ts-widget-astro-shift-font-size: 1em;
+ /* Font size of condition */
+ --ts-widget-condition-font-size: 1em;
+}
+```
+
+## Changelog
+
+
+
+### **WORK IN PROGRESS**
+
+- (Lucky_ESA) HTML overview added
+
+### 0.0.6 (2024-11-16)
+
+- (Lucky_ESA) Put value of state correctly
+- (Lucky_ESA) Added next triggers as JSON
+- (Lucky_ESA) Added counter trigger
+- (Lucky_ESA) Updating astro time fixed
+
+### 0.0.5 (2024-11-06)
+
+- (Lucky_ESA) Crash when updating astro time fixed
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.4 (2024-11-04)
+
+- (Lucky_ESA) Temporary function removed
+- (Lucky_ESA) Creation of objects adjusted
+- (Lucky_ESA) Validation check of the states
+- (Lucky_ESA) Validation check for 2 widgets with one object
+
+### 0.0.3 (2024-10-30)
+
+- (Lucky_ESA) Fixed VIS translate
+- (Lucky_ESA) Added astro time in trigger
+- (Lucky_ESA) Fixed OneTimeTrigger
+- (Lucky_ESA) Added date for OneTimeTrigger
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.2 (2024-10-22)
+
+- (Lucky_ESA) Fix translate
+- (Lucky_ESA) Fix background color disable Weekdays
+- (Lucky_ESA) Fix sendTo
+- (Lucky_ESA) Added jsonConfig
+- (Lucky_ESA) Added history
+
+### 0.0.1 (2024-10-19)
+
+- (Lucky_ESA) initial release
+
+## License
+
+MIT License
+
+Copyright (c) 2024 Lucky_ESA
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget.png
new file mode 100644
index 000000000..683df95ab
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css.png
new file mode 100644
index 000000000..cbf9e389b
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png
new file mode 100644
index 000000000..a66472e6d
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png
new file mode 100644
index 000000000..54434121c
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png
new file mode 100644
index 000000000..7b9aed0aa
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_name.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_name.png
new file mode 100644
index 000000000..dee6aa541
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_name.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png
new file mode 100644
index 000000000..e24ba601d
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png
new file mode 100644
index 000000000..2538094fa
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select.png
new file mode 100644
index 000000000..584c68497
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png
new file mode 100644
index 000000000..431cd0db2
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png
new file mode 100644
index 000000000..9540979de
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png
new file mode 100644
index 000000000..6c6e70372
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png
new file mode 100644
index 000000000..431cd0db2
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png
new file mode 100644
index 000000000..d5ba2e9e4
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png
new file mode 100644
index 000000000..55ff75d02
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png
new file mode 100644
index 000000000..3ae7cf574
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png
new file mode 100644
index 000000000..e679423d2
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png
new file mode 100644
index 000000000..3b759b64a
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png
new file mode 100644
index 000000000..8b6b72864
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png
new file mode 100644
index 000000000..05e33f441
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png
new file mode 100644
index 000000000..e5c1dcf0f
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png
new file mode 100644
index 000000000..1e1459b97
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png
new file mode 100644
index 000000000..89a5fc1c1
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png
new file mode 100644
index 000000000..2f2d7f0fe
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png
new file mode 100644
index 000000000..7a2b24454
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings.png b/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings.png
new file mode 100644
index 000000000..e8bffec8e
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png
new file mode 100644
index 000000000..0f084262e
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/view_states.png b/docs/de/adapterref/iobroker.schedule-switcher/img/view_states.png
new file mode 100644
index 000000000..39adcfeba
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/view_states.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_object.png b/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_object.png
new file mode 100644
index 000000000..c2c36580b
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_object.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_script.png b/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_script.png
new file mode 100644
index 000000000..e62188328
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/vis2_script.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/vis_object_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_object_1.png
new file mode 100644
index 000000000..5b4f19602
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_object_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_1.png
new file mode 100644
index 000000000..06cadb480
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_2.png
new file mode 100644
index 000000000..6354d1701
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/vis_view_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png
new file mode 100644
index 000000000..45e96ebfc
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png
new file mode 100644
index 000000000..05dd5e792
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/widget_manual.png b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_manual.png
new file mode 100644
index 000000000..0a18f14d2
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_manual.png differ
diff --git a/docs/de/adapterref/iobroker.schedule-switcher/img/widget_switched.png b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_switched.png
new file mode 100644
index 000000000..07e7fe21f
Binary files /dev/null and b/docs/de/adapterref/iobroker.schedule-switcher/img/widget_switched.png differ
diff --git a/docs/de/adapterref/iobroker.semp/README.md b/docs/de/adapterref/iobroker.semp/README.md
index 811c02df7..8bfbc5e58 100644
--- a/docs/de/adapterref/iobroker.semp/README.md
+++ b/docs/de/adapterref/iobroker.semp/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.semp/README.md
title: ioBroker.semp
-hash: dC7K359kH1AF9pJs23+dFLjAfoVtQD6sxsg/LNj7xgY=
+hash: 3eKCgekKBWAZFRi0xTm5M+gZjWwArpIfn2sr5r8I5gY=
---
![Logo](../../../en/adapterref/iobroker.semp/admin/semp.png)
@@ -15,15 +15,15 @@ hash: dC7K359kH1AF9pJs23+dFLjAfoVtQD6sxsg/LNj7xgY=
![Knoten-lts](https://img.shields.io/node/v-lts/iobroker.semp?style=flat-square)
![Libraries.io-Abhängigkeitsstatus für die neueste Version](https://img.shields.io/librariesio/release/npm/iobroker.semp?label=npm%20dependencies&style=flat-square)
![GitHub](https://img.shields.io/github/license/rg-engineering/ioBroker.semp?style=flat-square)
-![GitHub-Repo-Größe](https://img.shields.io/github/repo-size/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
+![GitHub-Repository-Größe](https://img.shields.io/github/repo-size/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
![GitHub-Commit-Aktivität](https://img.shields.io/github/commit-activity/m/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
-![GitHub letzter Commit](https://img.shields.io/github/last-commit/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
+![Letztes GitHub-Commit](https://img.shields.io/github/last-commit/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
![GitHub-Probleme](https://img.shields.io/github/issues/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
# IoBroker.semp
![GitHub-Aktionen](https://github.com/rg-engineering/ioBroker.semp/workflows/Test%20and%20Release/badge.svg)
-**Dieser Adapter verwendet Sentry-Bibliotheken, um Ausnahmen und Codefehler automatisch an die Entwickler zu melden.** Weitere Details und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin-Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting wird ab js-controller 3.0 verwendet.
+**Dieser Adapter verwendet Sentry-Bibliotheken, um den Entwicklern automatisch Ausnahmen und Codefehler zu melden.** Weitere Einzelheiten und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Die Sentry-Berichterstattung wird ab js-controller 3.0 verwendet.
**Wenn es Ihnen gefällt, denken Sie bitte über eine Spende nach:**
@@ -32,21 +32,21 @@ hash: dC7K359kH1AF9pJs23+dFLjAfoVtQD6sxsg/LNj7xgY=
## SMA SEMP-Adapter für ioBroker
Schnittstelle zum SMA SunnyPortal über SunnyHomeManager und SEMP
-Fügen Sie Ihre Geräte von ioBroker im SunnyPortal hinzu.
-SunnyPortal kann dann Ihren Energieverbrauch besser einschätzen und so bessere Vorhersagen und Empfehlungen treffen. Sie können Ihre Geräte aber auch über SunnyPortal steuern lassen. Wenn genügend Solarenergie vorhanden ist, kann das SunnyPortal Ihre Geräte einschalten oder, wenn nicht genügend Solarenergie vorhanden ist, diese wieder ausschalten. So optimieren Sie Ihren Eigenverbrauch, sind aber nicht auf die wenigen im SunnyPortal unterstützten Geräte angewiesen. Mit dem Adapter kann jedes Gerät des ioBrokers in das SunnyPortal integriert werden.
-Es ist nicht einmal notwendig, den Verbrauch eines einzelnen Geräts zu messen. Auch Schätzwerte reichen aus.
+Fügen Sie Ihre Geräte aus dem ioBroker in SunnyPortal hinzu.
+SunnyPortal kann dann Ihren Energieverbrauch besser einschätzen und so bessere Vorhersagen und Empfehlungen treffen. Sie können Ihre Geräte aber auch von SunnyPortal steuern lassen. Bei ausreichender Solarenergie kann das SunnyPortal Ihre Geräte einschalten oder bei zu geringer Solarenergie wieder ausschalten. So optimieren Sie Ihren Eigenverbrauch, sind aber nicht auf die wenigen im SunnyPortal unterstützten Geräte angewiesen. Mit dem Adapter lässt sich jedes beliebige Gerät aus dem ioBroker in das SunnyPortal integrieren.
+Es ist nicht einmal notwendig, dass der Verbrauch eines einzelnen Gerätes gemessen wird. Schon geschätzte Werte reichen aus.
## Benutzerdokumentation
-siehe [Doku](docu/docu_en.md)
+siehe [Doku](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/docu_en.md)
-Einzelheiten zum Protokoll und zur Verwendung finden Sie unter [SMA-Doku](docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
+Einzelheiten zu Protokoll und Verwendung finden Sie unter [SMA Doku](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
-Eine Beschreibung zur allgemeinen Nutzung von Energieanfragen finden Sie in [SMA-Doku](docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf). (nur deutsch)
+Eine Beschreibung zur generellen Verwendung von Energieanfragen finden Sie unter [SMA Doku](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf).
## Merkmale
-* Geräte von ioBroker im SunnyPortal über SMA SEMP hinzufügen
+* Geräte vom ioBroker über SMA SEMP in SunnyPortal hinzufügen
* informiert das SunnyPortal über den aktuellen Verbrauch
-* Lassen Sie SunnyPortal diese Geräte steuern (einschalten, wenn genügend PV-Leistung vorhanden ist, und ausschalten, wenn nicht genügend Solarenergie vorhanden ist)
+* diese Geräte über SunnyPortal steuern lassen (einschalten bei ausreichender PV-Leistung und ausschalten bei zu wenig Solarenergie)
## Anforderungen
## Bekannte Probleme
@@ -58,6 +58,46 @@ Eine Beschreibung zur allgemeinen Nutzung von Energieanfragen finden Sie in [SMA
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.4.8 (2024-11-20)
+* (René) update dependencies
+* (René) issue #317: test with nodejs@22
+* (René) issue #329: links to docu updated
+
+### 1.4.7 (2024-09-13)
+* (René) see issue #314: bug fix to use express@5.0.0
+
+### 1.4.6 (2024-08-24)
+* (René) update dependencies
+* (René) bug fixes based on adapter checker recommendation
+
+### 1.4.5 (2024-05-29)
+* (René) see issue #250: no Power to be send for devices without measurement in off-status
+
+### 1.4.4 (2024-05-28)
+* (René) change of dependencies
+* (René) wallbox: check and log wrong value for Wallbox3phaseSwitchDelay only if enabled
+
+### 1.4.3 (2024-02-20)
+* (René) wallbox: unnecessary warn messages deactivated
+* (René) dependencies updated
+
+### 1.4.2 (2024-02-16)
+* (René) bug fix in create timeframes
+
+### 1.4.1 (2024-02-12)
+* (René) minor bug fix
+
+### 1.4.0 (2024-02-12)
+* (René) bug fix: see issue #206 - wallbox OID's selectable
+* (René) bug fix: see issue #207 - wallbox maximum charge time adjustable
+* (René) see issue #208: timeframe can be disabled by user (optionally)
+
+### 1.3.15 (2024-02-03)
+* (René) bug fix: wallbox counter and status are not handled
+
+### 1.3.14 (2024-01-12)
+* (René) dependencies updated
+
### 1.3.13 (2023-11-19)
* (René) dependencies updated
* (René) fix exceptions reported by sentry
@@ -167,7 +207,7 @@ Eine Beschreibung zur allgemeinen Nutzung von Energieanfragen finden Sie in [SMA
## License
MIT License
-Copyright (c) 2022-2023 rg-engineering info@rg-engineering.eu
+Copyright (c) 2022-2024 René G.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/de/adapterref/iobroker.shuttercontrol/README.md b/docs/de/adapterref/iobroker.shuttercontrol/README.md
index d58e162b3..a196be11e 100644
--- a/docs/de/adapterref/iobroker.shuttercontrol/README.md
+++ b/docs/de/adapterref/iobroker.shuttercontrol/README.md
@@ -793,8 +793,14 @@ _[Zurück zum Anfang](#dokumentation-und-anleitung-für-shuttercontrol)_
## Changelog
### __WORK IN PROGRESS__
+* (simatec) Bugfix Brightness down
+* (simatec) eslint-config added
+
+### 1.8.4 (2024-11-07)
* (simatec) Issue Info added
* (simatec) Dependencies updated
+* (simatec) Design Fix
+* (simatec) Bugfix Brightness down
### 1.8.3 (2024-10-16)
* (simatec) Fix Alarm
diff --git a/docs/de/adapterref/iobroker.slideshow/README.md b/docs/de/adapterref/iobroker.slideshow/README.md
index deb4ab8c9..f6ae1d67b 100644
--- a/docs/de/adapterref/iobroker.slideshow/README.md
+++ b/docs/de/adapterref/iobroker.slideshow/README.md
@@ -2,19 +2,19 @@
translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.slideshow/README.md
-title: ioBroker.slideshow
-hash: 0567hUtbU7xUZRXy7s5faV7yRsbM5uJboFkUTFKLxTQ=
+title: ioBroker.Diashow
+hash: JzFpziqmjAlUpvoVt6P6xVMXV1nenar3ljFNKgEY15M=
---
![Logo](../../../en/adapterref/iobroker.slideshow/admin/slideshow.png)
![NPM-Version](http://img.shields.io/npm/v/iobroker.slideshow.svg)
![Downloads](https://img.shields.io/npm/dm/iobroker.slideshow.svg)
-![Anzahl der Installationen (neueste)](https://iobroker.live/badges/slideshow-installed.svg)
-![Anzahl der Installationen (stabil)](https://iobroker.live/badges/slideshow-stable.svg)
+![Anzahl der Installationen (aktuell)](https://iobroker.live/badges/slideshow-installed.svg)
+![Anzahl Installationen (stabil)](https://iobroker.live/badges/slideshow-stable.svg)
![NPM](https://nodei.co/npm/iobroker.slideshow.png?downloads=true)
# IoBroker.Diashow
-![Testen und freigeben](https://github.com/gaudes/ioBroker.slideshow/workflows/Test%20and%20Release/badge.svg) [![Übersetzungsstatus](https://weblate.iobroker.net/widgets/adapters/-/slideshow/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
+![Testen und Freigeben](https://github.com/gaudes/ioBroker.slideshow/workflows/Test%20and%20Release/badge.svg) [![Übersetzungsstatus](https://weblate.iobroker.net/widgets/adapters/-/slideshow/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
[Deutsche Beschreibung](#deutsch)
@@ -22,165 +22,161 @@ hash: 0567hUtbU7xUZRXy7s5faV7yRsbM5uJboFkUTFKLxTQ=
![Demo](../../../en/adapterref/iobroker.slideshow/docs/img/demo.gif)
-## Diashow-Adapter für ioBroker
+## Diashow Adapter für ioBroker
Dieser Adapter für ioBroker stellt eine Diashow quasi als Bildschirmschoner für VIS zur Verfügung.
Folgende Quellen stehen aktuell zur Verfügung:
* Die letzten acht täglichen Bilder von Bing.com
-* Via VIS-Dateimanager hochgeladene Bilder
+* Über VIS-Dateimanager hochgeladene Bilder
* Bilder aus beliebigem Pfad im Dateisystem
* Bilder von Synology PhotoStation und Synology Photo
Zur Darstellung in VIS stellt der Adapter ein Widget zur Verfügung.
-This bietet auch Funktionen für Effekt beim Bildwechsel, beispielsweise sanftes Ein- und Ausblenden.
-Zusätzlich kann ein Timeout eingestellt werden. Sofern auf andere Ansicht im Projekt keine Aktion für das eingestellte Timeout erfolgt, wird zur Ansicht mit der Diashow gewechselt. Durck Klicken des Bilds wird entweder zurück zur letzten Ansicht oder zu einer eingestellten Ansicht gewechselt.
+Dies bietet auch Funktionen für Effekte beim Bildwechsel, beispielsweise sanftes Ein- und Ausblenden.
+Zusätzlich kann ein Timeout eingestellt werden. Sofern auf andere View im Projekt keine Aktion für das eingestellte Timeout erfolgt, wird zur View mit der Diashow gewechselt. Durck Klicken des Bilds wird entweder zurück zur letzten Ansicht oder zu einer eingestellten Ansicht geändert.
Neben dem Bild selbst als Pfad oder Base64-kodiertes Objekt werden weitere Objekte mit Informationen zum Bild in ioBroker erstellt.
Diese sind abhängig von der ausgewählten Quelle:
-| Objekt | Bin | Lokal und Dateisystem | Synologie | ----------- | ----------- | ----------- | ----------- | info1 | Titel | Titel (EXIF-Informationen) | Titel | info2 | Beschreibung | Betreff (EXIF-Informationen) | Beschreibung | info3 | Copyright-Informationen | Kommentar (EXIF-Informationen) | Dateiname | Datum | Datum der Anzeige auf Bing-Seite | Aufnahmedatum (EXIF-Informationen) | Aufnahmedatum
+| Objekt | Bing | Lokales und Dateisystem | Synologie | ----------- | ----------- | ----------- | ----------- | info1 | Titel | Titel (EXIF-Informationen) | Titel | info2 | Beschreibung | Betreff (EXIF-Informationen) | Beschreibung | info3 | Copyright-Informationen | Kommentar (EXIF-Informationen) | Dateiname | Datum | Datum der Anzeige auf Bing-Seite | Aufnahmedatum (EXIF-Informationen) | Aufnahmedatum
-Der Button "Bildliste aktualisieren" als Objekt in ioBroker liest die Bilder aus den konfigurierten Quellen neu ein, z.B. nach Hinzufügen oder Löschen von Bildern. Die Bilder aus allen Quellen mit Ausnahme Bing werden sonst nur beim Start des Adapters eingelesen. Bing-Bilder werden stündlich automatisch aktualisiert.
+Der Button „updatepicturelist“ als Objekt in ioBroker liest die Bilder aus den konfigurierten Quellen neu ein, z.B. nach Hinzufügen oder Löschen von Bildern. Die Bilder aus allen Quellen mit Ausnahme von Bing werden sonst nur beim Start des Adapters eingelesen. Bing-Bilder werden fortlaufend automatisch aktualisiert.
-**Dieser Adapter verwendet die Sentry Bibliotheken um automatisch Abstürze und Programmfehler an die Entwickler zu übermitteln.** Weitere Details und für Informationen zur Deaktivierung der Fehlerberichterstattung in der [Sentry-Plugin Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting wird ab JS-Controller 3.0 verwendet.
+**Dieser Adapter verwendet die Sentry Bibliotheken um automatisch Abstürze und Programmfehler an die Entwickler zu übermitteln.** Weitere Details und für Informationen zur Deaktivierung der Fehlerberichterstattung in der [Sentry-Plugin Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting wird mit JS-Controller 3.0 verwendet.
### Konfiguration
In den Einstellungen des Adapters wird die Quelle der Bilder ausgewählt, außerdem das Intervall für den Wechsel der Bilder, beispielsweise 10 Sekunden.
-Außerdem kann eingestellt Werden, wie oft die Liste der Bilder aktualisiert werden soll. Die Einstellung erfolgt in Stunden, bei 0 ist die automatische Aktualisierung deaktiviert.
+Außerdem kann eingestellt werden, wie oft die Liste der Bilder aktualisiert werden soll. Die Einstellung erfolgt in Stunden, bei 0 ist die automatische Aktualisierung deaktiviert.
-Bei Auswahl der Quelle "Dateisystem" kann dann noch der Pfad im Dateisystem ausgewählt Werden, außerdem das Format (Hoch- oder Querformat) der angezeigten Bilder sowie die Reihenfolge.
+Bei Auswahl der Quelle „Dateisystem“ kann dann noch der Pfad im Dateisystem ausgewählt werden, außerdem das Format (Hoch- oder Querformat) der angezeigten Bilder sowie die Reihenfolge.
-Bei Auswahl der Quelle "Synology PhotoStation" muss die DSM-Version, die IP-Adresse oder der Hostname sowie Benutzername und Passwort angegeben werden. Download von Bildern durch Benutzer muss in den Einstellungen von PhotoStation aktiviert sein.
+Bei Auswahl der Quelle „Synology PhotoStation“ müssen die DSM-Version, die IP-Adresse oder der Hostname sowie Benutzername und Passwort angegeben werden. Der Download von Bildern durch Benutzer muss in den Einstellungen von PhotoStation aktiviert sein.
### VIS-Widget
-Das Widget ist in der Kategorie "Slideshow" enthalten.
+Das Widget ist in der Kategorie „Slideshow“ enthalten.
-Das Widget sollte in eine eigene Ansicht integriert werden. So lässt sich der automatische Start der Diashow nutzen.
+Das Widget sollte in eine eigene Ansicht integriert werden. Hierdurch lässt sich der automatische Start der Diashow nutzen.
Folgende Einstellungen sind möglich:
* Abschnitt "Allgemein"
-* Objekt-ID: Hier muss der vom Adapter erzeugte Datenpunkt ausgewählt werden, beispielsweise "slideshow.0.picture"
+ * Objekt-ID: Hier muss der vom Adapter erzeugte Datenpunkt ausgewählt werden, beispielsweise „slideshow.0.picture“
* Widget mit Bild füllen
-* True (Standard) = Bild füllt das Widget, der Bildrand ist möglicherweise abgeschnitten
-* False = Das vollständige Bild WIRD angezeigt, das Widget kann jedoch leere Zonen haben
+ * True (Standard) = Bild füllt das Widget, der Bildrand ist möglicherweise abgeschnitten
+ * False = Das vollständige Bild wird angezeigt, das Widget kann jedoch leere Zonen haben
* Abschnitt "Effekt"
-* SlideshowEffect: Als Effekt kann zwischen following gewählt werden:
-* "keine"
-* "Fade": Einfaches Verblassen und Erscheinen
-* "Übergang": Überblenden
-* "jQuery-Effekt": Diverse jQuery-Effekte, beispielsweise Rolladen
-* Übergangsphase: Zeit in Millisekunden für den Effekt, gute Werte sind 500 oder 1000ms
-* Transition Style: Stil für "Transition" und "jQuery-Effekt"
-* jQuery-Effekt: Gewünschter jQuery-Effekt
-* Abschnitt "Automatischer Diashow-Start"
-* Aktivierung des automatischen Starts
-* Timeout: Nach welcher Zeit ohne Aktion auf die Diashow-Ansicht gewechselt wird
+ * SlideshowEffect: Als Effekt kann zwischen folgenden gewählt werden:
+* "Kein"
+ * „Fade“: Einfaches Verblassen und Erscheinen
+ * „Übergang“: Überblenden
+ * „jQuery-Effekt“: Diverse jQuery-Effekte, beispielsweise Rolladen
+ * Übergangsphase: Zeit in Millisekunden für den Effekt, gute Werte sind 500 oder 1000ms
+ * Transition Style: Stil für „Transistion“ und „jQuery-Effekt“
+ * jQuery-Effekt: Gewünschter jQuery-Effekt
+* Abschnitt „Automatischer Diashow-Start“
+ * Aktivierung des automatischen Starts
+ * Timeout: Nach welcher Zeit ohne Aktion auf die Diashow-Ansicht geändert wird
* Ziel beim Klicken:
-* Zuletzt verwendete Ansicht
-* Konfigurierte Ansicht (siehe nächste Einstellung)
-* Kein, falls beispielsweise ein eigener Button integriert werden soll
-* Zielansicht: Aufzurufende Ansicht beim Verlassen der Diashow
+ * Zuletzt verwendete Ansicht
+ * Konfigurierte Ansicht (siehe nächste Einstellung)
+ * Nein, falls beispielsweise ein eigener Button integriert werden soll
+ * Zielansicht: Aufzurufende Ansicht beim Verlassen der Diashow
-### FAQ
+### Häufig gestellte Fragen
**Quelle Dateisystem**
Können Netzlaufwerke eingebunden werden?
-Ja, aber nicht direkt durch den Adapter. ioBroker unterstützt mittlerweile sehr viele Betriebssysteme. Der Zugriff und das Verbinden von Netzwerkfreigaben ist je nach Betriebssystem komplett unterschiedlich. Teilweise werden auch weitere Komponenten wie z.B. Samba bei Linux benötigt. Das Verbinden des Netzlaufwerks (Mappen bzw. Mount) kann aber direkt über das Betriebssystem durchgeführt werden. Unter Linux erfolgt der Mount in einem angegebenen Verzeichnis, z.B. /mnt/bilder. Dieses Verzeichnis kann dann in der Adapter-Konfiguration verwendet werden.
+Ja, aber nicht direkt durch den Adapter. ioBroker unterstützt mittlerweile sehr viele Betriebssysteme. Der Zugriff und das Verbinden von Netzwerkfreigaben ist je nach Betriebssystem völlig unterschiedlich. Teilweise werden auch weitere Komponenten wie z.B. Samba wird unter Linux benötigt. Das Verbinden des Netzlaufwerks (Mappen bzw. Mount) kann aber direkt über das Betriebssystem durchgeführt werden. Unter Linux erfolgt der Mount in einem angegebenen Verzeichnis, z.B. /mnt/bilder. Dieses Verzeichnis kann dann in der Adapter-Konfiguration verwendet werden.
**Synology**
Können für Synology PhotoStation weitere Einstellungen wie z.B. Auswahl des Albums integriert werden?
-Der Zugriff auf bestimmte Fotoalben bzw. Ordner kann jedoch in der aktuellen Version von PhotoStation einfach realisiert werden. Hierzu unter DSM einen Benutzer für die Diashow anlegen und diesem Benutzer in der PhotoStation nur Berechtigungen auf die gewünschten Fotoalben bzw. Ordner geben.
+Der Zugriff auf bestimmte Fotoalben bzw. Ordner kann jedoch in der aktuellen Version von PhotoStation einfach realisiert werden. Hierzu unter DSM einen Benutzer für Slideshow anlegen und dieser Benutzer in der PhotoStation nur Berechtigungen auf die gewünschten Fotoalben bzw. Ordner geben.
## Diashow-Adapter für ioBroker
-Dieser Adapter für ioBroker bietet eine Diashow für VIS, wie einen Bildschirmschoner.
+Dieser Adapter für ioBroker bietet eine Diashow für VIS, ähnlich einem Bildschirmschoner.
-Die folgenden Quellen können tatsächlich verwendet werden:
+Folgende Quellen können konkret genutzt werden:
-* Die letzten acht täglichen Bilder von Bing.com
+* Die letzten acht Tagesbilder von Bing.com
* Bilder hochgeladen mit VIS-File-Manager
-* Bilder aus dem Dateisystempfad
+* Bilder vom Dateisystempfad
* Bilder von Synology PhotoStation oder Synology Photo
-Der Adapter stellt ein Widget für die Präsentation in VIS zur Verfügung, das Effekte beim Bildwechsel bietet, zum Beispiel sanftes Aus- und Einblenden.
-Zusätzlich kann ein Timeout konfiguriert werden. Wenn auf anderen Ansichten im selben VIS-Projekt keine Aktionen für das definierte Timeout erfolgt sind, wird die Ansicht mit der Diashow gestartet. Mit einem Klick auf das Bild wechselt es zurück zur letzten Ansicht oder zu einer vordefinierten Ansicht.
+Der Adapter stellt ein Widget für die Präsentation im VIS zur Verfügung, welches Effekte beim Bildwechsel bietet, beispielsweise sanftes Aus- und Einblenden.
+Zusätzlich kann ein Timeout konfiguriert werden. Wenn in anderen Ansichten im selben VIS-Projekt innerhalb des definierten Timeouts keine Aktionen erfolgen, wird die Ansicht mit der Slideshow gestartet. Mit einem Klick auf das Bild wird dann wieder zur letzten Ansicht oder einer vordefinierten Ansicht zurückgewechselt.
-Neben dem Bild als Pfad oder Base64-kodiertem Objekt sind weitere Objekte mit Bildinformationen in ioBroker erstellt.
-Diese sind abhängig von der gewählten Quelle:
+Neben dem Bild als Pfad oder Base64-kodiertes Objekt werden in ioBroker noch weitere Objekte mit Bildinformationen erstellt.
+Diese hängen von der gewählten Quelle ab:
-| Objekt | Bin | Lokal und Dateisystem | Synologie | ----------- | ----------- | ----------- | ----------- | info1 | Titel | Titel (EXIF-Informationen) | Titel | info2 | Beschreibung | Betreff (EXIF-Informationen) | Beschreibung | info3 | Urheberrecht | Kommentar (EXIF-Informationen) | Dateiname | Datum | Auf der Bing-Seite angezeigtes Datum | Aufnahmedatum (EXIF-Informationen) | Aufnahmedatum
+| Objekt | Bing | Lokal und Dateisystem | Synology | ----------- | ----------- | ----------- | ----------- | info1 | Titel | Titel (EXIF-Informationen) | Titel | info2 | Beschreibung | Betreff (EXIF-Informationen) | Beschreibung | info3 | Copyright | Kommentar (EXIF-Informationen) | Dateiname | Datum | Auf der Bing-Seite angezeigtes Datum | Aufnahmedatum (EXIF-Informationen) | Aufnahmedatum
-Der Button "Bildliste aktualisieren" als Objekt in ioBroker liest die Bilder aus der konfigurierten Quelle neu ein, nützlich zum Beispiel nach dem Hinzufügen oder Entfernen von Bildern aus der Quelle. Bilder aus allen Quellen außer Bing werden normalerweise beim Start des Adapters geladen. Bing-Bilder werden automatisch stündlich aktualisiert.
+Der Button "updatepicturelist" als Objekt im ioBroker liest die Bilder aus der konfigurierten Quelle erneut ein, nützlich beispielsweise nach dem Hinzufügen oder Entfernen von Bildern aus der Quelle. Bilder aus allen Quellen, außer Bing, werden normalerweise beim Start des Adapters geladen. Bing-Bilder werden automatisch stündlich aktualisiert.
-**Dieser Adapter verwendet Sentry-Bibliotheken, um Ausnahmen und Codefehler automatisch an die Entwickler zu melden.** Weitere Details und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin-Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting wird ab js-controller 3.0 verwendet.
+**Dieser Adapter verwendet Sentry-Bibliotheken, um den Entwicklern automatisch Ausnahmen und Codefehler zu melden.** Weitere Einzelheiten und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Die Sentry-Berichterstattung wird ab js-controller 3.0 verwendet.
-### Aufbau
-In den Adaptereinstellungen kann die Bildquelle ausgewählt werden. Obwohl das Intervall für Bildwechsel.
-Ebenfalls konfigurierbar ist, wie oft die Bilderliste aktualisiert werden soll. Die Einstellung erfolgt in Stunden, 0 deaktiviert die automatische Aktualisierung.
+### Konfiguration
+In den Adaptereinstellungen kann die Bildquelle gewählt werden. Ebenso das Intervall für den Bildwechsel.
+Konfigurierbar ist auch, wie oft die Bilderliste aktualisiert werden soll. Die Einstellung erfolgt in Stunden, 0 deaktiviert die automatische Aktualisierung.
-Bei Auswahl der Quelle „Dateisystem“ kann der Pfad und das Format (Quer- oder Hochformat) der anzuzeigenden Bilder angegeben werden. Auch die Reihenfolge kann konfiguriert werden.
+Bei der Auswahl der Quelle "Dateisystem" kann der Pfad angegeben werden und das Format (Querformat oder Hochformat) der anzuzeigenden Bilder. Auch die Reihenfolge kann konfiguriert werden.
-Wenn die Quelle „Synology PhotoStation“ ausgewählt wird, müssen die Synology DSM-Version, die IP-Adresse oder der Hostname und ein Benutzername mit Passwort konfiguriert werden. Das Herunterladen von Bildern muss in den PhotoStation-Einstellungen aktiviert sein.
+Wenn die Quelle „Synology PhotoStation“ ausgewählt ist, müssen die Synology DSM-Version, die IP-Adresse oder der Hostname und ein Benutzername mit Passwort konfiguriert werden.
Achtung: Nach Änderungen (Hinzufügen oder Löschen) ist ein Neustart des Adapters erforderlich.
### VIS-Widget
-Das Widget ist in der Kategorie "Slideshow" zu finden.
+Das Widget ist in der Kategorie „Diashow“ zu finden.
-Das Widget soll in eine eigene Ansicht eingebunden werden, damit der automatische Start der Slideshow genutzt werden kann.
+Das Widget sollte in eine eigene Ansicht eingebunden werden, damit der automatische Start der Slideshow genutzt werden kann.
-Es gibt folgende Konfigurationsmöglichkeiten:
+Es bestehen folgende Konfigurationsmöglichkeiten:
-* Kategorie "Allgemein"
-* Objekt-ID: Das vom Adapter erstellte ioBroker-Objekt muss bereitgestellt werden, zum Beispiel "slideshow.0.picture"
+* Kategorie „Allgemein“
+* Objekt-ID: Es muss das vom Adapter erstellte ioBroker Objekt angegeben werden, zum Beispiel „slideshow.0.picture“
* Widget mit Bild füllen
-* True (Standard) = Bild füllt Widget aus, Rand des Bildes kann abgeschnitten werden
-* False = Vollständiges Bild wird angezeigt, aber das Widget kann leere Bereiche haben
-* Kategorie "Effekt"
-* SlideshowEffect: Folgende Optionen stehen zur Verfügung:
-* "Keiner"
-* "Fade": Einfaches Aus- und Einblenden
-* "Übergang": Überblendung
+* True (Standard) = Bild füllt Widget, Bildrand kann abgeschnitten werden
+* False = Das vollständige Bild wird angezeigt, aber das Widget kann leere Zonen haben
+* Kategorie „Effekt“
+* DiashowEffekt: Folgende Optionen stehen zur Verfügung:
+* „Keine“
+* „Fade“: Einfaches Ausblenden und Einblenden
+* „Übergang“: Überblendung
* "jQuery-Effekt": Verschiedene jQuery-Effekte, zum Beispiel "blind"
* Übergangszeit: Zeit in Millisekunden für den Effekt, 500 oder 1000 sind empfohlene Werte
-* Übergangsstil: Stil für "Übergang" und "jQuery-Effekt"
+* Transition Style: Style für "Transistion" und "jQuery-Effekt"
* jQuery-Effekt: Gewünschter Effekt
-* Kategorie "Automatischer Diashow-Start"
-* Aktivieren Sie den automatischen Start
+* Kategorie „Automatischer Diashow-Start“
+* Automatischen Start aktivieren
* Timeout: Nach welcher Zeit in Sekunden der Inaktivität auf anderen Ansichten wird die Diashow gestartet
-* Ziel auf Klick:
+* Ziel beim Klicken:
* Zuletzt verwendete Ansicht
* Konfigurierte Ansicht (siehe nächste Einstellung)
-* Keine, zB beim Einbinden eines anderen Widgets daher
+* Keine, zum Beispiel bei der Integration eines anderen Widgets daher
* Zielansicht: Ansicht, die beim Verlassen der Diashow angezeigt werden soll
-### FAQ
+### Häufig gestellte Fragen
**Quelldateisystem**
Können Netzlaufwerke eingebunden werden?
-Ja, aber nicht direkt über den Adapter. ioBroker unterstützt mittlerweile eine Vielzahl von Betriebssystemen. Der Zugriff auf und die Verbindung von Netzwerkfreigaben ist je nach Betriebssystem völlig unterschiedlich. Teilweise werden auch zusätzliche Komponenten wie Samba für Linux benötigt. Die Anbindung des Netzlaufwerks (Mapping oder Mount) kann direkt vom Betriebssystem erfolgen. Unter Linux erfolgt der Mount in einem vorgegebenen Verzeichnis, z.B. / mnt / Bilder. Dieses Verzeichnis kann dann in der Adapterkonfiguration verwendet werden.
-
-**Quelle Synology**
-
-Können zusätzliche Einstellungen wie Albumauswahl für Synology PhotoStation integriert werden? Kann DSM 7 (Synology Photos) unterstützt werden?
-
-Synology PhotoStation endet mit DSM 6. Der Nachfolger Synology Photos erscheint mit DSM 7. DSM 7 ist derzeit noch Beta, die finale Version erscheint voraussichtlich im Sommer 2021. Vermutlich wird sich auch die Entwickleroberfläche ändern. Ich werde also keinen weiteren Aufwand in die Vorgängerversion investieren. Sobald DSM 7 offiziell freigegeben ist, werde ich die Integration prüfen. Leider gab es für die Vorgängerversion keine offizielle Synology-Dokumentation.
-Der Zugriff auf bestimmte Fotoalben oder Ordner lässt sich jedoch problemlos in der aktuellen Version von PhotoStation implementieren. Erstellen Sie dazu unter DSM einen Benutzer für die Diashow und geben Sie diesem Benutzer nur Berechtigungen für die gewünschten Fotoalben oder Ordner in der PhotoStation.
+Ja, allerdings nicht direkt über den Adapter. ioBroker unterstützt mittlerweile eine Vielzahl von Betriebssystemen. Der Zugriff und die Anbindung von Netzwerkfreigaben ist je nach Betriebssystem völlig unterschiedlich. Teilweise werden auch noch Zusatzkomponenten wie Samba für Linux benötigt. Die Anbindung des Netzlaufwerks (Mapping bzw. Mount) kann direkt über das Betriebssystem erfolgen. Unter Linux erfolgt das Mounten in ein angegebenes Verzeichnis, z.B. /mnt/pictures. Dieses Verzeichnis kann dann in der Adapterkonfiguration verwendet werden.
## Changelog
+### 0.2.1 (2024-11-18)
+* (Gaudes) Update in package.json for VIS
-### __WORK IN PROGRESS__
+### 0.2.0 (2024-11-13)
* (Gaudes) Include support for Synology DSM 7
-* (Gaudes) Remove support for Node 10
+* (Gaudes) Add controls for start/stop
+* (Gaudes) Remove support for older Node versions
* (Gaudes) Update to newest Adapter creator for internal dependencies
* (Gaudes) Include adapter-dev
* (Gaudes) Include Dependabot updates
@@ -241,7 +237,7 @@ Der Zugriff auf bestimmte Fotoalben oder Ordner lässt sich jedoch problemlos in
## License
MIT License
-Copyright (c) 2022 Gaudes
+Copyright (c) 2024 Gaudes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/de/adapterref/iobroker.sma-em/README.md b/docs/de/adapterref/iobroker.sma-em/README.md
index 065254884..643c74c8b 100644
--- a/docs/de/adapterref/iobroker.sma-em/README.md
+++ b/docs/de/adapterref/iobroker.sma-em/README.md
@@ -58,6 +58,11 @@ Daraus setzen sich die Objektnamen zusammen z.B.
- ...
## Changelog
+
+### __WORK IN PROGRESS__
+
+- (simatec) Responsive Design added
+
### 1.1.0 (2024-08-15) - 2024H2 maintenance release
- (pdbjjens) Change: node>=18, js-contoller>=5 and admin>=6 required
diff --git a/docs/de/adapterref/iobroker.solax/README.md b/docs/de/adapterref/iobroker.solax/README.md
index 4df24f17a..690720f9f 100644
--- a/docs/de/adapterref/iobroker.solax/README.md
+++ b/docs/de/adapterref/iobroker.solax/README.md
@@ -105,6 +105,8 @@ Wer gerne weitere Umrichter integriert haben möchte, sollte die Datenauswertung
### __WORK IN PROGRESS__
* (simatec) Dependencies updated
+* (simatec) small Design fix
+* (simatec) Issue Action added
### 0.9.12 (2024-09-26)
* (simatec) Fix for Admin 7.1.5
diff --git a/docs/de/adapterref/iobroker.statistics/README.md b/docs/de/adapterref/iobroker.statistics/README.md
index be67548f2..f2f02e533 100644
--- a/docs/de/adapterref/iobroker.statistics/README.md
+++ b/docs/de/adapterref/iobroker.statistics/README.md
@@ -156,7 +156,12 @@ sendTo('statistics.0', 'enableStatistics', {
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
-### **WORK IN PROGRESS**
+### 3.1.0 (2024-11-18)
+
+* (@simatec) Added responsive jsonConfig
+* (@klein0r) Copy unit of source state to all statistic states
+
+### 3.0.0 (2024-11-15)
NodeJS >= 18.x and js-controller >= 5 is required
### 2.4.0 (2023-11-03)
@@ -181,12 +186,6 @@ NodeJS 14.5.0 is required
* (klein0r) Removed dayMin and dayMax from avg (use minmax for that case!)
* (klein0r) Fix: Calculation of avg when no change of value
-### 2.2.0 (2022-07-07)
-* (klein0r) Added absolute min and max values
-
-### 2.1.1 (2022-06-16)
-* (klein0r) Fixed usage of default values for groups
-
## License
The MIT License (MIT)
diff --git a/docs/de/adapterref/iobroker.trashschedule/README.md b/docs/de/adapterref/iobroker.trashschedule/README.md
index 77a3b3ddd..1518fe2f2 100644
--- a/docs/de/adapterref/iobroker.trashschedule/README.md
+++ b/docs/de/adapterref/iobroker.trashschedule/README.md
@@ -80,9 +80,10 @@ ttd:
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 3.4.0 (2024-11-07)
* (@klein0r) Validate user inputs in instance configuration
+* (@Sickboy78) Added Awido as Webservice
### 3.3.0 (2024-04-28)
@@ -106,10 +107,6 @@ NodeJS >= 18.x and js-controller >= 5 is required
* (klein0r) Fixed exception when cache dir doesn't exist
-### 3.1.1 (2023-12-22)
-
-* (klein0r) Fixed config validation / integration test
-
## License
MIT License
diff --git a/docs/de/adapterref/iobroker.trashschedule/providers.md b/docs/de/adapterref/iobroker.trashschedule/providers.md
index 4712fc0b7..a4f3aad53 100644
--- a/docs/de/adapterref/iobroker.trashschedule/providers.md
+++ b/docs/de/adapterref/iobroker.trashschedule/providers.md
@@ -114,4 +114,55 @@ chapters: {"pages":{"de/adapterref/iobroker.trashschedule/README.md":{"title":{"
- Waldenbuch
- Weil der Stadt
- Weil im Schönbuch
- - Weissach
\ No newline at end of file
+ - Weissach
+
+## Awido.de
+
+- LK Aichach Friedberg
+- LK Altenkirchen
+- LK Ansbach
+- LK Aschaffenburg
+- LK Bad Dürkheim
+- LK Bad Tölz - Wolfratshausen
+- LK Berchtesgadener Land
+- Burbach
+- LK Coburg
+- LK Dachau
+- LK Erding
+- Fulda
+- LK Fulda
+- LK Fürstenfeldbruck
+- LK Gießen
+- LK Gotha
+- LK Günzburg
+- LK Haßberge
+- LK Hersfeld Rotenburg
+- Kaufbeuren
+- LK Kelheim
+- LK Kulmbach
+- LK Kronach
+- LK Lahn Dill
+- Memmingen
+- LK Mühldorf am Inn
+- München Südost
+- LK Neuburg Schrobenhausen
+- LK Neustadt a.d. Waldnaab
+- Nordschwaben
+- Pullach
+- Regensburg
+- LK Regensburg
+- LK Rems-Murr AöR
+- LK Rosenheim
+- LK Roth
+- LK Rottal-Inn und Dingolfing-Landau
+- LK Saale-Orla und Saalfeld-Rudolstadt
+- LK Schweinfurt
+- LK Südliche Weinstrasse
+- LK Tirschenreuth
+- LK Tübingen
+- Unterhaching
+- Unterschleißheim
+- Allmannshofen [Kein Müll]
+- Heretsried [Kein Müll]
+- Tae Kwon Do Bruderschule Hyeonsil [Kein Müll]
+- VDI Mittelrheinischer Bezirksverein [Kein Müll]
\ No newline at end of file
diff --git a/docs/de/adapterref/iobroker.tvprogram/README.md b/docs/de/adapterref/iobroker.tvprogram/README.md
index 175156ce8..e3df1b01a 100644
--- a/docs/de/adapterref/iobroker.tvprogram/README.md
+++ b/docs/de/adapterref/iobroker.tvprogram/README.md
@@ -3,24 +3,20 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.tvprogram/README.md
title: ioBroker.tvProgramm
-hash: bh7exE/7l1zvVL/9jArdjpqy6TDsyLcE4vuJkJzH3gE=
+hash: D6PEjRUhQ+htZHtYMcpl5ZpppPpnCvz/5zs4H8lC7dc=
---
![Logo](../../../en/adapterref/iobroker.tvprogram/admin/tvprogram.png)
-![NPM-Version](https://img.shields.io/npm/v/iobroker.tvprogram1.svg)
-![Downloads](https://img.shields.io/npm/dm/iobroker.tvprogram1.svg)
-![Anzahl der Installationen](https://iobroker.live/badges/tvprogram1-installed.svg)
-![Aktuelle Version im stabilen Repository](https://iobroker.live/badges/tvprogram1-stable.svg)
-![NPM](https://nodei.co/npm/iobroker.tvprogram1.png?downloads=true)
-![Travis-CI](http://img.shields.io/travis/oweitman/ioBroker.tvprogram/master.svg)
-![AppVeyor-Build-Status](https://img.shields.io/appveyor/ci/oweitman/iobroker-tvprogram.svg)
+![NPM-Version](https://img.shields.io/npm/v/iobroker.tvprogram.svg)
+![Downloads](https://img.shields.io/npm/dm/iobroker.tvprogram.svg)
+![Anzahl der Installationen](https://iobroker.live/badges/tvprogram-installed.svg)
+![Aktuelle Version im stabilen Repository](https://iobroker.live/badges/tvprogram-stable.svg)
+![NPM](https://nodei.co/npm/iobroker.tvprogram.png?downloads=true)
# IoBroker.tv-Programm
-**Tests:** ![Testen und Freigeben](https://github.com/oweitman/ioBroker.tvprogram1/workflows/Test%20and%20Release/badge.svg)
+**Tests:** ![Testen und Freigeben](https://github.com/oweitman/ioBroker.tvprogram/workflows/Test%20and%20Release/badge.svg)
-**Tests:**
-
-## TV-Programm-Adapter für ioBroker
+## `tvprogram`-Adapter für ioBroker
Dieser Adapter fragt in regelmäßigen Abständen Informationen zum Fernsehprogramm ab.
Die Daten können in verschiedenen Widgets angezeigt werden.
@@ -30,7 +26,7 @@ Aufgrund der Größe werden die Daten nicht in Datenpunkten, sondern in Dateien
In der Konfiguration muss das Widget dann nur noch mit einem beliebigen Datenpunkt des Adapters befüllt werden (z.B.cmd).
-Alle restlichen Datenpunkte sucht das Widget automatisch.
+Alle restlichen Datenpunkte sucht das Widget automatisch heraus.
## Installation
Der Adapter kann über die stabile Version oder zum Testen über das Beta-/Neueste-Repository installiert werden.
@@ -38,13 +34,6 @@ Der Adapter kann über die stabile Version oder zum Testen über das Beta-/Neues
### Adapterkonfiguration
Sie können konfigurieren, wie viele verschiedene Fernseher oder zumindest verschiedene Konfigurationen Sie haben möchten.
-### Warnungen im iobroker-log
-Warnungen wie
-
-„Der schreibgeschützte Status „tvprogram.0.tv1.cmd“ wurde ohne Ack-Flag mit dem Wert „new|program|2021-01-01“ geschrieben.
-
-sind aufgrund des internen Signalmechanismus zwischen dem Adapter und den Widgets, die zuerst ohne das Ack-Flag gesetzt und nach einer Weile mit dem Ack-Flag zurückgesetzt werden, von Natur aus in Ordnung.
-
### Widgets
Widgets werden nur in modernen Browsern (Google Chrome, Mozilla Firefox, Opera, Safari) unterstützt.
Internet Explorer oder Microsoft Edge ohne Chromium (Version <79) werden nicht unterstützt.
@@ -65,32 +54,32 @@ iobroker lädt alles hoch
Die folgenden Attribute stehen zur Konfiguration in vis zur Verfügung. Die Mindestkonfiguration besteht darin, den Datenpunkt auf den Befehlsdatenpunkt festzulegen.
| Attribut | Beispiel | Beschreibung |
-| --------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
-| tvprogram_oid | tvprogram.0.tv1.cmd | Ein Datenpunkt einer Instanz des TVprogram-Adapters. |
-| widthItem | 120 | Standardbreite in Pixeln für ein 30-Minuten-Segment |
-| heightRow | 35 | Höhe für jede angezeigte Zeile |
-| Bilder anzeigen | x | Bilder in der Timeline anzeigen, falls verfügbar |
-| headerfontpercent | 125 | Zeichengröße in Prozent für die Überschrift (Uhrzeit) |
-| broadcastfontpercent | 75 | Zeichengröße in Prozent für die Broadcasts |
-| Highlightfarbe | Gelb | Farbe für die Favoriten |
-| markerpositionpercent | 25 | Position des Markers in Prozent der Widgetbreite |
-| Dialogbreiteprozentsatz | 90 | Größe der Dialoge in Prozent des Widgets |
-| dialogheightpercent | 90 | Größe der Dialoge in Prozent des Widgets |
+| ----------------------- | --------------------- | ----------------------------------------------------- |
+| `tvprogram_oid` | `tvprogram.0.tv1.cmd` | Ein Datenpunkt einer Instanz des `tvprogram`-Adapters. |
+| `heightRow` | 35 | Höhe für jede angezeigte Zeile |
+| `showpictures` | x | Bilder in der Timeline anzeigen, falls verfügbar |
+| `headerfontpercent` | 125 | Zeichengröße in Prozent für die Überschrift (Uhrzeit) |
+| `broadcastfontpercent` | 75 | Zeichengröße in Prozent für die Sendungen |
+| `highlightcolor` | gelb | Farbe für die Favoriten |
+| `markerpositionpercent` | 25 | Position des Markers in Prozent der Widgetbreite |
+| `dialogwidthpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
##### CSS-Klassen
-Bitte ändern Sie w00001 in Ihre Widget-ID
+Bitte ändern Sie `w00001` in Ihre Widget-ID
So ändern Sie die Formatierung der Dialoge
```css
#w00001channeldlg {
- background-color: red !important;
+ background-color: red !important;
}
```
```css
#w00001broadcastdlg {
- background-color: red !important;
+ background-color: red !important;
}
```
@@ -99,26 +88,36 @@ Möglicherweise müssen Sie eine höhere Zahl als 300 festlegen. Dies hängt von
```css
.ui-dialog.w00001 {
- z-index:300 !important;
+ z-index: 300 !important;
}
```
So ändern Sie die Formatierung der wechselnden Hintergrundfarben der Sendungen
```css
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(odd),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+#w00001 .scrollcontainer ul.tv-row:nth-child(odd) > li.broadcast:nth-child(odd),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.65);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(even),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(odd)
+ > li.broadcast:nth-child(even),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.55);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.45);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.45);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.35);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.35);
}
-
```
#### Favoriten
@@ -127,12 +126,12 @@ Dieses Widget zeigt eine Liste der ausgewählten Favoriten, sortiert nach Datum
Die folgenden Attribute stehen zur Konfiguration in vis zur Verfügung. Die Mindestkonfiguration besteht darin, den Datenpunkt auf den Befehlsdatenpunkt festzulegen.
| Attribut | Beispiel | Beschreibung |
-| -------------- | -------------------- | --------------------------------------------------- |
-| oid | tvprogram.0.tv 1.cmd | Ein Datenpunkt einer Instanz des TVprogram-Adapters. |
-| Kanalname | nein | Logo (aus) oder Kanalnamen anzeigen |
-| Wochentag anzeigen | ja | Wochentag anzeigen |
-| Maxfavorites | 10 | Max. anzuzeigende Favoriten |
-| Highlightfarbe | Gelb | Farbe für die Favoriten |
+| ---------------- | ---------------------- | ----------------------------------------------------- |
+| `oid` | `tvprogram.0.tv 1.cmd` | Ein Datenpunkt einer Instanz des `tvprogram`-Adapters. |
+| `showweekday` | `yes` | Wochentag anzeigen |
+| `maxfavorites` | 10 | Max. anzuzeigende Favoriten |
+| `highlightcolor` | `yellow` | Farbe für die Favoriten |
+| `Highlightcolor` | `Yellow` | Farbe für die Favoriten |
#### Kontrolle
Dieses Widget zeigt alle aktuellen Sendungen. Sie können auf das Kanallogo klicken, um den Kanal zu wechseln.
@@ -141,32 +140,31 @@ Sie können auf die Sendung klicken, um detaillierte Informationen zur Sendung z
Die folgenden Attribute stehen zur Konfiguration in vis zur Verfügung. Die Mindestkonfiguration besteht darin, den Datenpunkt auf den Befehlsdatenpunkt festzulegen.
| Attribut | Beispiel | Beschreibung |
-| --------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
-| oid | tvprogram.0.tv1.cmd | Ein Datenpunkt einer Instanz des TVprogram-Adapters. |
-| Zeit | | Wenn leer, werden die aktuellen Sendungen angezeigt |
-| Uhrzeit | 20:15 | wenn nur Uhrzeit angegeben ist, würde die Sendung zu dieser Uhrzeit 120 Minuten lang gezeigt, dann wird der nächste Tag gezeigt |
-| Uhrzeit | 20:15/200 | Wenn Uhrzeit mit Dauer angegeben wird, würde die Sendung zu dieser Uhrzeit 200 Minuten lang gezeigt werden |
-| Zeit | 2021-02-15T20:15:00.000Z | Wenn es sich um eine gültige Datumszeichenfolge handelt, wird die Sendung zu diesem Zeitpunkt angezeigt. Denken Sie an die Zeitzonen |
-| heightRow | 35 | Höhe für jede angezeigte Zeile |
-| Bilder anzeigen | x | Bilder anzeigen wenn vorhanden |
-| broadcastfontpercent | 75 | Zeichengröße in Prozent für die Broadcasts |
-| Highlightfarbe | Gelb | Farbe für die Favoriten |
-| Dialogbreiteprozentsatz | 90 | Größe der Dialoge in Prozent des Widgets |
-| dialogheightpercent | 90 | Größe der Dialoge in Prozent des Widgets |
+| ---------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
+| `oid` | `tvprogram.0.tv1.cmd` | Ein Datenpunkt einer Instanz des `tvprogram`-Adapters. |
+| `time` | 20:15 | wenn Uhrzeit nur die Sendung zu dieser Uhrzeit für 120 Minuten gezeigt werden soll, dann wird die Sendung vom nächsten Tag gezeigt |
+| `time` | 20:15/200 | wenn Uhrzeit mit Dauer angegeben wird, würde die Sendung zu dieser Uhrzeit 200 Minuten lang gezeigt werden |
+| `time` | 2021-02-15T20:15:00.000Z | Wenn es sich um eine gültige Datumszeichenfolge handelt, wird die Sendung zu diesem Zeitpunkt angezeigt. Denken Sie an die Zeitzonen |
+| `heightRow` | 35 | Höhe für jede angezeigte Zeile |
+| `showpictures` | x | Bilder anzeigen, falls verfügbar |
+| `broadcastfontpercent` | 75 | Zeichengröße in Prozent für die Sendungen |
+| `highlightcolor` | `yellow` | Farbe für die Favoriten |
+| `dialogwidthpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
##### CSS-Klassen
-Bitte ändern Sie w00001 in Ihre Widget-ID
+Bitte ändern Sie `w00001` in Ihre Widget-ID
So ändern Sie die Formatierung der wechselnden Hintergrundfarben der Sendungen
```css
#w00001 .tv-control .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-control .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
#### Suchen
@@ -181,213 +179,231 @@ Eines oder beide der Eingabefelder Suchtext und Kategorie müssen ausgefüllt/au
Die folgenden Attribute stehen zur Konfiguration in vis zur Verfügung. Die Mindestkonfiguration besteht darin, den Datenpunkt auf den Befehlsdatenpunkt festzulegen.
| Attribut | Beispiel | Beschreibung |
-| --------------------- | ------------------- | ---------------------------------------------------- |
-| Objekt-ID | tvprogram.0.tv1.cmd | Ein Datenpunkt einer Instanz des TVprogram-Adapters. |
-| Bilder anzeigen | x | Bilder anzeigen wenn vorhanden |
-| max. Ergebnisse | 10 | max. Ergebnisse in der Liste |
-| heightRow | 35 | Höhe für jede angezeigte Zeile |
-| broadcastfontpercent | 75 | Zeichengröße in Prozent für die Broadcasts |
-| Highlightfarbe | Gelb | Farbe für die Favoriten |
-| Dialogbreiteprozentsatz | 90 | Größe der Dialoge in Prozent des Widgets |
-| dialogheightpercent | 90 | Größe der Dialoge in Prozent des Widgets |
+| ---------------------- | --------------------- | ----------------------------------------------------- |
+| `Object ID` | `tvprogram.0.tv1.cmd` | Ein Datenpunkt einer Instanz des `tvprogram`-Adapters. |
+| `maxresults` | 10 | max. Ergebnisse in der Liste |
+| `heightRow` | 35 | Höhe für jede angezeigte Zeile |
+| `broadcastfontpercent` | 75 | Zeichengröße in Prozent für die Sendungen |
+| `highlightcolor` | `yellow` | Farbe für die Favoriten |
+| `dialogwidthpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
+| `dialogheightpercent` | 90 | Größe der Dialoge in Prozent des Widgets |
##### CSS-Klassen
-Bitte ändern Sie w00001 in Ihre Widget-ID
+Bitte ändern Sie `w00001` in Ihre Widget-ID
So ändern Sie die Formatierung der wechselnden Hintergrundfarben der Sendungen
```css
#w00001 .tv-search .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-search .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
### Bereitgestellte Datenpunkte
Für jedes angelegte Fernsehgerät gibt es den folgenden Datenpunktsatz
-#### Kanalfilter
+#### `channelfilter`
Dieser Datenpunkt enthält die im Widget angezeigten Kanäle als JSON-Array
-#### Cmd
+#### `cmd`
Dieser Datenpunkt wird für die interne Kommunikation zwischen den Widgets und dem Adapter verwendet
-#### Favoriten
+#### `favorites`
Dieser Datenpunkt enthält die ausgewählten Favoriten als JSON-Array
-#### Aufzeichnen
+#### `record`
Dieser Datenpunkt wird gesetzt, wenn der Benutzer in der Detailansicht einer Sendung auf die Schaltfläche „Aufzeichnen“ klickt.
Die bereitgestellten Daten sind
| Feld | Beispiel | Beschreibung |
-| ----------- | -------------------------- | ---------------------- |
-| Startzeit | 01.01.2021T00:10:00+01:00 | Startzeit |
-| Endzeit | 01.01.2021T00:10:30+01:00 | Endzeit |
-| Titel | Titel der Sendung | Titel der Sendung |
-| Kanal | 7 | Eindeutige Kanalnummer |
-| Kanal-ID | ZDF | Eindeutige Kanal-ID |
-| Kanalname | ZDF | Lesbarer Kanalname |
-| Ereignis-ID | 12345678 | Eindeutige Broadcast-ID |
-
-#### Kanal auswählen
+| ------------- | ------------------------- | ---------------------- |
+| `startTime` | 2021-01-01T00:10:00+01:00 | Startzeit |
+| `title` | Titel der Sendung | Titel der Sendung |
+| `channel` | 7 | Eindeutige Kanalnummer |
+| `channelid` | `zdf` | Eindeutige Kanal-ID |
+| `channelname` | `ZDF` | Lesbarer Kanalname |
+| `eventid` | 12345678 | Eindeutige Broadcast-ID |
+| `eventid` | 12345678 | Eindeutige Broadcast-ID |
+
+#### `selectchannel`
Dieser Datenpunkt dient der Erkennung eines Kanalwechselbefehls bei Klick auf das Kanallogo oder das Umschaltsymbol in der Detailansicht.
-#### Zeigen
+#### `show`
Dieser Datenpunkt enthält den Status, ob nur Favoriten oder alles im Widget TV-Programm angezeigt werden soll
-#### Konfiguration
+#### `config`
dieser Datenpunkt ist veraltet und wird in den nächsten Versionen entfernt
-### Bereitgestellte Sendto-Befehle
+### Bereitgestellte `Sendto`-Befehle
Alle Daten können über Sendto-Befehle vom Adapter abgefragt werden. Dies kann zur Entwicklung individueller Funktionalitäten genutzt werden
-#### GetServerData
+#### `getServerData`
Fordern Sie Basisdaten vom Adapter an.
##### Gültige Parameter sind
-* Kategorien
-* Genres
-* Kanäle
+- `Kategorien`
+- `Genres`
+- `Kanäle`
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerData","categories",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerData", "categories", (data) =>
+ console.log(data),
+);
```
-#### GetServerTVProgram
+#### `getServerTVProgram`
Programmdaten vom Adapter anfordern.
##### Gültige Parameter sind
-eine Datumszeichenfolge im folgenden Format: jjjj-mm-tt
+eine Datumszeichenfolge im folgenden Format: `yyyy-mm-dd`
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerTVProgram","2021-02-10",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerTVProgram", "2021-02-10", (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcast
+#### `getServerBroadcast`
Detaildaten einer Sendung anfordern.
##### Gültige Parameter sind
ein Objekt, das ein Anzeigedatum im folgenden Format enthält: jjjj-mm-tt die Ereignis-ID der Übertragung
-**Kehrt zurück:**
+**Rücksendungen:**
-Objekt
+`Object`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerBroadcast",{viewdate:"2021-02-10",eventid:"10659522"},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcast",
+ { viewdate: "2021-02-10", eventid: "10659522" },
+ (data) => console.log(data),
+);
```
-#### GetFavoritesDatax
-Fordern Sie von jetzt an alle Lieblingssendungen an, bis der gespeicherte Datenbestand aufgebraucht ist.
+#### `getFavoritesData`
+Fordern Sie von jetzt an alle Lieblingssendungen an, bis das gespeicherte Datenvolumen aufgebraucht ist.
##### Gültige Parameter sind
-Auswahl an Favoriten
+`Array` Favoriten
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getFavoritesDatax",['heute','Tagesschau'],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getFavoritesData", ["heute", "Tagesschau"], (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcastNow
+#### `getServerBroadcastNow`
Fordert alle aktuell laufenden Sendungen an
##### Gültige Parameter sind
Array von Kanal-IDs Ihrer Lieblingskanäle
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastNow",[1,6,22,7],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerBroadcastNow", [1, 6, 22, 7], (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcastDate
+#### `getServerBroadcastDate`
Fordert alle Übertragungen an, die zu einem bestimmten Zeitpunkt ausgeführt werden
##### Gültige Parameter sind
Array von Kanal-IDs Ihrer Lieblingskanäle datetime
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastDate",{channelfilter:[1,6,22,7],date:"2021-02-10T20:15:00.000Z"},(data)=>console.log(data));
-
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastDate",
+ { channelfilter: [1, 6, 22, 7], date: "2021-02-10T20:15:00.000Z" },
+ (data) => console.log(data),
+);
```
-#### GetServerBroadcastFind
+#### `getServerBroadcastFind`
Suche nach Sendungen in einem Zeitbereich und optional mit Kategorien
##### Gültige Parameter sind
-channelfilter: Array von channelIDs Ihrer Lieblingskanäle categoryfilter: Optionales Array von categoryIDs datetimefrom: datetime von datetimetill: datetime bis textfilter: Optionaler Titel oder Teil eines Titels, in dem gesucht werden soll maxresults: Optional die maximale Anzahl von Ergebnissen. Der Standardwert ist 10
+`channelfilter`: Array von Kanal-IDs Ihrer Lieblingskanäle `categoryfilter`: Optionales Array von Kategorie-IDs `datetimefrom`: Datum/Uhrzeit von `datetimetill`: Datum/Uhrzeit bis `textfilter`: Optionaler Titel oder Teil eines zu suchenden Titels `maxresults`: Optional die maximale Anzahl der Ergebnisse. Der Standardwert ist 10
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastFind",{
- channelfilter:[1,6,22,7],
- categoryfilter:[],
- datefrom:"2021-02-10T10:00:00.000Z",
- datetill:"2021-02-10T23:00:00.000Z",
- textfilter:"",
- maxresults:10
-},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastFind",
+ {
+ channelfilter: [1, 6, 22, 7],
+ categoryfilter: [],
+ datefrom: "2021-02-10T10:00:00.000Z",
+ datetill: "2021-02-10T23:00:00.000Z",
+ textfilter: "",
+ maxresults: 10,
+ },
+ (data) => console.log(data),
+);
```
-#### GetServerInfo
+#### `getServerInfo`
Verfügbare Sendetermine im Adapterspeicher abfragen
##### Gültige Parameter sind
leeres Objekt
-**Kehrt zurück:**
+**Rücksendungen:**
-Anordnung
+`Array`
**Beispiel:**
```javascript
-sendTo("tvprogram.0","getServerInfo","{}",(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerInfo", "{}", (data) => console.log(data));
```
### Community stellt Widgets/Skripte bereit
-#### Harmony und MagentaTV
-Skript erstellt von pix Nach dem Klick auf das Kanallogo setzt das Skript die zugeordnete Kanal-ID auf den Harmony-Datenpunkt
+#### `Harmony` und `MagentaTV`
+Skript bereitgestellt von pix Nach dem Klick auf das Kanallogo setzt das Skript die zugeordnete Kanal-ID auf den Harmony-Datenpunkt
```javascript
/* TV Programm Adapter
@@ -404,90 +420,102 @@ Adapter von 1/2021 von oweitmann https://github.com/oweitman/ioBroker.tvprogram
const logging = true;
const idKanalWahl = "tvprogram.0.tv1.selectchannel"; // Dateingabe aus VIS
const fbdelay = 1000; // delay zwischen Tastendrücken der IR_Fernbedienung in ms
-const channelList = { // Ausgabe vom Adapter : Kanalnummer im Receiver
- "ard" : 1,
- "zdf" : 2,
- "rtl" : 3,
- "sat1": 4,
- "pro7": 5,
- "vox" : 6,
- "kaka":7,
- "rtl2":8,
- "superrtl":9,
- "kika":10,
- /* nickelodeon 11 */
- "3sat":12,
- "welt":13,
- "ntv":14,
- "phoenix":15,
- "tele5":16,
- "zdfneo":17,
- /* #dabeiTV 18 */
- /* disneyplus 19 */
- /* lokalTV 20 */
- "bayern3":21,
- "hessen3":25,
- "mdr":27,
- "nord3":29,
- /* "bremen":30, */
- /* "rbb berlin":31, */
- /* "sr":36, */
- "sw3":37, // bw
- /* "sw3":38, // rp */
- "west3":39,
- /* "eurosport1":50, */
- "sport1":51,
- /* sky sport news 52 */
- "arte":55,
- "one":56,
- /* anixe 60 */
- "dmax":64,
- "pro7maxx":69,
- "nitro":70,
- /* sat1 gold 73 */
- "sixx":75,
- /* ard alpha 80 */
- /* DW 85 */
- /* euronews */
- /* Kabel Eins Doku 89 */
- /* N24 Doku 90 */
- "tagesschau24":91,
- /* Welt der Wunder 92 */
- /* zdfinfo 93 */
- "mtv":99,
+const channelList = {
+ // Ausgabe vom Adapter : Kanalnummer im Receiver
+ ard: 1,
+ zdf: 2,
+ rtl: 3,
+ sat1: 4,
+ pro7: 5,
+ vox: 6,
+ kaka: 7,
+ rtl2: 8,
+ superrtl: 9,
+ kika: 10,
+ /* nickelodeon 11 */
+ "3sat": 12,
+ welt: 13,
+ ntv: 14,
+ phoenix: 15,
+ tele5: 16,
+ zdfneo: 17,
+ /* #dabeiTV 18 */
+ /* disneyplus 19 */
+ /* lokalTV 20 */
+ bayern3: 21,
+ hessen3: 25,
+ mdr: 27,
+ nord3: 29,
+ /* "bremen":30, */
+ /* "rbb berlin":31, */
+ /* "sr":36, */
+ sw3: 37, // bw
+ /* "sw3":38, // rp */
+ west3: 39,
+ /* "eurosport1":50, */
+ sport1: 51,
+ /* sky sport news 52 */
+ arte: 55,
+ one: 56,
+ /* anixe 60 */
+ dmax: 64,
+ pro7maxx: 69,
+ nitro: 70,
+ /* sat1 gold 73 */
+ sixx: 75,
+ /* ard alpha 80 */
+ /* DW 85 */
+ /* euronews */
+ /* Kabel Eins Doku 89 */
+ /* N24 Doku 90 */
+ tagesschau24: 91,
+ /* Welt der Wunder 92 */
+ /* zdfinfo 93 */
+ mtv: 99,
};
-function selectChannel (chNo) {
- // Zerlegen mehrstelliger Zahlen
- let ch_arr = new Array();
- ch_arr = [];
- if (logging) log("Kanalnummer gewählt: " + chNo);
- while (chNo > 0) { // rückwärts
- if (logging) log("erkannte Ziffer: " + chNo % 10 );
- ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
- chNo = chNo / 10;
- chNo = parseInt(chNo);
- }
- // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
- ch_arr.reverse();
- if (logging) log ("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
- for (let i = 0; i < ch_arr.length; i++) {
- // passende OID füllen
- setStateDelayed("harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i], 1, fbdelay, function() {
- if (logging) log ((i+1) + ". Taste: " + ch_arr[i] + " gedrückt");
- });
- }
+function selectChannel(chNo) {
+ // Zerlegen mehrstelliger Zahlen
+ let ch_arr = new Array();
+ ch_arr = [];
+ if (logging) log("Kanalnummer gewählt: " + chNo);
+ while (chNo > 0) {
+ // rückwärts
+ if (logging) log("erkannte Ziffer: " + (chNo % 10));
+ ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
+ chNo = chNo / 10;
+ chNo = parseInt(chNo);
+ }
+ // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
+ ch_arr.reverse();
+ if (logging) log("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
+ for (let i = 0; i < ch_arr.length; i++) {
+ // passende OID füllen
+ setStateDelayed(
+ "harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i],
+ 1,
+ fbdelay,
+ function () {
+ if (logging) log(i + 1 + ". Taste: " + ch_arr[i] + " gedrückt");
+ },
+ );
+ }
}
on(idKanalWahl, function (obj) {
- log("Neues TV Programm: " + obj.state.val + " auf Kanal " + channelList[obj.state.val] + " gewählt");
- selectChannel(channelList[obj.state.val]);
+ log(
+ "Neues TV Programm: " +
+ obj.state.val +
+ " auf Kanal " +
+ channelList[obj.state.val] +
+ " gewählt",
+ );
+ selectChannel(channelList[obj.state.val]);
});
-
```
### Funktionen sind nicht im Adapter implementiert, werden aber als Skripte für den JavaScript-Adapter bereitgestellt
-#### Rekordliste
+#### `Recordlist`
Liste aller aktuellen Aufnahmezeiten, die vom Aufnahmedatenpunkt erfasst und minütlich aktualisiert werden.
Sie müssen den Datenpunktnamen Ihrer RecorderList und den Namen des zu beobachtenden Datenpunkts konfigurieren.
@@ -498,44 +526,43 @@ Sobald das Skript die Aufnahme zur Liste hinzugefügt hat, wird der Aufnahmedate
// datapoint where the List should be saved
var recorderListDP = "0_userdata.0.tvprogram.RecorderList";
// datapoint who should be monitored of new data
-var recorderDP ="tvprogram.0.tv1.record";
+var recorderDP = "tvprogram.0.tv1.record";
on(recorderDP, function (obj) {
- var recorderList;
- var index;
- console.log(obj.state.val);
- try {
- var recObj = JSON.parse(obj.state.val);
- } catch {
- return;
- }
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- index = recorderList.findIndex(function(el) {
- return JSON.stringify(el)==JSON.stringify(recObj);
- });
- if (index>-1) {
- recorderList.splice(index,1);
- }
- recorderList.push(recObj);
- setState(recorderListDP,JSON.stringify(recorderList));
- setState(recorderDP,"");
-
+ var recorderList;
+ var index;
+ console.log(obj.state.val);
+ try {
+ var recObj = JSON.parse(obj.state.val);
+ } catch {
+ return;
+ }
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ index = recorderList.findIndex(function (el) {
+ return JSON.stringify(el) == JSON.stringify(recObj);
+ });
+ if (index > -1) {
+ recorderList.splice(index, 1);
+ }
+ recorderList.push(recObj);
+ setState(recorderListDP, JSON.stringify(recorderList));
+ setState(recorderDP, "");
});
-var timer = setInterval(function() {
- var recorderList;
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- recorderList=recorderList.filter( (el) => new Date(el.endTime)>new Date());
- setState(recorderListDP,JSON.stringify(recorderList));
-},1000*60);
- ```
+var timer = setInterval(function () {
+ var recorderList;
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ recorderList = recorderList.filter((el) => new Date(el.endTime) > new Date());
+ setState(recorderListDP, JSON.stringify(recorderList));
+}, 1000 * 60);
+```
Zur Visualisierung dieser Daten kann das Widget JSON Template vom Adapter myTime mit folgender Vorlage helfen.
-Gebt als json_oid den Datapoint mit der Recordlist an und als json_template folgenden Code:
+Gebt als json_oid den Datenpunkt mit dem `recordlist` ein und als json_template folgenden Code:
```javascript
<% data.sort((a,b)=>new Date(a.startTime) - new Date(b.startTime)) %>
@@ -566,19 +593,21 @@ var favoritesDP = "tvprogram.0.tv1.favorites";
// channelfilter datapoint of your tv
var channelfilterDP = "tvprogram.0.tv1.channelfilter";
// datapoint where the result should be saved
-var favoritesBool ="0_userdata.0.tvprogram.favoriteNow";
-
-var timer = setInterval(function() {
- var favorites = JSON.parse(getState(favoritesDP).val);
- var channelfilter = JSON.parse(getState(channelfilterDP).val);
- sendTo("tvprogram.0","getServerBroadcastNow",channelfilter,(data)=>{
- setState(favoritesBool,data.some((el) => favorites.includes(el.events[0].title)))
- });
-},1000*60);
-
+var favoritesBool = "0_userdata.0.tvprogram.favoriteNow";
+
+var timer = setInterval(function () {
+ var favorites = JSON.parse(getState(favoritesDP).val);
+ var channelfilter = JSON.parse(getState(channelfilterDP).val);
+ sendTo("tvprogram.0", "getServerBroadcastNow", channelfilter, (data) => {
+ setState(
+ favoritesBool,
+ data.some((el) => favorites.includes(el.events[0].title)),
+ );
+ });
+}, 1000 * 60);
```
-#### Einfärbung von Sendungen, die sich im Datenpunkt Recordlist im Widget TVProgram befinden
+#### Einfärbung von Sendungen, die sich im Datenpunkt `recordlist` im Widget tvprogram befinden
die folgende Vorlage ist für die Widget-JSON-Vorlage vom Adapter RSS-Feed.
Diese Vorlage erzeugt keine sichtbare Ausgabe, sondern generiert CSS-Anweisungen, die die aktuellen Programme einfärben.
Sie färbt auch die Aufnahmeschaltfläche in der Detailansicht ein.
@@ -608,64 +637,79 @@ Um diese Vorlage zu verwenden, wählen Sie bitte den Datensatzlisten-Datenpunkt
```
### Funktionen
-* TV-Daten auf der Zeitleiste nach TV-Kanal anzeigen
-* Details zu einer Fernsehsendung anzeigen, sofern verfügbar
-* Anzeige einer Markierung der aktuellen Position mit automatischem Scrollen
-* Angezeigte TV-Sender konfigurieren und anordnen, Neusortierung per Drag&Drop möglich.
-* Schaltbefehl über Datenpunkt nach Klick auf Logo
-* hineinzoomen herauszoomen
-* Navigation nächster und vorheriger Tag
-* Wiedergabetaste zum Umschalten des Kanaldatenpunkts
-* Zoom in der Mitte der nächsten Tage
-* zurück zum Heute
-* Zoom zurücksetzen
-* Lieblingssendungen
-* Text aus der Detailansicht kopieren
-* Markerposition ist konfigurierbar
-* Dialogbreite und -höhe sind konfigurierbar
-* Datenpunkt-Aufzeichnung, der nach Druck auf Knopf mit Aufnahmedaten gefüllt wird
-* Widget für Favoriten
-* Nicht-Favoriten ausblenden
-
-### Machen
+- TV-Daten auf der Zeitleiste nach TV-Kanal anzeigen
+- Details zu einer Fernsehsendung anzeigen, sofern verfügbar
+- Anzeige einer Markierung der aktuellen Position mit automatischem Scrollen
+- Angezeigte TV-Sender konfigurieren und anordnen, Neusortierung per Drag & Drop möglich.
+- Schaltbefehl über Datenpunkt nach Klick auf Logo
+- Vergrößern/Verkleinern
+- Navigation nächster und vorheriger Tag
+- Wiedergabetaste zum Umschalten des Kanaldatenpunkts
+- Zoom in der Mitte der nächsten Tage
+- zurück in die Gegenwart
+- Zoom zurücksetzen
+- Lieblingssendungen
+- Text aus der Detailansicht kopieren
+- Markerposition ist konfigurierbar
+- Dialogbreite und -höhe sind konfigurierbar
+- Datenpunkt-Aufzeichnung, die nach Druck auf Knopf mit Aufnahmedaten gefüllt wird
+- Widget für Favoriten
+- Nicht-Favoriten ausblenden
+
+### Aufgaben
Widget TV-Programm:
-* möglicherweise ein Highlight-Übertragungs-Widget
-* Datenadapter für andere Quellen (Internet, Hardware wie Enigma, VU-Box). Überlegungen hierzu sind derzeit aufgrund der geringen Nachfrage ausgesetzt
-* ~~Dokumentation zur Konfiguration der Widgets verbessern~~
-* ~~Bilder übertragen, sofern verfügbar, in der Hauptansicht des Zeit-Widgets~~
-* ~~durchsuche den gesamten Text, um auch Regisseure und Schauspieler zu finden~~
-* ~~Tooltips für die Schaltflächen im Zeit-Widget~~
-* ~~Ideen für weitere Widgets basierend auf dem bestehenden TV-Programmskript~~
-* ~~Problem: endloses Scrollen in Firefox~~
-* ~~zu besprechen: Datenpunkt, mit allen Aufnahmedaten, sollte auf einem Videorecorder-Adapter oder in einem separaten Skript implementiert werden~~
-* ~~Responsive Design für Detailansicht->kein Responsive Design für jQuery-Dialog möglich, andere Lösung mit festen Layouts für Höhe>Breite gefunden~~
-* ~~Problem: kleiner Pixelfehler, wenn der Scrollbereich auf der linken Seite vollständig ist~~
+- vielleicht ein Highlight-Sendungs-Widget
+- Datenadapter für andere Quellen (Internet, Hardware wie Enigma, VU-Box). Überlegungen hierzu sind derzeit aufgrund der geringen Nachfrage ausgesetzt
+- ~~Dokumentation zur Konfiguration der Widgets verbessern~~
+- ~~Bilder übertragen, sofern verfügbar, in der Hauptansicht des Zeit-Widgets~~
+- ~~Suche im gesamten Text, um auch Regisseure und Schauspieler zu finden~~
+- ~~Tooltips für die Schaltflächen im Zeit-Widget~~
+- ~~Ideen für weitere Widgets basierend auf dem bestehenden TV-Programmskript~~
+- ~~Problem: Endloses Scrollen in Firefox~~
+- ~~zu besprechen: Datenpunkt, mit allen Aufnahmedaten, sollte an einem Videorecorder-Adapter oder in einem separaten Skript implementiert werden~~
+- ~~Responsive Design für Detailansicht->kein Responsive Design für jQuery-Dialog möglich, andere Lösung mit festen Layouts für Höhe>Breite gefunden~~
+- ~~Problem: kleiner Pixelfehler, wenn der Scrollbereich auf der linken Seite vollständig ist~~
## Changelog
+
-### 1.1.3-alpha.1 (2024-06-04)
-* fix lint errors
+### **WORK IN PROGRESS**
+
+- Change sento command from getFavoritesDatax to getFavoritesData
+
+### 2.0.2 (2024-11-17)
+
+- fix jsonconfig
+- add node 22 to testing
+
+### 2.0.1 (2024-11-16)
+
+- fix lint errors
-### 1.1.3-alpha.0 (2024-06-04)
+### 2.0.0 (2024-11-16)
-* align structures and files
+- fix lint errors
+- align structures and files
+- switch to jsonconfig
+- config translations
+- make vis2 compatible (maybe some glitches included, please report)
### 1.1.1 (2021-08-10)
-* remove dead code / extend doku about the warnings in the iobroker log * change the method of setting for configuration data from widget to datapoint
+- remove dead code / extend doku about the warnings in the iobroker log \* change the method of setting for configuration data from widget to datapoint
### 1.1.0 (2021-05-06)
-* tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
+- tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
### 1.0.0
-* (oweitman) stable version
+- (oweitman) stable version
## License
diff --git a/docs/de/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md b/docs/de/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
index 5f6a82bad..15855587d 100644
--- a/docs/de/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
+++ b/docs/de/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
title: Spezielle Jaeger Design-Widgets für ioBroker.vis 2.0
-hash: 5lVnGUkghKSehN1aDAMXEmrP6XnAxenBvUzyN+8W8ko=
+hash: KRfOLZ4R4Szd49jBaBhDpNY2gI8fC0T5/XIDnd5MNn0=
---
![Logo](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/admin/vis-2-widgets-jaeger-design.png)
@@ -28,7 +28,7 @@ Das Video wie man die Widgets benutzt kann man [hier](https://youtu.be/Rplr2Ba-G
Um dieses Widget zu verwenden, müssen Sie ein kleines Skript im Javascript-Adapter erstellen:
-```
+```js
const axios = require('axios');
function readRss() {
@@ -49,6 +49,9 @@ Und verwenden Sie dann das Objekt `javascript.0.rss` in diesem Widget.
### **IN ARBEIT** -->
## Changelog
+### 1.3.2 (2024-11-22)
+* (bluefox) Corrected "close on click" option for shutter and dimmer
+
### 1.3.1 (2024-09-23)
* (bluefox) Removed gulp from a build process
* (bluefox) Added the possibility to select camera from the "cameras" adapter
diff --git a/docs/de/adapterref/iobroker.vis-2-widgets-material/README.md b/docs/de/adapterref/iobroker.vis-2-widgets-material/README.md
index 1a18c972b..fa1e34d66 100644
--- a/docs/de/adapterref/iobroker.vis-2-widgets-material/README.md
+++ b/docs/de/adapterref/iobroker.vis-2-widgets-material/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.vis-2-widgets-material/README.md
title: Material-Widgets für ioBroker.vis 2.0
-hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
+hash: A/LUw2OF9kxJI2ckvXSi8c0DcJINowASCGR9R9TSL98=
---
![Logo](../../../en/adapterref/iobroker.vis-2-widgets-material/admin/vis-2-widgets-material.png)
@@ -30,9 +30,9 @@ Analog
![Uhr Analog 2](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-analog-2.png)
-- Digital
+Digital
-![Digital](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-digital-1.png)
+![Digitales](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-digital-1.png)
- Digital2 (SVG-Text)
@@ -41,11 +41,11 @@ Analog
### Einfacher Zustand
Mit diesem Widget können Sie ein Gerät steuern. Boolescher Wert oder Zahl.
-- Nummer
+- Nummer
![Einfacher Zustand](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-simple-state-1.png)
-- Kontrolle
+- Kontrolle
![Einfacher Zustand](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-simple-state-2.png)
@@ -56,7 +56,7 @@ Nicht als Schaltfläche: Die Ansicht kann in voller Größe angezeigt werden und
![Im Widget anzeigen – Schaltfläche](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-view-in-widget-2.png)
-Als Schaltfläche: Sie können eine kleine Miniaturansicht der Ansicht anzeigen und durch Drücken darauf wird sie in voller Größe angezeigt.
+Als Schaltfläche: Sie können eine kleine Miniaturansicht der Ansicht anzeigen und durch Drücken darauf diese in voller Größe anzeigen.
### Thermostat
![Thermostat](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-thermostat-1.png)
@@ -66,7 +66,7 @@ Darüber hinaus kann ein Verlauf angezeigt werden, wenn Sie ihn aktiviert haben.
### Tatsächlicher Wert mit Diagramm
![Tatsächlicher Wert](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-1.png)
-![Istwert mit Diagramm](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-2.png)
+![Ist-Wert mit Diagramm](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-2.png)
### Sicherheitskontrolle
![Sicherheitskontrolle](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-security-0.png)
@@ -110,7 +110,7 @@ Mit dem RGB-Lampen-Widget können Sie verschiedene Arten von RGB-Lampen steuern.
- R/G/B/W-Farben können in verschiedenen Zuständen von 0 bis 255 eingestellt werden
- Farbton/Sättigung/Helligkeit als 3 verschiedene Zustände
- Farbtemperatur als ein Zustand von 2700 bis 6500 oder definiert durch Min/Max des Objekts
-- Der Weißmodus kann über einen speziellen Status zwischen RGB- und Weißmodus umgeschaltet werden
+- Der Weißmodus kann über einen speziellen Status zum Umschalten zwischen RGB- und Weißmodus verwendet werden
![RGB-Lampe 1](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-rgb-1.png)
@@ -127,7 +127,7 @@ Der einzige Unterschied besteht darin, dass Xiaomi die Raumreinigung unterstütz
![Staubsauger](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-vacuum.png)
### Zeitauswahl
-## Machen
+## Aufgaben
- Jalousien mit Rollladen ausfahren
## Changelog
+
+### **WORK IN PROGRESS**
+
+- (bluefox) Corrected thermostat slider
+
+### 1.4.10 (2024-08-09)
+
+- (Steiger04) Corrected recursive icon search on a channel, device, instance and adapter.
+
+### 1.4.9 (2024-08-03)
+
+- (bluefox) Corrected blinds dialog
+- (bluefox) Added the invert option for blinds
+
+### 1.4.8 (2024-07-12)
+
+- (bluefox) Small changes for SweetHome3D
+
+### 1.4.7 (2024-07-11)
+
+- (bluefox) Corrected thermostat chart button
+
+### 1.4.6 (2024-07-10)
+
+- (bluefox) Better detection of modes for thermostat
+- (bluefox) Round temperature in charts
+
+### 1.4.1 (2024-07-07)
+
+- (bluefox) removed withStyles package
+- (bluefox) Better thermostat visualization by narrow height
+
+### 1.3.33 (2024-06-10)
+
+- (bluefox) Wait for data before the map is shown
+- (bluefox) Round of value is possible now in the actual value widget (with chart)
+
+### 1.3.32 (2024-05-14)
+
+- (bluefox) Corrected error with multi-language names
+
### 1.3.31 (2024-04-26)
-* (bluefox) Improved wizard layout
+
+- (bluefox) Improved wizard layout
### 1.3.28 (2024-04-19)
-* (bluefox) Improved resolving of icons
+
+- (bluefox) Improved resolving of icons
### 1.3.27 (2024-04-09)
-* (bluefox) Updated packages
-* (bluefox) improved RGB widget
+
+- (bluefox) Updated packages
+- (bluefox) improved RGB widget
### 1.3.25 (2024-03-07)
-* (bluefox) Corrected filter property in the widget settings
+
+- (bluefox) Corrected filter property in the widget settings
### 1.3.23 (2024-03-05)
-* (bluefox) Added possibility to change the icon size in simple widget
+
+- (bluefox) Added possibility to change the icon size in simple widget
### 1.3.21 (2024-02-22)
-* (bluefox) Corrected small input fields
+
+- (bluefox) Corrected small input fields
### 1.3.18 (2024-01-16)
-* (bluefox) Corrected long click for RGB widget on touch devices
-* (bluefox) Corrected dimmer widget
+
+- (bluefox) Corrected long click for RGB widget on touch devices
+- (bluefox) Corrected dimmer widget
### 1.3.17 (2023-12-19)
-* (bluefox) Added option to hide the line in switches widget
+
+- (bluefox) Added option to hide the line in switches widget
### 1.3.15 (2023-12-17)
-* (foxriver76) Added option to rotate video
+
+- (foxriver76) Added option to rotate video
### 1.3.14 (2023-12-05)
-* (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
-* (bluefox) Added class names to ON/OFF widgets to allow styling
+
+- (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
+- (bluefox) Added class names to ON/OFF widgets to allow styling
### 1.3.11 (2023-11-17)
-* (bluefox) Allowed opening/closing dialogs of some widgets by command
+
+- (bluefox) Allowed opening/closing dialogs of some widgets by command
### 1.3.9 (2023-11-10)
-* (bluefox) updated packages
+
+- (bluefox) updated packages
### 1.3.8 (2023-11-08)
-* (bluefox) Corrected RGB widget if minimal is equal with maximal
+
+- (bluefox) Corrected RGB widget if minimal is equal with maximal
### 1.3.5 (2023-11-06)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added option for RGB widget to hide brightness control
-* (bluefox) Added option for white mode in RGB widget
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added option for RGB widget to hide brightness control
+- (bluefox) Added option for white mode in RGB widget
### 1.3.3 (2023-10-26)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added color settings to actual
-* (bluefox) Vacuum settings were hidden
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added color settings to actual
+- (bluefox) Vacuum settings were hidden
### 1.3.2 (2023-10-14)
-* (bluefox) Small improvements done
+
+- (bluefox) Small improvements done
### 1.3.1 (2023-10-13)
-* (bluefox) Added the vacuum cleaner widget
+
+- (bluefox) Added the vacuum cleaner widget
### 1.2.1 (2023-09-18)
-* (bluefox) Added door lock, rgb and thermostat to switches widget
+
+- (bluefox) Added door lock, rgb and thermostat to switches widget
### 1.1.3 (2023-09-10)
-* (bluefox) Door lock improved
+
+- (bluefox) Door lock improved
### 1.1.0 (2023-09-08)
-* (bluefox) Added door lock
+
+- (bluefox) Added door lock
### 1.0.0 (2023-08-21)
-* (bluefox) Added RGB widget
+
+- (bluefox) Added RGB widget
### 0.8.5 (2023-08-11)
-* (bluefox) Improvement of the widget loading
+
+- (bluefox) Improvement of the widget loading
### 0.8.4 (2023-08-10)
-* (bluefox) Improvement of wizard
+
+- (bluefox) Improvement of wizard
### 0.8.3 (2023-07-30)
-* (bluefox) Font styles are applied to all buttons
+
+- (bluefox) Font styles are applied to all buttons
### 0.8.2 (2023-07-19)
-* (bluefox) Corrected small layout problems
+
+- (bluefox) Corrected small layout problems
### 0.8.0 (2023-07-18)
-* (bluefox) Added wizard for widgets
+
+- (bluefox) Added wizard for widgets
### 0.7.1 (2023-07-02)
-* (bluefox) Added washer widget
+
+- (bluefox) Added washer widget
### 0.6.2 (2023-06-29)
-* (bluefox) Allowed usage without a frame for all widgets
+
+- (bluefox) Allowed usage without a frame for all widgets
### 0.6.0 (2023-06-28)
-* (bluefox) Added blinds to switches widget
-* (bluefox) Allowed to place widgets in widgets
+
+- (bluefox) Added blinds to switches widget
+- (bluefox) Allowed to place widgets in widgets
### 0.5.3 (2023-06-21)
-* (bluefox) Corrected errors with view in widget
+
+- (bluefox) Corrected errors with view in widget
### 0.5.1 (2023-06-20)
-* (bluefox) Added widget to switch the theme
-* (bluefox) Improved HTML widget to show iframe and image
+
+- (bluefox) Added widget to switch the theme
+- (bluefox) Improved HTML widget to show iframe and image
### 0.4.0 (2023-06-16)
-* (bluefox) Added button texts for switches widget
-* (bluefox) Removed static widget, as it was replaced by switches widget
+
+- (bluefox) Added button texts for switches widget
+- (bluefox) Removed static widget, as it was replaced by switches widget
### 0.3.1 (2023-06-14)
-* (bluefox) Improved buttons widget
+
+- (bluefox) Improved buttons widget
### 0.2.13 (2023-03-22)
-* (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
-* (bluefox) update packages
+
+- (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
+- (bluefox) update packages
### 0.2.9 (2023-02-27)
-* (bluefox) Made this adapter singleton
+
+- (bluefox) Made this adapter singleton
### 0.2.2 (2023-02-22)
-* (bluefox) Update packages
+
+- (bluefox) Update packages
### 0.2.1 (2022-11-26)
-* (bluefox) Implemented the blinds widget
+
+- (bluefox) Implemented the blinds widget
### 0.1.5 (2022-10-27)
-* (bluefox) First beta version
+
+- (bluefox) First beta version
### 0.1.2 (2022-10-21)
-* (bluefox) initial commit
+
+- (bluefox) initial commit
## License
+
The MIT License (MIT)
Copyright (c) 2022-2024 Denis Haev
diff --git a/docs/de/adapterref/iobroker.worx/README.md b/docs/de/adapterref/iobroker.worx/README.md
index 714bb36e3..c3966cd24 100644
--- a/docs/de/adapterref/iobroker.worx/README.md
+++ b/docs/de/adapterref/iobroker.worx/README.md
@@ -782,11 +782,11 @@ Standard ohne Zonen:
![img/array_nok.png](../en/img/array_nok.png)
## Changelog
-
-**WORK IN PROGRESS**
+### 3.1.1 (2024-11-04)
- (Lucky-ESA) Added JS-Controller Notification
- (Lucky-ESA) Dependencies updated
+- (Lucky-ESA) New design for settings page added
### 3.1.0 (2024-09-10)
diff --git a/docs/de/adapterref/iobroker.ws/README.md b/docs/de/adapterref/iobroker.ws/README.md
index 31278ad45..f90c7e2b0 100644
--- a/docs/de/adapterref/iobroker.ws/README.md
+++ b/docs/de/adapterref/iobroker.ws/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.ws/README.md
title: ioBroker.ws
-hash: zKTgZVeQJsBGilNqWUYw/aKgx+wN0bIVIdvX7ciePq0=
+hash: nTPtVkzKPbkqwG4ZqyA5Utge6xM5EauqFIYXv23k87Q=
---
![Logo](../../../en/adapterref/iobroker.ws/admin/ws.png)
@@ -13,33 +13,33 @@ hash: zKTgZVeQJsBGilNqWUYw/aKgx+wN0bIVIdvX7ciePq0=
![NPM](https://nodei.co/npm/iobroker.ws.png?downloads=true)
# IoBroker.ws
-Dieser Adapter wird von WEB-Anwendungen und Adaptern verwendet, um über Websockets mit ioBroker zu kommunizieren.
+Dieser Adapter wird von WEB-Anwendungen und Adaptern verwendet, um über WebSockets mit ioBroker zu kommunizieren.
-Es ist fast dasselbe wie `ioBroker.socketio`, verwendet jedoch nicht die Socket.io-Bibliothek und simuliert sie nur.
+Es ist fast dasselbe wie `ioBroker.socketio`, verwendet jedoch nicht die Socket.io-Bibliothek, sondern simuliert sie nur.
-**Wichtiger Hinweis: Seit v4.0 dieses Adapters werden ausschließlich reine Websockets verwendet! Socket.io wird nicht mehr durch die socket.io-Bibliothek implementiert, sondern über reine WebSockets simuliert!**
+**Wichtiger Hinweis: Seit v4.0 dieses Adapters werden ausschließlich reine WebSockets verwendet! Socket.io wird nicht mehr über die socket.io-Bibliothek implementiert, sondern über reine WebSockets simuliert!**
-Benutzer können diesen Adapter verwenden, um ihre Produkte über Web-Sockets mit ioBroker zu verbinden.
-Tatsächlich könnte dieser Adapter von Echarts, Vis und vielen anderen Adaptern verwendet werden, um Daten aus ioBroker zu extrahieren.
+Benutzer können diesen Adapter verwenden, um ihre Produkte über Websockets mit ioBroker zu verbinden.
+Tatsächlich könnte dieser Adapter von echarts, vis und vielen anderen Adaptern verwendet werden, um Daten aus ioBroker zu extrahieren.
Im Beispiel [Verzeichnis](https://github.com/ioBroker/ioBroker.ws/tree/master/example) finden Sie eine einfache Anwendung, die diese Schnittstelle verwendet, um einige Daten anzuzeigen.
Durch die Verwendung der socket.io-Schnittstelle sollte der Benutzer die [Grundlagen und Konzept](https://github.com/ioBroker/ioBroker) des Systems verstehen.
-Es ist auch nützlich, etwas über die [Struktur der Objekte](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md) zu lesen.
+Es ist auch nützlich, über [Struktur der Objekte](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md) zu lesen.
-**Dieser Adapter verwendet Sentry-Bibliotheken, um Ausnahmen und Codefehler automatisch an die Entwickler zu melden.** Weitere Details und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin-Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting wird ab js-controller 3.0 verwendet.
+**Dieser Adapter verwendet Sentry-Bibliotheken, um den Entwicklern automatisch Ausnahmen und Codefehler zu melden.** Weitere Einzelheiten und Informationen zum Deaktivieren der Fehlerberichterstattung finden Sie unter [Sentry-Plugin Dokumentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Die Sentry-Berichterstattung wird ab js-controller 3.0 verwendet.
## Kurze Beschreibung des Konzepts
### Objekt
-Objekt ist eine Beschreibung eines Datenpunkts oder einer Datengruppe. Die Gruppe könnte andere Datenpunkte enthalten, in diesem Fall wird sie als Kanal bezeichnet. Besteht eine Gruppe aus anderen Kanälen, wird sie in diesem Fall als Gerät bezeichnet.
+Objekt ist die Beschreibung eines Datenpunkts oder einer Gruppe. Die Gruppe kann andere Datenpunkte enthalten, in diesem Fall wird sie Kanal genannt. Wenn eine Gruppe aus anderen Kanälen besteht, wird sie in diesem Fall Gerät genannt.
-Bei einem Objekt handelt es sich um Metainformationen, die einen Datenpunkt beschreiben und Folgendes enthalten können: Maximal-/Mindestwert, Einheit, Name, Standardwert, Werttyp, Informationen zum Adapter für die Kommunikation (z. B. IP-Adresse) usw.
+Ein Objekt ist eine Metainformation, die den Datenpunkt beschreibt und folgenden Inhalt haben könnte: Max.-/Min.-Wert, Einheit, Name, Standardwert, Werttyp, Informationen für den Adapter zur Kommunikation (z. B. IP-Adresse) usw.
### Zustand
-Der Status ist der tatsächliche Wert des Datenpunkts und wird durch ein Javascript-Objekt dargestellt:
+Der Status ist der tatsächliche Wert des Datenpunkts und wird durch ein JavaScript-Objekt dargestellt:
-```
+```js
{
val: VALUE,
ack: ACKNOWLEDGED,
@@ -50,34 +50,46 @@ Der Status ist der tatsächliche Wert des Datenpunkts und wird durch ein Javascr
}
```
-Zustände ändern sich im Vergleich zu den Objekten sehr häufig. (Normalerweise sollten Objekte bei der Erstellung einmal geändert werden und das ist alles)
+Zustände ändern sich im Vergleich zu Objekten sehr häufig. (Normalerweise sollten Objekte einmal bei der Erstellung geändert werden und das ist alles.)
-### Wissen
-Jeder Staat hat das Attribut `ack`. Es zeigt die Befehlsrichtung an.
+### Danksagung
+Jeder Zustand besitzt das Attribut `ack`. Es zeigt die Befehlsrichtung an.
-– Wenn ack=false, bedeutet dies, dass ein anderer Adapter diese Variable steuern (schreiben) möchte, damit der Befehl ausgeführt wird (z. B. das Licht wird eingeschaltet).
-- Wenn ack=true, bedeutet dies, dass das Gerät über den neuen Wert informiert. (z. B. Licht wurde manuell eingeschaltet oder Bewegung wurde erkannt)
+- Wenn ack=false, bedeutet dies, dass ein anderer Adapter diese Variable steuern (schreiben) möchte, sodass der Befehl ausgeführt wird (z. B. das Licht eingeschaltet wird).
+- Wenn ack=true, bedeutet dies, dass das Gerät über einen neuen Wert informiert. (z. B. Licht wurde manuell eingeschaltet oder Bewegung wurde erkannt)
-**Beispiel**: Wir haben einen Hausautomationsadapter (HAA), an den eine Lampe unter der Adresse `haa.0.lamp1` angeschlossen ist.
+**Beispiel**: Wir haben einen Heimautomatisierungsadapter (HAA), an den eine Lampe unter der Adresse `haa.0.lamp1` angeschlossen ist.
-- Die Lampe kann manuell mit einem physischen Schalter oder über WLAN mit Hilfe von HAA eingeschaltet werden.
-- Wenn vis die Lampe über WLAN einschalten möchte, sollte es den neuen Wert mit „{value: true, ack: false}“ setzen.
+- Die Lampe kann manuell mit einem physischen Schalter oder mithilfe von HAA über WLAN eingeschaltet werden.
+- Wenn vis die Lampe über WLAN einschalten möchte, sollte es den neuen Wert mit `{value: true, ack: false}` setzen.
- Wenn die Lampe eingeschaltet wird, informiert sie HAA normalerweise über den neuen Status und der Wert sollte sofort mit „{value: true, ack: true}“ überschrieben werden.
-- Wenn die Lampe manuell über einen physischen Schalter ausgeschaltet wird, informiert sie HAA über den neuen Status mit „{value: false, ack: true}“.
+- Wenn die Lampe manuell über einen physischen Schalter ausgeschaltet wird, informiert sie HAA mit „{value: false, ack: true}“ über den neuen Status.
### Qualität
Jeder Datenpunkt hat ein Attribut `q` - *Qualität*.
## Verwendung
-Die Beschreibung jeder unterstützten Methode finden Sie [Hier](https://github.com/ioBroker/ioBroker.socket-classes#web-methods).
+Eine Beschreibung aller unterstützten Methoden finden Sie unter [Hier](https://github.com/ioBroker/ioBroker.socket-classes#web-methods).
Es wird empfohlen, für die Kommunikation [Socket-Klasse](https://github.com/ioBroker/socket-client) zu verwenden.
+### **IN ARBEIT** -->
## Changelog
+### 2.7.0 (2024-11-17)
+* (bluefox) Update ws-server library
+
+### 2.6.2 (2024-06-26)
+* (bluefox) Corrected call of getObjectView with null parameter
+
+### 2.6.1 (2024-04-22)
+* (foxriver76) fixed require of webserver
+
+### 2.6.0 (2024-04-21)
+* (foxriver76) use `@iobroker/webserver`
+
### 2.5.11 (2024-02-22)
* (bluefox) Some packages were updated
diff --git a/docs/de/adapterref/iobroker.youtube/README.md b/docs/de/adapterref/iobroker.youtube/README.md
index 47865c980..9f8331c02 100644
--- a/docs/de/adapterref/iobroker.youtube/README.md
+++ b/docs/de/adapterref/iobroker.youtube/README.md
@@ -77,6 +77,15 @@ on({ id: 'youtube.0.summary.json', change: 'any' }, async (obj) => {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 5.1.1 (2024-11-12)
+
+* (@klein0r) Added video list (yesterday)
+
+### 5.1.0 (2024-11-11)
+
+* (klein0r) Added groups
+* (klein0r) Added icons of channels to object list
+
### 5.0.0 (2024-04-03)
NodeJS >= 18.x and js-controller >= 5 is required
@@ -93,16 +102,6 @@ NodeJS 16.x is required
* (klein0r) Added customUrl to JSON summary
-### 4.2.1 (2023-03-13)
-
-* (klein0r) Video data as JSON
-
-### 4.2.0 (2023-02-03)
-
-* (klein0r) Allow alias or custom url in configuration
-* (klein0r) Added request success indicators
-* (klein0r) Added Ukrainian language
-
## License
The MIT License (MIT)
diff --git a/docs/de/adapterref/iobroker.zendure-solarflow/README.md b/docs/de/adapterref/iobroker.zendure-solarflow/README.md
index c05b3178b..c4a7a3322 100644
--- a/docs/de/adapterref/iobroker.zendure-solarflow/README.md
+++ b/docs/de/adapterref/iobroker.zendure-solarflow/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/adapterref/iobroker.zendure-solarflow/README.md
title: ioBroker.zendure-solarflow
-hash: NVvuNG/1GXEw/ohtnb5LWEtYsvkNdkchQH2aE8Wxjp8=
+hash: AVn5YzHd9CTBo8vIgT61hMQK4ryROLtKMXW09AeSWz4=
---
![Logo](../../../en/adapterref/iobroker.zendure-solarflow/admin/zendure-solarflow.png)
@@ -28,15 +28,17 @@ Weitere Informationen zur API finden Sie hier: https://github.com/Zendure/develo
- Stoppen Sie die Eingabe, wenn eine Batterie auf Unterspannung fällt (Batterieschutz). Funktioniert nur, wenn die Ausgangsgrenze über den Adapter eingestellt wird
- Steuern Sie mehr als einen Solarflow gleichzeitig!
- Erhalten Sie präzisere Berechnungen!
-- Funktioniert mit allen Zendure SolarFlow-Geräten: HUB1200 (getestet), HUB2000 und AIO (beide ungetestet)!
+- Funktioniert mit allen Zendure SolarFlow-Geräten: HUB1200, Hyper2000, HUB2000 und AIO! Ich kann nur auf HUB1200 testen, da ich die anderen Geräte nicht besitze ...
-## Anmerkungen
+## Hinweise
1. Bitte deaktiviere/entferne alle Häkchen in der Zendure App, sonst ist das Einstellen der Leistungsbegrenzung nicht möglich!
![Solarflow-Einstellungsfenster](https://raw.github.com/nograx/ioBroker.zendure-solarflow/master/Screenshots/ZendureSolarflowSettings.png)
2. Sie werden aus der offiziellen iOS- oder Android-App abgemeldet, nachdem Sie sich mit dem ioBroker-Adapter angemeldet haben. Dies ist ein normales Verhalten. Als Workaround können Sie ein zweites Zendure-Konto mit einer anderen E-Mail-Adresse erstellen und diesem Konto Zugriff auf Ihren Solarflow HUB gewähren. Verwenden Sie dann das zweite Konto für ioBroker / den Zendure Solarflow-Adapter.
+3. Der Adapter zeigt eine Batterienutzung von +10 W an, wenn kein Solareingang vorhanden ist und das Gerät online ist. Dies spiegelt die Standby-Nutzung des Geräts wider.
+
## Credits
Credits gehen an https://github.com/reinhard-brandstaedter/solarflow, das mit dem Wissen über den MQTT-Server von Zendure sehr geholfen hat! Danke!
@@ -44,6 +46,133 @@ Credits gehen an https://github.com/reinhard-brandstaedter/solarflow, das mit de
Wenn Sie den Adapter für sich nützlich finden und meine Arbeit unterstützen möchten, können Sie gerne per Paypal spenden. Vielen Dank! (Dies ist ein persönlicher Spendenlink für Nograx und steht in keinem Zusammenhang mit dem ioBroker-Projekt!)
## Changelog
+### 1.9.3 (2024-11-22)
+
+- Fix for Low Voltage Block not deactivated.
+
+### 1.9.2 (2024-11-21)
+
+- Fix some state definitions
+
+### 1.9.1 (2024-11-21)
+
+- Improvement for 'Low Voltage Block'.
+- Changed the state "hubState" a an option value.
+
+### 1.9.0 (2024-11-20)
+
+- New option to force Solarflow device to go offline when "Low Voltage Block"-option is used.
+
+### 1.8.8 (2024-09-20)
+
+- Improve connection retry, expand the time with every retry attempt.
+- Start "restart adapter job" regardless of connection.
+- Fix Hyper setInputLimit with step
+
+### 1.8.7 (2024-09-09)
+
+- Fix missing control states for AIO
+
+### 1.8.6 (2024-09-06)
+
+- Change login method: Added a retry loop for connecting to Zendure Cloud, if the Cloud Service "hangs" or is not available it will retry the connection 3 times.
+
+### 1.8.5 (2024-08-26)
+
+- Fix missing states for new HUB Firmware when connected to ACE
+- Fix correct max value for AIO
+
+### 1.8.4 (2024-08-16)
+
+- Add support for Smart Plug, but only Power is available at the moment - unstable as often data is not updated by MQTT
+- Some code improvements
+
+### 1.8.3 (2024-08-12)
+
+- Fix SOC and energyWhMax Value (counted by type of attached batteries)
+- Add Calculation for Grid Input (only for Ace 1500 and Hyper 2000)
+- Fix suggestions by ioBroker repository checker
+
+### 1.7.7 (2024-08-02)
+
+- Fix Input and Output limit for Hyper 2000
+
+### 1.7.6 (2024-08-01)
+
+- Fix support for 'Hyper_Test' devices
+- Improved code for state creation
+
+### 1.7.5 (2024-07-31)
+
+- Fix controlling AC mode for Hyper 2000 (set acMode to 1: Charge by AC, 2: Output to AC)
+- Show product name in channel name
+- Show battery type as state in packData
+- Show Hyper Temperature in States
+
+### 1.7.4 (2024-07-31)
+
+- Set max value and step for setInputLimit
+
+### 1.7.3 (2024-07-30)
+
+- Fix AC input value for Hyper to max. 1200W
+- Fix dcSwitch and acSwitch value
+
+### 1.7.2 (2024-07-29)
+
+- Fix acSwitch for ACE and Hyper
+
+### 1.7.1 (2024-07-29)
+
+- Fix missing ACE 1500 when connected with HUB1200 / HUB2000
+- Fix some missing states
+
+### 1.7.0 (2024-07-26)
+
+- Add support for Hyper 2000 and ACE 1500. Maybe not all states and control parameter are available. Still need to do some investigation.
+- Some minor bugfixes.
+
+### 1.6.7 (2024-06-23)
+
+- Fix reconnect again. Adapter will now restart every 3 hours to cleanup fully.
+
+### 1.6.6 (2024-06-21)
+
+- Tweaked recurring refresh of access token.
+
+### 1.6.5 (2024-06-20)
+
+- Fix reconnect issue. Adapter will now restart if connection semms to be broken.
+
+### 1.6.4 (2024-06-03)
+
+- Fix services
+
+### 1.6.3 (2024-06-03)
+
+- Fixed reconnect when connection seems to be dead.
+
+### 1.6.2 (2024-05-21)
+
+- Changed standby usage to 10W
+
+### 1.6.1 (2024-05-13)
+
+- Fix issue that sometime data is not updated
+- Add standby usage of HUB (20W) when solarinput is low
+
+### 1.5.3 (2024-04-19)
+
+- Fix autoRecover datatype issue
+
+### 1.5.2 (2024-04-17)
+
+- Minor bugfixes and improvements
+
+### 1.5.0 (2024-04-12)
+
+- Add the possibility to connect to the 'Fallback' MQTT server known as 'Developer MQTT'. This server is read-only - so no control is possible!
+
### 1.4.0 (2024-04-03)
- Add calculation states for solar input 1 & 2
@@ -179,7 +308,7 @@ Wenn Sie den Adapter für sich nützlich finden und meine Arbeit unterstützen m
### 1.0.1 (2023-11-03)
- Fix translationscd so
-- Use 'extendObjectAsync' instead of 'setObjectNotExistsAsync'
+- Use 'extendObject' instead of 'setObjectNotExistsAsync'
- First official release version
### 0.1.0-alpha.2 (2023-10-27)
diff --git a/docs/de/adapterref/iobroker.zigbee/README.md b/docs/de/adapterref/iobroker.zigbee/README.md
index f1772e8a7..aaa3c0806 100644
--- a/docs/de/adapterref/iobroker.zigbee/README.md
+++ b/docs/de/adapterref/iobroker.zigbee/README.md
@@ -131,6 +131,15 @@ There is [another](https://www.zigbee2mqtt.io/) with the same functions and the
Other topics related to this adapter are also documented in the associated wiki.
## Changelog
+### **WORK IN PROGRESS**
+* (arteck) deleteDeviceStates change to deleteObj
+
+### 1.10.13 (2024-11-10)
+* (arteck) corr icon download bug (axios)
+
+### 1.10.12 (2024-11-03)
+* (asgothian) corr Channel Scan
+
### 1.10.11 (2024-11-02)
* BREAKING CHANGE
*
@@ -181,407 +190,7 @@ Other topics related to this adapter are also documented in the associated wiki.
* (arteck) new zigbee-herdsman-converters 18.x
* (arteck) configure message is now a warning
-### 1.9.7 (2024-01-05)
-* (arteck) corr configure for some devices
-
-### 1.9.6 (2024-01-01)
-* (arteck) corr ikea bug
-* (crckmc) trv child lock works
-
-### 1.9.5 (2023-12-29)
-* (arteck) update dependency
-* (arteck) min node 18.x.
-
-### 1.9.4 (2023-12-29)
-* (arteck) typo
-
-### 1.9.3 (2023-12-26)
-* (arteck) last zhc Version 16.x
-* (arteck) corr reboot in statecontroller
-
-### 1.9.2 (2023-12-25)
-* (arteck) gen states from exposes as function
-* (arteck) rebuild dev_names.json with state cleanup button
-
-### 1.9.1 (2023-12-23)
-* (arteck) corr TypeError: Cannot read properties of undefined (reading 'state')
-
-### 1.9.0 (2023-12-22)
-* (arteck) up to new zhc
-* (arteck) update dependency
-
-### 1.8.27 (2023-12-22)
-* (arteck) update dependency
-
-### 1.8.26 (2023-12-22)
-* (arteck) corr toZigbee message
-* (arteck) add deviceManager
-
-### 1.8.25 (2023-12-17)
-* zhc 16.x
-* (arteck) corr group from exclude dialog
-
-### 1.8.24 (2023-09-05)
-* (arteck) switch to exposes tab for some Aqara Devices [more infos](https://github.com/ioBroker/ioBroker.zigbee/wiki/Exposes-for-device-integration)
-
-### 1.8.23 (2023-08-10)
-* (arteck) query from xiaomi is now better
-
-### 1.8.22 (2023-08-05)
-* (arteck) crash when meta is empty
-
-### 1.8.21 (2023-07-31)
-* (arteck) no converter found
-
-### 1.8.20 (2023-07-31)
-* (arteck) add log
-
-### 1.8.19 (2023-07-31)
-* (arteck) fix occupancy_timeout
-* (arteck) fix battery percentage and voltage
-
-### 1.8.18 (2023-07-16)
-* (arteck) little fix sentry and error log
-
-### 1.8.17 (2023-07-15)
-* (arteck) sentry corr
-
-### 1.8.16 (2023-07-11)
-* (arteck) battery corr
-
-### 1.8.15 (2023-07-11)
-* (arteck) corr battery status
-
-### 1.8.13 (2023-07-09)
-* (arteck) ota corr
-* (arteck) devices are wrong with enum exposes
-* (arteck) select field for groups is larger
-* (kirovilya) tuya.whitelabel corr
-
-### 1.8.12 (2023-06-30)
-* (arteck) new Documentation (thx Stefan)
-
-### 1.8.11 (2022-12-10)
-* (arteck) fix compsite exposes with a list
-
-### 1.8.10 (2022-12-12)
-* (asgothian) fix group access
-* (asgothian) add option for pairing code:
- A new icon allows opening the network after first entering a pairing code
- listed on the device
-* (asgothian) easier use of external converters
- - external converters can now be placed in the zigbee adapter data folder
- - no absolite path is required to access them
- - external converters posted on the GitHub for zigbee-herdsman-converters
- should work as they are - folders for libraries are rewritten to match
- the expected location when 'required' from within the zigbee adapter
- - Log entries will identify which files are entered as converters. Errors
- in these files should not cause the adapter to crash - instead, use of
- external converters may be unavailable.
-
-### 1.8.9 (2022-12-10)
-* (arteck) fix lidl plug
-
-### 1.8.7 (2022-12-01)
-* (arteck) fix exposes
-
-### 1.8.5 (2022-11-30)
-* (arteck) fix for new code
-
-### 1.8.3 (2022-11-30)
-* (arteck) back to old source
-
-### 1.8.1 (2022-11-28)
-* (bluefox) Packages updated
-* (bluefox) Added names of serial ports in configuration dialog
-
-### 1.7.7 (2022-11-24)
-* dep update
-
-### 1.7.6 (2022-07-23)
-* (kirovilya) fix selecting nodes in admin
-* (arteck) ikea fix
-
-### 1.7.5 (2022-06-01)
-* (arteck) error message for undefined devices or icons
-
-### 1.7.4 (2022-05-30)
-* (arteck) missing icons with multiple description
-
-### 1.7.2 (2022-05-28)
-* (arteck) download missing icons corr
-
-### 1.7.1 (2022-05-28)
-* (arteck) available status in admin is colored
-* (arteck) disable Backups checkbox in settings
-* (arteck) we keep last 10 backup files
-* (arteck) download missing icons automatically (manual upload needed)
-
-### 1.6.18 (2022-04-21)
-* (arteck) fix pairing modus
-
-### 1.6.17 (2022-04)
- rollback
-
-### 1.6.16 (2022-02-16)
-* (arteck) admin dep fix
-* (arteck) colored objects for online/offline state
-
-### 1.6.15 (2022-02-08)
-* (arteck) Battery status % calculation was changed for xiaomi devices
-
-### 1.6.14 (2022-01)
-* (asgothian) OTA limitation
- - devices with the available state set to false are excluded from OTA updates (and the update check)
- - devices with link_quality 0 are excluded from OTA updates (and the update check)
-* (asgothian) Device deactivation:
- - Devices can be marked inactive from the device card.
- - inactive devices are not pinged
- - state changes by the user are not sent to inactive devices.
- - when a pingable device is marked active (from being inactive) it will be pinged again.
- - inactive devices are excluded from OTA updates.
-* (asgothian) Group rework part 2:
- - state device.groups will now be deleted with state Cleanup
- - state info.groups is now obsolete and will be deleted at adapter start (after transferring data to
- the new storage)
-* (asgothian) Device name persistance.
- - Changes to device names made within the zigbee adapter are stored in the file dev_names.json. This file
- is not deleted when the adapter is removed, and will be referenced when a device is added to the zigbee adapter. Deleting and reinstalling the adapter will no longer remove custom device names, nor will deleting and adding the device anew.
-* (asgothian) Readme edit to reflect the current information on zigbee coordinator hardware.
-* (arteck) Zigbee-Herdsman 0.14.4, Zigbee-Herdsman-Converters 14.0.394
-
-### 1.6.13 (2022-01)
-
-* (kirovilya) update to Zigbee-Herdsman 0.14
-
-### 1.6.12 (2022-01)
-* (asgothian) Groups were newly revised (read [here](https://github.com/ioBroker/ioBroker.zigbee/pull/1327) )
- - object device.groups is obsolet..the old one is no longer up to date
-
-### 1.6.9 (2021-12)
-* (simatec) fix admin Dark-Mode
-* (asgothian) Expose Access Handling
-* (arteck) translations
-* (asgothian) fix groups
-* (agross) use different normalization rules
-
-### 1.6.1 (2021-08)
-* (kirovilya) herdsman compatibility
-
-### 1.6.0 (2021-08-09)
-
-### 1.5.6 (2021-05-26)
-* (kirovilya) new UI add
-
-### 1.5.5 (2021-05-05)
-* Fixes for new zigbee-herdsman-converters
-* UI fixes
-
-### 1.5.3 (2021-04-30)
-* (arteck) Fix for js-controller 3.3.*
-
-### 1.5.2 (2021-04-29)
-* (asgothian) Groups on dashboard
-
-### 1.5.1 (2021-04-14)
-* (kirovilya) Dashboard
-* (asgothian) Groups (reworked)
-* [Experimental support EZSP protocol for EFR32 chips](https://github.com/Koenkk/zigbee-herdsman/issues/319) (zigbee-herdsman)
-
-### 1.4.4 (2021-02-14)
-* (kirovilya) External converters https://www.zigbee2mqtt.io/information/configuration.html#external-converters-configuration
-* (asgothian) Enhancement ping process
-* (asgothian) Devive query state-button
-* (asgothian) State Cleanup button
-* (arteck) Setting to use exposes instead of internal device description
-
-### 1.4.1 (2020-12)
-* (o0shojo0o) added a kelvin possibility into colortemp
-* (asgothian) Hue_calibration for exposed devices (Use requires PR on zigbee-herdsman-converters, PR is being worked on)
-* (asgothian) fix Tuya Thermostat: restore lost property "preset"
-* (asgothian) Change for Device Availability: Stagger initial ping by 200 ms to prevent network congestion due to a large number of ping requests
-* (asgothian) Change for Device Availability: Ping request triggered on reconnect. Before the herdsman Ping function is used, the adapter attempts to read the "state" dp. If this is successful, no ping is sent and the state is set
-* (asgothian) Change for Device Availability: Set link Quality to 0 when a device is not connected, 10 when it is reconnecting.
-* (asgothian) fix for message "illegal properties x,y" - remove color and color_temp from readable states on device available again (Issue #607)
-* (asgothian) RGB Color can now be entered as "named" color. Implemented names are taken from the list of extended web colors on wikipedia (https://en.wikipedia.org/wiki/Web_colors)
-* (asgothian) change in how RGB color is parsed. Incomplete colors will now be parsed successfully. #FFF will result in R 0, G 15, B 255
-* (asgothian) change in OTA: Message that a device does not respond for OTA query downgraded to "info" from "error"
-* (asgothian) new coordinator card
-
-### 1.4.0 (2020-12)
-* Many new devices available
-
-Starting from version 1.4.0, new devices in iobroker.zigbee will be added automatically, based on the *exposes* described in zigbee-herdsman-converters.
-The *exposes* section describes the device's capabilities, events and control commands. In iobroker.zigbee these descriptions are converted to iobroker states.
-This means that the new device is described correctly enough in zigbee-herdsman-converters to start working with iobroker.zigbee (do not need to add it to our /lib/devices files.js and /lib/states.js).
-
-The only thing that is not described (yet, it may change in the future) in zigbee-herdsman-converters is the device image. This is why the device icon on network map uses external links to the resource https://www.zigbee2mqtt.io/images/devices/*.
-If you want to use local images, then you need to put the image file in /admin/img and briefly describe the device in the /lib/devices.js file without the *states*:
-```
-{
- models: [‘01MINIZB’],
- icon: 'img/ITEAD01ZBMINI. png',
-}
-```
-in this case, the *states* attribute will be formed based on the *exposes* description and the image will be local.
-
-### 1.3.1 (2020-10-30)
-* [Experimental Zigate support](https://github.com/Koenkk/zigbee-herdsman/issues/242) (zigbee-herdsman)
-* New devices by:
- asgothian, arteck, kirovilya, PaulchenPlump
-
-### 1.3.0 (2020-10-07)
-* More stable (zigbee-herdsman)
-* Backup prior database and nv-data (for z-stack 3) before start adapter
-* Allow to select bind cluster
-* Admin Tab support (experimental)
-* (UncleSamSwiss, DutchmanNL) Translation
-* New devices by:
- arteck, kirovilya, Shade, krumbholz, fre, Alex18081, ae, asgothian,
- Strunzdesign, kairauer, VLGorskij, Hesse-Bub, PaulchenPlump, blackrozes
-
-### 1.2.1 (2020-08-16)
-* Fixes after changing device identify method
-* (Garfonso) Allow unbinding from coordinator
-
-### 1.2.0 (2020-08-09)
-* Serialport 9.0.0. (zigbee-herdsman)
-* Drop support Node < 10 (zigbee-herdsman)
-* Device now identify (for zigbee-herdsman-converters) by model not zigbeeModel
-
-Improvements and fixes:
-* (Strunzdesign) Fixed the mapping between bulb levels and adapter levels
-* (kirovilya) Fix ota for unavailable devices
-* (kirovilya) Lazy states - created only when an event arrives
-* (kirovilya) States generator - states are created depending on the device and its endpoints
-* (Shade) Fixed WXKG11LM clicks
-* (allofmex) Improved DeveloperTab logs
-* (allofmex) Add humidity and temperature calibration state to Tuya RH3052
-* (kirovilya) Fixed a typo due to which extPanID was not set
-* (allofmex) Retry reconnect gateway all the time for TCP-connected gateway
-* (kirovilya) Allow collecting zigbee-herdsman logs to iobroker logs
-* (kirovilya) Additional states for QBKG12LM
-
-New devices:
-* (kirovilya) BlitzWolf BW-IS3, Paulmann 500.67, Paulmann 798.09
-* (kirovilya) DiY Geiger counter https://modkam.ru/?p=1591
-* (kirovilya) DiY 8 Relays + 8 switches https://modkam.ru/?p=1638
-* (kirovilya) DiY Freepad https://github.com/diyruz/freepad
-* (kirovilya) Neo Zigbee Siren Alarm https://szneo.com/en/products/show.php?id=241
-* (Shade) RB 278 T
-* (arteck) TS0601_thermostat
-* (arteck) TS0121
-* (arteck) GL-D-004Z
-* (Shade) WXKG07LM
-* (drohne200) 1746430P7
-* (sebastian) 4058075816459
-* (itProfi) SGMHM-I1
-* (arteck) owvfni3
-* (arteck) TS0001, TS0111
-* (Daniel Dreier) Paulmann 500.45
-* (arteck) ZK-EU-2U
-* (Newan) Busch-Jaeger 6735/6736/6737
-* (andrico21) ZM-L03E-Z
-* (arteck) 915005106701, 9290018187B
-* (frankjoke) HGZB-20-UK, GL-W-001Z
-* (arteck) 4034031P7, 3435011P7
-* (arteck) TS0041
-* (agross) 5062231P7, 5062431P7
-* (kirovilya) TI0001-switch, TI0001-socket
-* (arteck) RB 178 T
-* (arteck) HGZB-07A, AV2010/22, AV2010/22A, TS0041, TS0043
-* (nbars) E1744
-* (Florian Look) GS361A-H04
-* (arteck) ICZB-IW11SW
-* (kirovilya) HS2WD-E
-* (Sacred-Shadow) FL 130 C
-* (arteck) HS3SA, 9290022169, 4096730U7, AC10787, SP 220, SP 222, SP 224, 07004D, BW-IS2, InstaRemote
-* (kirovilya) MCLH-08, MCLH-05
-* (Sacred-Shadow) 1746130P7
-* (mar565) GUNNARP panel round
-* (Erdnuss3003) 4090531P7
-
-### 1.1.1 (2020-04-17)
-* (kirovilya) Critical. Fixed error starting adapter if cc-chip was only flashed
-* (kirovilya) Nue/3A FNB56-ZSW02LX2.0
-* (Strunzdesign) Added missing raw button events for Philips Hue Smart Button ROM001
-* (Sacred-Shadow) Fix Color for Outdoor Lantern W RGBW OSRAM
-
-### 1.1.0 (2020-04-12)
-new Zigbee-herdsman features:
-* ConBee/RaspBee (experimental support) https://github.com/Koenkk/zigbee-herdsman/issues/72
-* OTA update for some devices (IKEA, OSRAM and other) https://github.com/Koenkk/zigbee2mqtt/issues/2921
-* Touchlink reset and join https://github.com/Koenkk/zigbee2mqtt/issues/2396
-* Green Power devices support https://github.com/Koenkk/zigbee2mqtt/issues/3322
-* (peterfido) iCasa KPD14S und KPD18S hinzu
-* (kirovilya) Moes Zigbee Thermostatic Radiator
-* (kirovilya) LifeControl power plug MCLH-03, bulb MCLH-02, water leak MCLH-07, door sensor MCLH-04
-* (kirovilya) Philips LCT002, LCT011, LTW015, LWG004
-* (kirovilya) Gledopto GL-C-007 with a channel
-* (MultivitaminJuice) Iluminize 511.040
-* (Sacred-Shadow) Bitron 902010/24
-* (kirovilya) Color indication of LQI and Battery icon
-* (kirovilya) Device info modal dialog
-* (arteck) Philips LCT026
-* (obakuhl) Improvements Osram switch mini
-* (arteck) Nue / 3A FB56+ZSW1GKJ2.5, LXN-1S27LX1.0
-* (agross) Philips Signe Floor and Table
-* (arteck) TRADFRI bulb E14 WS 470lm, OSRAM PAR16 TW Z3
-* (kirovilya) Smart remote controller (4 buttons)
-* (allofmex) OTA updates
-* (kirovilya) Aqara opple change mode keys (for binding)
-* (palsch) Heiman HS2WD-E siren
-
-### 1.0.4 (2020-03-14)
-* (kirovilya) Philips Hue Adore Bathroom Mirror Light
-* (kirovilya) Oujiabao Gas and carbon monoxide alarm
-* (kirovilya) Tuya SOS button
-* (Erdnuss3003) Schwaiger ZBT-DIMLight-GLS0800
-* (arteck) Smart Home Pty FB56-ZCW11HG1.4, LXT56-LS27LX1.7
-* (arteck) Xiaomi plug lumi.plug.mmeu01
-* (arteck) Innr RS 228 T, RS 230 C
-* (arteck) Gledopto GL-MC-001, GL-D-003ZS
-* (allmyjoes) Bitron AV2010/21A
-* (arteck) Osram Panel TW 595 UGR22
-* (kirovilya) IKEA SURTE door WS 38x64
-* (andigandi) Philips Hue LCG002, Hue LTG002
-* (arteck) iCasa ICZB-FC
-* (arteck) Osram A60 DIM Z3
-* (arteck) Paulmann 371000001
-* (DaCHRIS) Osram PAR16 DIM Z3
-* (DaCHRIS) Philips LWG001
-* (DaCHRIS) Illuminize 511.202
-* (SchumyHao) TERNCY-SD01 knob dimmer
-* (SchumyHao) Xiaomi lumi.lock.aq1
-* (kirovilya) New eWeLink devices: button, TH sensor, contact sensor, motion sensor
-* (kirovilya) Allow pairing to routers (again)
-* (Erdnuss3003) Philips Hue LCT021
-* (root) Trust ZWLD-100 water leak sensor
-* (smartpran) Bitron AV2010/32
-
-### 1.0.3 (2020-02-09)
-* (Tw1nh34d) Hornbach FLAIR LED
-* (asgothian) Hue smart button, Heiman smoke sensor
-* (kirovilya) Philips LTC014, LTC015
-* (kirovilya) Power states for QBKG11LM
-* (Garfonso) Change role for occupancy state to 'sensor.motion'
-* (kirovilya) Change illuminance state to illuminance_lux (for lux value)
-* (arteck) Philips LCF002
-* (arteck) TRADFRI open/close remote
-* (kirovilya) Tuya sensor TS0201
-
-### 1.0.2 (2020-01-29)
-* (kirovilya) All button events for Aqara Opple switch
-* (ma-john) OSRAM PAR16 RGBW Z3
-* (arteck) Phillips LWA004
-* (MiniMe6666) Heiman SmokeSendor-N-3.0
-* (kirovilya) Force remove device
-* (kirovilya) Fix some networkmap bugs
-* (kirovilya) Extended info button
-* (kirovilya) Long press for WXKG01LM
-
-### 1.0.1 (2020-01-23)
-* fix for old z-stack firmware
+ ***********************************************
### 1.0.0 (2020-01-22)
* Powered by new [zigbee-herdsman](https://github.com/Koenkk/zigbee-herdsman) library and new [converters database](https://github.com/Koenkk/zigbee-herdsman-converters)
@@ -591,6 +200,8 @@ new Zigbee-herdsman features:
* Some design update
* Binding
+------------------------------------------------------------------------------
+
## License
The MIT License (MIT)
diff --git a/docs/de/dev/adapterjsonconfig.md b/docs/de/dev/adapterjsonconfig.md
index e20a3d451..db0e16bd1 100644
--- a/docs/de/dev/adapterjsonconfig.md
+++ b/docs/de/dev/adapterjsonconfig.md
@@ -2,41 +2,195 @@
translatedFrom: en
translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/dev/adapterjsonconfig.md
-title: ioBroker JSON-Konfiguration
-hash: selFI/h/82dTNnFQIjRwfWcPY1bQ/0yfhIDXpb/O0sY=
+title: ioBroker JSON-Konfiguration: Ein Leitfaden für Anfänger
+hash: 0+vcILNwunjmaoGO6kZVRE4N3k4LfLysxnL3sxxjB/Y=
---
-# IoBroker JSON-Konfiguration
-Admin (ab Version 6) unterstützt JSON-Konfiguration für Adapter.
-Es ist möglich, die Konfiguration in einer JSON-Datei zu definieren und sie dann in Admin zu verwenden.
+# IoBroker JSON-Konfiguration: Ein Leitfaden für Anfänger
+In dieser Anleitung wird erläutert, wie Sie Konfigurationsoptionen für Ihren ioBroker-Adapter mithilfe von JSON definieren. Dieser Ansatz bietet eine benutzerfreundlichere und flexiblere Möglichkeit, Adaptereinstellungen innerhalb der ioBroker-Admin-Oberfläche zu verwalten.
-Ein Beispiel für eine Datei `jsonConfig.json` mit mehreren Registerkarten finden Sie hier: https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5 und ein Beispiel mit nur einem Bedienfeld hier: https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json
+## Was Sie brauchen
+- ioBroker Admin Version 6 (oder neuer)
+- Grundlegendes Verständnis der JSON-Syntax
-Sie können die Einstellungen im JSON- oder im JSON5-Format definieren. JSON5 ist für Menschen besser lesbar und unterstützt Kommentare.
+## Vorteile der JSON-Konfiguration
+- Verbesserte Benutzererfahrung beim Konfigurieren von Adaptern
+- Einfachere Integration komplexer Konfigurationsoptionen
+- Klare Trennung zwischen Adaptercode und Konfiguration
-Zusätzlich zur JSON-Datei müssen Sie im Teil `io-package.json` im `common` Folgendes definieren:
+## Erste Schritte
+1. **Definieren Sie die Konfigurationsdatei:**
+
+– Erstellen Sie eine Datei mit dem Namen „jsonConfig.json“ oder „jsonConfig.json5“ im Administratorverzeichnis Ihres Adapters.
+- JSON5 ist eine Obermenge von JSON, die Kommentare zulässt und so die Konfigurationsdatei lesbarer macht.
+
+2. **JSON-Konfiguration aktivieren:**
+
+– Fügen Sie in der Datei „io-package.json“ Ihres Adapters unter dem Abschnitt „common“ die folgende Zeile hinzu:
```json
-{
- "common": {
- "adminUI": {
- "config": "json"
- }
+"common": {
+ "adminUI": {
+ "config": "json"
}
}
```
-um zu sagen, dass der Adapter die JSON-Konfiguration unterstützt.
+3. **Struktur der Konfigurationsdatei:**
-Sie können fast alle Komponenten in Aktion sehen, wenn Sie diesen Adapter testen: https://github.com/mcm4iob/ioBroker.jsonconfig-demo.
-Sie können ihn über das GitHub-Symbol im Adminbereich installieren, indem Sie auf der Registerkarte „npm“ `iobroker.jsonconfig-demo` eingeben.
+Die Konfigurationsdatei definiert eine hierarchische Struktur aus Registerkarten, Bedienfeldern und Steuerelementen. \ Jedes Element verfügt über bestimmte Attribute, die sein Verhalten und Erscheinungsbild in der Administratoroberfläche bestimmen.
-Das Schema für die JSON-Konfigurationsdatei ist hier definiert: https://github.com/ioBroker/adapter-react-v5/blob/main/schemas/jsonConfig.json
+jsonConfig sorgt automatisch dafür, dass die gesammelten Daten als Konfigurationsdaten für den Adapter erfasst und intern gespeichert werden, um sie im Adapter abrufen und weiterverarbeiten zu können.
-Alle Beschriftungen, Texte und Hilfetexte können mehrsprachig oder nur aus Zeichenfolgen bestehen.
+Das folgende Beispiel würde das folgende Konfigurationsobjekt erstellen:
+
+```json5
+{
+ options1: {
+ myPort: 1234,
+ options: {
+ myType: 1,
+ },
+ myBool: false,
+ },
+}
+```
_Wenn der Attributname mit "\_" beginnt, wird er nicht im Objekt gespeichert._
-## Beinhaltet
+## Beispiel einer jsonConfig mit mehreren Tabs
+```json5
+{
+ "type": "tabs",
+ "items": {
+ "options1": {
+ "type": "panel",
+ "label": "Tab1",
+ "icon": "base64 svg", // optional
+ "items": {
+ myPort: {
+ "type": "number",
+ "min": 1,
+ "max": 65565,
+ "label": "Number",
+ "sm": 6, // 1 - 12
+ "validator": "!!data.name", // else error
+ "hidden": "data.myType === 1", // hidden if myType is 1
+ "disabled": "data.myType === 2" // disabled if myType is 2
+ },
+ "options.myType": { // name could support more than one level
+ "newLine": true, // must start from new row
+ "type": "select",
+ "label": "Type",
+ "sm": 6, // 1 - 12
+ "options": [
+ {"label": "option 1", "value": 1},
+ {"label": "option 2", "value": 2}
+ ]
+ },
+ "myBool": {
+ "type": "checkbox",
+ "label": "My checkbox",
+ },
+ "_notSaved":"abc"
+ }
+ },
+ "tab2": {
+ "label": "Tab2",
+ "type": "panel",
+ "disabled": "data.myType === 1",
+ "hidden": "data.myType === 2",
+ }
+ },
+}
+```
+
+Weitere Beispiele finden sich in vielen weiteren Adaptern auf GitHub im jeweiligen Admin-Verzeichnis.
+
+## Unterstützung bei der Entwicklung von Tools
+### VS-Code
+Um die Validierung der jsonConfig in VS Code zu ermöglichen, muss der Datei „.vscode/settings.json“ folgender Abschnitt hinzugefügt werden.
+
+```json5
+ "json.schemas": [
+ {
+ "fileMatch": ["admin/jsonConfig.json", "admin/jsonCustom.json", "admin/jsonTab.json"],
+ "url": "https://raw.githubusercontent.com/ioBroker/adapter-react-v5/main/schemas/jsonConfig.json"
+ }
+ ]
+```
+
+## Gemeinsame Bedienelemente
+Eine jsonConfig besteht aus mehreren Elementen, die hierarchisch strukturiert sind. \ Jedes der Elemente kann von einem der folgenden Typen sein.\ Einige Elemente können zusätzliche untergeordnete Elemente enthalten.
+
+Sie können fast alle Komponenten in Aktion sehen, wenn Sie diesen Adapter testen: [jsonconfig-demo](https://github.com/mcm4iob/ioBroker.jsonconfig-demo).\ Sie können ihn über das GitHub-Symbol im Admin installieren, indem Sie `iobroker.jsonconfig-demo` auf der Registerkarte „npm“ eingeben.
+
+- [**`accordion`:**](#accordion) Akkordeon-Element für zusammenklappbare Inhalte (Admin 6.6.0 oder neuer)
+- [**`alive`:**](#alive) Zeigt an, ob eine Instanz läuft (schreibgeschützt)
+- [**`autocomplete`:**](#autocomplete) Eingabefeld mit Autocomplete-Vorschlägen
+- [**`autocompleteSendTo`:**](#autocompletesendto) Autocomplete-Steuerelement mit Instanzwerten zum Senden von Daten
+- [**`certificate`:**](#certificate) Verwaltet Zertifikate für sichere Verbindungen
+- [**`certificateCollection`:**](#certificatecollection) Wählt eine Sammlung für Let’s Encrypt-Zertifikate aus
+- [**`certificates`:**](#certificates) Universeller Typ zur Verwaltung unterschiedlicher Zertifikatstypen (ab Admin 6.4.0)
+- [**`checkbox`:**](#checkbox) Kontrollkästchen für boolesche Werte
+- [**`checkLicense`:**](#checklicense) Sehr spezielle Komponente zur Online-Überprüfung der Lizenz
+- [**`chips`:**](#chips) Der Benutzer kann Wörter eingeben, die zu einem Array hinzugefügt werden
+- [**`color`:**](#color) Farbwähler
+- [**`cron`:**](#cron) Konfiguriert Cron-Ausdrücke zum Planen von Aufgaben
+- [**`custom`:**](#custom) Integriert benutzerdefinierte Komponenten für bestimmte Funktionen (nur Admin 6)
+- [**`datePicker`:**](#datepicker) Ermöglicht Benutzern, ein Datum auszuwählen
+- [**`deviceManager`:**](#devicemanager) Geräte-Manager anzeigen
+- [**`divider`:**](#divider) Erstellt einen horizontalen Zeilentrenner
+- [**`file`:**](#file) Eingabefeld mit Dateiauswahl und optionalen Upload-/Download-Funktionen (nur Admin 6)
+- [**`fileSelector`:**](#fileselector) Ermöglicht Benutzern, Dateien aus dem System auszuwählen (nur Admin6)
+- [**`func`:**](#func) Wählt eine Funktion aus der Liste enum.func aus (nur Admin 6)
+- [**`header`:**](#header) Erstellt eine Überschrift mit unterschiedlichen Größen (h1-h5)
+- [**`image`:**](#image) Lädt ein Bild hoch oder zeigt es an
+- [**`imageSendTo`:**](#imagesendto) Zeigt ein vom Backend empfangenes Bild an und sendet Daten basierend auf einem Befehl
+- [**`instance`:**](#instance) Wählt eine Adapterinstanz aus
+- [**`interface`:**](#interface) Wählt die Schnittstelle des Hosts aus, auf dem die Instanz läuft
+- [**`ip`:**](#ip) Eingabefeld für IP-Adressen mit erweiterten Optionen
+- [**`jsonEditor`:**](#jsoneditor) JSON-Editor für komplexe Konfigurationsdaten
+- [**`language`:**](#language) Wählt die Sprache der Benutzeroberfläche aus
+- [**`license`:**](#license) zeigt die Lizenzinformationen an, sofern sie nicht bereits akzeptiert wurden.
+- [**`number`:**](#number) Numerisches Eingabefeld mit Min-/Max-Werten und Schrittweite
+- [**`objectId`:**](#objectid) Wählt eine Objekt-ID mit Name, Farbe und Symbol aus
+- [**`panel`:**](#panel) Registerkarte mit Elementen
+- [**`password`:**](#password) Passwort-Eingabefeld
+- [**`Muster`:**](#Muster) Nur-Lese-Feld, das ein Muster anzeigt (z. B. URL)
+- [**`port`:**](#port) Spezielle Eingabe für Ports
+- [**`qrCode`:**](#qrcode) Zeigt Daten als QR-Code an (Admin 7.0.18 oder neuer)
+- [**`room`:**](#room) Wählt einen Raum aus der Liste `enum.room` aus (nur Admin 6)
+- [**`select`:**](#select) Dropdown-Menü mit vordefinierten Optionen
+- [**`selectSendTo`:**](#selectsendto) Dropdown-Menü mit Instanzwerten zum Senden von Daten
+- [**`sendTo`:**](#sendto) Button, der eine Anfrage an eine Instanz sendet
+- [**`setState`:**](#setstate) Button, der den Status einer Instanz festlegt
+- [**`slider`:**](#slider) Schieberegler zum Auswählen eines Wertes innerhalb eines Bereichs (nur Admin 6)
+- [**`state`:**](#state) Steuerung oder Informationen vom Status anzeigen (admin >= 7.1.0)
+- [**`staticImage`:**](#staticimage) Zeigt ein statisches Bild an
+- [**`staticInfo`:**](#staticinfo) Zeigt statische Informationen in vorformatierter Form an, wie „Titel: Werteinheit“ (admin >= 7.3.3)
+- [**`staticLink`:**](#staticlink) Erstellt einen statischen Link
+- [**`staticText`:**](#statictext) Zeigt statischen Text an (z. B. Beschreibung)
+- [**`Koordinaten`:**](#Koordinaten) Ermittelt den aktuellen Standort und verwendet die `system.config`-Koordinaten, falls dies nicht in der Form "Breitengrad,Längengrad" möglich ist
+- [**`table`:**](#table) Tabelle mit Zeilen, die hinzugefügt, gelöscht oder neu angeordnet werden können
+- [**`tabs`:**](#tabs) Registerkarten mit Elementen
+- [**`text`:**](#text) Ein- oder mehrzeiliges Texteingabefeld
+- [**`textSendTo`:**](#textsendto) Zeigt ein schreibgeschütztes Steuerelement mit den von der Instanz angegebenen Werten.
+- [**`timePicker`:**](#timepicker) Ermöglicht Benutzern, eine Zeit auszuwählen
+- [**`user`:**](#user) Wählt einen Benutzer aus der Liste „system.user“ aus
+- [**`uuid`:**](#uuid) Iobroker-UUID anzeigen
+
+Durch die Nutzung der JSON-Konfiguration können Sie eine benutzerfreundliche und anpassbare Konfigurationserfahrung für Ihren ioBroker-Adapter erstellen.
+
+## Beispielprojekte
+| Typ | Link |
+|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Mehrere Registerkarten: | [`ioBroker.admin`](https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5) |
+| Benutzerdefinierte Komponente: | [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) oder in [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin) |
+| Benutzerdefinierte Komponente: | [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) oder in [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin) |
+| Validierung: | |
+
+## Trennung der großen Konfigurationen
+## Enthält
Erfordert Admin 6.17.1 oder neuer.
Um komplexe JSON-Dateien zu schreiben, können Sie andere JSON-Dateien einbinden.
@@ -44,101 +198,268 @@ Die eingebundene Datei muss sich im selben Verzeichnis wie die Hauptdatei befind
```json5
{
- tabs: {
- tab1: {
- type: 'panel', // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
- '#include': 'tab1.json',
- },
+ tabs: {
+ tab1: {
+ type: "panel", // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
+ "#include": "tab1.json",
},
+ },
}
```
-## Mögliche Steuerungstypen
-Mögliche Typen:
-
-- `tabs` - Registerkarten mit Elementen
-- `items` – Objekt mit Feldern `{"tab1": {}, "tab2": {}...}`
-- `iconPosition` – `bottom`, `end`, `start` oder `top`. Nur für Panels mit `icon`-Attribut. Standard: `start`
-- `tabsStyle` – CSS-Stile im React-Format („marginLeft“ und nicht „margin-left“) für die Mui-Tabs-Komponente
-
-- „Panel“ – Registerkarte mit Elementen
-- „Symbol“ – Registerkarte kann Symbole (Base64 wie „data:image/svg+xml;base64,...“) oder „jpg/png“-Bilder (endet mit „.png“) haben
-- „label“ – Bezeichnung der Registerkarte
-- `Elemente` - Objekt `{"attr1": {}, "attr2": {}}...`
-- `collapsable` – nur möglich, da es sich nicht um einen Teil von tabs[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) handelt.
-- `color` - Farbe der einklappbaren Kopfzeile `primary` oder `sekundary` oder nichts
-- `innerStyle` – CSS-Stile für innere Divs im React-Format („marginLeft“ und nicht „margin-left“) für die Panel-Komponente. Wird nicht für einklappbare Panels verwendet.
-
-- `text` – Textkomponente
-- `maxLength` – maximale Länge des Textes im Feld
-- `readOnly` - schreibgeschütztes Feld
-- „trim“ – Standard ist „true“. Setzen Sie dieses Attribut auf „false“, wenn kein Trimmen gewünscht ist.
-- „minRows“ – Standard ist 1. Setzen Sie dieses Attribut auf „2“ oder höher, wenn Sie einen Textbereich mit mehr als einer Zeile haben möchten.
-- `maxRows` – maximale Anzahl an Zeilen im Textbereich. Wird nur verwendet, wenn `minRows` > 1.
-- „noClearButton“ – wenn wahr, wird die Schaltfläche „Löschen“ nicht angezeigt (Admin >= 6.17.13)
-- `validateJson` – wenn wahr, wird der Text als JSON validiert
-- „allowEmpty“ – wenn wahr, wird das JSON nur validiert, wenn der Wert nicht leer ist
-- „Zeit“ – der Wert ist die Zeit in ms oder eine Zeichenfolge. Wird nur mit dem Flag „readOnly“ verwendet.
-
-- `Nummer`
-- `min` - Minimalwert
-- `max` - Maximalwert
-- `Schritt` - Schritt
-
-- „Farbe“ – Farbwähler
-- „noClearButton“ – wenn wahr, wird die Schaltfläche „Löschen“ nicht angezeigt (Admin >= 6.17.13)
-
-- `checkbox` – Kontrollkästchen anzeigen
-
-- `slider` - Slider anzeigen (nur Admin6)
-- `min` - (Standard 0)
-- `max` - (Standard 100)
-- „Schritt“ – (Standard: „(max – min) / 100“)
-- `unit` - Einheit des Schiebereglers
-
-- „qrCode“ – Daten in einem QR-Code anzeigen (Admin >= 7.0.18)
-- `data` - die im QR-Code zu kodierenden Daten
-- „Größe“ – Größe des QR-Codes
-- `fgColor` – Vordergrundfarbe
-- `bgColor` – Hintergrundfarbe
-- „Ebene“ – Ebene des QR-Codes (`L` `M` `Q` `H`)
-
-- `ip` - Bind-Adresse
-- `listenOnAllPorts` - 0.0.0.0 zur Option hinzufügen
-- `onlyIp4` - nur IP4-Adressen anzeigen
-- `onlyIp6` - nur IP6-Adressen anzeigen
-- „noInternal“ – interne IP-Adressen nicht anzeigen
-
-- `user` - Benutzer aus system.user auswählen. (Mit Farbe und Symbol)
-- „kurz“ – kein Systembenutzer.
-
-- „room“ – Raum aus „enum.room“ auswählen (mit Farbe und Symbol) – (nur Admin6)
-- „kurz“ – kein „enum.rooms“.
-- `allowDeactivate` - erlaubt das Leeren des Raumes
-
-- `func` – Funktion aus `enum.func` auswählen (Mit Farbe und Symbol) – (nur Admin6)
-- „kurz“ – kein „enum.func“.
-- `allowDeactivate` - ermöglicht das Leeren der Funktionalität
-
-- `auswählen`
-- `Optionen` - `[{label: {en: "option 1"}, value: 1}, ...]` oder
-
-`[{"items": [{"label": "Val1", "value": 1}, {"label": "Val2", value: "2}], "name": "group1"}, {"items": [{"label": "Val3", "value": 3}, {"label": "Val4", value: "4}], "name": "group2"}, {"label": "Val5", "value": 5}]`
-
-- `Autovervollständigung`
-- `Optionen` - `["Wert1", "Wert2", ...]` oder `[{"Wert": "Wert", "Bezeichnung": "Wert1"}, "Wert2", ...]` (Schlüssel müssen eindeutig sein)
-- „freeSolo“ – Setzen Sie „freeSolo“ auf „true“, damit das Textfeld einen beliebigen Wert enthalten kann.
-
-- `image` - speichert das Bild als Datei des `adapter.X`-Objekts oder als Base64 im Attribut
-- `filename` - Name der Datei ist Strukturname. Im folgenden Beispiel ist `login-bg.png` der Dateiname für `writeFile("myAdapter.INSTANCE", "login-bg.png")`
-- „accept“ – HTML-Akzeptanzattribut, wie „{ „image/**“: [], „application/pdf“: [„.pdf“] }“, Standard „{ „image/*“: [] }“
-- `maxSize` – maximale Größe der hochzuladenden Datei
-- `base64` - wenn wahr, wird das Bild als Daten-URL im Attribut gespeichert, andernfalls als Binärdatei im Dateispeicher
-- „crop“ – wenn wahr, erlaubt dem Benutzer, das Bild zuzuschneiden
-- `!maxBreite`
-- `!maxHöhe`
-- „!square“ – die Breite muss gleich der Höhe sein, oder der Zuschnitt darf nur Quadrate als Form zulassen
+## I18n - Internationalisierung
+Es gibt mehrere Möglichkeiten, die Übersetzungen bereitzustellen. Nur die erste ist mit unserem Community-Übersetzungstool Weblate kompatibel und sollte daher den anderen vorgezogen werden!
+
+Um die Übersetzungsfunktion zu aktivieren, müssen Sie die i18n-Eigenschaft auf der obersten Ebene des JSON-Konfigurationsobjekts angeben und aktivieren.
+
+```json5
+{
+ i18n: true,
+}
+```
+
+### Übersetzung in getrennten Dateien: kompatibel mit Weblate
+Standardmäßig müssen sich die Dateien in den folgenden Verzeichnissen befinden:
+
+```text
+admin/i18n/de/translations.json
+admin/i18n/en/translations.json
+```
+
+oder
+
+```text
+admin/i18n/de.json
+admin/i18n/en.json
+```
+
+Darüber hinaus kann der Benutzer den Pfad zu `i18n`-Dateien, `i18n`: `customI18n` angeben und Dateien im Admin bereitstellen:
+
+```json5
+ i18n: "customI18n",
+```
+
+```text
+admin/customI18n/de/translations.json
+admin/customI18n/en/translations.json
+```
+
+oder
+
+```text
+admin/customI18n/de.json
+admin/customI18n/en.json
+```
+
+Der Aufbau einer Datei entspricht folgendem Aufbau
+
+**en.json:**
+
+```json5
+{
+ i18nText1: "Open",
+ i18nText2: "Close",
+ "This is a Text": "This is a Text",
+}
+```
+
+**de.json:**
+
+```json5
+{
+ i18nText1: "Öffnen",
+ i18nText2: "Schließen",
+ "This is a Text": "Dies ist ein Text",
+}
+```
+
+Bei der Suche nach einer Übersetzung werden die Informationen im entsprechenden Feld verwendet, um die Eigenschaft mit dem Text in den Dateien zu finden. Wird die Eigenschaft nicht gefunden, bleiben die Informationen aus dem Feld erhalten. Es wird empfohlen, den Text in Englisch einzugeben.
+
+### Geben Sie die Übersetzung direkt in den Feldern ein
+Übersetzungen können in allen Feldern angegeben werden, die Text enthalten können. Beispiele für Felder sind Beschriftung, Titel, Tooltip, Text usw.
+
+```json5
+ "type": "text",
+ "label: {
+ "en": "house",
+ "de": "Haus"
+ }
+}
+```
+
+### Stellen Sie die Übersetzung direkt in der i18n bereit
+Die Übersetzungen können auch direkt als Objekt im Attribut `i18n` auf der obersten Ebene des Objekts `jsonConfig` bereitgestellt werden.
+
+Bei der Suche nach einer Übersetzung werden die Informationen im entsprechenden Feld verwendet, um die Eigenschaft mit dem Text im i18n-Objekt zu finden.
+Wird die Eigenschaft nicht gefunden, bleiben die Informationen aus dem Feld erhalten.
+Es wird empfohlen, den Text in Englisch einzugeben.
+
+## Elementtypen
+Jedes Element kann [gemeinsame Attribute](#common-attributes-of-controls) und die zum jeweiligen Typ gehörenden speziellen Attribute wie folgt haben
+
+### `tabs`
+Registerkarten mit Elementen
+
+| Immobilie | Beschreibung |
+|-----------------|------------------------------------------------------------------------------------------------|
+| `items` | Objekt mit Paneelen `{"tab1": {}, "tab2": {}...}` |
+| `tabsStyle` | CSS-Stile im React-Format (`marginLeft` und nicht `margin-left`) für die Mui-Tabs-Komponente |
+| `tabsStyle` | CSS-Stile im React-Format („marginLeft“ und nicht „margin-left“) für die Mui-Tabs-Komponente |
+
+### `panel`
+Registerkarte mit Elementen
+
+| Immobilie | Beschreibung |
+|---------------|-----------------------------------------------------------------------------------------------------------------------------------------|
+| `icon` | Registerkarte kann Symbole (Base64 wie `data:image/svg+xml;base64,...`) oder `jpg/png` Bilder haben (endet mit `.png`) |
+| `items` | Objekt `{"attr1": {}, "attr2": {}}...` |
+| `collapsable` | nur möglich, da nicht Bestandteil von Tabs[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) |
+| `color` | Farbe der einklappbaren Kopfzeile `primary` oder `secondary` oder nichts |
+| `innerStyle` | CSS-Stile für innere Divs im React-Format (`marginLeft` und nicht `margin-left`) für die Panel-Komponente. Wird nicht für einklappbare Panels verwendet. |
+| `innerStyle` | CSS-Stile für innere Divs im React-Format (`marginLeft` und nicht `margin-left`) für die Panel-Komponente. Wird nicht für einklappbare Panels verwendet. |
+
+### `text`
+Textkomponente
+
+| Immobilie | Beschreibung |
+|-------------------|--------------------------------------------------------------------------------------------------------|
+| `maxLength` | maximale Länge des Textes im Feld |
+| `copyToClipboard` | Schaltfläche „In die Zwischenablage kopieren“ anzeigen, aber nur, wenn deaktiviert oder schreibgeschützt ist |
+| `trim` | Standard ist „true“. Setzen Sie dieses Attribut auf `false`, wenn kein Trimmen gewünscht ist. |
+| `minRows` | Standard ist 1. Setzen Sie dieses Attribut auf `2` oder höher, wenn Sie einen Textbereich mit mehr als einer Zeile haben möchten. |
+| `maxRows` | max. Zeilen im Textbereich. Wird nur verwendet, wenn `minRows` > 1. |
+| `noClearButton` | wenn wahr, wird die Schaltfläche „Löschen“ nicht angezeigt (Admin >= 6.17.13) |
+| `validateJson` | wenn wahr, wird der Text als JSON validiert |
+| `allowEmpty` | wenn wahr, wird das JSON nur validiert, wenn der Wert nicht leer ist |
+| `time` | der Wert ist die Zeit in ms oder eine Zeichenfolge. Wird nur mit dem Flag readOnly verwendet |
+| `Zeit` | der Wert ist die Zeit in ms oder eine Zeichenfolge. Wird nur mit dem Flag readOnly verwendet |
+
+### `number`
+| Immobilie | Beschreibung |
+|----------|---------------|
+| `min` | Minimalwert |
+| `step` | Schritt |
+| `Schritt` | Schritt |
+
+### `color`
+Farbwähler
+
+| Immobilie | Beschreibung |
+|-----------------|----------------------------------------------------------------|
+| `noClearButton` | wenn wahr, wird die Schaltfläche „Löschen“ nicht angezeigt (Admin >= 6.17.13) |
+
+### `checkbox`
+Kontrollkästchen anzeigen
+
+### `slider`
+Slider anzeigen (nur Admin6)
+
+| Immobilie | Beschreibung |
+| -------- | ----------------------------- |
+| `min` | (Standard 0) |
+| `step` | (Standard `(max - min) / 100`) |
+| `unit` | Einheit des Schiebereglers |
+| `Einheit` | Einheit des Schiebereglers |
+
+### `qrCode`
+Daten in einem QR-Code anzeigen (Admin >= 7.0.18)
+
+| Immobilie | Beschreibung |
+| --------- | ------------------------------------- |
+| `data` | die im QR-Code zu kodierenden Daten |
+| `fgColor` | Vordergrundfarbe |
+| `bgColor` | Hintergrundfarbe |
+| `level` | QR-Code-Ebene (`L` `M` `Q` `H`) |
+| `Ebene` | QR-Code-Ebene (`L` `M` `Q` `H`) |
+
+### `ip`
+Bind-Adresse
+
+| Immobilie | Beschreibung |
+|--------------------|-----------------------------------|
+| `listenOnAllPorts` | 0.0.0.0 zur Option hinzufügen |
+| `onlyIp6` | nur IP6-Adressen anzeigen |
+| `noInternal` | interne IP-Adressen nicht anzeigen |
+| `noInternal` | keine internen IP-Adressen anzeigen |
+
+### `user`
+Benutzer aus system.user auswählen. (Mit Farbe und Symbol)
+
+| Immobilie | Beschreibung |
+|----------|-----------------|
+| `short` | kein Systembenutzer. |
+
+### `room`
+Raum auswählen aus `enum.room` (Mit Farbe und Symbol) - (nur Admin6)
+
+| Immobilie | Beschreibung |
+|-------------------|--------------------------|
+| `short` | nein `enum.rooms.` |
+| `allowDeactivate` | erlaubt das Leerlassen von Räumen |
+
+### `func`
+Funktion auswählen aus `enum.func` (Mit Farbe und Symbol) - (nur Admin6)
+
+| Immobilie | Beschreibung |
+|-------------------|-----------------------------------|
+| `short` | nein `enum.func.` |
+| `allowDeactivate` | erlaubt das Leeren der Funktionalität |
+
+### `select`
+| Immobilie | Beschreibung |
+|-----------|-------------------------------------------------------------------------|
+| `options` | Objekt mit Beschriftungen, optionalen Übersetzungen, optionaler Gruppierung und Werten |
+
+#### Beispiel für `select options`
+```json
+[
+ {"label": {"en": "option 1"}, "value": 1}, ...
+]
+```
+
+oder
+```json
+[
+ {
+ "items": [
+ {"label": "Val1", "value": 1},
+ {"label": "Val2", "value": 2}
+ ],
+ "name": "group1"
+ },
+ {
+ "items": [
+ {"label": "Val3", "value": 3},
+ {"label": "Val4", "value": 4}
+ ],
+ "name": "group2"
+ },
+ {"label": "Val5", "value": 5}
+]
+```
+
+### `autocomplete`
+| Immobilie | Beschreibung |
+|------------|---------------------------------------------------------------------------------------------------------------|
+| `options` | `["value1", "value2", ...]` oder `[{"value": "value", "label": "Value1"}, "value2", ...]` (Schlüssel müssen eindeutig sein) |
+| „freeSolo“ | Setzen Sie „freeSolo“ auf „true“, damit das Textfeld einen beliebigen Wert enthalten kann. |
+
+### `image`
+speichert das Bild als Datei des `adapter.X` Objekts oder als Base64 im Attribut
+
+| Immobilie | Beschreibung |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
+| `filename` | Dateiname ist Strukturname. Im folgenden Beispiel ist `login-bg.png` der Dateiname für `writeFile("myAdapter.INSTANCE", "login-bg.png")` |
+| `maxSize` | maximale Größe der hochzuladenden Datei |
+| `base64` | wenn wahr, wird das Bild als Daten-URL im Attribut gespeichert, andernfalls als Binärdatei im Dateispeicher |
+| `crop` | wenn wahr, Benutzer darf das Bild zuschneiden |
+| `!maxWidth` | |
+| `!maxHeight` | |
+| `!square` | Breite muss gleich Höhe sein, oder beim Zuschneiden darf nur ein Quadrat als Form zulässig sein |
+| `!square` | Breite muss gleich Höhe sein, oder beim Zuschneiden darf nur das Quadrat als Form zulässig sein |
+
+#### Beispiel für `image`
```json
"login-bg.png": {
"type": "image",
@@ -160,380 +481,574 @@ Mögliche Typen:
}
```
-- `objectId` – Objekt-ID: mit Name, Farbe und Symbol anzeigen
-- `types` - Gewünschter Typ: `channel`, `device`, ... (hat standardmäßig nur `state`). Es ist Plural, weil `type` bereits vergeben ist.
-- `root` – [optional] Nur dieses Stammobjekt und seine untergeordneten Objekte anzeigen
-- `customFilter` - [optional] Kann nicht zusammen mit `type`-Einstellungen verwendet werden. Es handelt sich um ein Objekt und nicht um eine JSON-Zeichenfolge. Beispiele
-- `{common: {custom: true}}` – zeige nur Objekte mit einigen benutzerdefinierten Einstellungen
-- `{common: {custom: 'sql.0'}}` – zeige nur Objekte mit benutzerdefinierten SQL.0-Einstellungen (nur der spezifischen Instanz)
-- `{common: {custom: '_dataSources'}}` – zeige nur Objekte der Adapter `influxdb` oder `sql` oder `history`
-- `{common: {custom: 'adapterName.'}}` – zeigt nur Objekte mit benutzerdefinierten Einstellungen eines bestimmten Adapters an (alle Instanzen)
-- `{type: 'channel'}` – nur Kanäle anzeigen
-- `{type: ['channel', 'device']}` - nur Kanäle und Geräte anzeigen
-- `{common: {type: 'number'}` - zeigt nur Zustände vom Typ 'number
-- `{common: {type: ['number', 'string']}` - zeigt nur Zustände vom Typ 'number' und 'string' an.
-- `{common: {role: 'switch'}` - zeige nur Zustände mit Rollen, beginnend mit switch
-- `{common: {role: ['switch', 'button']}` - zeige nur Zustände mit Rollen, die mit `switch` und `button` beginnen
-- `filterFunc` – [optional] Kann nicht zusammen mit `type`-Einstellungen verwendet werden. Es ist eine Funktion, die für jedes Objekt aufgerufen wird und true oder false zurückgeben muss. Beispiel: `obj.common.type === 'number'`
-
-- „Passwort“ – Passwortfeld
+### `objectId`
+Objekt-ID: mit Name, Farbe und Symbol anzeigen
-Dieser Feldtyp hat nur Auswirkungen auf die Benutzeroberfläche.
-Passwörter und andere sensible Daten sollten verschlüsselt gespeichert werden! Dazu muss der Schlüssel im io-package.json unter [nativeVerschlüsselung](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields) bereitgestellt werden.
-Zusätzlich können Sie diese Eigenschaft vor der Bereitstellung an andere Adapter als `admin` und `cloud` schützen, indem Sie sie in der Datei `io-package.json` zu `protectedNative` hinzufügen.
+| Immobilie | Beschreibung |
+|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `types` | Gewünschter Typ: `channel`, `device`, ... (hat standardmäßig nur `state`). Es ist Plural, da `type` bereits belegt ist. |
+| `customFilter` | [optional] Kann nicht zusammen mit `type`-Einstellungen verwendet werden. Es ist ein Objekt und kein JSON-String. |
+| `filterFunc` | [optional] Kann nicht zusammen mit `type`-Einstellungen verwendet werden. Es handelt sich um eine Funktion, die für jedes Objekt aufgerufen wird und true oder false zurückgeben muss. Beispiel: `obj.common.type === 'number'` |
+| `filterFunc` | [optional] Kann nicht zusammen mit `type`-Einstellungen verwendet werden. Es ist eine Funktion, die für jedes Objekt aufgerufen wird und true oder false zurückgeben muss. Beispiel: `obj.common.type === 'number'` |
+
+#### Beispiele für `customFilter`
+##### Zeige nur Objekte mit einigen benutzerdefinierten Einstellungen
+`{common: {custom: true}}`
+
+##### Zeige nur Objekte mit benutzerdefinierten SQL.0-Einstellungen (nur der jeweiligen Instanz)
+`{common: {custom: 'sql.0'}}`
-- `repeat` - Wiederholungspasswort muss mit Passwort verglichen werden
-- „sichtbar“ – Wahr, wenn das Anzeigen des Passworts durch Umschalten der Schaltfläche „Anzeigen“ erlaubt ist (nur für ein neues Passwort während der Eingabe)
-- `readOnly` - das Nur-Lese-Flag. Visible ist automatisch wahr, wenn readOnly wahr ist
-- `maxLength` – maximale Länge des Textes im Feld
+##### Zeige nur Objekte der Adapter `influxdb` oder `sql` oder `history`
+`{common: {custom: '_dataSources'}}`
-- `Instanz`
-- `adapter` – Name des Adapters. Mit dem speziellen Namen `_dataSources` können Sie alle Adapter mit dem Flag `common.getHistory` abrufen.
-- „Adapter“ – optionale Liste der Adapter, die angezeigt werden sollen. Wenn nicht definiert, werden alle Adapter angezeigt. Nur aktiv, wenn das Attribut „Adapter“ nicht definiert ist.
-- `allowDeactivate` - wenn wahr. Zusätzliche Option "Deaktivieren" wird angezeigt
-- `onlyEnabled` - wenn wahr. Nur aktivierte Instanzen werden angezeigt
-- „lang“ – der Wert sieht wie „system.adapter.ADAPTER.0“ aus und nicht wie „ADAPTER.0“.
-- „short“ – der Wert sieht wie „0“ aus und nicht wie „ADAPTER.0“.
-- „alle“ – Fügen Sie den Optionen „alle“ die Option mit dem Wert „*“ hinzu
+##### Zeige nur Objekte mit benutzerdefinierten Einstellungen für einen bestimmten Adapter (alle Instanzen)
+`{common: {custom: 'adapterName.'}}`
-- „Chips“ – der Benutzer kann das Wort eingeben und es wird hinzugefügt (siehe Cloud => Dienste => Whitelist). Die Ausgabe ist ein Array, wenn kein „Trennzeichen“ definiert ist.
-- `delimiter` - wenn es definiert ist, wird die Option als Zeichenfolge mit Trennzeichen statt als Array gespeichert. Beispielsweise erhalten Sie mit `delimiter=;` `a;b;c` statt `['a', 'b', 'c']`
+##### Nur Kanäle anzeigen
+`{type: 'channel'}`
+
+##### Nur Kanäle und Geräte anzeigen
+`{type: ['channel', 'device']}`
+
+##### Zeige nur Zustände vom Typ 'Zahl'
+`{common: {type: 'number'}`
+
+##### Zeige nur Zustände vom Typ ‚Zahl‘ und ‚Zeichenfolge‘
+`{common: {type: ['number', 'string']}`
+
+##### Zeige nur Zustände mit Rollen ab Switch
+`{common: {role: 'switch'}`
+
+##### Zeige nur Staaten mit Rollen, die mit `switch` und `button` beginnen
+`{common: {role: ['switch', 'button']}`
+
+### `password`
+Dieser Feldtyp hat nur Auswirkungen auf die Benutzeroberfläche.
+Passwörter und andere sensible Daten sollten verschlüsselt gespeichert werden! Dazu muss der Schlüssel im io-package.json unter [nativeVerschlüsselung](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields) bereitgestellt werden.
+Zusätzlich können Sie diese Eigenschaft vor der Bereitstellung an andere Adapter als `admin` und `cloud` schützen, indem Sie sie in der Datei `io-package.json` zu `protectedNative` hinzufügen.
-- „alive“ – nur ein Hinweis darauf, ob die Instanz aktiv ist und in den Modi „versteckt“ und „deaktiviert“ verwendet werden kann (wird nicht in der Konfiguration gespeichert)
+| Immobilie | Beschreibung |
+|-------------|---------------------------------------------------------------------------------------------------------|
+| `repeat` | Passwortwiederholung muss mit Passwort verglichen werden |
+| `readOnly` | das Nur-Lese-Flag. Visible ist automatisch wahr, wenn readOnly wahr ist |
+| `maxLength` | maximale Länge des Textes im Feld |
+| `maxLength` | maximale Länge des Textes im Feld |
+
+### `instance`
+| Immobilie | Beschreibung |
+|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `adapter` | Name des Adapters. Mit dem speziellen Namen `_dataSources` können Sie alle Adapter mit dem Flag `common.getHistory` abrufen. |
+| `allowDeactivate` | wenn wahr. Zusätzliche Option „Deaktivieren“ wird angezeigt |
+| `onlyEnabled` | wenn wahr. Es werden nur aktivierte Instanzen angezeigt |
+| `long` | Wert sieht aus wie `system.adapter.ADAPTER.0` und nicht wie `ADAPTER.0` |
+| `short` | Wert sieht aus wie `0` und nicht wie `ADAPTER.0` |
+| `all` | Zu den Optionen „alle“ die Option mit dem Wert `*` hinzufügen |
+| `alle` | Füge den Optionen „alle“ die Option mit dem Wert `*` hinzu |
+
+### `chips`
+Der Benutzer kann das Wort eingeben und es wird hinzugefügt (siehe Cloud => Dienste => Whitelist). Die Ausgabe ist ein Array, wenn kein `delimiter` definiert ist.
+
+| Immobilie | Beschreibung |
+|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `delimiter` | wenn es definiert ist, wird die Option als Zeichenfolge mit Trennzeichen statt als Array gespeichert. Beispielsweise erhalten Sie durch `delimiter=;` `a;b;c` statt `['a', 'b', 'c']` |
+
+### `alive`
+nur ein Hinweis, ob die Instanz aktiv ist und in den Modi „versteckt“ und „deaktiviert“ verwendet werden kann (wird nicht in der Konfiguration gespeichert)
Nur Text: Instanz läuft, Instanz läuft nicht
-- `Instanz` – prüft, ob die Instanz aktiv ist. Wenn nicht definiert, wird die aktuelle Instanz verwendet. Sie können im Text das Muster `${data.number}` verwenden.
-- `textAlive` - Standardtext ist `Instance %s is alive`, wobei %s durch `ADAPTER.0` ersetzt wird. Die Übersetzung muss in i18n-Dateien vorhanden sein
-- `textNotAlive` - der Standardtext lautet `Instanz %s ist nicht aktiv`, wobei %s durch `ADAPTER.0` ersetzt wird. Die Übersetzung muss in i18n-Dateien vorhanden sein
-
-- „Muster“ – schreibgeschütztes Feld mit Muster wie „https://${data.ip}:${data.port}“ (wird nicht in der Konfiguration gespeichert)
-
-Texteingabe mit dem Nur-Lese-Flag, die ein Muster zeigt.
-
-- `copyToClipboard` - wenn wahr - Schaltfläche anzeigen
-- `Muster` - mein Muster
-
-- „sendto“ – Schaltfläche, die eine Anfrage an die Instanz sendet (https://github.com/iobroker-community-adapters/ioBroker.email/blob/master/admin/index_m.html#L128)
-- „Befehl“ – (Standard: „Senden“)
-- `jsonData` - Zeichenfolge - `"{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}"`. Sie können die speziellen Variablen `data._origin` und `data._originIp` verwenden, um der Instanz die Anrufer-URL zu senden, z. B. `http://127.0.0.1:8081/admin`.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides.
- - `result` - `{result1: {en: 'A'}, result2: {en: 'B'}}`
- - `error` - `{error1: {en: 'E'}, error2: {en: 'E2'}}`
-- `Variante` - `enthalten`, `umrissen` oder nichts
-- `openUrl` - wenn wahr - URL in neuem Tab öffnen, wenn die Antwort das Attribut `openUrl` enthält, wie `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. Wenn `saveConfig` wahr ist, wird der Benutzer aufgefordert, die Konfiguration zu speichern.
-- „reloadBrowser“ – wenn wahr – lädt das aktuelle Browserfenster neu, wenn die Antwort das Attribut „reloadBrowser“ enthält, wie „{„reloadBrowser“: true}“.
-- „window“ – wenn „openUrl“ wahr ist, ist dies der Name des neuen Fensters. Kann überschrieben werden, wenn die Antwort aus dem Attribut „window“ besteht.
-
-`this.props.socket.sendTo(adapterName.instance, command || 'send', data, result => {});`
-
-- `icon` – wenn Icons angezeigt werden sollen: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. Sie können `base64`-Icons (wie `data:image/svg+xml;base64,...`) oder `jpg/png`-Bilder (endet mit `.png`) verwenden. (Wenn Sie mehr Icons benötigen, wenden Sie sich bitte per Issue an uns.)
-- `useNative` – wenn der Adapter ein Ergebnis mit dem Attribut `native` zurückgibt, wird es für die Konfiguration verwendet. Wenn `saveConfig` wahr ist, wird der Benutzer aufgefordert, die Konfiguration zu speichern.
-- „showProcess“ – Spinner anzeigen, während die Anfrage ausgeführt wird
-- „timeout“ – Timeout für Anforderung in ms. Standard: keine.
-- `onLoaded` - führt die Schaltflächenlogik zunächst einmal aus
-
-- `setState` - Schaltfläche zum Festlegen des Status der Instanz
-- `id` - `system.adapter.myAdapter.%INSTANCE%.test`, Sie können den Platzhalter `%INSTANCE%` verwenden, um ihn durch den aktuellen Instanznamen zu ersetzen
-- `ack` - false (Standard: false)
-- `val` - '${data.myText}\_test' oder Zahl. Der Typ wird automatisch anhand des Statustyps erkannt und die Konvertierung wird ebenfalls durchgeführt.
-- `okText` - Warnung, die durch Drücken der Taste angezeigt wird
-- `Variante` - `enthalten`, `umrissen`, ''
-
-- `staticText` – statischer Text wie Beschreibung
-- `label` - mehrsprachiger Text
-- „Text“ – dasselbe wie Etikett
-
-- `staticLink` – statischer Link
-- `label` - mehrsprachiger Text
-- `href` – Link. Der Link könnte dynamisch sein, wie `#tab-objects/customs/${data.parentId}`
-- `target` - `_blank` oder `_self` oder Fenstername
-- „close“ – wenn wahr, wird die GUI geschlossen (wird nicht für JsonConfig im Admin verwendet, sondern für die dynamische GUI)
-- „Button“ – einen Link als Schaltfläche anzeigen
-- „Variante“ – Art der Schaltfläche („umrissen“, „enthalten“, „Text“)
-- „Farbe“ – Farbe der Schaltfläche (z. B. „primär“)
-- `icon` - wenn Icon angezeigt werden soll: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Sie können `base64`-Icons (beginnt mit `data:image/svg+xml;base64,...`) oder `jpg/png`-Bilder (endet mit `.png`) verwenden. (Wenn Sie mehr Icons benötigen, wenden Sie sich bitte per Issue an)
-
-- `staticImage` – statisches Bild
-- `href` – optionaler HTTP-Link
-- `src` - Name des Bildes (aus dem Admin-Verzeichnis)
-
-- `table` - Tabelle mit Elementen, die gelöscht, hinzugefügt, nach oben oder nach unten verschoben werden können
-- `items` - `[{"type": siehe oben, "width": px oder %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]`
-- `noDelete` - Boolesch, wenn Löschen oder Hinzufügen deaktiviert ist. Wenn `noDelete` falsch ist, sollten Hinzufügen, Löschen und Hoch-/Runterschieben funktionieren.
-- `objKeyName` – (alte Einstellung, nicht verwenden!) – Name des Schlüssels in `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}`
-- `objValueName` – (alte Einstellung, nicht verwenden!) – Name des Wertes in `{"192.168.1.1": "value1", "192.168.1.2": "value2"}`
-- `allowAddByFilter` - wenn Hinzufügen erlaubt ist, auch wenn Filter gesetzt ist
-- `showSecondAddAt` - Anzahl der Zeilen, ab denen der zweite Hinzufügen-Button am Ende der Tabelle angezeigt wird. Standardmäßig 5
-- „showFirstAddOnTop“ – Zeigt den ersten Plus-Button oben in der ersten Spalte und nicht links.
-- `clone` – [optional] – wenn die Schaltfläche „Klonen“ angezeigt werden soll. Wenn wahr, wird die Schaltfläche „Klonen“ angezeigt. Wenn Attributname, ist dieser Name eindeutig.
-- „Exportieren“ – [optional] – ob die Schaltfläche „Exportieren“ angezeigt werden soll. Als CSV-Datei exportieren.
-- „importieren“ – [optional] – ob die Schaltfläche „Importieren“ angezeigt werden soll. Importieren aus CSV-Datei.
-- `uniqueColumns` - [optional] - Geben Sie ein Array von Spalten an, die eindeutige Einträge haben müssen
-- `encryptedAttributes` – [optional] – Geben Sie ein Array von Spalten an, die verschlüsselt werden sollen
-- `compact` – [optional] – wenn wahr, wird die Tabelle im kompakten Modus angezeigt
-
-- „Akkordeon“ – Akkordeon mit Elementen, die gelöscht, hinzugefügt, nach oben oder nach unten verschoben werden können (Admin 6.6.0 und neuer)
-- `items` - `[{"type": siehe oben, "attr": "name", "default": ""}]` - Elemente können wie auf einem `Panel` platziert werden (xs, sm, md, lg und newLine)
-- `titleAttr` - Schlüssel der Artikelliste, der als Name verwendet werden soll
-- `noDelete` - Boolesch, wenn Löschen oder Hinzufügen deaktiviert ist. Wenn `noDelete` falsch ist, sollten Hinzufügen, Löschen und Hoch-/Runterschieben funktionieren.
-- `clone` – [optional] – wenn die Schaltfläche „Klonen“ angezeigt werden soll. Wenn wahr, wird die Schaltfläche „Klonen“ angezeigt. Wenn Attributname, ist dieser Name eindeutig.
-
-- `jsonEditor` - JSON-Editor
-- „validateJson“ – wenn falsch, wird der Text nicht als JSON validiert
-- „allowEmpty“ – wenn wahr, wird das JSON nur validiert, wenn der Wert nicht leer ist
-
-- „Sprache“ – Sprache auswählen
-- „system“ – erlaubt die Verwendung der Systemsprache aus „system.config“ als Standard (hat einen leeren String-Wert, wenn ausgewählt)
-
-- `Zertifikat`
-- `certType` - von: `public`, `private`, `chained`. Aber ab 6.4.0 können Sie den Typ `certificates` verwenden.
-
-- „Zertifikate“ – dies ist ein universeller Typ, der die Attribute „certPublic“, „certPrivate“, „certChained“ und „leCollection“ für Sie verwaltet.
-
- Beispiel:
+| Immobilie | Beschreibung |
+|----------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `instance` | prüft, ob die Instanz aktiv ist. Wenn nicht definiert, wird die aktuelle Instanz verwendet. Sie können das Muster `${data.number}` im Text verwenden. |
+| `textNotAlive` | Standardtext ist `Instance %s is not alive`, wobei %s durch `ADAPTER.0` ersetzt wird. Die Übersetzung muss in i18n-Dateien vorhanden sein |
+| `textNotAlive` | Standardtext ist `Instanz %s ist nicht aktiv`, wobei %s durch `ADAPTER.0` ersetzt wird. Die Übersetzung muss in i18n-Dateien vorhanden sein |
+
+### `pattern`
+schreibgeschütztes Feld mit einem Muster wie „https://${data.ip}:${data.port}“ (wird nicht in der Konfiguration gespeichert). Texteingabe mit der schreibgeschützten Flagge, die ein Muster anzeigt.
+
+| Immobilie | Beschreibung |
+|-------------------|-----------------------|
+| `copyToClipboard` | wenn wahr - Schaltfläche anzeigen |
+| `Muster` | mein Muster |
+
+### `sendTo`
+Schaltfläche, die eine Anfrage an die Instanz sendet ()
+
+| Immobilie | Beschreibung |
+|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | (Standard `send`) |
+| `data` | Objekt – `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides. |
+| `result` | `{result1: {en: 'A'}, result2: {en: 'B'}}` |
+| `error` | `{error1: {en: 'E'}, error2: {en: 'E2'}}` |
+| `variant` | `contained`, `outlined` oder nichts |
+| `openUrl` | wenn wahr - URL in neuem Tab öffnen, wenn Antwort Attribut `openUrl` enthält, wie `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. Wenn `saveConfig` wahr ist, wird der Benutzer aufgefordert, die Konfiguration zu speichern. |
+| `reloadBrowser` | wenn wahr – lädt das aktuelle Browserfenster neu, wenn die Antwort das Attribut `reloadBrowser` enthält, wie `{"reloadBrowser": true}`. |
+| `window` | wenn `openUrl` wahr ist, ist dies der Name des neuen Fensters. Kann überschrieben werden, wenn die Antwort aus dem Attribut `window` besteht. `this.props.socket.sendTo(adapterName.instance, command \|\| 'send', data, result => {});` |
+| `icon` | wenn Symbol angezeigt werden soll: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. Sie können `base64` Symbole (wie `data:image/svg+xml;base64,...`) oder `jpg/png` Bilder (endet mit `.png`) verwenden. (Wenn Sie mehr Symbole benötigen, wenden Sie sich per Problem an uns) |
+| `useNative` | Wenn der Adapter ein Ergebnis mit dem Attribut `native` zurückgibt, wird es für die Konfiguration verwendet. Wenn `saveConfig` wahr ist, wird der Benutzer aufgefordert, die Konfiguration zu speichern. |
+| `showProcess` | Spinner anzeigen, während die Anfrage ausgeführt wird |
+| `timeout` | Timeout für Anfrage in ms. Standard: keine. |
+| `onLoaded` | führe die Schaltflächenlogik zunächst einmal aus |
+| `onLoaded` | führe die Schaltflächenlogik zunächst einmal aus |
+
+### `setState`
+Schaltfläche zum Festlegen des Status der Instanz
+
+| Immobilie | Beschreibung |
+|-----------|-----------------------------------------------------------------------------------------------------------------------------------|
+| `id` | `system.adapter.myAdapter.%INSTANCE%.test`, Sie können den Platzhalter `%INSTANCE%` verwenden, um ihn durch den aktuellen Instanznamen zu ersetzen |
+| `val` | `${data.myText}\_test` oder Nummer. Der Typ wird automatisch anhand des Statustyps erkannt und die Konvertierung wird ebenfalls durchgeführt |
+| `okText` | Alarm, der durch Drücken der Taste angezeigt wird |
+| `variant` | `contained`, `outlined`, '' |
+| `Variante` | `enthalten`, `umrissen`, '' |
+
+### `staticText`
+statischer Text wie Beschreibung
+
+| Immobilie | Beschreibung |
+|----------|---------------------|
+| `label` | mehrsprachiger Text |
+| „Text“ | dasselbe wie Etikett |
+
+### `staticLink`
+| Immobilie | Beschreibung |
+|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `label` | mehrsprachiger Text |
+| `target` | `_blank` oder `_self` oder Fenstername |
+| `close` | wenn wahr, wird die GUI geschlossen (wird nicht für JsonConfig im Admin verwendet, sondern für die dynamische GUI) |
+| `button` | Link als Schaltfläche anzeigen |
+| `variant` | Art der Schaltfläche (`outlined`, `contained`, `text`) |
+| `color` | Farbe der Schaltfläche (z. B. `primary`) |
+| `icon` | ob Symbol angezeigt werden soll: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Sie können `base64`-Symbole (beginnt mit `data:image/svg+xml;base64,...`) oder `jpg/png`-Bilder (endet mit `.png`) verwenden. (Wenn Sie weitere Symbole benötigen, wenden Sie sich per Problem an uns) |
+| `icon` | wenn Icon angezeigt werden soll: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Sie können `base64`-Icons (beginnt mit `data:image/svg+xml;base64,...`) oder `jpg/png`-Bilder (endet mit `.png`) verwenden. (Wenn Sie mehr Icons benötigen, wenden Sie sich per Issue an uns) |
+
+### `staticImage`
+| Immobilie | Beschreibung |
+|----------|----------------------------------------|
+| `href` | optionaler HTTP-Link |
+| `src` | Name des Bildes (aus dem Admin-Verzeichnis) |
+
+### `table`
+Tabelle mit Elementen, die gelöscht, hinzugefügt, nach oben oder nach unten verschoben werden können
+
+| Immobilie | Beschreibung |
+|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "width": px or %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]` |
+| `objKeyName` | (alte Einstellung, nicht verwenden!) – Name des Schlüssels in `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}` |
+| `objValueName` | (alte Einstellung, nicht verwenden!) – Name des Werts in `{"192.168.1.1": "value1", "192.168.1.2": "value2"}` |
+| `allowAddByFilter` | wenn Hinzufügen erlaubt ist, auch wenn Filter gesetzt ist |
+| `showSecondAddAt` | Anzahl der Zeilen, ab denen der zweite Hinzufügen-Button am unteren Ende der Tabelle angezeigt wird. Standard 5 |
+| `showFirstAddOnTop` | Erste Plus-Schaltfläche oben in der ersten Spalte anzeigen und nicht links. |
+| `clone` | [optional] – ob die Schaltfläche „Klonen“ angezeigt werden soll. Wenn „true“, wird die Schaltfläche „Klonen“ angezeigt. Wenn „Attributname“, ist dieser Name eindeutig. |
+| `export` | [optional] – ob die Schaltfläche „Exportieren“ angezeigt werden soll. Als CSV-Datei exportieren. |
+| `import` | [optional] – ob die Schaltfläche „Importieren“ angezeigt werden soll. Importieren aus CSV-Datei. |
+| `uniqueColumns` | [optional] – Geben Sie ein Array von Spalten an, die eindeutige Einträge enthalten müssen |
+| `encryptedAttributes` | [optional] – Geben Sie ein Array von Spalten an, die verschlüsselt werden sollen |
+| `compact` | [optional] – wenn wahr, wird die Tabelle im kompakten Modus angezeigt |
+| `compact` | [optional] – wenn wahr, wird die Tabelle im kompakten Modus angezeigt |
+
+### `accordion`
+Akkordeon mit Elementen, die gelöscht, hinzugefügt, nach oben und nach unten verschoben werden können (Admin 6.6.0 und neuer)
+
+| Immobilie | Beschreibung |
+|-------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "attr": "name", "default": ""}]` Elemente können wie auf einem `panel` (xs, sm, md, lg und newLine) platziert werden |
+| `noDelete` | Boolesch, wenn Löschen oder Hinzufügen deaktiviert ist. Wenn `noDelete` falsch ist, sollten Hinzufügen, Löschen und Nach-oben-/Nach-unten-Verschieben funktionieren |
+| `clone` | [optional] – ob die Schaltfläche „Klonen“ angezeigt werden soll. Wenn „true“, wird die Schaltfläche „Klonen“ angezeigt. Wenn „Attributname“, ist dieser Name eindeutig. |
+| `clone` | [optional] – ob die Schaltfläche „Klonen“ angezeigt werden soll. Wenn „true“, wird die Schaltfläche „Klonen“ angezeigt. Wenn der Attributname, ist dieser Name eindeutig. |
+
+### `jsonEditor`
+| Immobilie | Beschreibung |
+|----------------|--------------------------------------------------------------------|
+| `validateJson` | wenn falsch, wird der Text nicht als JSON validiert |
+| `allowEmpty` | wenn wahr, wird das JSON nur validiert, wenn der Wert nicht leer ist |
+
+### `language`
+Sprache auswählen
+
+| Immobilie | Beschreibung |
+|----------|----------------------------------------------------------------------------------------------------------------------|
+| `system` | erlaubt die Verwendung der Systemsprache aus `system.config` als Standard (hat einen leeren String-Wert, wenn ausgewählt) |
+
+### `certificate`
+| Immobilie | Beschreibung |
+|------------|----------------------------------------------------------------------------------------|
+| `certType` | von: `public`, `private`, `chained`. Ab 6.4.0 können Sie jedoch den Typ `certificates` verwenden. |
+
+### `certificates`
+Es handelt sich um einen universellen Typ, der die Attribute `certPublic`, `certPrivate`, `certChained` und `leCollection` für Sie verwaltet.
+Beispiel:
```json
{
- "_certs": {
- "type": "certificates",
- "newLine": true,
- "hidden": "!data.secure",
- "sm": 12
- }
+ "_certs": {
+ "type": "certificates",
+ "newLine": true,
+ "hidden": "!data.secure",
+ "sm": 12
+ }
}
```
-- „certCollection“ – Zertifikatssammlung auswählen oder einfach alle Sammlungen verwenden oder Let’s Encrypt überhaupt nicht verwenden.
-- `leCollectionName` – Name der Zertifikatssammlung
+### `certificateCollection`
+Wählen Sie eine Zertifikatssammlung aus, verwenden Sie einfach alle Sammlungen, oder verwenden Sie Let’s Encrypt überhaupt nicht.
+
+| Immobilie | Beschreibung |
+|--------------------|------------------------------------|
+| `leCollectionName` | Name der Zertifikatssammlung |
-- `benutzerdefiniert` (nur Admin6)
-- „Name“ – Komponentenname, der über Props bereitgestellt wird, z. B. ComponentInstancesEditor
-- `url` - Speicherort der Komponente
-- „custom/customComponents.js“: In diesem Fall werden die Dateien von „/adapter/ADAPTER_NAME/custom/customComponents.js“ geladen.
+### `custom`
+nur Admin6
+
+| Immobilie | Beschreibung |
+|----------|--------------------------------------------------------------------------------------------------------------------------------|
+| `name` | Komponentenname, der über Props bereitgestellt wird, wie `ComponentInstancesEditor` |
+| `i18n` | Wahr, wenn sich die `i18n/xx.json`-Dateien im selben Verzeichnis wie die Komponente oder das Übersetzungsobjekt `{"text1": {"en": Text1"}}` befinden |
+| `i18n` | wahr, wenn sich `i18n/xx.json`-Dateien im selben Verzeichnis wie die Komponente oder das Übersetzungsobjekt `{"text1": {"en": Text1"}}` befinden |
+
+#### Beispiel für URL
+- „custom/customComponents.js“: in diesem Fall werden die Dateien von „/adapter/ADAPTER_NAME/custom/customComponents.js“ geladen.
- `https://URL/myComponent`: direkt von der URL
- `./adapter/ADAPTER_NAME/custom/customComponent.js`: in diesem Fall werden die Dateien von `/adapter/ADAPTER_NAME/custom/customComponents.js` geladen.
-- `i18n` – wahr, wenn sich `i18n/xx.json`-Dateien im selben Verzeichnis wie die Komponente oder das Übersetzungsobjekt `{"text1": {"en": Text1"}}` befinden.
-
-- `datePicker` - ermöglicht dem Benutzer, eine Datumseingabe auszuwählen. Das UI-Format stammt aus dem konfigurierten `dateFormat` in der Installation des Benutzers.
-
-Die Komponente gibt eine analysierbare Datumszeichenfolge zurück.
-
-- „timePicker“ – ermöglicht dem Benutzer die Auswahl einer Datumseingabe. Die zurückgegebene Zeichenfolge ist eine analysierbare Datumszeichenfolge oder hat das Format „HH:mm:ss“.
-- „Format“ – das an die Datumsauswahl übergebene Format ist standardmäßig „HH:mm:ss“.
-- `views` - Konfigurieren Sie, welche Ansichten den Benutzern angezeigt werden sollen. Standardmäßig `['hours', 'minutes', 'seconds']`
-- `timeSteps` - Stellt die verfügbaren Zeitschritte für jede Ansicht dar. Standardmäßig `{ Stunden: 1, Minuten: 5, Sekunden: 5 }`
-- `returnFormat` - `fullDate` oder `HH:mm:ss`. Aus Gründen der Abwärtskompatibilität wird standardmäßig das vollständige Datum verwendet.
-
-- `Teiler` - horizontale Linie
-- `height` – optionale Höhe
-- „Farbe“ – optionale Trennfarbe oder „primär“, „sekundär“
-
-- `Kopfzeile`
-- `Text`
-- `Größe` - 1-5 => h1-h5
-
-- `cron`
-- `complex` - CRON mit "Minuten", "Sekunden" usw. anzeigen
-- `simple` - einfache CRON-Einstellungen anzeigen
-
-- `fileSelector` (nur Admin6)
-- `pattern` – Dateierweiterungsmuster. Erlaubt `**/*.ext`, um auch alle Dateien aus Unterordnern anzuzeigen, `*.ext`, um sie aus dem Stammordner anzuzeigen oder `folderName/*.ext`, um alle Dateien im Unterordner `folderName` anzuzeigen. Standard `**/*.*`.
-- `fileTypes` – [optional] Dateityp: `Audio`, `Bild`, `Text`
-- `objectID` – Objekt-ID vom Typ `meta`. Sie können den speziellen Platzhalter `%INSTANCE%` verwenden: wie `myAdapter.%INSTANCE%.files`
-- `upload` - Pfad, in dem die hochgeladenen Dateien gespeichert werden. Wie `folderName`. Wenn nicht definiert, wird kein Upload-Feld angezeigt. Um in das Stammverzeichnis hochzuladen, setzen Sie dieses Feld auf `/`.
-- „Aktualisieren“ – Schaltfläche „Aktualisieren“ neben der Auswahl anzeigen.
-- „maxSize“ – maximale Dateigröße (Standard 2 MB)
-- „withFolder“ – Ordnernamen anzeigen, auch wenn sich alle Dateien im selben Ordner befinden
-- `delete` - Löschen von Dateien erlauben
-- `noNone` - Option `none` nicht anzeigen
-- `noSize` - Größe der Dateien nicht anzeigen
-
-- `file` - (nur Admin6) Eingabefeld mit Dateiauswahl
-- „disableEdit“ – wenn der Benutzer den Dateinamen manuell eingeben kann und nicht nur über den Auswahldialog
-- „limitPath“ – beschränkt die Auswahl auf ein bestimmtes Objekt vom Typ „Meta“ und den folgenden Pfad (nicht obligatorisch)
-- `filterFiles` - wie `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']`
-- `allowUpload` - erlaubtes Hochladen von Dateien
-- `allowDownload` – erlaubter Download von Dateien (Standard: true)
-- `allowCreateFolder` – erlaubte Erstellung von Ordnern
-- `allowView` – Kachel-Ansicht erlaubt (Standard: true)
-- `showToolbar` – Symbolleiste anzeigen (Standard: true)
-- „selectOnlyFolders“ – Benutzer kann nur Ordner auswählen (z. B. für den Upload-Pfad)
-- `trim` - kürzt den Dateinamen
-
-- `imageSendTo` - zeigt das Bild, das vom Backend als Base64-String empfangen wurde
-- „Breite“ – Breite des QR-Codes in px
-- „Höhe“ – Höhe des QR-Codes in px
-- `Befehl` - sendTo-Befehl
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist.
-
-Beispiel für Code im Backend:
-```
-adapter.on('message', obj => {
- if (obj.command === 'send') {
- const QRCode = require('qrcode');
- QRCode.toDataURL('3ca4234a-fd81-fdb8-5584-08c732f70e4d', (err, url) =>
- obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback));
- }
+### `datePicker`
+ermöglichen dem Benutzer die Auswahl einer Datumseingabe das UI-Format stammt aus der konfigurierten
+
+### `timePicker`
+Erlaubt dem Benutzer, eine Datumseingabe auszuwählen. Die zurückgegebene Zeichenfolge ist eine analysierbare Datumszeichenfolge oder hat das Format `HH:mm:ss`
+
+| Immobilie | Beschreibung |
+|----------------|------------------------------------------------------------------------------------------------------|
+| `format` | Das an die Datumsauswahl übergebene Format ist standardmäßig `HH:mm:ss` |
+| `timeSteps` | Stellt die verfügbaren Zeitschritte für jede Ansicht dar. Standardmäßig `{ hours: 1, minutes: 5, seconds: 5 }` |
+| `returnFormat` | `fullDate` oder `HH:mm:ss`. Aus Gründen der Abwärtskompatibilität wird standardmäßig das vollständige Datum verwendet. |
+| `returnFormat` | `fullDate` oder `HH:mm:ss`. Aus Gründen der Abwärtskompatibilität wird standardmäßig das vollständige Datum verwendet. |
+
+### `divider`
+horizontale Linie
+
+| Immobilie | Beschreibung |
+|----------|--------------------------------------------------|
+| `height` | optionale Höhe |
+| „Farbe“ | optionale Trennfarbe oder „primär“, „sekundär“ |
+
+### `header`
+| Immobilie | Beschreibung |
+|----------|--------------|
+| `text` | |
+| `Größe` | 1-5 => h1-h5 |
+
+### `cron`
+| Immobilie | Beschreibung |
+|-----------|-----------------------------------------------|
+| `complex` | CRON mit „Minuten“, „Sekunden“ usw. anzeigen |
+| `simple` | einfache CRON-Einstellungen anzeigen |
+
+### `fileSelector`
+nur Admin6
+
+| Immobilie | Beschreibung |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `pattern` | Dateierweiterungsmuster. Erlaubt `**/*.ext`, um auch alle Dateien aus Unterordnern anzuzeigen, `*.ext`, um vom Stammordner anzuzeigen, oder `folderName/*.ext`, um alle Dateien im Unterordner `folderName` anzuzeigen. Standard `**/*.*`. |
+| `objectID` | Objekt-ID vom Typ `meta`. Sie können spezielle Platzhalter `%INSTANCE%` verwenden: wie `myAdapter.%INSTANCE%.files` |
+| `upload` | Pfad, in dem die hochgeladenen Dateien gespeichert werden. Wie `folderName`. Wenn nicht definiert, wird kein Upload-Feld angezeigt. Um in das Stammverzeichnis hochzuladen, setzen Sie dieses Feld auf `/`. |
+| `refresh` | Schaltfläche „Aktualisieren“ neben der Auswahl anzeigen. |
+| `maxSize` | maximale Dateigröße (Standard 2 MB) |
+| `withFolder` | Ordnernamen anzeigen, auch wenn sich alle Dateien im selben Ordner befinden |
+| `delete` | Löschen von Dateien zulassen |
+| `noNone` | Option `none` nicht anzeigen |
+| `noSize` | Dateigröße nicht anzeigen |
+| `noSize` | Dateigröße nicht anzeigen |
+
+### `file`
+nur Admin6.
+Eingabefeld mit Dateiauswahl
+
+| Immobilie | Beschreibung |
+|---------------------|------------------------------------------------------------------------------------------|
+| `disableEdit` | wenn der Benutzer den Dateinamen manuell eingeben kann und nicht nur über den Auswahldialog |
+| `filterFiles` | wie `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']` |
+| `allowUpload` | Erlaubtes Hochladen von Dateien |
+| `allowDownload` | Erlaubter Download von Dateien (Standard: True) |
+| `allowCreateFolder` | Erstellen von Ordnern erlaubt |
+| `allowView` | erlaubte Kachel-Ansicht (Standard: true) |
+| `showToolbar` | Symbolleiste anzeigen (Standard: true) |
+| `selectOnlyFolders` | Benutzer kann nur Ordner auswählen (z. B. für den Upload-Pfad) |
+| `trim` | Dateinamen kürzen |
+| `trim` | Dateinamen kürzen |
+
+### `imageSendTo`
+zeigt das Bild, das vom Backend als Base64-String empfangen wurde
+
+| Immobilie | Beschreibung |
+|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `width` | Breite des QR-Codes in px |
+| `command` | sendTo-Befehl |
+| `jsonData` | Zeichenfolge – `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet |
+| `data` | Objekt - `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn „jsonData“ nicht definiert ist. |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist. |
+
+#### Beispielcode im Backend für `imageSendTo`
+```js
+adapter.on("message", (obj) => {
+ if (obj.command === "send") {
+ const QRCode = require("qrcode");
+ QRCode.toDataURL(
+ "3ca4234a-fd81-fdb8-5584-08c732f70e4d",
+ (err, url) =>
+ obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback)
+ );
+ }
});
```
-- „selectSendTo“ – Zeigt das Dropdown-Menü mit den von der Instanz angegebenen Werten an.
-- `Befehl` - sendTo-Befehl
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist.
-- „manual“ – manuelle Bearbeitung zulassen. Ohne Dropdown-Menü (wenn die Instanz offline ist). Standardmäßig „true“.
-- `multiple` - Mehrfachauswahl
-- `showAllValues` – Element anzeigen, auch wenn kein Label dafür gefunden wurde (mehrfach), Standard=`true`
-- `noTranslation` - Beschriftung der Auswahl nicht übersetzen
-
-Um diese Option zu verwenden, muss Ihr Adapter einen Nachrichtenhandler implementieren: Das Ergebnis des Befehls muss ein Array in der Form `[{"value": 1, "label": "one"}, ...]` sein.
-
-- `alsoDependsOn` - bei Änderung welcher Attribute muss der Befehl erneut gesendet werden
-
+### `selectSendTo`
+Zeigt das Dropdown-Menü mit den von der Instanz angegebenen Werten an.
+
+| Immobilie | Beschreibung |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | sendTo-Befehl |
+| `data` | Objekt - `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn „jsonData“ nicht definiert ist. |
+| `manual` | manuelle Bearbeitung zulassen. Ohne Dropdown-Menü (wenn Instanz offline ist). Standard `true`. |
+| `multiple` | Mehrfachauswahl |
+| `showAllValues` | Element anzeigen, auch wenn kein Label dafür gefunden wurde (mehrfach), Standard=`true` |
+| `noTranslation` | Bezeichnung der Auswahlen nicht übersetzen. Um diese Option zu verwenden, muss Ihr Adapter einen Nachrichtenhandler implementieren. Das Ergebnis des Befehls muss ein Array in der Form `[{"value": 1, "label": "one"}, ...]` | sein. |
+| `alsoDependsOn` | bei Änderung welcher Attribute muss der Befehl erneut gesendet werden |
+| `alsoDependsOn` | bei Änderung welcher Attribute muss der Befehl erneut gesendet werden |
+
+#### Beispielcode im Backend für `selectSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- if (obj.callback) {
- try {
- const { SerialPort } = require('serialport');
- if (SerialPort) {
- // read all found serial ports
- SerialPort.list()
- .then(ports => {
- adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
- adapter.sendTo(obj.from, obj.command, ports.map(item => ({label: item.path, value: item.path})), obj.callback);
- })
- .catch(e => {
- adapter.sendTo(obj.from, obj.command, [], obj.callback);
- adapter.log.error(e)
- });
- } else {
- adapter.log.warn('Module serialport is not available');
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- } catch (e) {
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- }
-
- break;
- }
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ if (obj.callback) {
+ try {
+ const { SerialPort } = require("serialport");
+ if (SerialPort) {
+ // read all found serial ports
+ SerialPort.list()
+ .then((ports) => {
+ adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ ports.map((item) => ({
+ label: item.path,
+ value: item.path,
+ })),
+ obj.callback
+ );
+ })
+ .catch((e) => {
+ adapter.sendTo(obj.from, obj.command, [], obj.callback);
+ adapter.log.error(e);
+ });
+ } else {
+ adapter.log.warn("Module serialport is not available");
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ } catch (e) {
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ }
+
+ break;
+ }
+ }
});
```
-- `autocompleteSendTo`
-
+### `autocompleteSendTo`
Zeigt die Autovervollständigungssteuerung mit den von der Instanz angegebenen Werten an.
-- `Befehl` - sendTo-Befehl
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist.
-- „freeSolo“ – Setzen Sie „freeSolo“ auf „true“, damit das Textfeld einen beliebigen Wert enthalten kann.
-- `alsoDependsOn` - bei Änderung welcher Attribute muss der Befehl erneut gesendet werden
-- `maxLength` – maximale Länge des Textes im Feld
+| Immobilie | Beschreibung |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | sendTo-Befehl |
+| `data` | Objekt - `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn „jsonData“ nicht definiert ist. |
+| `freeSolo` | Setzen Sie `freeSolo` auf `true`, damit das Textfeld jeden beliebigen Wert enthalten kann. |
+| `alsoDependsOn` | bei Änderung welcher Attribute muss der Befehl erneut gesendet werden |
+| `maxLength` | maximale Länge des Textes im Feld |
+| `maxLength` | maximale Länge des Textes im Feld |
-Um diese Option zu verwenden, muss Ihr Adapter einen Nachrichtenhandler implementieren: Das Ergebnis des Befehls muss ein Array in der Form `["value1", {"value": "value2", "label": "Value2"}, ...]` sein (Schlüssel müssen eindeutig sein). Siehe `selectSendTo` für ein Handlerbeispiel.
+Um diese Option zu verwenden, muss Ihr Adapter einen Nachrichtenhandler implementieren:
-- `textSendTo`
+Das Ergebnis des Befehls muss ein Array in der Form `["value1", {"value": "value2", "label": "Value2"}, ...]` sein (Schlüssel müssen eindeutig sein). Siehe `selectSendTo` für ein Handler-Beispiel.
-Zeigt die schreibgeschützte Steuerung mit den von der Instanz angegebenen Werten an.
+### `textSendTo`
+Zeigt ein schreibgeschütztes Steuerelement mit den von der Instanz angegebenen Werten.
-- „Container“ – Div, Text, HTML
-- `copyToClipboard` - wenn wahr - Schaltfläche anzeigen
-- `alsoDependsOn` - bei Änderung welcher Attribute muss der Befehl erneut gesendet werden
-- `Befehl` - sendTo-Befehl
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist.
+| Immobilie | Beschreibung |
+|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `container` | div, Text, html |
+| `alsoDependsOn` | bei Änderung welcher Attribute muss der Befehl erneut gesendet werden |
+| `command` | sendTo-Befehl |
+| `jsonData` | Zeichenfolge - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Diese Daten werden an das Backend gesendet |
+| `data` | Objekt - `{"subject1": 1, "data": "static"}`. Sie können „jsonData“ oder „data“ angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn „jsonData“ nicht definiert ist. |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Sie können jsonData oder data angeben, aber nicht beides. Diese Daten werden an das Backend gesendet, wenn jsonData nicht definiert ist. |
Um diese Option zu verwenden, muss Ihr Adapter einen Nachrichtenhandler implementieren: Das Ergebnis des Befehls muss eine Zeichenfolge oder ein Objekt mit den folgenden Parametern sein:
```json5
{
- text: 'text to show', // mandatory
- style: { color: 'red' }, // optional
- icon: 'search', // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
- // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, puase, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
- iconStyle: {width: 30} // optional
+ text: "text to show", // mandatory
+ style: { color: "red" }, // optional
+ icon: "search", // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
+ // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, pause, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
+ iconStyle: { width: 30 }, // optional
}
```
-Beispiel:
-
+#### Beispiel für `textSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- obj.callback && adapter.sendTo(obj.from, obj.command, 'Received ' + JSON.stringify(obj.message), obj.callback);
- // or with style
- obj.callback && adapter.sendTo(obj.from, obj.command, { text: 'Received ' + JSON.stringify(obj.message), style: { color: 'red' }, icon: 'search', iconStyle: { width: 30 }}, obj.callback);
- // or as html
- obj.callback && adapter.sendTo(obj.from, obj.command, `${JSON.stringify(obj.message)} `, obj.callback);
- break;
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ "Received " + JSON.stringify(obj.message),
+ obj.callback
+ );
+ // or with style
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ {
+ text: "Received " + JSON.stringify(obj.message),
+ style: { color: "red" },
+ icon: "search",
+ iconStyle: { width: 30 },
+ },
+ obj.callback
+ );
+ // or as html
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ `${JSON.stringify(obj.message)} `,
+ obj.callback
+ );
+ break;
}
+ }
});
```
-- `Koordinaten`
+### `coordinates`
+Ermittelt den aktuellen Standort und verwendet die Koordinaten `system.config`, wenn dies nicht in der Form "Breitengrad,Längengrad" möglich ist.
-Ermittelt den aktuellen Standort und verwendet `system.config`-Koordinaten, falls dies nicht in der Form "Breitengrad,Längengrad" möglich ist
-
-- `divider` - Trennzeichen zwischen Breitengrad und Längengrad. Standard "," (Wird verwendet, wenn longitudeName und latitudeName nicht definiert sind)
-- `autoInit` - Feld mit aktuellen Koordinaten initialisieren, wenn leer
-- `longitudeName` - wenn definiert, wird der Längengrad in diesem Attribut gespeichert, Teiler werden ignoriert
-- `latitudeName` - wenn definiert, wird der Breitengrad in diesem Attribut gespeichert, Teiler werden ignoriert
-- `useSystemName` - wenn definiert, wird das Kontrollkästchen "Systemeinstellungen verwenden" angezeigt und Breiten- und Längengrad werden aus `system.config` gelesen, ein Boolean wird unter dem angegebenen Namen gespeichert
-
-- `Schnittstelle`
+| Immobilie | Beschreibung |
+|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `divider` | Trennzeichen zwischen Breitengrad und Längengrad. Standard "," (Wird verwendet, wenn longitudeName und latitudeName nicht definiert sind) |
+| `longitudeName` | wenn definiert, wird der Längengrad in diesem Attribut gespeichert, der Teiler wird ignoriert |
+| `latitudeName` | wenn definiert, wird der Breitengrad in diesem Attribut gespeichert, der Teiler wird ignoriert |
+| `useSystemName` | wenn definiert, wird das Kontrollkästchen „Systemeinstellungen verwenden“ angezeigt und Breiten- und Längengrad werden aus `system.config` gelesen, ein Boolescher Wert wird unter dem angegebenen Namen gespeichert |
+| `useSystemName` | wenn definiert, wird das Kontrollkästchen „Systemeinstellungen verwenden“ angezeigt und Breiten- und Längengrad werden aus `system.config` gelesen, ein Boolescher Wert wird unter dem angegebenen Namen gespeichert |
+### `interface`
Wählt die Schnittstelle des Hosts aus, auf dem die Instanz läuft
-- `ignoreLoopback` – Loopback-Schnittstelle nicht anzeigen (127.0.0.1)
-- `ignoreInternal` - interne Schnittstellen nicht anzeigen (normalerweise ist es auch 127.0.0.1)
-
-- `license` - zeigt die Lizenzinformationen an, wenn sie noch nicht akzeptiert wurden. Eines der Attribute `texts` oder `licenseUrl` muss definiert werden. Wenn die Lizenz akzeptiert wird, wird das definierte Konfigurationsattribut auf `true` gesetzt.
-- `texts` - Array von Absätzen mit Texten, die jeweils als separater Absatz angezeigt werden
-- `licenseUrl` – URL zur Lizenzdatei (z. B. https://raw.githubusercontent.com/ioBroker/ioBroker.docs/master/LICENSE)
-- `title` - Titel des Lizenzdialogs
-- `agreeText` - Text der vereinbarten Schaltfläche
-- `checkBox` - Wenn definiert, wird das Kontrollkästchen mit dem angegebenen Namen angezeigt. Wenn aktiviert, wird die vereinbarte Schaltfläche aktiviert.
-
-- `checkLicense` – Eine sehr spezielle Komponente, um die Lizenz online zu überprüfen. Es werden genau die Eigenschaften `license` und `useLicenseManager` nativ benötigt.
-- `uuid` – UUID prüfen
-- `version` – Version prüfen
-
-- `uuid` – Iobroker-UUID anzeigen
-
-- `port` - Spezieller Eintrag für Ports. Es wird automatisch geprüft, ob der Port von anderen Instanzen verwendet wird und es wird eine Warnung angezeigt
-- `min` - minimal zulässige Portnummer. Sie könnte 0 sein. Und wenn der Wert dann Null ist, wird die Prüfung, ob der Port belegt ist, nicht durchgeführt.
-
-- `state` - (admin >= 7.1.0) Zeigt Kontrolle oder Informationen vom Staat
-- `oid` - Welche Objekt-ID soll zur Steuerung verwendet werden. Die ID ist ohne "adapter.X."-Präfix
-- `system` - Wenn wahr, wird der Status von system.adapter.XX.I. und nicht von XX.I übernommen.
-- „Steuerung“ – Wie der Wert des Status angezeigt werden soll: „Text“, „HTML“, „Eingabe“, „Schieberegler“, „Auswählen“, „Schaltfläche“, „Schalter“, „Zahl“
-- `gesteuert` - Wenn wahr, wird der Status als Schalter, Auswahl, Schaltfläche, Schieberegler oder Texteingabe angezeigt. Wird nur verwendet, wenn keine Steuerungseigenschaft definiert ist
-- „Einheit“ – Fügt dem Wert eine Einheit hinzu
-- `trueText` - dieser Text wird angezeigt, wenn der Wert true ist
-- `trueTextStyle` – Stil des Textes, wenn der Wert true ist
-- `falseText` - dieser Text wird angezeigt, wenn der Wert false ist oder das Steuerelement eine „Schaltfläche“ ist.
-- `falseTextStyle` - Stil des Textes, wenn der Wert false ist oder das Steuerelement eine „Schaltfläche“ ist
-- `trueImage` - Dieses Bild wird angezeigt, wenn der Wert true ist
-- `falseImage` - Dieses Bild wird angezeigt, wenn der Wert false ist oder das Steuerelement eine „Schaltfläche“ ist.
-- „min“ – Mindestwert für Steuerelementtyp „Schieberegler“ oder „Zahl“
-- „max“ – Maximalwert für Steuerelementtyp „Schieberegler“ oder „Zahl“
-- „Schritt“ – Schrittwert für Steuerelementtyp „Schieberegler“ oder „Zahl“
-- `controlDelay` - Verzögerung in ms für Schieberegler oder Zahl
-- „Variante“ – Variante der Schaltfläche: „enthalten“, „umrandet“, „Text“
-- `readOnly` - Definiert, ob das Steuerelement schreibgeschützt ist
-
-- `deviceManager` - Gerätemanager anzeigen. Dafür muss der Adapter das Gerätemanagerprotokoll unterstützen. Siehe iobroker/dm-utils.
+| Immobilie | Beschreibung |
+|------------------|----------------------------------------------------------------|
+| `ignoreLoopback` | Loopback-Schnittstelle nicht anzeigen (127.0.0.1) |
+| `ignoreInternal` | interne Schnittstellen nicht anzeigen (normalerweise ist es auch 127.0.0.1) |
+
+### `license`
+zeigt die Lizenzinformationen an, sofern diese noch nicht akzeptiert wurden. Eines der Attribute `texts` oder `licenseUrl` muss definiert werden. Wenn die Lizenz akzeptiert wird, wird das definierte Konfigurationsattribut auf `true` gesetzt.
+
+| Immobilie | Beschreibung |
+|--------------|------------------------------------------------------------------------------------------------------------|
+| `texts` | Array von Absätzen mit Texten, die jeweils als eigener Absatz angezeigt werden |
+| `title` | Titel des Lizenzdialogs |
+| `agreeText` | Text der vereinbarten Schaltfläche |
+| `checkBox` | Wenn definiert, wird das Kontrollkästchen mit dem angegebenen Namen angezeigt. Wenn aktiviert, wird die Schaltfläche „Zustimmen“ aktiviert. |
+| `checkBox` | Wenn definiert, wird das Kontrollkästchen mit dem angegebenen Namen angezeigt. Wenn aktiviert, wird die vereinbarte Schaltfläche aktiviert. |
+
+### `checkLicense`
+Sehr spezielle Komponente zur Online-Überprüfung der Lizenz. Es werden genau die Eigenschaften `license` und `useLicenseManager` im nativen Format benötigt.
+
+| Immobilie | Beschreibung |
+|-----------|---------------|
+| `uuid` | UUID prüfen |
+| `version` | Version prüfen |
+
+### `uuid`
+ioBroker-UUID anzeigen
+
+### `port`
+Spezieller Eingang für Ports. Es wird automatisch geprüft, ob der Port von anderen Instanzen verwendet wird und es wird eine Warnung angezeigt
+
+| Immobilie | Beschreibung |
+|----------|-------------------------------------------------------------------------------------------------------------------------------|
+| `min` | minimal erlaubte Portnummer. Könnte auch 0 sein. Ist der Wert dann Null, wird die Prüfung, ob der Port belegt ist, nicht durchgeführt. |
+
+### `state`
+(admin >= 7.1.0) Kontrolle oder Informationen vom Staat anzeigen
+
+| Immobilie | Beschreibung |
+|------------------|--------------------------------------------------------------------------------------------------------------------------------------|
+| `oid` | Welche Objekt-ID soll zur Steuerung verwendet werden? Die ID ist ohne Präfix `adapter.X.` |
+| `foreign` | `oid` ist absolut und es ist nicht erforderlich, `adapter.X` oder `system.adapter.X.` zu oid hinzuzufügen |
+| `control` | Wie der Wert des Status angezeigt werden soll: `text`, `html`, `input`, `slider`, `select`, `button`, `switch`, `number` |
+| `controlled` | Wenn wahr, wird der Status als Schalter, Auswahl, Schaltfläche, Schieberegler oder Texteingabe angezeigt. Wird nur verwendet, wenn keine Steuerungseigenschaft definiert ist |
+| `unit` | Einheit zum Wert hinzufügen |
+| `trueText` | dieser Text wird angezeigt, wenn der Wert wahr ist |
+| `trueTextStyle` | Stil des Textes, wenn der Wert wahr ist |
+| `falseText` | dieser Text wird angezeigt, wenn der Wert falsch ist oder das Steuerelement eine „Schaltfläche“ ist |
+| `falseTextStyle` | Stil des Textes, wenn der Wert falsch ist oder das Steuerelement eine „Schaltfläche“ ist |
+| `trueImage` | Dieses Bild wird angezeigt, wenn der Wert wahr ist |
+| `falseImage` | Dieses Bild wird angezeigt, wenn der Wert falsch ist oder das Steuerelement eine „Schaltfläche“ ist. |
+| `min` | Mindestwert für Steuerelementtyp „Schieberegler“ oder „Zahl“ |
+| `max` | Maximalwert für Steuerelementtyp „Schieberegler“ oder „Zahl“ |
+| `step` | Schrittwert für Steuerelementtyp „Schieberegler“ oder „Zahl“ |
+| `controlDelay` | Verzögerung in ms für Schieberegler oder Zahl |
+| `variant` | Variante der Schaltfläche: `contained`, `outlined`, `text` |
+| `readOnly` | Definiert, ob das Steuerelement schreibgeschützt ist |
+| `narrow` | Normalerweise werden Titel und Wert links und rechts in der Zeile angezeigt. Mit diesem Flag erscheint der Wert direkt nach der Bezeichnung |
+| `blinkOnUpdate` | Wert sollte beim Aktualisieren blinken (true oder Farbe) |
+| `size` | Schriftgröße: klein, normal, groß oder Zahl |
+| `addColon` | Fügen Sie der Bezeichnung am Ende den Doppelpunkt hinzu, falls dieser in der Bezeichnung nicht vorhanden ist |
+| `labelIcon` | Base64-Symbol für Etikett |
+| `labelIcon` | Base64-Symbol für Etikett |
+
+### `staticInfo`
+(admin >= 7.3.3) Zeigt statische Informationen in vorformatierter Form an, wie z. B. „Titel: Werteinheit“. Dieses Steuerelement wird hauptsächlich in dynamischen Formularen verwendet.
+
+| Immobilie | Beschreibung |
+|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `data` | Anzuzeigender Wert |
+| `unit` | (optional) Einheit (kann mehrsprachig sein) |
+| `narrow` | (optional) Normalerweise werden Titel und Wert links und rechts in der Zeile angezeigt. Mit diesem Flag erscheint der Wert direkt nach der Bezeichnung |
+| `addColon` | (optional) Fügen Sie der Bezeichnung am Ende den Doppelpunkt hinzu, falls dieser nicht in der Bezeichnung vorhanden ist |
+| `blinkOnUpdate` | (optional) Wert sollte beim Aktualisieren blinken (true oder Farbe) |
+| `blink` | (optional) Wert sollte kontinuierlich blinken (true oder Farbe) |
+| `styleLabel` | (optional) React CSS-Stile |
+| `styleValue` | (optional) React CSS-Stile |
+| `styleUnit` | (optional) React CSS-Stile |
+| `copyToClipboard` | (optional) Schaltfläche „In die Zwischenablage kopieren“ für Wert anzeigen |
+| `labelIcon` | (optional) Base64-Symbol für Etikett |
+| `size` | (optional) Schriftgröße: klein, normal, groß oder Zahl |
+| `highlight` | (optional) Zeile beim Mouseover hervorheben |
+| `booleanAsCheckbox` | (optional) Boolesche Werte als Kontrollkästchen anzeigen |
+| `booleanAsCheckbox` | (optional) Boolesche Werte als Kontrollkästchen anzeigen |
+
+### `deviceManager`
+Gerätemanager anzeigen. Dazu muss der Adapter das Gerätemanagerprotokoll unterstützen. Siehe iobroker/dm-utils.
Hier ist ein Beispiel, wie der Geräte-Manager in einer Registerkarte angezeigt wird:
@@ -566,29 +1081,76 @@ Hier ist ein Beispiel, wie der Geräte-Manager in einer Registerkarte angezeigt
```
## Gemeinsame Attribute von Steuerelementen
-Alle Typen könnten haben:
-
-- „xl“ – Breite in 1/12 des Bildschirms auf extragroßen Bildschirmen (1536 Pixel < Breite)
-- „lg“ – Breite in 1/12 des Bildschirms auf großen Bildschirmen (1200px <= Breite < 1536px)
-- „md“ – Breite in 1/12 des Bildschirms auf mittleren Bildschirmen (900px <= Breite < 1200px)
-- „sm“ – Breite in 1/12 des Bildschirms auf kleinen Bildschirmen (600px <= Breite < 900px)
-- „xs“ – Breite in 1/12 des Bildschirms auf kleinen Bildschirmen (Breite < 600 Pixel)
-- `newLine` – sollte ab einer neuen Zeile angezeigt werden
-- `label` – Zeichenfolge oder Objekt wie {en: 'Name', ru: 'Имя'}
-- `hidden` - JS-Funktion, die `native.attribute` zur Berechnung verwenden könnte
-- `hideOnlyControl` - wenn ausgeblendet, wird der Ort angezeigt, aber kein Steuerelement
-- `disabled` - JS-Funktion, die `native.attribute` zur Berechnung verwenden könnte
-- „Hilfe“ – Hilfetext (mehrsprachig)
-- `helpLink` – href zur Hilfe (kann nur zusammen mit `help` verwendet werden)
-- „style“ – CSS-Stil in ReactJS-Notation: „radiusBorder“ und nicht „radius-border“.
-- `darkStyle` – CSS-Stil für den Dunkelmodus
-- „validator“ – JS-Funktion: true, kein Fehler, false, Fehler
-- `validatorErrorText` - Text, der angezeigt wird, wenn der Validator fehlschlägt
-- `validatorNoSaveOnError` - Deaktivieren der Schaltfläche „Speichern“, wenn ein Fehler auftritt
-- `tooltip` – optionaler Tooltip
-- `default` - Standardwert
-- `defaultFunc` – JS-Funktion zum Berechnen des Standardwerts
-- `defaultSendTo` – Befehl zum Anfordern des Anfangswerts von der laufenden Instanz, Beispiel: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
+### Layoutoptionen `xl`,`lg`,`md`,`sm`,`xs`
+Diese Optionen werden verwendet, um die Breite von Elementen auf verschiedenen Bildschirmgrößen zu definieren und so ein ansprechendes und anpassbares Layout auf verschiedenen Geräten sicherzustellen.
+
+Gültige Zahlen sind 1 bis 12.
+
+Wenn Sie eine Zahl angeben, z. B. 6, dann beträgt die Breite des Elements 6/12 (50 %) der Bildschirmbreite oder z. B. 3, dann beträgt die Breite des Elements 3/12 (25 %) der Bildschirmbreite.
+Weisen Sie den verschiedenen Layoutoptionen Zahlen zu, um die Breite des Elements für die verschiedenen Bildschirmgrößen anzugeben.
+
+| Option | Beschreibung |
+|--------|------------------------------------------|
+| `xl` | extra große Bildschirme (1536px >= Breite) |
+| `md` | mittlere Bildschirme (900px <= Breite < 1200px) |
+| `sm` | kleiner Bildschirm (600px <= Breite < 900px) |
+| `xs` | winzige Bildschirme (Breite < 600 px) |
+| `xs` | kleine Bildschirme (Breite < 600 px) |
+
+Die folgenden Optionen sind die empfohlenen Voreinstellungen, die in den meisten Fällen passen
+
+```json
+"xs": 12,
+"sm": 12,
+"md": 6,
+"lg": 4,
+"xl": 4,
+```
+
+#### Es wird empfohlen, das Layout zu überprüfen
+Das jeweilige Layout sollte bei jedem Adapter geprüft werden, ob das Layout in allen Auflösungen dargestellt und genutzt werden kann.
+
+Dies kann beispielsweise mit den Web Developer Tools getestet werden, die in jedem Chromium-basierten Browser integriert sind.
+
+Schritt 1: Öffnen Sie die Web Developer Tools mit F12
+
+Schritt 2: Öffnen Sie die Geräte-Symbolleiste (1)
+
+Schritt 3: Verschiedene Geräte auswählen (2)
+
+![Bild](../../en/dev/img/webdevtools.png)
+
+In den Einstellungen der Webentwicklertools können Sie bei Bedarf eigene Geräte mit den exakt gleichen Breiten erstellen.
+
+### Weitere Optionen
+| Option | Beschreibung |
+|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `type` | Wenn das Element kein Attribut `type` hat, wird angenommen, dass es den Standardtyp „Panel“ hat. Typ eines Elements. Derzeit verfügbare Optionen finden Sie unter [Gemeinsame Bedienelemente:](#common-control-elements) |
+| `label` | Zeichenfolge oder Objekt wie {en: 'Name', ru: 'Имя'} |
+| `hidden` | JS-Funktion, die `native.attribute` zur Berechnung verwenden könnte |
+| `hideOnlyControl` | wenn ausgeblendet, wird der Ort angezeigt, aber keine Kontrolle |
+| `disabled` | JS-Funktion, die `native.attribute` zur Berechnung verwenden könnte |
+| `help` | Hilfetext (mehrsprachig) |
+| `helpLink` | href zur Hilfe (kann nur zusammen mit `help` verwendet werden) |
+| `style` | CSS-Stil in ReactJS-Notation: `radiusBorder` und nicht `radius-border`. |
+| `darkStyle` | CSS-Stil für Dunkelmodus |
+| `validator` | JS-Funktion: true, kein Fehler, false, Fehler |
+| `validatorErrorText` | Text, der angezeigt wird, wenn der Validator fehlschlägt |
+| `validatorNoSaveOnError` | Bei Fehler Schaltfläche „Speichern“ deaktivieren |
+| `tooltip` | optionaler Tooltip |
+| `default` | Standardwert |
+| `defaultFunc` | JS-Funktion zum Berechnen des Standardwerts |
+| `placeholder` | Platzhalter (zur Textsteuerung) |
+| `noTranslation` | übersetzen Sie keine Auswahlen oder andere Optionen (nicht für Hilfe, Beschriftung oder Platzhalter) |
+| `onChange` | Struktur in der Form `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}` |
+| `doNotSave` | Dieses Attribut nicht speichern, da es nur für interne Berechnungen verwendet wird |
+| `noMultiEdit` | Wenn dieses Flag auf „true“ gesetzt ist, wird dieses Feld nicht angezeigt, wenn der Benutzer mehr als ein Objekt zum Bearbeiten ausgewählt hat. |
+| `noMultiEdit` | Wenn dieses Flag auf „true“ gesetzt ist, wird dieses Feld nicht angezeigt, wenn der Benutzer mehr als ein Objekt zum Bearbeiten ausgewählt hat. |
+
+### Optionen mit detaillierter Konfiguration
+#### `defaultSendTo`
+Befehl zum Anfordern des Anfangswerts von der laufenden Instanz, Beispiel: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
+
- `data` – statische Daten
- `jsonData` – statische Daten
- wenn weder `data` noch `jsonData` definiert sind, werden die folgenden Informationen gesendet `{"attr": "", "value": ""}`
@@ -596,70 +1158,23 @@ Alle Typen könnten haben:
- „buttonTooltip“ – Button-Tooltip (Standard: „Daten nach Instanz anfordern“)
- `buttonTooltipNoTranslation` – Button-Tooltip nicht übersetzen
- `allowSaveWithError` – Ermöglicht das Speichern der Konfiguration, auch wenn die Instanz offline ist
-- `placeholder` - Platzhalter (zur Textsteuerung)
-- `noTranslation` - übersetzt keine Auswahlen oder andere Optionen (nicht für Hilfe, Beschriftung oder Platzhalter)
-- `onChange` - Struktur in der Form `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}`
-- `doNotSave` - Dieses Attribut nicht speichern, da es nur für interne Berechnungen verwendet wird
-- „noMultiEdit“ – wenn dieses Flag auf „true“ gesetzt ist, wird dieses Feld nicht angezeigt, wenn der Benutzer mehr als ein Objekt zum Bearbeiten ausgewählt hat.
-- `bestätigen`
+
+#### `confirm`
- `Bedingung` - JS-Funktion: true Bestätigungsdialog anzeigen
- „Text“ – Text des Bestätigungsdialogs
- „Titel“ – Titel des Bestätigungsdialogs
- `ok` - Text für die OK-Schaltfläche
-- `Abbrechen` - Text für die Schaltfläche „Abbrechen“
+- `cancel` - Text für die Schaltfläche „Abbrechen“
- „Typ“ – Einer von: „Info“, „Warnung“, „Fehler“, „Keiner“
- `alsoDependsOn` – Array mit Attributen, um den Zustand auch anhand dieser Attribute zu prüfen
-```json5
-{
- "type": "tabs",
- "items": {
- "options1": {
- "type": "panel",
- "label": "Tab1",
- "icon": "base64 svg", // optional
- "items": {
- myPort: {
- "type": "number",
- "min": 1,
- "max": 65565,
- "label": "Number",
- "sm": 6, // 1 - 12
- "validator": "'"!!data.name"'", // else error
- "hidden": "data.myType === 1", // hidden if myType is 1
- "disabled": "data.myType === 2" // disabled if myType is 2
- },
- "options.myType": { // name could support more than one levelhelperText
- "newLine": true, // must start from new row
- "type": "select",
- "label": "Type",
- "sm": 6, // 1 - 12
- "options": [
- {"label": "option 1", "value": 1},
- {"label": "option 2", "value": 2}
- ]
- },
- "myBool": {
- "type": "checkbox",
- "label": "My checkbox",
- }
- }
- },
- "tab2": {
- "label": "Tab2",
- "disabled": "data.myType === 1",
- "hidden": "data.myType === 2",
- }
- },
-}
-```
-
+## Autovervollständigung
`Number`, `text`, `checkbox`, `select` unterstützen die automatische Vervollständigung, um die Auswahl von Optionen zu ermöglichen, wenn sie als benutzerdefinierte Einstellungen verwendet werden.
In diesem Fall wird der Wert als Array aller möglichen Werte bereitgestellt.
Beispiel:
-```json
+```json5
// ...
"timeout": {
"type": "number",
@@ -679,13 +1194,17 @@ Boolesche Werte müssen Unbestimmtheit unterstützen, wenn der Wert [false, true
Für unveränderte `__different__` muss der Wert different zurückgegeben werden:
-```
-Input:
+Eingang:
+
+```json
data: {
timeout: [1000, 2000, 3000]
}
+```
+
+Ausgabe, wenn das Timeout nicht geändert wurde:
-Output if timeout was not changed:
+```json
newData: {
timeout: "__different__"
}
@@ -716,89 +1235,9 @@ Wenn kein Schema bereitgestellt wird, muss das Schema automatisch aus Daten erst
- Name „Port“ => Nummer, min=1, max=0xFFFF
- Name „Timeout“ => Zahl, Hilfe „ms“
-Wenn das Element kein Attribut `type` hat, wird davon ausgegangen, dass es den Standardtyp „Panel“ hat.
-
-## Panel-Stil
-Sie können auch Stile für Bedienfelder festlegen. Hier ist ein Beispiel mit Bedienfeldhintergrund:
-
-```json
-{
- "i18n": true,
- "type": "panel",
- "style": {
- "backgroundImage": "url(adapter/mpd/background.png)",
- "backgroundPosition": "top",
- "backgroundRepeat": "no-repeat",
- "backgroundSize": "cover"
- },
- "items": {
- "...": {}
- }
-}
-```
-
-## I18n
-Es gibt mehrere Möglichkeiten, die Übersetzungen bereitzustellen.
-Nur die erste ist mit unserem Community-Übersetzungstool Weblate kompatibel und sollte daher den anderen vorgezogen werden!
-
-1. Benutzer können Texte aus Dateien bereitstellen.
-
-Auf der obersten Ebene der Struktur `i18n: true` setzen und Dateien im Admin bereitstellen:
-
-- `admin/i18n/de/translations.json`
-- `admin/i18n/en/translations.json`
-- ...
-
-oder
-
-- `admin/i18n/de.json`
-- `admin/i18n/en.json`
-- ...
-
-Darüber hinaus kann der Benutzer den Pfad zu i18n-Dateien angeben, `i18n: "customI18n"`, und Dateien im Adminbereich bereitstellen:
-
-- `admin/customI18n/de/translations.json`
-- `admin/customI18n/en/translations.json`
-- ...
-
-oder
-
-- `admin/customI18n/de.json`
-- `admin/customI18n/en.json`
-- ...
-
-2. Der Benutzer kann Übersetzungen direkt im Etikett bereitstellen, wie:
-
-```json
-{
- "type": "text",
- "label: {
- "en": "Label",
- "de": "Taxt"
- }
-}
-```
-
-3. Der Benutzer kann Übersetzungen im i18n-Attribut bereitstellen:
-
-```json
-{
- "18n": {
- "My Text: {
- "en": "My Text",
- "de": "Mein Text"
- },
- "My Text2: {
- "en": "My Text2",
- "de": "Mein Text2"
- },
- },
- "type": "panel",
- ...
-}
-```
-
-Wir empfehlen, wenn möglich die Variante 1 zu verwenden, da die Texte dann mit Weblate bearbeitet werden können.
+## Aufgaben
+Die folgenden Kapitel sind dem Original SCHEMA.MD entnommen.
+Die Inhalte habe ich im Detail nicht verstanden und mussten von bluefox nachgebessert werden.
## JS-Funktionen
### Konfigurationsdialog
@@ -818,11 +1257,10 @@ const func = new Function(
'_instance', // instance number
'arrayIndex', // filled only by table and represents the row index
'globalData', // filled only by table and represents the obj.native or obj.common.custom['adapter.X'] object
- '_changed' // indicator if some data was changed and must be saved
+ '_changed', // indicator if some data was changed and must be saved
myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
const isValid = func(data, systemConfig.common, instanceAlive, adapter.common, this.props.socket);
-
```
Ändert sich der Status `alive`, so müssen sämtliche Felder erneut aktualisiert, validiert, deaktiviert, ausgeblendet werden.
@@ -842,19 +1280,28 @@ Die folgenden Variablen sind in der JS-Funktion in den Adaptereinstellungen verf
Die JS-Funktion ist:
```js
-const myValidator = "customObj.common.type === 'boolean' && data.options.myType == 2";
+const myValidator =
+ "customObj.common.type === 'boolean' && data.options.myType == 2";
const func = new Function(
- 'data',
- 'originalData',
- '_system',
- 'instanceObj',
- 'customObj',
- '_socket',
+ "data",
+ "originalData",
+ "_system",
+ "instanceObj",
+ "customObj",
+ "_socket",
arrayIndex,
- myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
-
-const isValid = func(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket);
+ myValidator.includes("return") ? myValidator : "return " + myValidator
+); // e.g. "_alive === true"
+
+const isValid = func(
+ data || this.props.data,
+ this.props.originalData,
+ this.props.systemConfig,
+ instanceObj,
+ customObj,
+ this.props.socket
+);
```
Die folgenden Variablen sind in der JS-Funktion in benutzerdefinierten Einstellungen verfügbar:
@@ -871,7 +1318,7 @@ Die folgenden Variablen sind in der JS-Funktion in benutzerdefinierten Einstellu
## Benutzerdefinierte Komponente
```jsx
+### 1.0.2 (2024-11-09)
+
+FIX: #97 Add missing attributes to jsonConfig
+
### 1.0.1 (2024-10-19)
- FEAT: #95 Responsive Design
diff --git a/docs/en/adapterref/iobroker.alexa-timer-vis/README.md b/docs/en/adapterref/iobroker.alexa-timer-vis/README.md
index 3fff23604..b6c54b31b 100644
--- a/docs/en/adapterref/iobroker.alexa-timer-vis/README.md
+++ b/docs/en/adapterref/iobroker.alexa-timer-vis/README.md
@@ -60,6 +60,11 @@ A timer or several by voice input, is created via Alexa, this is evaluated by th
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.0.7 (2024-11-19)
+
+- FIX: #157 Add size attribute xl for text in jsonConfig
+- FIX: #156 Error in decomposeInputValue
+
### 2.0.6 (2024-10-19)
- FEAT: #151 Responsive Design
diff --git a/docs/en/adapterref/iobroker.alpha-ess/README.md b/docs/en/adapterref/iobroker.alpha-ess/README.md
index 83774364e..0414fbb5a 100644
--- a/docs/en/adapterref/iobroker.alpha-ess/README.md
+++ b/docs/en/adapterref/iobroker.alpha-ess/README.md
@@ -61,6 +61,10 @@ How to find SN and Check code for registration is described here: https://github
**All product and company names or logos are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them or any associated subsidiaries! This personal project is maintained in spare time and has no business goal.**
## Changelog
+### 2.1.5 (2024-11-14)
+
+- (Gaspode) Optimized GUI for all screen resolutions (responsive design)
+
### 2.1.4 (2024-08-13)
- (Gaspode) Updated some formal stuff
diff --git a/docs/en/adapterref/iobroker.amtronwallbox/README.md b/docs/en/adapterref/iobroker.amtronwallbox/README.md
index f8baecdc9..c33596541 100644
--- a/docs/en/adapterref/iobroker.amtronwallbox/README.md
+++ b/docs/en/adapterref/iobroker.amtronwallbox/README.md
@@ -56,7 +56,8 @@ Note: Since the boxes have different interfaces, it may be that not all interfac
-->
### **WORK IN PROGRESS**
* (René) see issue #284: test with nodejs@22
-*
+* (René) update dependencies
+
### 0.2.16 (2024-08-24)
* (René) update dependencies
* (René) bug fixes based on adapter checker recommendation
diff --git a/docs/en/adapterref/iobroker.awtrix-light/README.md b/docs/en/adapterref/iobroker.awtrix-light/README.md
index 0dac81c3f..7744f5867 100644
--- a/docs/en/adapterref/iobroker.awtrix-light/README.md
+++ b/docs/en/adapterref/iobroker.awtrix-light/README.md
@@ -199,7 +199,11 @@ If you want to disable/hide a native app (like battery, temperature or humidity)
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 1.4.1 (2024-11-20)
+
+NodeJS >= 20.x and js-controller >= 6 is required
+
+### 1.4.0 (2024-11-20)
* (@klein0r) Added support for notification manager
@@ -217,14 +221,6 @@ If you want to disable/hide a native app (like battery, temperature or humidity)
* (klein0r) Fixed wrong translations ins expert apps (duration)
* (klein0r) Added progress bar for expert apps
-### 1.1.0 (2024-05-11)
-
-* (klein0r) Sync app activations (if enabled)
-
-### 1.0.1 (2024-04-28)
-
-* (klein0r) Keep text case of expert apps (ignore system settings)
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.backitup/README.md b/docs/en/adapterref/iobroker.backitup/README.md
index da1000e2a..759ed4fd2 100644
--- a/docs/en/adapterref/iobroker.backitup/README.md
+++ b/docs/en/adapterref/iobroker.backitup/README.md
@@ -674,8 +674,9 @@ _[Back to top](#documentation-and-instructions-for-iobrokerbackitup)_
---
## Changelog
-### **WORK IN PROGRESS**
+### 3.0.27 (2024-11-12)
* (simatec) dependencies updated
+* (simatec) Design Fix
### 3.0.26 (2024-10-16)
* (simatec) Fix FTP Connections
diff --git a/docs/en/adapterref/iobroker.birthdays/README.md b/docs/en/adapterref/iobroker.birthdays/README.md
index 957b1fbb8..b43233355 100644
--- a/docs/en/adapterref/iobroker.birthdays/README.md
+++ b/docs/en/adapterref/iobroker.birthdays/README.md
@@ -31,6 +31,11 @@ chapters: {"pages":{"en/adapterref/iobroker.birthdays/README.md":{"title":{"en":
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 3.1.0 (2024-11-19)
+
+* (@simatec) Responsive Design added
+* (@klein0r) Updated dependencies
+
### 3.0.1 (2024-06-26)
* (@klein0r) Fixed value of nextWeekday in states
@@ -51,10 +56,6 @@ NodeJS 16.x is required
* (klein0r) Added icons in admin tabs
-### 2.3.1 (2023-06-16)
-
-* (klein0r) Added current age text to JSON
-
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.bmw/README.md b/docs/en/adapterref/iobroker.bmw/README.md
index 77db9efa9..9998e77f7 100644
--- a/docs/en/adapterref/iobroker.bmw/README.md
+++ b/docs/en/adapterref/iobroker.bmw/README.md
@@ -25,6 +25,17 @@ bmw.0.VIN.properties
bmw.0.VIN.remotev2
## Changelog
+
+### 2.8.4 (2024-11-21)
+
+- improved charging session parsing
+- added remote to fetch charging session from a specific month
+- added raw JSON of charging session for export
+
+### 2.8.3 (2024-11-18)
+
+- login fixed
+
### 2.8.2 (2024-10-05)
- fix error getvehicles v2 failed
diff --git a/docs/en/adapterref/iobroker.boschindego/README.md b/docs/en/adapterref/iobroker.boschindego/README.md
index c11719d0e..a60d7587c 100644
--- a/docs/en/adapterref/iobroker.boschindego/README.md
+++ b/docs/en/adapterref/iobroker.boschindego/README.md
@@ -27,8 +27,12 @@ Use id.remote.\* to control the mower
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 1.3.0 (2024-11-12)
+
- (simatec) Admin-UI has been adapted for small displays.
+- (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+- (mcm1957) Issues reported by adapter checker have been fixed.
+- (mcm1957) Dependencies have been updated.
### 1.2.2 (2024-10-18)
diff --git a/docs/en/adapterref/iobroker.canbus/README.md b/docs/en/adapterref/iobroker.canbus/README.md
index ee4473b2b..6a375a449 100644
--- a/docs/en/adapterref/iobroker.canbus/README.md
+++ b/docs/en/adapterref/iobroker.canbus/README.md
@@ -68,20 +68,26 @@ Additionally you may write you own scripts to read/write values with a *custom p
### Custom
For a custom parser you have to provide you own read and write script.
-These scripts should be pure javascript and will run in a sandbox.
+These scripts should be pure javascript and will run in a limited scope.
In the scripts you are able to use the following features:
-* Most of Node.js build in functions
+* Globals `undefined`, `NaN`, `isNaN`, `Infinity`, `isFinite`, `atob`, `btoa`,
+ `encodeURI`, `encodeURIComponent`, `decodeURI`, `decodeURIComponent`, `parseFloat`,
+ `parseInt`, `JSON`, `Number`, `String`, `Array`, `BigInt`, `Blob`, `Boolean`,
+ `Date`, `Map`, `Math`, `Object`, `RegExp`, `Set`, `Intl`, `Buffer`, `Promise`,
+ `setTimeout`, `clearTimeout`
* `async`/`await`
* Adapter log functions `log.warn('something')`, `log.info('something')`, `log.debug('something')`
-* `getStateAsync('id')` and `getObjectAsync('id')` where `id` is the full ID of the state/object
+* `getStateAsync('id')`, `getObjectAsync('id')`, `setStateAsync('id', 'value', ack)` where `id` is the partial ID of the state/object below the current adapter instance
+* `getForeignStateAsync('id')`, `getForeignObjectAsync('id')` and `setForeignStateAsync('id', 'value', ack)` where `id` is the full ID of the state/object
+* Function `wait(ms)` which returns a Promise which resolves after the given time
* An object `sharedData` which is shared between all custom scripts of an adapter instance
Errors in the scripts will be logged by the adapter.
In both scripts the variables `buffer` and `value` are predefined.
-`buffer` always contains the current CAN message content as a Node.js Buffer.
+`buffer` always contains the current CAN message content as a Node.js Buffer.
The `sharedData` object is empty by default and may be used to share some data between multiple calls of a single custom parser or even between multiple custom parsers.
@@ -89,7 +95,7 @@ The `sharedData` object is empty by default and may be used to share some data b
In a read script you have to read the `value` from the `buffer` variable.
-At the beginning of the custom read script, `buffer` will be the received/current CAN message data (like in the `.json` state).
+At the beginning of the custom read script, `buffer` will be a copy of the received/current CAN message data (like in the `.json` state).
`value` will be `undefined` and should be set by the script.
The content of the `value` variable at the end of the custom read script will be used as new value for the state.
@@ -112,11 +118,14 @@ Cause of `value` is only set when the first three bytes matched, all other data
In a write script you have to modify (or replace) the `buffer` variable.
-At the beginning of the custom write script, `buffer` will be the current CAN message data (like in the `.json` state).
+At the beginning of the custom write script, `buffer` will be a copy of the current CAN message data (like in the `.json` state).
`value` is set to the value of the state which should be written into the `buffer`.
The content of the `buffer` variable at the end of the custom write script will be used as new data for the CAN message.
+You may also cancel the write by calling `return false;` in the custom write script.
+This allows you to prevent writes if certain conditions are not met.
+
##### Example for a custom write script
Prepare a new buffer with fixed values.
@@ -157,9 +166,22 @@ By writing JSON data to the `raw.send` state you are able to send CAN messages c
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 2.1.1 (2024-11-04)
+
+* (crycode-de) Fixed get/set functions in custom parser scripts
+
+### 2.1.0 (2024-11-03)
+
+* (crycode-de) Allow `setStateAsync` and `setForeignStateAsync` in custom parser scripts
+* (crycode-de) Allow `setTimeout` and `clearTimeout` in custom parser scripts (using the adapters setTimeout implementation)
+* (crycode-de) Added `wait` function to custom parser scripts
+
+### 2.0.0 (2024-11-02)
* (crycode-de) Node.js >= 18, Admin >= 6.17, js-contoller >= 5.0.19 are required
+* (crycode-de) Changed how custom parser scripts are interpreted. Most custom parser scripts should work as before but they have a limited scope now.
+* (crycode-de) Custom parser scripts now support `getStateAsync`, `getForeignStateAsync`, `getObjectAsync` and `getForeignObjectAsync`. If you have used `getStateAsync`/`getObjectAsync` before you need to change them to `getForeignStateAsync`/`getForeignObjectAsync` or update the IDs if you get data from the same adapter instance.
+* (crycode-de) Custom write parser scripts an now return false to cancel the write
* (crycode-de) Updated dependencies
### 1.3.1 (2022-04-19)
@@ -172,77 +194,6 @@ By writing JSON data to the `raw.send` state you are able to send CAN messages c
* (crycode-de) Added `sharedData` object in custom parsers
-### 1.2.3 (2021-10-17)
-
-* (crycode-de) Added missing `autoSet...` parser options to csv export/import
-* (crycode-de) Fixed `TypeError: Method Promise.prototype.then called on incompatible receiver [object Object]` triggered by a bug in an old `vm2` version
-* (crycode-de) Updated dependencies
-
-### 1.2.2 (2021-08-22)
-
-* (crycode-de) Fixed text colors in dark theme of admin 5
-* (crycode-de) Updated dependencies
-
-### 1.2.1 (2021-06-22)
-
-* (crycode-de) Added option to automatically set a certain value in a given interval for each parser
-* (crycode-de) Added checks for duplicate parser IDs
-* (VeSler) Russian translation updates
-* (crycode-de) Use inline sourcemaps for the adapter build files to make remote debugging work
-* (crycode-de) Updated dependencies
-
-### 1.1.4 (2021-04-30)
-
-* (crycode-de) Added license information to import of well-known configurations
-* (crycode-de) Fixed "Parser returned wrong data type undefined" log message
-* (crycode-de) Updated dependencies
-
-### 1.1.3 (2021-04-12)
-
-* (crycode-de) Added definition of possible state values in admin
-* (crycode-de) Added selection of the state role for each parser in admin
-* (crycode-de) Fixed display bug of floating action buttons in admin
-* (crycode-de) Export uses defaults if some config parts are not defined (e.g. if the config is from an older version)
-* (crycode-de) Fixed wrong validation if a message/parser was deleted
-
-### 1.1.2 (2021-04-06)
-
-* (crycode-de) Added copy/paste function for message and parser configurations in admin
-
-### 1.1.1 (2021-04-02)
-
-* (crycode-de) Import bugfixes
-* (crycode-de) Prevent wrong log warning if a parser returned undefined
-* (crycode-de) Added react errorboundary for better clientside error handling
-
-### 1.1.0 (2021-04-01)
-
-* (crycode-de) Added import/export feature for messages in json or csv format
-* (crycode-de) Added import of well known configurations from GitHub
-* (crycode-de) Fixed config import in admin
-* (crycode-de) Added ioBroker state data type option for custom parsers
-
-### 1.0.2 (2021-03-26)
-
-* (crycode-de) Fixed issue where missing state prevented custom parser write
-* (DutchmanNL) Dutch translation updates
-* (UncleSamSwiss) French translation updates
-* (VeSler) Russian translation updates
-
-### 1.0.1 (2021-03-12)
-
-* (crycode-de) Use a queue to process *parser* and *send* state changes in the correct order
-* (crycode-de) Fixed some spelling issues
-* (crycode-de) Updated dependencies
-
-### 1.0.0 (2021-02-23)
-
-* (crycode-de) Sort messages in admin
-* (VeSler) Russian admin translations
-* (crycode-de) Updated dependencies
-
-Older changelog is in CHANGELOG_OLD.md
-
## License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
diff --git a/docs/en/adapterref/iobroker.chargemaster/README.md b/docs/en/adapterref/iobroker.chargemaster/README.md
index 31e01c11e..667427b8a 100644
--- a/docs/en/adapterref/iobroker.chargemaster/README.md
+++ b/docs/en/adapterref/iobroker.chargemaster/README.md
@@ -30,7 +30,7 @@
**!!! THIS ADAPTER IS STILL REPRESENTING AN DEVELOPMENT STATE !!!**
-Adapter to manage one or multiple EV-chargers (wallboxes) with use of PV surplus energy.
+Adapter to manage one or multiple EV-chargers (wallboxes) with use of PV surplus energy.
## Settings
@@ -49,6 +49,16 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
! Note that missing version entries are typically dependency updates for improved security.
+### 0.12.4 (2024-11-23)
+
+- (HombachC) implement better state change error handling
+
+### 0.12.3 (2024-11-18)
+
+- (HombachC) fix bug in state subscription
+- (HombachC) harmonize project tools
+- (HombachC) bump dependencies
+
### 0.12.2 (2024-10-27)
- (HombachC) migrate eslint to >9.x
@@ -71,7 +81,7 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
### 0.11.0 (2024-08-29)
-- (HombachC) implement variable wallbox amount
+- (HombachC) implement variable wallbox amount
- (HombachC) fix errors in wallbox control
- (HombachC) complete rework of configuration screen
- (HombachC) move utils to extra class
@@ -137,11 +147,11 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
### 0.7.2 (2023-06-19)
-- (HombachC) Removed Travis
+- (HombachC) Removed Travis
### 0.7.1 (2023-06-13)
-- (HombachC) Fixed typo in docu, added translations
+- (HombachC) Fixed typo in docu, added translations
### 0.7.0 (2023-06-11)
@@ -152,9 +162,11 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md)
## Tested with
-- 3x go-E Charger & Kostal PikoBA
+
+- 3x go-E Charger & Kostal PikoBA
## License
+
MIT License
Copyright (c) 2021-2024 Christian Hombach
diff --git a/docs/en/adapterref/iobroker.daswetter/README.md b/docs/en/adapterref/iobroker.daswetter/README.md
index 5b1c0687c..da3a1bf61 100644
--- a/docs/en/adapterref/iobroker.daswetter/README.md
+++ b/docs/en/adapterref/iobroker.daswetter/README.md
@@ -74,6 +74,7 @@ Now we have implemented a "auto-repair" which changes to structure to documented
### **WORK IN PROGRESS**
* (René) see issue #406: test with nodejs@22
+* (René) update dependencies
### 3.1.16 (2024-08-18)
* (René) update dependencies
diff --git a/docs/en/adapterref/iobroker.deconz/README.md b/docs/en/adapterref/iobroker.deconz/README.md
index 75a4315f9..58c260e64 100644
--- a/docs/en/adapterref/iobroker.deconz/README.md
+++ b/docs/en/adapterref/iobroker.deconz/README.md
@@ -46,6 +46,13 @@ Examples:
## Changelog
+### 1.7.0 (2024-11-22)
+(mattreim) Hide virtual sensors function
+(mattreim) Hide switch groups function
+(mattreim) Update dependencies
+(mattreim) Updated/added some translations
+(mattreim) Some bug fixes and more
+
### 1.6.4 (2024-10-06)
* (mattreim) Add "protectedNative" and "encryptedNative"
* (mattreim) Fix websocket connection
diff --git a/docs/en/adapterref/iobroker.device-watcher/README.md b/docs/en/adapterref/iobroker.device-watcher/README.md
index a4fa1adb7..a3e59346d 100644
--- a/docs/en/adapterref/iobroker.device-watcher/README.md
+++ b/docs/en/adapterref/iobroker.device-watcher/README.md
@@ -30,8 +30,9 @@ BADGE-Number of Installations: https://iobroker.live/badges/device-watcher-insta
### **WORK IN PROGRESS**
-- (ciddi89) Fixed [#362](https://github.com/iobroker-community-adapters/ioBroker.device-watcher/issues/362): Ecovacs Deebot use connectionUptime dp as timeselector
-
+- (ciddi89) Fixed [#362](https://github.com/iobroker-community-adapters/ioBroker.device-watcher/issues/362): Ecovacs Deebot use connectionUptime dp as timeselector
+- (mcm1957) Dependencies have been updated
+
### 2.12.1 (2024-05-09)
- (ciddi89) Added: [#341](https://github.com/iobroker-community-adapters/ioBroker.device-watcher/issues/341) Support for Zigbee battery_state datapoint
diff --git a/docs/en/adapterref/iobroker.deyeidc/README.md b/docs/en/adapterref/iobroker.deyeidc/README.md
index 48de5149a..9d7de1755 100644
--- a/docs/en/adapterref/iobroker.deyeidc/README.md
+++ b/docs/en/adapterref/iobroker.deyeidc/README.md
@@ -55,8 +55,7 @@ All product and company names or logos are trademarks™ or registered® tradema
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-
-### **WORK IN PROGRESS**
+### 0.1.2 (2024-11-08)
- (raschy) responsive-design customized
- (raschy) updated to adapter-core 3.2.2
diff --git a/docs/en/adapterref/iobroker.discord/README.md b/docs/en/adapterref/iobroker.discord/README.md
index 8d90c921a..2befe349f 100644
--- a/docs/en/adapterref/iobroker.discord/README.md
+++ b/docs/en/adapterref/iobroker.discord/README.md
@@ -1341,6 +1341,10 @@ sendTo('discord.0', 'getMessageInfo', {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.5.2 (2024-11-16)
+
+* (crycode-de) Added missing sizes to jsonConfig
+
### 2.5.1 (2024-10-23)
* (crycode-de) Small style fixes for jsonConfig
diff --git a/docs/en/adapterref/iobroker.ds18b20/README.md b/docs/en/adapterref/iobroker.ds18b20/README.md
index ad2722aca..95cb5a563 100644
--- a/docs/en/adapterref/iobroker.ds18b20/README.md
+++ b/docs/en/adapterref/iobroker.ds18b20/README.md
@@ -236,6 +236,10 @@ Instructions how to set up the client are includes in the adapter configuration.
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 3.0.1 (2024-11-16)
+
+* (crycode-de) Added missing sizes to jsonConfig
+
### 3.0.0 (2024-10-16)
* (crycode-de) Node >= 18, js-controller >= 5.0.19 required
@@ -256,11 +260,6 @@ Instructions how to set up the client are includes in the adapter configuration.
* (crycode-de) Dependency updates
-### 2.0.2 (2023-07-23)
-
-* (crycode-de) Fixed bug on sensor migration
-* (crycode-de) 💥 Need to set a new remote encryption key in admin if remote sensors are used
-
## License
Copyright (c) 2019-2024 Peter Müller
diff --git a/docs/en/adapterref/iobroker.dysonairpurifier/README.md b/docs/en/adapterref/iobroker.dysonairpurifier/README.md
index c09bfdc54..33b20a984 100644
--- a/docs/en/adapterref/iobroker.dysonairpurifier/README.md
+++ b/docs/en/adapterref/iobroker.dysonairpurifier/README.md
@@ -187,6 +187,10 @@ This is nice to know because the devices usually send (at least mine do) their s
- In other cases it has been an IP/DNS issue. Resetting the DHCP/DNS server (router) solved the issue.
## Changelog
+### 3.2.6 (2024-11-13)
+- (grizzelbee) Upd: Dependencies got updated
+- (grizzelbee) Fix: Fixed issues mentioned by adapter checker regarding responsive design
+
### 3.2.5 (2024-10-08)
- (grizzelbee) Upd: Dependencies got updated
- (grizzelbee) Fix: Fixed GUI issues
diff --git a/docs/en/adapterref/iobroker.e3dc-rscp/README.md b/docs/en/adapterref/iobroker.e3dc-rscp/README.md
index 0aabe621e..39e433dc1 100644
--- a/docs/en/adapterref/iobroker.e3dc-rscp/README.md
+++ b/docs/en/adapterref/iobroker.e3dc-rscp/README.md
@@ -462,6 +462,11 @@ Here is a sample script for charge limit control - it is not meant for as-is usa
## Changelog
+### 1.3.2
+
+(git-kick)
+* 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 )
+
### 1.3.1
MODIFIED ADAPTER SETTINGS - see [Reuse of adapter configuration](https://github.com/git-kick/ioBroker.e3dc-rscp/tree/master?tab=readme-ov-file#reuse-of-adapter-configuration)
diff --git a/docs/en/adapterref/iobroker.e3oncan/README.md b/docs/en/adapterref/iobroker.e3oncan/README.md
index 2f1a9c83d..31beecf93 100644
--- a/docs/en/adapterref/iobroker.e3oncan/README.md
+++ b/docs/en/adapterref/iobroker.e3oncan/README.md
@@ -129,6 +129,10 @@ Yes, that is possible under certain conditions:
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 0.10.2 (2024-11-16)
+* (MyHomeMyData) Update of list of data points for E3 devices to version 20241115
+* (MyHomeMyData) Fixes for issue #81 (added missing size attributes)
+
### 0.10.1 (2024-10-20)
* (MyHomeMyData) Fixes for issue #79 (improvements for usability on mobile devices)
diff --git a/docs/en/adapterref/iobroker.ebus/README.md b/docs/en/adapterref/iobroker.ebus/README.md
index 372566a2a..bb42146ed 100644
--- a/docs/en/adapterref/iobroker.ebus/README.md
+++ b/docs/en/adapterref/iobroker.ebus/README.md
@@ -69,7 +69,8 @@ Attention: command in datapoint ebus.0.cmd is deleted after executing of command
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 3.3.7 (2024-11-20)
+* (René) see issue #380: support of ebusd 24.1, ATTENTION: ebusd creates datapoints with changed names, folders or in different locations
* (René) see issue #371: test with nodejs@22
### 3.3.6 (2024-08-25)
diff --git a/docs/en/adapterref/iobroker.email/README.md b/docs/en/adapterref/iobroker.email/README.md
index 30e0f370e..f2f30ba47 100644
--- a/docs/en/adapterref/iobroker.email/README.md
+++ b/docs/en/adapterref/iobroker.email/README.md
@@ -114,6 +114,15 @@ For other services see documentation of **Nodemailer**: `[https://github.com/nod
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### **WORK IN PROGRESS**
+* (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now
+* (mcm1957) EsLint uses @iobroker/linter-config now
+* (mcm1957) Dependencies have been updated
+
+### 1.4.0 (2024-11-17)
+* (simatec) Responsive Design added
+* (Jey-Cee) Admin-UI has been migrated to jsonConfig
+
### 1.3.1 (2024-06-09)
* (klein0r) Updated Blockly definitions
@@ -127,9 +136,6 @@ For other services see documentation of **Nodemailer**: `[https://github.com/nod
### 1.2.1 (2023-12-08)
* (foxriver76) send the actual message too via notification-manager
-### 1.2.0 (2023-06-02)
-* (foxriver76) support [Notification Manager](https://github.com/foxriver76/ioBroker.notification-manager)
-
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.ems-esp/README.md b/docs/en/adapterref/iobroker.ems-esp/README.md
index 53e6a2a12..89e81eb0b 100644
--- a/docs/en/adapterref/iobroker.ems-esp/README.md
+++ b/docs/en/adapterref/iobroker.ems-esp/README.md
@@ -42,26 +42,22 @@ German ioBroker forum: https://forum.iobroker.net/topic/45862/neuer-adapter-ems-
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### 5.0.1 (2024-11-01)
-* update dependencies
-* new log entry for private password (km200) since enryption is changed
+### 5.0.5 (2024-11-22)
+* Add native entries to io-package
-### 5.0.0 (2024-10-27)
-* change encryption for private passwort (km200) - needs to be re-entered
+### 5.0.4 (2024-11-12)
+* add missing size attributes for config
+* dependabot updates
-### 4.9.2 (2024-10-27)
-* update translations
-* responsive design added
+### 5.0.3 (2024-11-11)
+* add missing size attributes for config
-### 4.9.1 (2024-10-01)
-* update dependencies
-* update translations
+### 5.0.2 (2024-11-02)
+* check on ems-esp api errors for ../api/system..
-### 4.9.0 (2024-09-26)
-* ems-esp: improve reading for temperatureSensors
-* support small screens
+### 5.0.1 (2024-11-01)
* update dependencies
-* update translations
+* new log entry for private password (km200) since enryption is changed
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.energiefluss-erweitert/README.md b/docs/en/adapterref/iobroker.energiefluss-erweitert/README.md
index 545da89ed..039900f31 100644
--- a/docs/en/adapterref/iobroker.energiefluss-erweitert/README.md
+++ b/docs/en/adapterref/iobroker.energiefluss-erweitert/README.md
@@ -25,12 +25,22 @@ It provides an animated energyflow for all elements, you add. This could be: pho
* [English description](./docs/en/README.md)
* [Deutsche Beschreibung](./docs/de/README.md)
* [Views Showcase](https://forum.iobroker.net/topic/74890/energiefluss-erweitert-ansichten/)
+* [Wiki](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki)
## Changelog
+### 0.5.1-alpha.11 (2024-11-12)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly applied (#272)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Timestamp of the last change was timestamp of the last update (#279)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Font-size could not be changed
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved UI
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Information Icon on the live-view, to inform the user about any errors that have occured
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Responsive Design for Adapter-Admin area added to meet new requirements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Added: last change timestamp to datasource elements. Corresponds to fix (#279)
+
### 0.5.1-alpha.10 (2024-10-24)
- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Applied fill color of element could not be removed or set to transparent
- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Own Styles could not be modified, if they were empty or not set
diff --git a/docs/en/adapterref/iobroker.energiefluss/README.md b/docs/en/adapterref/iobroker.energiefluss/README.md
index 5ed88b59d..5cde5a290 100644
--- a/docs/en/adapterref/iobroker.energiefluss/README.md
+++ b/docs/en/adapterref/iobroker.energiefluss/README.md
@@ -38,6 +38,10 @@ If you like my work und you would like to support me, you can do so here:
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 3.6.2 (2024-11-05)
+- Dependencies updated
+- Responsive Design added (#406)
+
### 3.6.1 (2024-09-23)
- Dependencies updated
diff --git a/docs/en/adapterref/iobroker.enigma2/README.md b/docs/en/adapterref/iobroker.enigma2/README.md
index 43254ff3d..3a0266975 100644
--- a/docs/en/adapterref/iobroker.enigma2/README.md
+++ b/docs/en/adapterref/iobroker.enigma2/README.md
@@ -126,6 +126,13 @@ sendTo('enigma2.0', 'send', {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.2.1 (2024-11-13)
+* (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+* (mcm1957) Message states have been added. [#229]
+* (simatec) Adapter changed to meet Responsive Design rules.
+* (mcm1957) Several issues reported by adapter checker have been fixed.
+* (mcm1957) Dependencies have been updated.
+
### 2.1.1 (2024-06-09)
* (klein0r) Updated Blockly definitions
@@ -140,12 +147,6 @@ sendTo('enigma2.0', 'send', {
### 2.0.3 (2023-09-06)
* (TDCroPower) fixed the problem that no objects are updated
-### 2.0.2 (2023-08-17)
-* (Lucky-ESA) Bugfixes: [#61](https://github.com/Matten-Matten/ioBroker.enigma2/issues/61)
-* (Lucky-ESA) Bugfixes: undefined e2eventlist
-* (bluefox) Added json config
-* (mcm1957) Adapter now requires node 16
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.envertech-pv/README.md b/docs/en/adapterref/iobroker.envertech-pv/README.md
index 97257f70d..056ce5adb 100644
--- a/docs/en/adapterref/iobroker.envertech-pv/README.md
+++ b/docs/en/adapterref/iobroker.envertech-pv/README.md
@@ -44,6 +44,11 @@ Ideally, please use GitHub issues for this, with the best method achieved by set
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.4.0 (2024-11-14)
+- (mcm1957) Adapter has been changes to meet Responsive Design Rules.
+- (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+- (mcm1957) Dependencies have been updated.
+
### 1.3.2 (2024-03-28)
- (mcm1957) Adapter supports multiple pages returned from Envertech now. This will allow more than 20 inverters per station.
- (mcm1957) Adapter requires js-controller >= 5 now.
diff --git a/docs/en/adapterref/iobroker.fahrplan/README.md b/docs/en/adapterref/iobroker.fahrplan/README.md
index 78bf35451..7eb10a152 100644
--- a/docs/en/adapterref/iobroker.fahrplan/README.md
+++ b/docs/en/adapterref/iobroker.fahrplan/README.md
@@ -223,6 +223,10 @@ With +-Button new entries can be added to the table.
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
+### 1.3.0 (2024-11-18)
+* (simatec) Responsive Design added
+* (Gaudes) Upgrades
+
### 1.2.3 (2023-04-07)
* (Gaudes) Upgrade hafas-client (fix for error)
* (Gaudes) Upgrade dependency
@@ -243,14 +247,10 @@ With +-Button new entries can be added to the table.
* (Gaudes) Update to newest Adapter creator for internal dependencies
* (Gaudes) Include Dependabot updates
-### 1.1.1 (2021-06-22)
-* (Gaudes) Advanced error reporting for HAFAS errors
-* (Gaudes) Include Dependabot updates
-
## License
MIT License
-Copyright (c) 2023 Ralf Gaudes
+Copyright (c) 2024 Ralf Gaudes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/en/adapterref/iobroker.fb-checkpresence/README.md b/docs/en/adapterref/iobroker.fb-checkpresence/README.md
index f78f50aaf..3af17eb3f 100644
--- a/docs/en/adapterref/iobroker.fb-checkpresence/README.md
+++ b/docs/en/adapterref/iobroker.fb-checkpresence/README.md
@@ -218,9 +218,17 @@ Here you will find information when the family member arrives or leaving home.
Here you will find information about the history of the current day.
## Changelog
-### **WORK IN PROGRESS**
+### 1.2.8 (2024-11-20)
+* (afuerhoff) bugfix configuration
* (afuerhoff) dependencies updated
+### 1.2.7 (2024-11-18)
+* (afuerhoff) bugfix [#319](https://github.com/afuerhoff/ioBroker.fb-checkpresence/issues/319)
+
+### 1.2.6 (2024-11-14)
+* (afuerhoff) dependencies updated
+* (afuerhoff) DisAllowWanAccess optimized
+
### 1.2.5 (2024-09-18)
* (afuerhoff) new filter function implemented (experimental)
* (afuerhoff) node >=18
@@ -233,19 +241,6 @@ Here you will find information about the history of the current day.
* (afuerhoff) test code deleted [#257](https://github.com/afuerhoff/ioBroker.fb-checkpresence/issues/257)
* (afuerhoff) dependencies updated
-### 1.2.3 (2024-01-18)
-* (afuerhoff) Readme updated
-* (afuerhoff) function jsontables optimized
-* (afuerhoff) non existent members set to false [#253](https://github.com/afuerhoff/ioBroker.fb-checkpresence/issues/253)
-* (afuerhoff) optimization of log message [#240](https://github.com/afuerhoff/ioBroker.fb-checkpresence/issues/240)
-
-### 1.2.2 (2023-07-28)
-* (afuerhoff) bug fixed json tables [#215](https://github.com/afuerhoff/ioBroker.fb-checkpresence/issues/215)
-* (afuerhoff) link feature optimized. See #206
-
-### 1.2.1 (2023-07-14)
-* (afuerhoff) bug fixed property link
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.flexcharts/README.md b/docs/en/adapterref/iobroker.flexcharts/README.md
index 1366a86d7..66d97d4d7 100644
--- a/docs/en/adapterref/iobroker.flexcharts/README.md
+++ b/docs/en/adapterref/iobroker.flexcharts/README.md
@@ -15,7 +15,7 @@
# Basic concept
There are several adapters available to view charts within ioBroker. As far as I know, all of them are using a UI to configure content and options of the charts. Typically not all features of the used graphical sub system could be used in this way. E.g. it's not possible to view fully featured stacked charts with eChart-Adapter.
-This adapter uses a different approach. It brings the complete feature set of [Apache ECharts](https://echarts.apache.org/en/index.html) to ioBroker. Take a look the [demo charts](https://echarts.apache.org/examples/en/index.html).
+This adapter uses a different approach. It brings almost the complete feature set of [Apache ECharts](https://echarts.apache.org/en/index.html) to ioBroker. Take a look to the [demo charts](https://echarts.apache.org/examples/en/index.html).
Remark: Adapter was not tested on MacOS, yet.
@@ -43,6 +43,7 @@ Remark: Adapter was not tested on MacOS, yet.
```
flexchart adapter will then show this chart:
+
![flexcharts_stacked1](https://github.com/user-attachments/assets/7cf6dfab-ddad-4b2f-a1e1-20fa4b876b4c)
Typically you will use Blockly or javascript to create and update content of this state.
@@ -50,15 +51,15 @@ Typically you will use Blockly or javascript to create and update content of thi
There is another possibility to directly hand over eCharts-data via callback function within javascript. For details see below.
To be clear: This approach is not intended to be used to quickly create a simple chart.
-But if you have a very specific idea in mind for a more complex chart, flexcharts offers the possibility to implement it.
+But if you have a specific idea in mind for a more complex chart, flexcharts offers the possibility to implement it.
# Getting started
### Using the adapter
-This adapter brings it's functionality as a web extension. Therefore it is mandatory to have installed and running the [web adapter](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`). It's assumed you're using the standard port 8082 for web adapter.
+This adapter brings it's functionality as a web extension. Therefore it is mandatory to have installed and running the [web adapter](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`). In this readme it's assumed you're using the standard port 8082 for web adapter.
-Wenn flexcharts adapter is active you can access it via http://localhost:8082/flexcharts/echarts.html (replace `localhost` by address of your ioBroker server).
+When flexcharts adapter is active you can access it via http://localhost:8082/flexcharts/echarts.html (replace `localhost` by address of your ioBroker server).
You may use this address in iFrame widgets of vis or jarvis or other visualizations. Of course you can also use it directly in a browser tab.
@@ -66,13 +67,11 @@ To make it work, you have to provide additional parameters to tell the adapter a
* `source=state` => You provide chart data in an ioBroker state (json)
* `source=script` => You provide chart data via a script (javascript or blockly)
-There is a built-in demo chart available: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-
-To use dark mode of ECharts add `&darkmode`, e.g. http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&darkmode
+There are additional options available, pls. refer to [reference section](#reference)
-To enable a regulary refresh of chart use option `&refresh`, e.g. http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&refresh=15 to refresh chart ervery 15 seconds. Minumum value is 5 seconds. Defaults to 60 seconds.
+To check for correct installation of adapter use built-in demo chart: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-### Use ioBroker state as source for an echart
+### Use ioBroker state as source for an eChart
Example: `http://localhost:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.echarts.chart1`
@@ -83,14 +82,16 @@ Example: http://localhost:8082/flexcharts/echarts.html? {
- console.log(`data = ${JSON.stringify(data)}`);
+onMessage('flexcharts', (httpParams, callback) => {
+ const myJsonParams = (httpParams.myjsonparams ? JSON.parse(httpParams.myjsonparams) : {} );
+ console.log(`httpParams = ${JSON.stringify(httpParams)}`);
+ console.log(`myJsonParams = ${JSON.stringify(myJsonParams)}`);
chart1(result => callback(result));
});
@@ -127,22 +128,54 @@ Start the script and access this in a browser: http://localhost:8082/flexcharts/
Same chart should show up as in previous example.
+You should get two log entries of the example script:
+```
+httpParams = {"message":"mylinechart","source":"script"}
+myJsonParams = {}
+```
+
+Additional paramters can be forwarded to the script and will be available within the script in variable `httpParams`. Try following command: `http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1&myjsonparams={"period":"daily"}`
+
+Log entries now should look like this:
+```
+httpParams = {"source":"script","chart":"chart1","myjsonparams":"{\"period\":\"daily\"}"}`
+myJsonParams = {"period":"daily"}
+```
+
Pls. note, **you have to use the `onMessage()` functionality to receive the trigger from the adapter**. Default vaule for the message is `flexcharts` as shown in example above. You may use different messages by providing an additional parameter, e.g. to use message `mycharts` add `&message=mycharts` to http address: `http://localhost:8082/flexcharts/echarts.html?source=script&message=mycharts`
-Additional paramters can be forwarded to the script and will be available within the script in variable `data`. Try following command: `http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1¶ms={"period":"daily"}`
+## Templates
+Javascript templates are available for some uses cases:
+* chart using data from history adapter: [template1](templates/flexchartsTemplate1.js)
+* simple chart for a heat curve: [template2](templates/flexchartsTemplate2.js)
+* a very specific use case is available for Viessmann devices of E3 series, e.g. heat pump Vitocal 250. Refer to https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35
+
+## Reference
+
+Use **ioBroker state** as data source: `http://localhost:8082/flexcharts/echarts.html?source=state&id=my_state_id`
+
+Use **javascript** as data source: `http://localhost:8082/flexcharts/echarts.html?source=script`
+
+### Optional arguments
+* `&message=my_message` - sends "my_message" to javascript. Use `onMessage('my_message', (httpParams, callback) => { callback(mychart); })` to provide chart data. Defaults to `flexcharts`.
+* `&darkmode` - activates dark mode visualization of ECharts.
+* `&refresh=number` - do a refresh of chart ervery "number" seconds. Defaults to 60 seconds. Minimum allowed value is 5 seconds.
+* `&user_defined_arguments` - Add more parameters as per your need. All arguments are available within function `onMessage()` in object `httpParams`. See examples above and templates for more details.
+
+### Built-in demo chart
+There is a built-in demo chart available: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-This should give a log entry in the example script: `data = {"source":"script","chart":"chart1","params":"{\"period\":\"daily\"}"}`
+This should bring up a demo chart, when flexcharts- and web-adapter are running.
-I'm working on more elaborated javascript templates to simplify usage of the adapter. A [first template](templates/flexchartsTemplate1.js) is available, see folder templates.
-A very specific use case is available for Viessmann devices of E3 series, e.g. heat pump Vitocal 250. Refer to https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35
-More to come. Stay tuned.
+**Note:** Replace `localhost` by address of your ioBroker server. Replace `8082` by port number used by your Web-Adapter.
## Changelog
-### **WORK IN PROGRESS**
+### 0.2.0 (2024-11-06)
+* (MyHomeMyData) Updated readme. Added sections Templates and Reference.
* (MyHomeMyData) Fix for issue #41 (findings of repository checker)
* (MyHomeMyData) Updated ECharts to version 5.5.1, see issue #40
* (MyHomeMyData) Fix for issue #39 (html warnings)
diff --git a/docs/en/adapterref/iobroker.google-spreadsheet/README.md b/docs/en/adapterref/iobroker.google-spreadsheet/README.md
index 564232f5e..38ed79de1 100644
--- a/docs/en/adapterref/iobroker.google-spreadsheet/README.md
+++ b/docs/en/adapterref/iobroker.google-spreadsheet/README.md
@@ -105,6 +105,9 @@ Make sure the Service Account has adequate permissions to write to the spreadshe
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 0.5.0
+* (Thomas Pohl) Minimum node.js version is now 20
+* (Thomas Pohl) Display connection state
### 0.4.0
* (Thomas Pohl) The privateKey is saved now encrypted
* (Thomas Pohl) Support for node.js 22
@@ -116,7 +119,6 @@ Make sure the Service Account has adequate permissions to write to the spreadshe
* (Thomas Pohl) Documentation for all features
### 0.2.0
* (Thomas Pohl) Parsing of private keys is now more robust
-
### 0.1.0
* (Thomas Pohl) Preparation for first stable release
* (Thomas Pohl) Improve logging + Code cleanup
diff --git a/docs/en/adapterref/iobroker.gotify-ws/README.md b/docs/en/adapterref/iobroker.gotify-ws/README.md
index 2186ca645..f30eab814 100644
--- a/docs/en/adapterref/iobroker.gotify-ws/README.md
+++ b/docs/en/adapterref/iobroker.gotify-ws/README.md
@@ -66,6 +66,8 @@ You can then configure a notification service of your choice for forwarding.
### **WORK IN PROGRESS**
* (simatec) Dependencies updated
+* (simatec) Responsive Design fix
+* (simatec) Issue Action added
## Changelog
### 0.1.9 (2024-09-26)
diff --git a/docs/en/adapterref/iobroker.gotify/README.md b/docs/en/adapterref/iobroker.gotify/README.md
index fcdaaffb3..526cbad8c 100644
--- a/docs/en/adapterref/iobroker.gotify/README.md
+++ b/docs/en/adapterref/iobroker.gotify/README.md
@@ -17,6 +17,11 @@ Send push notifications from [ioBroker](https://iobroker.net/) to [Gotify](https
## Changelog
+### 0.4.0
+
+- (Thomas Pohl) Support for notification-manager was added
+- (Thomas Pohl) Blockly can now send messages with priority 10
+
### 0.3.0
- (Thomas Pohl) The token is stored now encrypted
diff --git a/docs/en/adapterref/iobroker.gsmsms/README.md b/docs/en/adapterref/iobroker.gsmsms/README.md
index 6b420a928..54f40d339 100644
--- a/docs/en/adapterref/iobroker.gsmsms/README.md
+++ b/docs/en/adapterref/iobroker.gsmsms/README.md
@@ -122,43 +122,46 @@ Send any command you like, but be aware that you will see only the last line of
This adapter is based on the [SerialPort-GSM plugin](https://github.com/zabsalahid/serialport-gsm) for communicating with GSM modems, primarily for SMS.
+## Credits
+
+This adapter would not have been possible without the great work of @forelleblau (https://github.com/forelleblau), who developed former releases of this adapter.
+
## Changelog
-
-### **WORK IN PROGRESS**
+### 1.0.0 (2024-11-23)
+- (mcm1957) Adapter requires node.js 20 now.
+- (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+- (mcm1957) Adapter has been moved to iobroker-community-adapters organization
+- (mcm1957) Some issues reported by adapter checker have been fixed.
+- (mcm1957) Dependencies have been update
### 0.0.6
-
-- (forelleblau) jsonConfig.json, notifications-manager
+- (forelleblau) jsonConfig.json, notifications-manager
### 0.0.5
-
-- (forelleblau) bug fixed (adapter set "undefined" into state values)
+- (forelleblau) bug fixed (adapter set "undefined" into state values)
### 0.0.4
-
-- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
+- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
### 0.0.3
-
-- (forelleblau) dependencies updated, bugs fixed
+- (forelleblau) dependencies updated, bugs fixed
### 0.0.2
-
-- (forelleblau) first published version
+- (forelleblau) first published version
### 0.0.1
-
-- (forelleblau) initial release
+- (forelleblau) initial release
## License
MIT License
+Copyright (c) 2023-2024 ioBroker Community Developers
Copyright (c) 2022-2023 forelleblau
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/docs/en/adapterref/iobroker.heatingcontrol/README.md b/docs/en/adapterref/iobroker.heatingcontrol/README.md
index 72d5a2d01..0a7cd3503 100644
--- a/docs/en/adapterref/iobroker.heatingcontrol/README.md
+++ b/docs/en/adapterref/iobroker.heatingcontrol/README.md
@@ -282,6 +282,13 @@ When the adapter crashes or an other Code error happens, this error message that
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.12.13 (2024-11-20)
+* (René) see issue #607: minumum length of telegram user reduced to one char
+
+### 2.12.12 (2024-11-20)
+* (René) see issue #422: bug fix window open/close handling
+* (René) update dependencies
+
### 2.12.11 (2024-10-21)
* (René) see issue #611: test with nodejs@22
* (René) see issue #617: bug fix: TemperaturOverrideRemainingTime is not correct after Override interruption
diff --git a/docs/en/adapterref/iobroker.hmip/README.md b/docs/en/adapterref/iobroker.hmip/README.md
index f5bcffaf4..3dd790ccc 100644
--- a/docs/en/adapterref/iobroker.hmip/README.md
+++ b/docs/en/adapterref/iobroker.hmip/README.md
@@ -32,8 +32,8 @@ Most Homematic IP devices are already working with the latest adapter version.
I will improve it constantly, but it will take time. Any help from the community through e.g. Pull Request would be highly appreciated.
For not working HmIP devices, please create an issue with this info (please one per device and if possible, the technical name in the subject).
-Switch adapter logging in ioBroker to silly mode and add the json of the device, which is printed to the log in the issue.
-I may also need a json of a state change.
+Switch adapter logging in ioBroker to silly mode and add the JSON of the device, which is printed to the log in the issue.
+I may also need a JSON of a state change.
Thank you!
@@ -66,6 +66,11 @@ https://github.com/ioBroker/AdapterRequests/issues/62
### **WORK IN PROGRESS**
-->
## Changelog
+### 1.25.0 (2024-11-08)
+* (bluefox) Updated packages
+* (bluefox) User prettier for code
+* (bluefox) Added GUI test for the admin component
+
### 1.24.3 (2024-09-02)
* (bluefox) GUI was migrated for Admin 7
* (bluefox) Removed gulp
diff --git a/docs/en/adapterref/iobroker.homeconnect/README.md b/docs/en/adapterref/iobroker.homeconnect/README.md
index 361bcbae0..0629b63a6 100644
--- a/docs/en/adapterref/iobroker.homeconnect/README.md
+++ b/docs/en/adapterref/iobroker.homeconnect/README.md
@@ -72,9 +72,14 @@ Change the value of programs.selected.BSH_Common_Root_SelectedProgram leads to s
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.4.3 (2024-11-19)
+
+- (TA2k) fix for -001 devices
+- (simatec) Adapter has been adapted to meet Responsive Design rules.
+
### 1.4.2 (2024-10-25)
-- fix for devices with object values
+- (TA2k) fix for devices with object values
### 1.4.1 (2024-07-02)
@@ -89,10 +94,6 @@ Change the value of programs.selected.BSH_Common_Root_SelectedProgram leads to s
- fix login
-### 1.2.2 (2023-12-02)
-
-- bump version
-
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.imap/README.md b/docs/en/adapterref/iobroker.imap/README.md
index 33d1592ae..746a3c474 100644
--- a/docs/en/adapterref/iobroker.imap/README.md
+++ b/docs/en/adapterref/iobroker.imap/README.md
@@ -241,18 +241,25 @@ UNSEEN - Messages that do not have the Seen flag set.
[Summary](#summary)
-| Object | Description |
-| ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
-| imap.0.xxx.remote.apply_html | Apply change in imap.0.xxx.remote.html. |
-| imap.0.xxx.remote.change_folder | Instance settings: Change post folder to be monitored and displayed. Will only be reset after a reboot. |
-| imap.0.xxx.remote.criteria | Instance settings: Change search. Will only be reset after a reboot. |
-| imap.0.xxx.remote.reload_emails | Reload emails. |
-| imap.0.xxx.remote.search_start | Apply changes from change_folder, criteria and show_mails |
-| imap.0.xxx.remote.show_mails | Instance settings: Number of emails (max. HTML) to be loaded. Will only be reset after a reboot. Should of course be greater than the value max. |
-| imap.0.xxx.remote.vis_command | Command from the VIS to move mails from the selection boxes. Only used by VIS. |
+| Object | Description |
+| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ |
+| imap.0.xxx.remote.apply_html | Apply change in imap.0.xxx.remote.html. |
+| imap.0.xxx.remote.change_folder | Instance settings: Change post folder to be monitored and displayed. Will only be reset after a reboot. |
+| imap.0.xxx.remote.criteria | Instance settings: Change search. Will only be reset after a reboot. |
+| imap.0.xxx.remote.mailbox_folder_change_name | Change name of mailbox folder Example ["INBOX.imap", "INBOX.newimap"] [see](#folder-name) |
+| imap.0.xxx.remote.mailbox_folder_create | Create mailbox folder |
+| imap.0.xxx.remote.mailbox_folder_delete | Delete mailbox folder |
+| imap.0.xxx.remote.reload_emails | Reload emails. |
+| imap.0.xxx.remote.search_start | Apply changes from change_folder, criteria and show_mails |
+| imap.0.xxx.remote.show_mails | Instance settings: Number of emails (max. HTML) to be loaded. Will only be reset after a reboot. Should of course be greater than the value max. |
+| imap.0.xxx.remote.vis_command | Command from the VIS to move mails from the selection boxes. Only used by VIS. |
![imap_overview_remote.png](img/imap_overview_remote.png)
+### Folder name
+
+Old folder names can be viewed in the imap.0.xxx.remote.change_folder object
+
### Data point `imap.0.username.remote.copy`
[Summary](#summary)
@@ -601,6 +608,19 @@ UNSEEN - Messages that do not have the Seen flag set.
```
## Changelog
+
+### **WORK IN PROGRESS**
+
+- (Lucky-ESA) Mailbox folder delete added
+- (Lucky-ESA) Mailbox folder create added
+- (Lucky-ESA) Change Mailbox Folder name added
+- (Lucky-ESA) IMAP package changed
+
+### 0.2.2 (2024-11-07)
+
+- (Lucky-ESA) New design for settings page added
+- (Lucky-ESA) Crash if uid is empty for new emails
+
### 0.2.1 (2024-09-16)
- (Lucky-ESA) Update dependencies
diff --git a/docs/en/adapterref/iobroker.innoxel/README.md b/docs/en/adapterref/iobroker.innoxel/README.md
index dec0e2a23..75b246cb5 100644
--- a/docs/en/adapterref/iobroker.innoxel/README.md
+++ b/docs/en/adapterref/iobroker.innoxel/README.md
@@ -19,42 +19,44 @@ Adapter for Innoxel Master 3 (https://innoxel.ch)
## Requirements
-- NodeJS >= 18.x
-- ioBroker >= 4.x, with admin >= 5.x
-- Innoxel Master 3 Smart Home system
+- NodeJS >= 20.x
+- ioBroker >= 6.0.11, with admin >= 6.x
+- Innoxel Master 3 Smart Home system
## Installation
Until the adapter is part of the stable repository, you can install the latest version by enabling expert mode in ioBroker and install the adapter from npm. Don't install it directly from Github, this will lead to an error on adapter start ("cannot find start file").
-After installation, create a new instance and configure the settings:
+The adapter can be installed straigt from the stable/beta repositories. After installation, create a new instance and configure the settings:
-- Connection Settings for accessing innoxel master
- - ip address
- - port
- - username
- - password
-- Polling intervals for different areas
- - state changes (i.e. switches, dimmer)
- - room climate / thermostats
- - weather
- - innoxel master device details (requires admin privileges for the user connecting to innoxel master)
+- Connection Settings for accessing innoxel master
+ - ip address
+ - port
+ - username
+ - password
+- Polling intervals for different areas
+ - state changes (i.e. switches, dimmer)
+ - room climate / thermostats
+ - weather
+ - innoxel master device details (requires admin privileges for the user connecting to innoxel master)
+
+Please note: Don't install the adapter directly from Github, this will lead to an error on adapter start ("cannot find start file").
## Supported Modules and Firmware
A pre-release version of this adapter has been working for more than 2 years with firmware 1.4.1.0 and then 1.5.1.0.
-This initially released version has been tested with firmware 1.6.0.0.
+The initially released version has been tested with firmware 1.6.0.0.
The following modules have been tested/are supported:
-- Innoxel Master 3
-- Switch 8 G1
-- Motor 4 x 230 VAC G1
-- Dim 4 x 600 VA
-- Taster RGB
-- Thermo
-- Wetterstation P03/3-RS485-CET
+- Innoxel Master 3
+- Switch 8 G1
+- Motor 4 x 230 VAC G1
+- Dim 4 x 600 VA
+- Taster RGB
+- Thermo
+- Wetterstation P03/3-RS485-CET
If it works for you with different modules, or you have other modules that don't work, please feel free to open an issue.
@@ -72,52 +74,62 @@ sendTo("innoxel.0", "triggerInModule", ":", callback);
// i.e. to trigger button 1 on "Taster" with id/address 20
sendTo("innoxel.0", "triggerInModule", "20:1");
sendTo("innoxel.0", "triggerInModule", "20:1", () => {
- // do something after the button press has been executed
+ // do something after the button press has been executed
});
```
-- moduleId is the id/address of the "Taster"
-- channelId is the index of the button on the "Taster"
-- callback (optional) callback function to call when action has been performed
+- moduleId is the id/address of the "Taster"
+- channelId is the index of the button on the "Taster"
+- callback (optional) callback function to call when action has been performed
### setDimValue
Simulate pressing of a button on a "Taster".
```ts
-sendTo("innoxel.0", "setDimValue", ":::", callback);
+sendTo(
+ "innoxel.0",
+ "setDimValue",
+ ":::",
+ callback
+);
// i.e. to set the value of channel 7 on dim module 1 to 80%
sendTo("innoxel.0", "setDimValue", "1:7:80");
sendTo("innoxel.0", "setDimValue", "1:7:80", () => {
- // do something after value has been set
+ // do something after value has been set
});
```
-- moduleId is the id/address of the dimmer module
-- channelId is channel of the dimmer on the module
-- dimValue is the value in percent to set (0-100)
-- dimSpeed (optional) is the dimming speed to use (0-15)
-- callback (optional) callback function to call when action has been performed
+- moduleId is the id/address of the dimmer module
+- channelId is channel of the dimmer on the module
+- dimValue is the value in percent to set (0-100)
+- dimSpeed (optional) is the dimming speed to use (0-15)
+- callback (optional) callback function to call when action has been performed
### setTemperature
Set heating or cooling temperature.
```ts
-sendTo("innoxel.0", "setTemperature", "::", callback);
+sendTo(
+ "innoxel.0",
+ "setTemperature",
+ "::",
+ callback
+);
// i.e. to set setTemperatureHeating to 20° on room climate module 0
sendTo("innoxel.0", "setTemperature", "1:setTemperature:20");
sendTo("innoxel.0", "setTemperature", "1:setTemperature:20", () => {
- // do something after the button press has been executed
+ // do something after the button press has been executed
});
```
-- moduleId is the id/address room climate module
-- temperatureType is the temperature type to set (absenceSetbackTemperatureCooling, absenceSetbackTemperatureHeating, nightSetbackTemperatureCooling, nightSetbackTemperatureHeating, setTemperatureCooling, setTemperatureHeating, )
-- temperature temperature to set, in 0.5° steps. There's also a min/max value depending on type
-- callback (optional) callback function to call when action has been performed
+- moduleId is the id/address room climate module
+- temperatureType is the temperature type to set (absenceSetbackTemperatureCooling, absenceSetbackTemperatureHeating, nightSetbackTemperatureCooling, nightSetbackTemperatureHeating, setTemperatureCooling, setTemperatureHeating, )
+- temperature temperature to set, in 0.5° steps. There's also a min/max value depending on type
+- callback (optional) callback function to call when action has been performed
## Changelog
@@ -125,64 +137,71 @@ sendTo("innoxel.0", "setTemperature", "1:setTemperature:20", () => {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.0.0 (2024-11-17)
+
+- (matthsc) drop support for Node 18
+- (matthsc) switch admin to json config
+- (matthsc) prepare for future controller versions (fix deprecation warnings)
+- (matthsc & dependabot) dependency updates
+
### 0.4.2 (2024-08-11)
-- (matthsc & dependabot) dependency updates
+- (matthsc & dependabot) dependency updates
### 0.4.1 (2024-03-23)
-- (matthsc) log soap messages in log level silly
-- (matthsc) fix another potential error when updating modules
-- (matthsc & dependabot) dependency updates
+- (matthsc) log soap messages in log level silly
+- (matthsc) fix another potential error when updating modules
+- (matthsc & dependabot) dependency updates
### 0.4.0 (2024-03-20)
-- (matthsc) fix potential error when processing identities
-- (matthsc) drop support for Node 16
+- (matthsc) fix potential error when processing identities
+- (matthsc) drop support for Node 16
### 0.3.1 (2023-05-23)
-- (matthsc) change actual value from temperature sensor if it doesn't provide values
-- (matthsc & dependabot) dependency updates
+- (matthsc) change actual value from temperature sensor if it doesn't provide values
+- (matthsc & dependabot) dependency updates
### 0.3.0 (2023-04-22)
-- (matthsc) allow to set heating/cooling temperatures
-- (matthsc & dependabot) dependency updates
+- (matthsc) allow to set heating/cooling temperatures
+- (matthsc & dependabot) dependency updates
### 0.2.0 (2022-09-28)
-- (matthsc) drop support for Node 12 and js-controller 3
-- (matthsc) implement migrations from create-adapter
-- (matthsc & dependabot) dependency updates
+- (matthsc) drop support for Node 12 and js-controller 3
+- (matthsc) implement migrations from create-adapter
+- (matthsc & dependabot) dependency updates
### 0.1.5 (2022-02-12)
-- (matthsc) don't always terminate adapter on errors while updating identities
-- (matthsc) improve error messages
+- (matthsc) don't always terminate adapter on errors while updating identities
+- (matthsc) improve error messages
### 0.1.4 (2022-01-25)
-- (matthsc) fix double decryption issues with password in adapter admin
-- (matthsc) change input field types in adapter admin
+- (matthsc) fix double decryption issues with password in adapter admin
+- (matthsc) change input field types in adapter admin
### 0.1.3 (2022-01-16)
-- (matthsc) improve error messages
+- (matthsc) improve error messages
### 0.1.2 (2022-01-07)
-- (matthsc) catch authentication errors
-- (matthsc) fix authentication
-- (matthsc) remove build folders from git
+- (matthsc) catch authentication errors
+- (matthsc) fix authentication
+- (matthsc) remove build folders from git
### 0.1.1 (2022-01-01)
-- (matthsc) implement adapter review feedback
+- (matthsc) implement adapter review feedback
### 0.1.0 (2021-12-30)
-- (matthsc) initial release
+- (matthsc) initial release
## License
diff --git a/docs/en/adapterref/iobroker.iot/README.md b/docs/en/adapterref/iobroker.iot/README.md
index 236693424..35e4baa7f 100644
--- a/docs/en/adapterref/iobroker.iot/README.md
+++ b/docs/en/adapterref/iobroker.iot/README.md
@@ -1,4 +1,5 @@
![Logo](admin/iot.png)
+
# ioBroker IoT Adapter
![Number of Installations](http://iobroker.live/badges/iot-installed.svg)
@@ -15,6 +16,7 @@ It is not for remote access to your ioBroker instance. Use ioBroker.cloud adapte
**This adapter uses Sentry libraries to automatically report exceptions and code errors to the developers.** For more details and for information how to disable the error reporting see [Sentry-Plugin Documentation](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry reporting is used starting with js-controller 3.0.
## Settings
+
To use the iot adapter, you should first register on the ioBroker cloud [https://iobroker.pro](https://iobroker.pro).
[Reference to google API type settings](https://developers.google.com/actions/smarthome/guides/)
@@ -22,21 +24,25 @@ To use the iot adapter, you should first register on the ioBroker cloud [https:/
![Intro](img/intro.png)
### Language
+
If you select "default" language, the smart names of devices and of enumerations will not be translated. If some language is specified, all known names will be translated into this language.
It is done to switch fast between many languages for demonstration purposes.
### Place function in names first
+
Change the order of function and roles in self-generated names:
-- if false: "Room function", e.g. "Living room dimmer"
-- if true: "Function room", e.g. "Dimmer living room"
+- if false: "Room function", e.g. "Living room dimmer"
+- if true: "Function room", e.g. "Dimmer living room"
### Concatenate words with
+
You can define the word which will be placed between function and room. E.g. "in" and from "Dimmer living room" will be "Dimmer in living room".
But it is not suggested doing so, because recognition engine must analyze one more word, and it can lead to misunderstandings.
### OFF level for switches
+
Some groups consist of mixed devices: dimmers and switches. It is allowed to control them with "ON" and "OFF" commands and with percents.
If command is `Set to 30%` and the `OFF level is 30%` so the switches will be turned on. By command "Set to 25%" all switches will be turned OFF.
@@ -45,28 +51,31 @@ Later when the new "ON" command comes, the adapter will switch the dimmer not to
Example:
-- Assume, that *OFF level* is 30%.
-- Virtual device "Light" has two physical devices: *switch* and *dimmer*.
-- Command: "set the light to 40%". The adapter will remember this value for *dimmer*, will set it for "dimmer" and will turn the *switch* ON.
-- Command: "turn the light off". The adapter will set the *dimmer* to 0% and will turn off the *switch*.
-- Command: "turn on the light". *dimmer* => 40%, *switch* => ON.
-- Command: "set the light to 20%". *dimmer* => 20%, *switch* => OFF. The value for dimmer will not be remembered, because it is bellow *OFF level*.
-- Command: "turn on the light". *dimmer* => 40%, *switch* => ON.
+- Assume, that _OFF level_ is 30%.
+- Virtual device "Light" has two physical devices: _switch_ and _dimmer_.
+- Command: "set the light to 40%". The adapter will remember this value for _dimmer_, will set it for "dimmer" and will turn the _switch_ ON.
+- Command: "turn the light off". The adapter will set the _dimmer_ to 0% and will turn off the _switch_.
+- Command: "turn on the light". _dimmer_ => 40%, _switch_ => ON.
+- Command: "set the light to 20%". _dimmer_ => 20%, _switch_ => OFF. The value for dimmer will not be remembered, because it is bellow _OFF level_.
+- Command: "turn on the light". _dimmer_ => 40%, _switch_ => ON.
### by ON
+
You can select the behavior of ON command will come for the number state. The specific value can be selected, or the last non-zero value will be used.
### Write response to
-For every command, the text response will be generated. You can define here the Object ID, where this text must be written to. E.g. *sayit.0.tts.text*.
+
+For every command, the text response will be generated. You can define here the Object ID, where this text must be written to. E.g. _sayit.0.tts.text_.
### Colors
+
The channel needs 3-5 states with the following roles:
-- `level.color.saturation` - required for detection of the channel,
-- `level.color.hue`,
-- `level.dimmer`,
-- `switch` - optional,
-- `level.color.temperature` (optional)
+- `level.color.saturation` - required for detection of the channel,
+- `level.color.hue`,
+- `level.dimmer`,
+- `switch` - optional,
+- `level.color.temperature` (optional)
```
Alexa, set the "device name" to "color"
@@ -76,6 +85,7 @@ Alexa, change the kitchen to the color chocolate
```
### Lock
+
To have the possibility to lock the locks, the state must have the role `switch.lock` and have `native.LOCK_VALUE` to determine the lock state.
If you need a separate Value to control the Lock, you can use `native.CONTROL VALUE`.
@@ -85,6 +95,7 @@ Alexa, lock the "lock name"
```
## How names will be generated
+
The adapter tries to generate virtual devices for smart home control (e.g., Amazon Alexa or Google Home).
There are two important enumerations for that: rooms and functions.
@@ -94,18 +105,18 @@ Functions are like: light, blind, heating.
The following conditions must be met to get the state in the automatically generated list:
-- the state must be in some "function" enumeration.
-- the state must have a role ("state", "switch" or "level.*", e.g., level.dimmer) if not directly included in "functions".
-It can be that the channel is in the "functions", but state itself not.
-- the state must be writable: `common.write` = true
-- the state dimmer must have `common.type` as 'number'
-- the state heating must have `common.unit` as '°C', '°F' or '°K' and `common.type` as `number`
+- the state must be in some "function" enumeration.
+- the state must have a role ("state", "switch" or "level.\*", e.g., level.dimmer) if not directly included in "functions".
+ It can be that the channel is in the "functions", but state itself not.
+- the state must be writable: `common.write` = true
+- the state dimmer must have `common.type` as 'number'
+- the state heating must have `common.unit` as '°C', '°F' or '°K' and `common.type` as `number`
If the state is only in "functions" and not in any "room", the name of state will be used.
-The state names will be generated from function and room. E.g., all *lights* in the *living room* will be collected in the virtual device *living room light*.
+The state names will be generated from function and room. E.g., all _lights_ in the _living room_ will be collected in the virtual device _living room light_.
The user cannot change this name, because it is generated automatically.
-But if the enumeration name changes, this name will be changed too. (e.g., function "light" changed to "lights", so the *living room light* will be changed to *living room lights*)
+But if the enumeration name changes, this name will be changed too. (e.g., function "light" changed to "lights", so the _living room light_ will be changed to _living room lights_)
All the rules will be ignored if the state has common.smartName. In this case, just the smart name will be used.
@@ -120,31 +131,37 @@ If the group has more than one state, the group must be renamed via the enumerat
To create own groups, the user can install "scenes" adapter or create "script" in JavaScript adapter.
### Replaces
+
You can specify strings that could be automatically replaced in the device names. E.g., if you set replaces to:
`.STATE,.LEVEL`, so all `.STATE` and `.LEVEL` will be deleted from names. Be careful with spaces.
If you set `.STATE, .LEVEL`, so `.STATE` and `.LEVEL` will be replaced and not `.LEVEL`.
## Helper states
-- `smart.lastObjectID`: This state will be set if only one device was controlled by home skill (alexa, google home).
-- `smart.lastFunction`: Function name (if exists) for which last command was executed.
-- `smart.lastRoom`: Room name (if exists) for which last command was executed.
-- `smart.lastCommand`: Last executed command. Command can be: `true(ON)`, `false(OFF)`, `number(%)`, `-X(decrease at x)`, `+X(increase at X)`
-- `smart.lastResponse`: Textual response on command. It can be sent to some `text2speech` (`sayit`) engine.
+
+- `smart.lastObjectID`: This state will be set if only one device was controlled by home skill (alexa, google home).
+- `smart.lastFunction`: Function name (if exists) for which last command was executed.
+- `smart.lastRoom`: Room name (if exists) for which last command was executed.
+- `smart.lastCommand`: Last executed command. Command can be: `true(ON)`, `false(OFF)`, `number(%)`, `-X(decrease at x)`, `+X(increase at X)`
+- `smart.lastResponse`: Textual response on command. It can be sent to some `text2speech` (`sayit`) engine.
## Toggle mode
+
Alexa v3 supports toggle mode.
It means that if you say "Alexa, turn on the light" and the light is already on, it will be turned off.
## IFTTT
+
[instructions](doc/ifttt.md)
## Google Home
+
If you see the following error message in the log: `[GHOME] Invalid URL Pro key. Status auto-update is disabled you can set states but receive states only manually`.
So you must generate the URL-Key anew:
![Url key](img/url_key.png)
## Services
+
There is a possibility to send messages to cloud adapter.
If you call `[POST]https://service.iobroker.in/v1/iotService?service=custom_&key=&user=` und value as payload.
@@ -154,9 +171,9 @@ or
`[GET]https://service.iobroker.in/v1/iotService?service=custom_&key=&user=&data=myString`
-If you set in the settings the field teh "White list for services" the name `custom_test`, and call with "custom_test" as the service name, the state **cloud.0.services.custom_test** will be set to *myString*.
+If you set in the settings the field teh "White list for services" the name `custom_test`, and call with "custom_test" as the service name, the state **cloud.0.services.custom_test** will be set to _myString_.
-You may write "*" in the white list and all services will be allowed.
+You may write "\*" in the white list and all services will be allowed.
Here you can find instructions on how to use it with [tasker](doc/tasker.md).
@@ -165,61 +182,70 @@ IFTTT service is allowed only if an IFTTT key is set.
Reserved names are `ifttt`, `text2command`, `simpleApi`, `swagger`. These must be used without the `custom_` prefix.
You can ask by message the valid URL for service too:
+
```js
-sendTo('iot.0', 'getServiceEndpoint', {serviceName: 'custom_myService'}, result =>
- console.log(JSON.stringify(result)));
- // Output: {"result":
- // {"url": "https://service.iobroker.in/v1/iotService?key=xxx&user=uuu&service=custom_myService",
- // "stateID":"iot.0.services.myService",
- // "warning":"Service name is not in white list"
- // }}
+sendTo('iot.0', 'getServiceEndpoint', { serviceName: 'custom_myService' }, result =>
+ console.log(JSON.stringify(result)),
+);
+// Output: {"result":
+// {"url": "https://service.iobroker.in/v1/iotService?key=xxx&user=uuu&service=custom_myService",
+// "stateID":"iot.0.services.myService",
+// "warning":"Service name is not in white list"
+// }}
```
### `text2command`
-You may write `text2command` in white list, you can send POST request to `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=` to write data into *text2command.X.text* variable.
+
+You may write `text2command` in white list, you can send POST request to `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=` to write data into _text2command.X.text_ variable.
You can use GET method too `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=&data=`
`X` can be defined in settings by the "Use text2command instance" option.
## Custom skill
+
The answers for the custom skill can be processed in two ways:
-- `text2command`
-- `javascript`
+
+- `text2command`
+- `javascript`
### `text2command`
+
if `text2command` instance is defined in the configuration dialog, so the question will be sent to the instance.
`text2command` must be configured that the expected phrase will be parsed and the answer will be given back.
### `Javascript`
+
There is a possibility to process the question directly with the script. It is activated by default if no `text2command` instance is selected.
-If `text2command` instance is defined, so this instance must provide the answer and the answer from *script* will be ignored.
+If `text2command` instance is defined, so this instance must provide the answer and the answer from _script_ will be ignored.
The adapter will provide the details in two states with different detail level
-* `smart.lastCommand` contains the received text including info about the type of query (intent). Example: `askDevice Status Rasenmäher`
-* `smart.lastCommandObj` contains an JSON string that can be parsed to an object containing the following information
- * `words` contain the received words in an array
- * `intent` contains the type of query. Possible values currently are:
- * v1 Skill: `askDevice`, `controlDevice`, `actionStart`, `actionEnd`, `askWhen`, `askWhere`, `askWho`
- * v2 Skill: `queryIntent` when the full said text was captured, `controlDevice` for fallback with only partial text
- * `deviceId` contains a deviceId identifying the device the request was sent to, delivered by Amazon, will be empty string if not provided
- * `deviceRoom` contains a mapped room identifier you can configure in iot admin UI for collected deviceIds
- * `sessionId` contains a sessionId of the Skill session, should be the same if multiple commands were spoken, delivered by Amazon, will be empty string if not provided
- * `userId` contains a userId from the device owner (or maybe later the user that was interacting with the skill), delivered by Amazon, will be empty string if not provided
- * `userName` contains a mapped username you can configure in iot admin UI for collected userIds
-
- More details on how the words are detected and what type of queries the Alexa Custom Skill differentiates, please check https://forum.iobroker.net/viewtopic.php?f=37&t=17452 .
+
+- `smart.lastCommand` contains the received text including info about the type of query (intent). Example: `askDevice Status Rasenmäher`
+- `smart.lastCommandObj` contains an JSON string that can be parsed to an object containing the following information
+ - `words` contain the received words in an array
+ - `intent` contains the type of query. Possible values currently are:
+ - v1 Skill: `askDevice`, `controlDevice`, `actionStart`, `actionEnd`, `askWhen`, `askWhere`, `askWho`
+ - v2 Skill: `queryIntent` when the full said text was captured, `controlDevice` for fallback with only partial text
+ - `deviceId` contains a deviceId identifying the device the request was sent to, delivered by Amazon, will be empty string if not provided
+ - `deviceRoom` contains a mapped room identifier you can configure in iot admin UI for collected deviceIds
+ - `sessionId` contains a sessionId of the Skill session, should be the same if multiple commands were spoken, delivered by Amazon, will be empty string if not provided
+ - `userId` contains a userId from the device owner (or maybe later the user that was interacting with the skill), delivered by Amazon, will be empty string if not provided
+ - `userName` contains a mapped username you can configure in iot admin UI for collected userIds
+
+More details on how the words are detected and what type of queries the Alexa Custom Skill differentiates, please check https://forum.iobroker.net/viewtopic.php?f=37&t=17452 .
**Return result via smart.lastResponse state**
The response needs to be sent within 200ms in the state `smart.lastResponse`, and can be a simple text string or a JSON object.
If it is a text string, then this text will be sent as a response to the skill.
If the text is a JSON object, then the following keys can be used:
-* `responseText` needs to contain the text to return to Amazon
-* `shouldEndSession` is a boolean and controls if the session is closed after the response was spoken or stays open to accept another voice input.
-* `sessionId` needs to contain the sessionId the response is meant for. Ideally, provide it to allow concurrent sessions. If not provided, the first session that expects a response is assumed.
+
+- `responseText` needs to contain the text to return to Amazon
+- `shouldEndSession` is a boolean and controls if the session is closed after the response was spoken or stays open to accept another voice input.
+- `sessionId` needs to contain the sessionId the response is meant for. Ideally, provide it to allow concurrent sessions. If not provided, the first session that expects a response is assumed.
**Return result via the message to iot instance**
@@ -227,24 +253,26 @@ The iot instance also accepts a message with the name "alexaCustomResponse" cont
There will be no response from the iot instance to the message!
**Example of a script that uses texts**
+
```js
// important, that ack=true
-on({id: 'iot.0.smart.lastCommand', ack: true, change: 'any'}, obj => {
+on({ id: 'iot.0.smart.lastCommand', ack: true, change: 'any' }, obj => {
// you have 200ms to prepare the answer and to write it into iot.X.smart.lastResponse
setState('iot.0.smart.lastResponse', 'Received phrase is: ' + obj.state.val); // important, that ack=false (default)
});
```
**Example of a script that uses JSON objects**
+
```js
// important, that ack=true
-on({id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any'}, obj => {
+on({ id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any' }, obj => {
// you have 200ms to prepare the answer and to write it into iot.X.smart.lastResponse
const request = JSON.parse(obj.state.val);
const response = {
- 'responseText': 'Received phrase is: ' + request.words.join(' ') + '. Bye',
- 'shouldEndSession': true,
- 'sessionId': request.sessionId
+ responseText: 'Received phrase is: ' + request.words.join(' ') + '. Bye',
+ shouldEndSession: true,
+ sessionId: request.sessionId,
};
// Return response via state
@@ -255,8 +283,8 @@ on({id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any'}, obj => {
});
```
-
### Private cloud
+
If you use private skill/action/навык for communication with `Alexa/Google Home/Алиса` so you have the possibility to use IoT instance to process the requests from it.
E.g. for `yandex alice`:
@@ -264,24 +292,28 @@ E.g. for `yandex alice`:
```js
const OBJECT_FROM_ALISA_SERVICE = {}; // object from alisa service or empty object
OBJECT_FROM_ALISA_SERVICE.alisa = '/path/v1.0/user/devices'; // called URL, 'path' could be any text, but it must be there
-sendTo('iot.0', 'private', {type: 'alisa', request: OBJECT_FROM_ALISA_SERVICE}, response => {
+sendTo('iot.0', 'private', { type: 'alisa', request: OBJECT_FROM_ALISA_SERVICE }, response => {
// Send this response back to alisa service
console.log(JSON.stringify(response));
});
```
The following types are supported:
-- `alexa` - acting with Amazon Alexa or Amazon Custom Skill
-- `ghome` - acting with Google Actions via Google Home
-- `alisa` - acting with Yandex Алиса
-- `ifttt` - acting like IFTTT (actually not required, but for tests purposes)
+
+- `alexa` - acting with Amazon Alexa or Amazon Custom Skill
+- `ghome` - acting with Google Actions via Google Home
+- `alisa` - acting with Yandex Алиса
+- `ifttt` - acting like IFTTT (actually not required, but for tests purposes)
## Yandex Алиса
+
[instructions](doc/alisa.md)
## Send messages to app
+
From version 1.15.x you can send messages to `ioBroker.visu` application (Android and iOS).
For that, you need to write the following states:
+
```
setState('iot.0.app.expire', 60); // optional. Time in seconds
setState('iot.0.app.priority', 'normal'); // optional. Priority: 'high' or 'normal'
@@ -290,16 +322,18 @@ setState('iot.0.app.message', 'Message text'); // important, that ack=false (def
// or just one state
// only is message is mandatory. All other are optional
-setState('iot.0.app.message', JSON.stringify({
+setState('iot.0.app.message', JSON.stringify({
message: 'Message text',
title: 'ioBroker',
expire: 60,
priority: 'normal'
})); // important, that ack=false (default)
```
+
## Todo
-- Smart names must have higher priority as groups
-- Devices should be grouped by smart name
+
+- Smart names must have higher priority as groups
+- Devices should be grouped by smart name
## Changelog
+### 3.4.3 (2024-11-05)
+
+- (@GermanBluefox) corrected the addition of the devices for Alexa
+- (@GermanBluefox) changed compilation of GUI to remove deprecated packages
+
### 3.4.2 (2024-09-17)
-* (@GermanBluefox) Updated GUI packages and removed `gulp`
-* (@foxriver76) do not override custom `result` attribute on `sendToAdapter` response (Visu App - only relevant for developers)
+
+- (@GermanBluefox) Updated GUI packages and removed `gulp`
+- (@foxriver76) do not override custom `result` attribute on `sendToAdapter` response (Visu App - only relevant for developers)
### 3.4.0 (2024-08-26)
-* (@foxriver76) added new commands for the visu app
-* (bluefox) updated packages
-* (bluefox) Migrated GUI for admin v7
+
+- (@foxriver76) added new commands for the visu app
+- (bluefox) updated packages
+- (bluefox) Migrated GUI for admin v7
### 3.3.0 (2024-05-09)
-* (foxriver76) Fix error on reconnecting
-* (foxriver76) prepared adapter for new ioBroker Visu app states
-* (bluefox) updated packages
+
+- (foxriver76) Fix error on reconnecting
+- (foxriver76) prepared adapter for new ioBroker Visu app states
+- (bluefox) updated packages
### 3.2.2 (2024-04-11)
-* (foxriver76) remove some warnings that should only be debug log
+
+- (foxriver76) remove some warnings that should only be debug log
### 3.2.1 (2024-04-11)
-* (foxriver76) fixed issue that only valid JSON could be sent to app via message state
+
+- (foxriver76) fixed issue that only valid JSON could be sent to app via message state
### 3.2.0 (2024-04-10)
-* (foxriver76) implemented geofence with ioBroker Visu app
+
+- (foxriver76) implemented geofence with ioBroker Visu app
### 3.1.0 (2024-02-05)
-* (bluefox) Updated packages
-* (bluefox) Disabled the state change report for alexa v3
+
+- (bluefox) Updated packages
+- (bluefox) Disabled the state change report for alexa v3
### 3.0.0 (2023-10-24)
-* (bluefox) Updated packages
-* (bluefox) The minimal supported node.js version is 16
+
+- (bluefox) Updated packages
+- (bluefox) The minimal supported node.js version is 16
### 2.0.11 (2023-06-20)
-* (bluefox) Added support for the state toggling (alexa 3)
-* (bluefox) Done small improvements for alexa 3
+
+- (bluefox) Added support for the state toggling (alexa 3)
+- (bluefox) Done small improvements for alexa 3
### 2.0.9 (2023-06-15)
-* (bluefox) Working on support for amazon alexa v3
+
+- (bluefox) Working on support for amazon alexa v3
### 2.0.2 (2023-06-05)
-* (bluefox) Added support for amazon alexa v3
-* (bluefox) Removed support for sugar blood indication
+
+- (bluefox) Added support for amazon alexa v3
+- (bluefox) Removed support for sugar blood indication
### 1.14.6 (2023-05-12)
-* (bluefox) Corrected translations
+
+- (bluefox) Corrected translations
### 1.14.5 (2023-03-01)
-* (bluefox) Corrected names of enums in GUI
+
+- (bluefox) Corrected names of enums in GUI
### 1.14.3 (2023-01-10)
-* (kirovilya) Fixed processing for lights with CT and RGB in Alisa
+
+- (kirovilya) Fixed processing for lights with CT and RGB in Alisa
### 1.14.2 (2022-12-23)
-* (bluefox) Updated GUI packages
+
+- (bluefox) Updated GUI packages
### 1.14.1 (2022-12-22)
-* (bluefox) Downgraded the axios version to 0.27.2
+
+- (bluefox) Downgraded the axios version to 0.27.2
### 1.14.0 (2022-12-13)
-* (bluefox) Added netatmo support
+
+- (bluefox) Added netatmo support
### 1.13.0 (2022-12-08)
-* (Apollon77) Added support vor Custom Skill v2
+
+- (Apollon77) Added support vor Custom Skill v2
### 1.12.5 (2022-11-09)
-* (bluefox) Small changes on configuration GUI
+
+- (bluefox) Small changes on configuration GUI
### 1.12.4 (2022-11-03)
-* (bluefox) Added ukrainian language
-* (bluefox) Corrected blockly for unknown languages
+
+- (bluefox) Added ukrainian language
+- (bluefox) Corrected blockly for unknown languages
### 1.12.2 (2022-10-01)
-* (Apollon77) Fixed crash case
+
+- (Apollon77) Fixed crash case
### 1.12.1 (2022-09-27)
-* (bluefox) Corrected error in GUI with empty password
+
+- (bluefox) Corrected error in GUI with empty password
### 1.12.0 (2022-09-27)
-* (Apollon77) Do not control saturation with a percentage request via alexa
-* (bluefox) Migrated GUI to v5
+
+- (Apollon77) Do not control saturation with a percentage request via alexa
+- (bluefox) Migrated GUI to v5
### 1.11.9 (2022-07-22)
-* (Apollon77) Fix temperature controlling for thermostats via alexa
+
+- (Apollon77) Fix temperature controlling for thermostats via alexa
### 1.11.8 (2022-06-24)
-* (Apollon77) Update dependencies to allow better automatic rebuild
+
+- (Apollon77) Update dependencies to allow better automatic rebuild
### 1.11.7 (2022-06-13)
-* (bluefox) Tried to correct URL key creation for Google home
+
+- (bluefox) Tried to correct URL key creation for Google home
### 1.11.5 (2022-06-03)
-* (kirovilya) Alisa: update for binary-sensor "motion" and "contact"
+
+- (kirovilya) Alisa: update for binary-sensor "motion" and "contact"
### 1.11.4 (2022-03-29)
-* (Apollon77) Fix crash cases reported by Sentry
+
+- (Apollon77) Fix crash cases reported by Sentry
### 1.11.3 (2022-03-23)
-* (bluefox) Added the generation of URL key for services
+
+- (bluefox) Added the generation of URL key for services
### 1.11.2 (2022-03-20)
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3P)
+
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3P)
### 1.11.1 (2022-03-18)
-* (Apollon77) Optimize logging when many devices are used
+
+- (Apollon77) Optimize logging when many devices are used
### 1.11.0 (2022-03-17)
-* (Apollon77) Also support "stored" when a rgb state is turned on/off
-* (Apollon77) Fixed control percent value to respect min/max correctly
-* (bluefox) Support for response messages longer than 128k (zip)
+
+- (Apollon77) Also support "stored" when a rgb state is turned on/off
+- (Apollon77) Fixed control percent value to respect min/max correctly
+- (bluefox) Support for response messages longer than 128k (zip)
### 1.10.0 (2022-03-09)
-* (Apollon77) Respect min/max when calculating the value for byOn with % values
+
+- (Apollon77) Respect min/max when calculating the value for byOn with % values
### 1.9.7 (2022-02-20)
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3C)
+
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3C)
### 1.9.6 (2022-02-19)
-* (Apollon77) Make sure to not remember the off value when using stored values for on
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3A)
+
+- (Apollon77) Make sure to not remember the off value when using stored values for on
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3A)
### 1.9.5 (2022-02-08)
-* (bluefox) Fixed Google home error with color control
+
+- (bluefox) Fixed Google home error with color control
### 1.9.4 (2022-02-08)
-* (bluefox) Fixed error with the certificates fetching
+
+- (bluefox) Fixed error with the certificates fetching
### 1.9.3 (2022-02-03)
-* (bluefox) Removed deprecated package `request`
-* (bluefox) Refactoring and better error handling
+
+- (bluefox) Removed deprecated package `request`
+- (bluefox) Refactoring and better error handling
### 1.9.2 (2022-01-26)
-* (bluefox) Added experimental support for remote access
+
+- (bluefox) Added experimental support for remote access
### 1.8.25 (2021-11-18)
-* (bluefox) Corrected the enabling of the category
+
+- (bluefox) Corrected the enabling of the category
### 1.8.24 (2021-09-19)
-* (bluefox) Respect the min/max limits by controlling
+
+- (bluefox) Respect the min/max limits by controlling
### 1.8.23 (2021-09-18)
-* (bluefox) Fixed the response for the heating control
+
+- (bluefox) Fixed the response for the heating control
### 1.8.22 (2021-05-16)
-* (bluefox) Make it admin4 compatible
+
+- (bluefox) Make it admin4 compatible
### 1.8.21 (2021-05-16)
-* (bluefox) Fixed the encryption of the password. Warning: if you see the message in the log, that password is invalid, please enter the password in configuration dialog one more time and save.
+
+- (bluefox) Fixed the encryption of the password. Warning: if you see the message in the log, that password is invalid, please enter the password in configuration dialog one more time and save.
### 1.8.20 (2021-05-16)
-* (foxriver76) we now write data received from custom services with the acknowledge flag
+
+- (foxriver76) we now write data received from custom services with the acknowledge flag
### 1.8.19 (2021-05-14)
-* (bluefox) Only added one debug output
+
+- (bluefox) Only added one debug output
### 1.8.16 (2021-03-13)
-* (bluefox) fixed the blind functionality in alisa
+
+- (bluefox) fixed the blind functionality in alisa
### 1.8.15 (2021-03-12)
-* (bluefox) implemented the sensor functionality in alisa
+
+- (bluefox) implemented the sensor functionality in alisa
### 1.8.14 (2021-03-12)
-* (bluefox) allowed the control of the blinds in alisa
+
+- (bluefox) allowed the control of the blinds in alisa
### 1.8.13 (2021-02-04)
-* (Apollon77) add missing object smart.lastObjectID
+
+- (Apollon77) add missing object smart.lastObjectID
### 1.8.12 (2021-02-02)
-* (bluefox) Fixed the dimmer issue with alisa.
+
+- (bluefox) Fixed the dimmer issue with alisa.
### 1.8.11 (2021-01-20)
-* (Morluktom) Alexa - Corrected the request for percentage values
+
+- (Morluktom) Alexa - Corrected the request for percentage values
### 1.8.10 (2021-01-20)
-* (bluefox) Added the reconnection strategy if DNS address cannot be resolved
+
+- (bluefox) Added the reconnection strategy if DNS address cannot be resolved
### 1.8.9 (2020-12-27)
-* (bluefox) Updated configuration GUI to the latest state
+
+- (bluefox) Updated configuration GUI to the latest state
### 1.8.8 (2020-12-14)
-* (bluefox) Corrected the "Google home" error
+
+- (bluefox) Corrected the "Google home" error
### 1.8.6 (2020-12-13)
-* (bluefox) Try to fix google home error
+
+- (bluefox) Try to fix google home error
### 1.8.5 (2020-11-23)
-* (bluefox) Corrected the configuration table for Google home
+
+- (bluefox) Corrected the configuration table for Google home
### 1.8.4 (2020-11-18)
-* (bluefox) Corrected the configuration table for Google home
+
+- (bluefox) Corrected the configuration table for Google home
### 1.8.3 (2020-11-16)
-* (bluefox) Trying to fix the set to false at start for Google home
+
+- (bluefox) Trying to fix the set to false at start for Google home
### 1.8.2 (2020-11-15)
-* (bluefox) Added the debug outputs for Google home
+
+- (bluefox) Added the debug outputs for Google home
### 1.8.1 (2020-11-13)
-* (bluefox) The deletion of google home devices was corrected
+
+- (bluefox) The deletion of google home devices was corrected
### 1.8.0 (2020-11-12)
-* (bluefox) The Google home table was rewritten
+
+- (bluefox) The Google home table was rewritten
### 1.7.15 (2020-11-05)
-* (Morluktom) Corrected the request for temperature
+
+- (Morluktom) Corrected the request for temperature
### 1.7.14 (2020-11-05)
-* (bluefox) Updated the select ID dialog.
+
+- (bluefox) Updated the select ID dialog.
### 1.7.12 (2020-09-25)
-* (bluefox) Updated the select ID dialog.
+
+- (bluefox) Updated the select ID dialog.
### 1.7.9 (2020-09-17)
-* (bluefox) Updated GUI for config.
+
+- (bluefox) Updated GUI for config.
### 1.7.7 (2020-09-02)
-* (bluefox) Added information about changed linking process.
+
+- (bluefox) Added information about changed linking process.
### 1.7.6 (2020-08-25)
-* (bluefox) Some colors were changed in the dark mode.
+
+- (bluefox) Some colors were changed in the dark mode.
### 1.7.5 (2020-08-21)
-* (Apollon77) Crash prevented (Sentry IOBROKER-IOT-W)
-* (bluefox) Values for modes will be converted to number in Alisa
+
+- (Apollon77) Crash prevented (Sentry IOBROKER-IOT-W)
+- (bluefox) Values for modes will be converted to number in Alisa
### 1.7.3 (2020-08-16)
-* (bluefox) Added vacuum cleaner to Alisa
+
+- (bluefox) Added vacuum cleaner to Alisa
### 1.7.1 (2020-08-16)
-* (bluefox) Added blinds, lock and thermostat to Alisa
+
+- (bluefox) Added blinds, lock and thermostat to Alisa
### 1.6.4 (2020-08-06)
-* (Apollon77) crash prevented (Sentry IOBROKER-IOT-V)
+
+- (Apollon77) crash prevented (Sentry IOBROKER-IOT-V)
### 1.6.3 (2020-08-04)
-* (bluefox) Added french letters to allowed symbols
+
+- (bluefox) Added french letters to allowed symbols
### 1.6.1 (2020-07-10)
-* (bluefox) Used new SelectID Dialog in GUI
+
+- (bluefox) Used new SelectID Dialog in GUI
### 1.5.3 (2020-05-28)
-* (bluefox) Small change for nightscout
+
+- (bluefox) Small change for nightscout
### 1.5.2 (2020-05-21)
-* (bluefox) Changed requirements for password
-* (bluefox) Do not try to load the "sharp" if the blood sugar not enabled
+
+- (bluefox) Changed requirements for password
+- (bluefox) Do not try to load the "sharp" if the blood sugar not enabled
### 1.4.18 (2020-05-11)
-* (Apollon77) Make sure that invalid configured states or values without a timestamp do not crash adapter (Sentry IOBROKER-IOT-8)
-* (Apollon77) Make sure publishes after the disconnect to not break adapter (Sentry IOBROKER-IOT-A)
+
+- (Apollon77) Make sure that invalid configured states or values without a timestamp do not crash adapter (Sentry IOBROKER-IOT-8)
+- (Apollon77) Make sure publishes after the disconnect to not break adapter (Sentry IOBROKER-IOT-A)
### 1.4.17 (2020-05-11)
-* (bluefox) Better error output is implemented
+
+- (bluefox) Better error output is implemented
### 1.4.14 (2020-05-01)
-* (bluefox) Fixed the problem if admin is not on 8081 port
+
+- (bluefox) Fixed the problem if admin is not on 8081 port
### 1.4.12 (2020-04-30)
-* (Apollon77) error case handled where system.config objects does not exist (Sentry IOBROKER-IOT-5)
+
+- (Apollon77) error case handled where system.config objects does not exist (Sentry IOBROKER-IOT-5)
### 1.4.11 (2020-04-26)
-* (bluefox) fixed IOBROKER-IOT-REACT-F
+
+- (bluefox) fixed IOBROKER-IOT-REACT-F
### 1.4.10 (2020-04-24)
-* (bluefox) Fixed crashes reported by sentry
+
+- (bluefox) Fixed crashes reported by sentry
### 1.4.7 (2020-04-23)
-* fixed iot crash when timeouts in communications to Google happens (Sentry IOBROKER-IOT-2)
-* fixed iot crash when google answers without customData (Sentry IOBROKER-IOT-1)
+
+- fixed iot crash when timeouts in communications to Google happens (Sentry IOBROKER-IOT-2)
+- fixed iot crash when google answers without customData (Sentry IOBROKER-IOT-1)
### 1.4.6 (2020-04-18)
-* (Apollon77) Add the Sentry error reporting to `React Frontend`
+
+- (Apollon77) Add the Sentry error reporting to `React Frontend`
### 1.4.4 (2020-04-14)
-* (Apollon77) remove js-controller 3.0 warnings and replace `adapter.objects` access
-* (Apollon77) add linux dependencies for canvas library
-* (Apollon77) add sentry configuration
+
+- (Apollon77) remove js-controller 3.0 warnings and replace `adapter.objects` access
+- (Apollon77) add linux dependencies for canvas library
+- (Apollon77) add sentry configuration
### 1.4.2 (2020-04-08)
-* (TA2k) Fix updateState for Google Home
+
+- (TA2k) Fix updateState for Google Home
### 1.4.1 (2020-04-04)
-* (bluefox) The blood glucose request supported now
+
+- (bluefox) The blood glucose request supported now
### 1.3.4 (2020-02-26)
-* (TA2k) Fixed deconz issues in Google Home
+
+- (TA2k) Fixed deconz issues in Google Home
### 1.3.3 (2020-02-12)
-* (Apollon77) fix alisa error with invalid smartName attributes
+
+- (Apollon77) fix alisa error with invalid smartName attributes
### 1.3.2 (2020-02-10)
-* (Apollon77) usage with all kinds of admin ports and reverse proxies optimized
+
+- (Apollon77) usage with all kinds of admin ports and reverse proxies optimized
### 1.3.1 (2020-02-09)
-* (Apollon77) Dependency updates
-* (Apollon77) Make compatible with Admin > 4.0 because of updated socket.io
+
+- (Apollon77) Dependency updates
+- (Apollon77) Make compatible with Admin > 4.0 because of updated socket.io
### 1.2.1 (2020-01-18)
-* (bluefox) Fixed problem if the port of admin is not 8081
+
+- (bluefox) Fixed problem if the port of admin is not 8081
### 1.2.0 (2020-01-04)
-* (TA2k) Google Home handling and visualization improved.
+
+- (TA2k) Google Home handling and visualization improved.
### 1.1.10 (2020-01-03)
-* (bluefox) Now is allowed to select the temperature values as alexa states
-* (bluefox) Allowed the setting type immediately after insertion of new state
+
+- (bluefox) Now is allowed to select the temperature values as alexa states
+- (bluefox) Allowed the setting type immediately after insertion of new state
### 1.1.9 (2019-11-27)
-* (bluefox) Fixed: sometimes the configuration could not be loaded
+
+- (bluefox) Fixed: sometimes the configuration could not be loaded
### 1.1.8 (2019-09-12)
-* (bluefox) Optimization of google home communication was done
+
+- (bluefox) Optimization of google home communication was done
### 1.1.7 (2019-09-11)
-* (bluefox) The sending rate to google home is limited now
+
+- (bluefox) The sending rate to google home is limited now
### 1.1.6 (2019-09-11)
-* (TA2k) Room fix for Google Home and LinkedDevices
+
+- (TA2k) Room fix for Google Home and LinkedDevices
### 1.1.4 (2019-09-10)
-* (bluefox) decreased keepalive value to fix issue with disconnect
+
+- (bluefox) decreased keepalive value to fix issue with disconnect
### 1.1.3 (2019-09-09)
-* (TA2k) Google Home problem fixed with LinkedDevices
+
+- (TA2k) Google Home problem fixed with LinkedDevices
### 1.1.0 (2019-09-06)
-* (bluefox) Added support of aliases
+
+- (bluefox) Added support of aliases
### 1.0.8 (2019-09-03)
-* (TA2k) Improved support for Google Home
-* (TA2k) Added auto detection for RGB, RGBSingle, Hue, CT, MediaDevice, Switch, Info, Socket, Light, Dimmer, Thermostat, WindowTilt, Blinds, Slider
-* (TA2k) Added support for manually adding states as devices
-* (TA2k) Fix update state after Sync
-* (TA2k) Added typical Google Home devices and traits/actions
-* (TA2k) Fix only process update message when Alexa is checked in the options
+
+- (TA2k) Improved support for Google Home
+- (TA2k) Added auto detection for RGB, RGBSingle, Hue, CT, MediaDevice, Switch, Info, Socket, Light, Dimmer, Thermostat, WindowTilt, Blinds, Slider
+- (TA2k) Added support for manually adding states as devices
+- (TA2k) Fix update state after Sync
+- (TA2k) Added typical Google Home devices and traits/actions
+- (TA2k) Fix only process update message when Alexa is checked in the options
### 1.0.4 (2019-08-01)
-* (bluefox) Fixed password encoding. Please enter password anew!
+
+- (bluefox) Fixed password encoding. Please enter password anew!
### 1.0.3 (2019-07-30)
-* (bluefox) Fixed language issues for google home and yandex alice
+
+- (bluefox) Fixed language issues for google home and yandex alice
### 1.0.1 (2019-07-26)
-* (bluefox) Support of private skills/actions was added.
+
+- (bluefox) Support of private skills/actions was added.
### 1.0.0 (2019-07-14)
-* (TA2k) Google Home list was added
+
+- (TA2k) Google Home list was added
### 0.5.0 (2019-06-29)
-* (bluefox) tried to add yandex Alisa
+
+- (bluefox) tried to add yandex Alisa
### 0.4.3 (2019-04-14)
-* (Apollon77) Change enable/disable of Amazon Alexa and of Google Home from configuration to be really "active if selected".
+
+- (Apollon77) Change enable/disable of Amazon Alexa and of Google Home from configuration to be really "active if selected".
### 0.4.2 (2019-03-10)
-* (bluefox) Allowed the enablement and disable of Amazon Alexa and of Google Home from configuration.
+
+- (bluefox) Allowed the enablement and disable of Amazon Alexa and of Google Home from configuration.
### 0.4.1 (2019-02-19)
-* (bluefox) Add version check to google home
+
+- (bluefox) Add version check to google home
### 0.3.1 (2019-01-13)
-* (bluefox) Blockly was fixed
+
+- (bluefox) Blockly was fixed
### 0.3.0 (2018-12-30)
-* (bluefox) Detection of google devices was fixed
+
+- (bluefox) Detection of google devices was fixed
### 0.2.2 (2018-12-21)
-* (bluefox) Generation of new URL key was added
+
+- (bluefox) Generation of new URL key was added
### 0.2.0 (2018-12-18)
-* (bluefox) Change the name of adapter
+
+- (bluefox) Change the name of adapter
### 0.1.8 (2018-10-21)
-* (bluefox) Added extended diagnostics
+
+- (bluefox) Added extended diagnostics
### 0.1.7 (2018-10-14)
-* (bluefox) The configuration dialog was corrected
-* (bluefox) The possibility to create the answer with script for the custom skill was implemented.
+
+- (bluefox) The configuration dialog was corrected
+- (bluefox) The possibility to create the answer with script for the custom skill was implemented.
### 0.1.4 (2018-09-26)
-* (bluefox) Initial commit
+
+- (bluefox) Initial commit
## License
+
The MIT License (MIT)
Copyright (c) 2018-2024 bluefox
diff --git a/docs/en/adapterref/iobroker.jablotron/README.md b/docs/en/adapterref/iobroker.jablotron/README.md
index a222fed20..38a405940 100644
--- a/docs/en/adapterref/iobroker.jablotron/README.md
+++ b/docs/en/adapterref/iobroker.jablotron/README.md
@@ -40,6 +40,9 @@ The storage of sensitive data in the instance config has been changed.
You need to re-enter your password in the instance settings if you already used an older version < 0.0.5
## Changelog
+### 0.1.4 (2024-11-06)
+* Updated dependencies
+
### 0.1.3 (2024-01-31)
* Catch EAI_AGAIN
* Automatic refresh of session-id
diff --git a/docs/en/adapterref/iobroker.jarvis/README.md b/docs/en/adapterref/iobroker.jarvis/README.md
index 3dd04f2ad..0b8150d0c 100644
--- a/docs/en/adapterref/iobroker.jarvis/README.md
+++ b/docs/en/adapterref/iobroker.jarvis/README.md
@@ -8,10 +8,10 @@ jarvis - just another remarkable vis
![installed](https://iobroker.live/badges/jarvis-installed.svg)
[![Commits since last release](https://img.shields.io/github/commits-since/Zefau/ioBroker.jarvis/latest.svg)](https://github.com/Zefau/ioBroker.jarvis/releases/latest)
-[![npm publish](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/publish-npm.yml/badge.svg)](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/publish-npm.yml)
+[![Test and Release](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/test-and-release.yml)
[![open feature requests](https://img.shields.io/github/issues-search/Zefau/ioBroker.jarvis?query=is%3Aissue%20is%3Aopen%20label%3A%22feature%20%3Astar2%3A%22%20&label=open%20feature%20requests&color=purple)](https://github.com/Zefau/ioBroker.jarvis/issues?q=is%3Aissue+is%3Aopen+label%3A%22feature+%3Astar2%3A%22+-label%3A%22%23status%3A+ready-to-test+%3Aheavy_check_mark%3A%22+-label%3A%22%23status%3A+waiting-for-feedback+%3Ahourglass%3A%22+)
-[![open bugs](https://img.shields.io/github/issues-search/Zefau/ioBroker.jarvis?query=is%3Aissue%20is%3Aopen%20label%3A%22bug%20%3Abug%3A%22%20-label%3A%22%23status%3A%20ready-to-test%20%3Aheavy_check_mark%3A%22%20-label%3A%22%23status%3A%20waiting-for-feedback%20%3Ahourglass%3A%22%20&label=open%20bugs&color=red)](https://github.com/Zefau/ioBroker.jarvis/issues?q=is%3Aissue+is%3Aopen+label%3A%22bug+%3Abug%3A%22+-label%3A%22%23status%3A+ready-to-test+%3Aheavy_check_mark%3A%22+-label%3A%22%23status%3A+waiting-for-feedback+%3Ahourglass%3A%22+)
+[![open bugs](https://img.shields.io/github/issues-search/Zefau/ioBroker.jarvis?query=is%3Aissue%20is%3Aopen%20label%3A%22bug%20%3Abug%3A%22%20-label%3A%22%23status%3A%20ready-to-test%20%3Aheavy_check_mark%3A%22%20-label%3A%22%23status%3A%20waiting-for-feedback%20%3Ahourglass%3A%22%20&label=open%20bugs&color=red)](https://github.com/Zefau/ioBroker.jarvis/issues?q=is%3Aissue+is%3Aopen+label%3A%22bug+%3Abug%3A%22+-label%3A%22%23status%3A+implemented-locally+%3Ahammer_and_wrench%3A%22+-label%3A%22%23status%3A+ready-to-test+%3Aheavy_check_mark%3A%22+-label%3A%22%23status%3A+waiting-for-feedback+%3Ahourglass%3A%22+)
[![in testing or waiting for feedback](https://img.shields.io/github/issues-search/Zefau/ioBroker.jarvis?query=is%3Aissue%20is%3Aopen%20label%3A%22%23status%3A%20ready-to-test%20%3Aheavy_check_mark%3A%22%2C%22%23status%3A%20waiting-for-feedback%20%3Ahourglass%3A%22%20&label=in%20testing%20or%20waiting%20for%20feedback&color=green)](https://github.com/Zefau/ioBroker.jarvis/issues?q=is%3Aissue+is%3Aopen+label%3A%22%23status%3A+ready-to-test+%3Aheavy_check_mark%3A%22%2C%22%23status%3A+waiting-for-feedback+%3Ahourglass%3A%22+)
diff --git a/docs/en/adapterref/iobroker.kecontact/README.md b/docs/en/adapterref/iobroker.kecontact/README.md
index 1dcfedeff..cdaefd069 100644
--- a/docs/en/adapterref/iobroker.kecontact/README.md
+++ b/docs/en/adapterref/iobroker.kecontact/README.md
@@ -115,6 +115,7 @@ To charge your vehicle with a constant amperage of 6A regardless of surplus, set
* (Sneak-L8) enable currTime for manual use and X2 even in passive mode
* (Sneak-L8) minimum verison für js-controller now 5.0.19
* (Sneak-L8) set currTimer timeout default value from 0 to 1
+* (Sneak-L8) support new option "setBoot" of c-series stating firmware 3.10.57
### 2.2.0 (2024-06-23)
* (mcm1957) Adapter requires nodejs >= 18 and js-controller >= 5 now.
diff --git a/docs/en/adapterref/iobroker.kisshome-research/README.md b/docs/en/adapterref/iobroker.kisshome-research/README.md
index b6d334796..87c980d9c 100644
--- a/docs/en/adapterref/iobroker.kisshome-research/README.md
+++ b/docs/en/adapterref/iobroker.kisshome-research/README.md
@@ -22,10 +22,12 @@ To run this adapter, you need:
- Fritz!Box Router. Without `Fritz!Box`, the adapter will not work.
- iobroker must run on debian/raspbian (or at least on linux, where the following commands are available: `which`, `rsync`)
-## Todo
+## De-installation
-Detect IP addresses from:
-- [ ] homeconnect,
+The public key required for the communication is stored in `0_userdata.0.kisshomeResearchPublicKey`.
+After the adapter is uninstalled, the key must be deleted manually.
+
+This was required to make it possible to uninstall and install the adapter again without any problems.
## Changelog
+### 1.2.5 (2024-11-20)
+
+- (@GermanBluefox) Added the trigger to resolve the MAC address before MAC resolution
+
+### 1.2.4 (2024-11-19)
+
+- Empty MAC addresses will be ignored
+
+### 1.2.3 (2024-11-15)
+
+- (@GermanBluefox) Do not start recording if no one MAC address was provided
+- (@GermanBluefox) The keys are stored in `0_userdata.0.kisshomeResearchPublicKey` to make it possible to uninstall and install the adapter again without any problems
+- (@GermanBluefox) Corrected problem with PCAP files without the META-description
+
+### 1.1.2 (2024-11-12)
+
+- (@GermanBluefox) Corrected the input of IP addresses in the configuration
+
### 1.1.1 (2024-10-30)
-- (bluefox) Removed unused code
-- (bluefox) Creation of META file if not exists
-- (bluefox) Description for address must be longer than three characters
-- (bluefox) Added adapter version to the meta file name
+
+- (@GermanBluefox) Removed unused code
+- (@GermanBluefox) Creation of META file if not exists
+- (@GermanBluefox) Description for address must be longer than three characters
+- (@GermanBluefox) Added adapter version to the meta file name
### 1.0.13 (2024-10-17)
+
- (gsenkowski) Used actual IP and TCP header length for the PCAP file
### 1.0.11 (2024-09-26)
-- (bluefox) Trying to fix CI
-- (bluefox) Do not allow the traffic recording of FritzBox
-- (bluefox) Do not allow recording the traffic if no any MAC provided
-- (bluefox) Corrected links to web page
+
+- (@GermanBluefox) Trying to fix CI
+- (@GermanBluefox) Do not allow the traffic recording of FritzBox
+- (@GermanBluefox) Do not allow recording the traffic if no any MAC provided
+- (@GermanBluefox) Corrected links to web page
### 1.0.7 (2024-09-21)
-- (bluefox) Corrected the error if MAC address cannot be determined
+
+- (@GermanBluefox) Corrected the error if MAC address cannot be determined
### 1.0.6 (2024-09-21)
+
- (ChrisDietrich) Corrected the link in readme.md
-- (bluefox) Corrected the Big-Endian PCAP format
-- (bluefox) the Fixed build pipeline
+- (@GermanBluefox) Corrected the Big-Endian PCAP format
+- (@GermanBluefox) the Fixed build pipeline
### 1.0.4 (2024-09-19)
-- (bluefox) Corrected GUI
-- (bluefox) Filter out not used interfaces
-- (bluefox) Added notification to admin if public key not accepted
-- (bluefox) Try to detect zero bytes interfaces
+- (@GermanBluefox) Corrected GUI
+- (@GermanBluefox) Filter out not used interfaces
+- (@GermanBluefox) Added notification to admin if public key not accepted
+- (@GermanBluefox) Try to detect zero bytes interfaces
### 1.0.2 (2024-09-15)
-- (bluefox) Added error logging
+- (@GermanBluefox) Added error logging
### 1.0.1 (2024-09-14)
-- (bluefox) Implemented the support for the big endian format of a PCAP file
+- (@GermanBluefox) Implemented the support for the big endian format of a PCAP file
### 1.0.0 (2024-09-06)
-- (bluefox) Corrected configuration page
+- (@GermanBluefox) Corrected configuration page
### 0.3.1 (2024-08-31)
-- (bluefox) Added detection of some IPs
+- (@GermanBluefox) Added detection of some IPs
### 0.2.1 (2024-08-28)
-- (bluefox) used valid URL address
+- (@GermanBluefox) used valid URL address
### 0.1.1 (2024-08-20)
-- (bluefox) Used MD5 for the file consistency check
+- (@GermanBluefox) Used MD5 for the file consistency check
### 0.1.0 (2024-08-19)
-- (bluefox) File upload was implemented
+- (@GermanBluefox) File upload was implemented
### 0.0.3 (2024-08-14)
-- (bluefox) Added the recording enabled option
+- (@GermanBluefox) Added the recording enabled option
### 0.0.2 (2024-07-22)
-- (bluefox) Initial commit
+- (@GermanBluefox) Initial commit
## License
diff --git a/docs/en/adapterref/iobroker.klf200/README.md b/docs/en/adapterref/iobroker.klf200/README.md
index 00b608934..94ff0baad 100644
--- a/docs/en/adapterref/iobroker.klf200/README.md
+++ b/docs/en/adapterref/iobroker.klf200/README.md
@@ -260,6 +260,15 @@ The values of the state provide multiple manipulation modes:
### __WORK IN PROGRESS__
-->
+### 1.3.5 (2024-11-20)
+
+- (Michael Schroeder) [#264](https://github.com/MiSchroe/ioBroker.klf200/issues/264) Fixed an issue during startup of the adapter if more than 20 nodes are present.
+
+### 1.3.4 (2024-11-19)
+
+- (Michael Schroeder) [#259](https://github.com/MiSchroe/ioBroker.klf200/issues/259) Fixed issues found by the adapter checker.
+- (Michael Schroeder) [#262](https://github.com/MiSchroe/ioBroker.klf200/issues/262) Fixed an issue during startup of the adapter if more than 20 nodes are present.
+
### 1.3.3 (2024-11-01)
- (Michael Schroeder) [#250](https://github.com/MiSchroe/ioBroker.klf200/issues/250) Fixed an issue that the adapter didn't start when the product nodes weren't numbered from 0 onwards.
diff --git a/docs/en/adapterref/iobroker.libre/README.md b/docs/en/adapterref/iobroker.libre/README.md
index c07b743a7..44b3e64f0 100644
--- a/docs/en/adapterref/iobroker.libre/README.md
+++ b/docs/en/adapterref/iobroker.libre/README.md
@@ -1,4 +1,5 @@
![Logo](admin/libre.png)
+
# ioBroker.libre
[![NPM version](https://img.shields.io/npm/v/iobroker.libre.svg)](https://www.npmjs.com/package/iobroker.libre)
@@ -32,16 +33,23 @@ libre.0.vin.remote.refresh manueller Refresh
## Changelog
+### 0.1.3 (2024-11-15)
+
+- login fixed
+
### 0.0.3
-* (TA2k) fix login
+
+- (TA2k) fix login
### 0.0.2
-* (TA2k) initial release
+
+- (TA2k) initial release
## License
+
MIT License
-Copyright (c) 2022 TA2k
+Copyright (c) 2022-2030 TA2k
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -59,4 +67,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
+SOFTWARE.
diff --git a/docs/en/adapterref/iobroker.lorawan/README.md b/docs/en/adapterref/iobroker.lorawan/README.md
index 121cac013..fa4705a02 100644
--- a/docs/en/adapterref/iobroker.lorawan/README.md
+++ b/docs/en/adapterref/iobroker.lorawan/README.md
@@ -23,6 +23,12 @@ For now there is documentation in English here: https://wiki.hafenmeister.de
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.5.5 (2024-11-23)
+* (BenAhrdt) add CRC-8
+
+### 1.5.4 (2024-11-15)
+* (BenAhrdt) add roles and fix responsive issues
+
### 1.5.3 (2024-10-30)
* (BenAhrdt) add roles
diff --git a/docs/en/adapterref/iobroker.lovelace/README.md b/docs/en/adapterref/iobroker.lovelace/README.md
index d6dd8064e..028a4d6e6 100644
--- a/docs/en/adapterref/iobroker.lovelace/README.md
+++ b/docs/en/adapterref/iobroker.lovelace/README.md
@@ -473,6 +473,9 @@ After that checkout modified version in `./build` folder. Then.
PLACEHOLDER for the next version:
### **WORK IN PROGRESS**
-->
+### 4.1.11 (2024-11-20)
+* (Garfonso) convert string state values to numbers, where necessary.
+
### 4.1.10 (2024-05-23)
* (Garfonso) device icons work again.
* (Garfonso) default user sometimes was not found in system.
@@ -490,9 +493,6 @@ After that checkout modified version in `./build` folder. Then.
* (Garfonso) remove exessive logging
* (Garfonso) improve fix for crash again.
-### 4.1.5 (2024-03-05)
-* (Garfonso) fixed: possible crashes during startup
-
## License
Copyright 2019-2024, bluefox
diff --git a/docs/en/adapterref/iobroker.luxtronik1/README.md b/docs/en/adapterref/iobroker.luxtronik1/README.md
index 5438556e4..a4f82a224 100644
--- a/docs/en/adapterref/iobroker.luxtronik1/README.md
+++ b/docs/en/adapterref/iobroker.luxtronik1/README.md
@@ -33,16 +33,24 @@ Controls Luxtronik 1 by setting values in the 'control' - channel. Controls the
Values in the 'control' - channel have to be set with ack=false to trigger an action.
## Changelog
+
+
+### 0.4.2 (2024-11-08)
+
+- (forelleblau) testing and dependencies updated
+
### 0.4.1 (2024-04-18)
-- (mcm1957) Workflow has been fixed
+
+- (mcm1957) Workflow has been fixed
### 0.4.0 (2024-04-18)
-- (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now
-- (mcm1957) Dependencies have been updated
+
+- (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now
+- (mcm1957) Dependencies have been updated
### 0.3.6
@@ -140,7 +148,7 @@ Values in the 'control' - channel have to be set with ack=false to trigger an ac
The MIT License (MIT)
-Copyright (c) 2024 iobroker-community-adapters
+Copyright (c) 2024 iobroker-community-adapters
Copyright (c) 2018-2023 forelleblau marceladam@gmx.ch
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/docs/en/adapterref/iobroker.matrix-org/README.md b/docs/en/adapterref/iobroker.matrix-org/README.md
index 738e32747..92f5177c7 100644
--- a/docs/en/adapterref/iobroker.matrix-org/README.md
+++ b/docs/en/adapterref/iobroker.matrix-org/README.md
@@ -79,7 +79,7 @@ Join this room and try it out with your own credentials
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 1.1.0 (2024-11-23)
* upgrade matrix-js-sdk
* auto join added (default false)
@@ -157,7 +157,7 @@ Join this room and try it out with your own credentials
## License
MIT License
-Copyright (c) 2023 Christian Oelschlegel
+Copyright (c) 2024 Christian Oelschlegel
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/en/adapterref/iobroker.melcloud/README.md b/docs/en/adapterref/iobroker.melcloud/README.md
index 8354b605b..9b8441c82 100644
--- a/docs/en/adapterref/iobroker.melcloud/README.md
+++ b/docs/en/adapterref/iobroker.melcloud/README.md
@@ -33,6 +33,10 @@ Discussion:
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
+### 2.0.4 (2024-11-04)
+
+- (Black-Thunder) Responsive design for settings dialog was added
+
### 2.0.3 (2024-10-16)
- (Black-Thunder) Responsive design for settings dialog was added
diff --git a/docs/en/adapterref/iobroker.modbus/README.md b/docs/en/adapterref/iobroker.modbus/README.md
index eab566d07..1ae9c4888 100644
--- a/docs/en/adapterref/iobroker.modbus/README.md
+++ b/docs/en/adapterref/iobroker.modbus/README.md
@@ -307,6 +307,10 @@ There are some programs in folder `test` to test the TCP communication:
### **WORK IN PROGRESS**
-->
## Changelog
+### 6.4.0 (2024-11-22)
+* (bluefox) Moved GUI compilation to vite
+* (bluefox) Added error message if the response length is invalid
+
### 6.3.2 (2024-08-29)
* (bluefox) Corrected the error with alignment of addresses
@@ -329,7 +333,7 @@ There are some programs in folder `test` to test the TCP communication:
### 6.2.0 (2024-04-12)
* (PLCHome) String based on 16-bit values big endian as well as little endian
* (PLCHome) Raw data as a hex string
-* (PLCHome) Fix issue stringle was always converted to number for slave
+* (PLCHome) Fix issue `stringle` was always converted to number for slave
* (PLCHome) Enable formula for strings and hex strings
### 6.1.0 (2023-12-14)
diff --git a/docs/en/adapterref/iobroker.mqtt-client/README.md b/docs/en/adapterref/iobroker.mqtt-client/README.md
index f916f0e56..2690c4124 100644
--- a/docs/en/adapterref/iobroker.mqtt-client/README.md
+++ b/docs/en/adapterref/iobroker.mqtt-client/README.md
@@ -87,6 +87,12 @@ default: state-ID converted to a mqtt topic.
### __WORK IN PROGRESS__
-->
## Changelog
+### 2.1.0 (2024-11-12)
+* (mcm1957) Adapter requires node.js 20 now.
+* (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+* (simatec) Adapter changed to meet Responsive Design rules.
+* (mcm1957) Dependencies have been updated.
+
### 2.0.1 (2024-09-23)
* (@klein0r) Added missing information in configuration dialog
* (@klein0r) Fixed type of port configuration to avoid conflicts
diff --git a/docs/en/adapterref/iobroker.mytime/README.md b/docs/en/adapterref/iobroker.mytime/README.md
index 78737ae61..61a0c7144 100644
--- a/docs/en/adapterref/iobroker.mytime/README.md
+++ b/docs/en/adapterref/iobroker.mytime/README.md
@@ -1,13 +1,15 @@
![Logo](admin/mytime.png)
+
# ioBroker.mytime
-[![NPM version](http://img.shields.io/npm/v/iobroker.mytime.svg)](https://www.npmjs.com/package/iobroker.mytime)
+[![NPM version](https://img.shields.io/npm/v/iobroker.mytime.svg)](https://www.npmjs.com/package/iobroker.mytime)
[![Downloads](https://img.shields.io/npm/dm/iobroker.mytime.svg)](https://www.npmjs.com/package/iobroker.mytime)
-![Number of Installations (latest)](http://iobroker.live/badges/mytime-installed.svg)
-
-[![Dependency Status](https://img.shields.io/david/oweitman/iobroker.mytime.svg)](https://david-dm.org/oweitman/iobroker.mytime)
-[![Known Vulnerabilities](https://snyk.io/test/github/oweitman/ioBroker.mytime/badge.svg)](https://snyk.io/test/github/oweitman/ioBroker.mytime)
-[![Travis-CI](http://img.shields.io/travis/oweitman/ioBroker.mytime/master.svg)](https://travis-ci.org/oweitman/ioBroker.mytime)
+![Number of Installations](https://iobroker.live/badges/mytime-installed.svg)
+![Current version in stable repository](https://iobroker.live/badges/mytime-stable.svg)
+
+[![NPM](https://nodei.co/npm/iobroker.mytime.png?downloads=true)](https://nodei.co/npm/iobroker.mytime/)
+
+**Tests:** ![Test and Release](https://github.com/oweitman/ioBroker.mytime/workflows/Test%20and%20Release/badge.svg)
## IMPORTANT
@@ -17,103 +19,125 @@ translates areas that should not be translated.
## mytime adapter for ioBroker
This adapter handle Time (eg: countdown,etc.).
-The countdown functionality provides datapoints that you can use to manage a countdown (e.g. in a script). The adapter also includes several widgets to visualize these countdowns.
-Time series can be used to create complex time series at which the data points are triggered.
+The countdown functionality provides datapoints that you can use to manage a
+countdown (e.g. in a script). The adapter also includes several widgets
+to visualize these countdowns. Time series can be used to create
+complex time series at which the data points are triggered.
### Configuration
+
#### Countdown
-In the configuration dialog Tab "Countdown" you can create a new countdown eg 'test', set timer to 10 seconds and import the following widgets.
+
+In the configuration dialog Tab "Countdown" you can create a new countdown
+eg 'test', set timer to 10 seconds and import the following widgets.
Datapoints are pre configured for a countdown named test.
##### Stop behaviour timer
-After the countdown gets the signal stop, the countdown resets to the time set by timer.
+
+After the countdown gets the signal stop, the countdown resets
+to the time set by timer.
+
##### Stop behaviour zero
+
After the countdown gets the signal stop, the countdown remains at 0.
#### Timeseries
-In the configuration dialog Tab "Timeseries" you can create a new timeseries with one or more timerules. For each timerule you can define different parameters
-Each timeseries creates a seperate datapoint which is triggered at the calculated time events.
-The time events are calculated in real time. However, the rrule library used is not yet perfect in all parameter combinations.
-This shows that with some combinations the page goes into an endless loop.
-The demo page http://jakubroztocil.github.io/rrule/ can also be used for experiments.
-Additional to add a timerule, you can add a timerule to exclude time events, to add single time events and also to exclude single time events.
+
+In the configuration dialog Tab "Timeseries" you can create a
+new timeseries with one or more timerules. For each timerule you can
+define different parameters
+Each timeseries creates a seperate datapoint which is triggered
+at the calculated time events.
+The time events are calculated in real time. However, the rrule library
+used is not yet perfect in all parameter combinations.
+This shows that with some combinations the page goes into an endless loop.
+The demo page can also be used for experiments.
+Additional to add a timerule, you can add a timerule to exclude time events,
+to add single time events and also to exclude single time events.
### Usage
-#### Timeseries
+#### Usage of Timeseries
-##### Available Datapoints
+##### Available Datapoints of a timeserie
After configuration of a new timeserie the adapter creates the following datapoints:
-| datapoint | description |
-|-----------|---------------------------------------------------------------------------|
-| action | actual state of thie timeserie. possible values are stop,run |
-| cmd | no function atm |
+| datapoint | description |
+| --------- | ------------------------------------------------------------ |
+| action | actual state of thie timeserie. possible values are stop,run |
+| cmd | no function atm |
##### Available action states
-| action | description |
-|-----------|-------------------------------------------------------------------------------------------------------|
-| stop | no time event is active at the moment |
-| run | a time event was triggered. after the configured duration time, the datapoint changes to stop |
-
+| action | description |
+| ------ | --------------------------------------------------------------------------------------------- |
+| stop | no time event is active at the moment |
+| run | a time event was triggered. after the configured duration time, the datapoint changes to stop |
-#### Countdown
+#### Usage of Countdown
-##### Available Datapoints
+##### Available Datapoints of a countdown
After configuration of a new countdown the adapter creates the following datapoints:
-| datapoint | description |
-|-----------|---------------------------------------------------------------------------|
-| action | actual state of thie countdown. possible values are stop,run,pause,end |
-| cmd | datapoint for commands. possible commands are described below |
-| start | datapoint for the start time in milliseconds |
-| end | datapoint for the end time in milliseconds |
-| timer | datapoint for the total time set in milliseconds |
+| datapoint | description |
+| --------- | ---------------------------------------------------------------------- |
+| action | actual state of thie countdown. possible values are stop,run,pause,end |
+| cmd | datapoint for commands. possible commands are described below |
+| start | datapoint for the start time in milliseconds |
+| end | datapoint for the end time in milliseconds |
+| timer | datapoint for the total time set in milliseconds |
-##### Available action states
+##### Available action states of a countdown
-| action | description |
-|-----------|-------------------------------------------------------------------------------------------------------|
-| stop | the countdown is stopped, start and end time is set to 0 |
-| run | the countdown runs. if the countdown reachs the end time. the action switchs to end |
-| pause | countdown is in pausemode. the end time was set to the time of the pause |
-| end | the countdown is ended. this state you can use as a trigger for further actions (sound, popups, etc.) | |
+| action | description |
+| ------ | ----------------------------------------------------------------------------------------------------- |
+| stop | the countdown is stopped, start and end time is set to 0 |
+| run | the countdown runs. if the countdown reachs the end time. the action switchs to end |
+| pause | countdown is in pausemode. the end time was set to the time of the pause |
+| end | the countdown is ended. this state you can use as a trigger for further actions (sound, popups, etc.) |
##### Available commands for the cmd datapoint
-| command | example | description |
-|---------------|----------------------|----------------------------------------------------------------------------------------------|
-| +value | +1:10 | adds time to the countdown setting. the setting will be taken into account at the next start |
-| -value | -1:2:3 | subtracts time from the countdown. the setting will be taken into account at the next start |
-| =value | =5:00 | set the countdowntimer to this time. |
-| #ISO-Date | #2020-01-01T10:00:00 | set the countdowntimer to a target time. The Time must be formatted as ISO-Datestring |
-| $Time | $20:15 | set the countdowntimer to a target time. If Time is before current time. the next day is set.|
-| start | start | starts the countdown |
-| stop | stop | stops the countdown. the countdown time is reset to the setting |
-| pause | pause | pauses the countdown |
-| end | end | stops the countdown. the countdown is set to 0 |
-| setstop2timer | setstop2timer | set stop behaviour configuration to timer |
-| setstop2zero | setstop2zero | set stop behaviour configuration to zeros |
-| save | save | save the configuration defined in datapoints to the iobroker configuration |
-| | | iobroker restarts the adapter after saving automatically |
+| command | example | description |
+| ------------- | --------------------- | --------------------------------------------------------------------------------------------- |
+| +value | +1:10 | adds time to the countdown setting. the setting will be taken into account at the next start |
+| +!value | +!1:10 | like + operator and extend the running timer |
+| -value | -1:2:3 | subtracts time from the countdown. the setting will be taken into account at the next start |
+| -!value | -!1:2:3 | like - operator and reduce the running timer |
+| =value | =5:00 | set the countdowntimer to this time. |
+| =!value | =!5:00 | like = operator and set running timer to the given time |
+| #ISO-Date | #2025-01-01T10:00:00 | set the countdowntimer to a target time. The Time must be formatted as ISO-Datestring |
+| #!ISO-Date | #!2025-01-01T10:00:00 | like # operator and setting running timer to the given target time |
+| $Time | $20:15 | set the countdowntimer to a target time. If Time is before current time. the next day is set. |
+| $!Time | $!20:15 | like $ operator and setting running timer to the given target time |
+| start | start | starts the countdown |
+| stop | stop | stops the countdown. the countdown time is reset to the setting |
+| pause | pause | pauses the countdown |
+| end | end | stops the countdown. the countdown is set to 0 |
+| reset | reset | reset the timer to the configuration state |
+| setstop2timer | setstop2timer | set stop behaviour configuration to timer |
+| setstop2zero | setstop2zero | set stop behaviour configuration to zeros |
+| save | save | save the configuration defined in datapoints to the iobroker configuration |
+| | | iobroker restarts the adapter after saving automatically |
##### Format of the value for setting the countdown timer
-you can set the countdown to an unlimited time.
+you can set the countdown to an unlimited time.
the notation of the value is
[days:[hours:[minutes:[seconds]]]]
days,hours and minutes are optional.
-if you want to set the timer to one day you have to set hours,minutes and second aswell
-you dont have to respect the normal value ranges (eg hours 0-24). you can also set 48 hours.
-if you want you can set irregular time notations. the time is summed up seperatly
+if you want to set the timer to one day you have
+to set hours, minutes and second aswell
+you dont have to respect the normal value ranges (eg hours 0-24).
+You can also set 48 hours.
+If you want you can set irregular time notations. the time is summed up seperatly
-**Examples**
+**Examples:**
| setting | description |
-|-----------|---------------------------------------------|
+| --------- | ------------------------------------------- |
| 1:0:0:0 | set/adds/subtracts 1 day to the timer |
| 2:0:0 | set/adds/subtracts 2 hours to the timer |
| 3:0 | set/adds/subtracts 3 minutes to the timer |
@@ -126,7 +150,7 @@ if you want you can set irregular time notations. the time is summed up seperatl
The following placeholders are available:
| placeholder | description |
-|-------------|-----------------------------------------------------------------|
+| ----------- | --------------------------------------------------------------- |
| d | days without leading zeros |
| dd | days with leading zeros |
| H | hours without leading zeros |
@@ -137,300 +161,411 @@ The following placeholders are available:
| ss | seconds with leading zeros |
| \ | Escape character if you want to use a placeholder in the output |
-**Examples**
+**Examples:**
All following Examples with countdown timer 1:2:3:4
-| template | example | result |
-|-----------------------|-------------------|--------------------------------------------------|
-| d\d Hh m\m s\s | 1d 2h 3m 4s | with escape-characters and without leading zeros |
-| dd\d HHh mm\m ss\s | 01d 02h 03m 04s | with escape-characters and with leading zeros |
-| ss\s | 93784s | only seconds |
-| dd\d HH\h | 01d 02h | only days and hours |
-| HH\h mm\m | 26h 03m | only hours and minutes |
+| template | example | result |
+| ------------------ | --------------- | ------------------------------------------------ |
+| d\d Hh m\m s\s | 1d 2h 3m 4s | with escape-characters and without leading zeros |
+| dd\d HHh mm\m ss\s | 01d 02h 03m 04s | with escape-characters and with leading zeros |
+| ss\s | 93784s | only seconds |
+| dd\d HH\h | 01d 02h | only days and hours |
+| HH\h mm\m | 26h 03m | only hours and minutes |
### Widgets
+From Version 1.2.0 on the widgets should be compatible with vis1 and vis2.
+
#### Widget Countdown plain
+
A countdown widget for a plain textual output
+
##### Widget Properties
+
###### oid
+
The timer datapoint of a countdown datapoint.
+
###### Format
+
Formats the timer output. default is mm:ss. for details see Chapter format template
+
##### Example widget code
-the widgets are preconfigured for a countdown named test.
-```
-[{"tpl":"tplMyTimeCountdownPlain","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"countdown_oid":"mytime.0.Countdown.test.timer","format":"d H m s"},"style":{"left":"771px","top":"143px","width":"151px","height":"16px"},"widgetSet":"mytime"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"+10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"+10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"-10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"-10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"=10","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"=10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"start","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"start","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"pause","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"pause","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"stop","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"stop","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"}]
-```
+The widgets are preconfigured for a countdown named test.
+There a 2 seperate versions for vis1 and vis2
-##### The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector.
+**VIS1:**
-```
+
+ Details
+ [{"tpl":"tplMyTimeCountdownPlain","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"countdown_oid":"mytime.0.Countdown.test.timer","format":"d H m s"},"style":{"left":"771px","top":"143px","width":"151px","height":"16px"},"widgetSet":"mytime"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"+10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"+10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"-10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"-10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"=10","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"=10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"start","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"start","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"pause","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"pause","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"stop","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"stop","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"}]
+
+
+**VIS2:**
+
+
+ Details
+[{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"pause","value":"pause"},"style":{"bindings":[],"left":"423.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000001"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"start","value":"start"},"style":{"bindings":[],"left":"361.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000002"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"stop","value":"stop"},"style":{"bindings":[],"left":"485.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000003"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"+10","value":"+10"},"style":{"bindings":[],"left":"423.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000004"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"=100","value":"=100"},"style":{"bindings":[],"left":"361.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000005"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"-10","value":"-10"},"style":{"bindings":[],"left":"485.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000006"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"+!10","value":"+!10"},"style":{"bindings":[],"left":"423.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000007"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"=!100","value":"=!100"},"style":{"bindings":[],"left":"361.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000008"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"-!10","value":"-!10"},"style":{"bindings":[],"left":"485.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000009"},{"tpl":"tplMyTimeCountdownPlain","data":{"bindings":[],"countdown_format":"dd\\d HH\\h mm\\m ss\\s","g_common":true,"g_css_border":true,"countdown_oid":"mytime.0.Countdowns.test.timer","g_css_font_text":true},"style":{"bindings":[],"left":"361.0000305175781px","top":"375.00001525878906px","width":"182px","height":"24px","border-width":"0","border-style":"solid","border-color":"rgba(237,235,243,1)","text-align":"center"},"widgetSet":"mytime","_id":"i000010"}]
+
+
+**The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
#### Widget Reverse Countdown plain
-A widget that shows the elapsed time from a given point in time
-##### Widget Properties
-###### datetime
-A DateTime-String of the start time.
-The expression must be interpretable by the javascript function new Date(expression).
-See also https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse
-Example:
-2022-01-10 23:12
-2022-01-104T23:12:00.000Z
+A widget that shows the elapsed time from a given point in time
-###### Format
-Formats the timer output. default is mm:ss. for details see Chapter format template
+##### Widget Properties of Reverse Countdown plain
-###### HTML-Prepend
-This text or html is prepended to the output of the widget
-###### HTML-Append
-This text or html is appended to the output of the widget
+| Datapoint | Description |
+| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| datetime | A DateTime-String of the start time. The expression must be interpretable by the javascript function new Date(expression). See also Example: 2022-01-10 23:12 or 2022-01-104T23:12:00.000Z |
+| Format | Formats the timer output. default is mm:ss. for details see Chapter format template |
+| HTML-Prepend | This text or html is prepended to the output of the widget |
+| HTML-Append | This text or html is appended to the output of the widget |
#### Widget Countdown Circle
-A countdown widget in a ring/circle design.
-##### Widget Properties
-###### oid
-The timer datapoint of a countdown datapoint.
-###### notimetext
-Disables the time text over the polar clock
-###### Format
-Formats the timer output. default is mm:ss. for details see Chapter format template
-###### Reverse
-Setting for growing or shrinking the ring/circle
-###### Width
-The width of the ring or circle.
-###### Ring gap
-Gap in pixel between the rings
-###### Caps
-Setting for the ends of the ring/circle: round or straight
-###### background
-Backgroundcolor of the ring/circle
-###### foreground
-Foregroundcolor of the ring/circle
-###### showsec
-Show the ring of seconds
-###### showmin
-Show the ring of minutes
-###### showhrs
-Show the ring of minutes
-###### showday
-Show the ring of days
-
-##### The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector.
-```
+A countdown widget in a ring/circle design.
+
+##### Widget Properties of Countdown Circle
+
+| Datapoint | Description |
+| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| oid | The timer datapoint of a countdown datapoint. |
+| notimetext | Disables the time text over the polar clock |
+| Format | Formats the timer output. default is mm:ss. for details see Chapter format template. ReversevSetting for growing or shrinking the ring/circle |
+| Width | The width of the ring or circle. |
+| Ring gap | Gap in pixel between the rings |
+| Caps | Setting for the ends of the ring/circle: round or straight |
+| background | Backgroundcolor of the ring/circle |
+| foreground | Foregroundcolor of the ring/circle |
+| showsec | Show the ring of seconds |
+| showmin | Show the ring of minutes |
+| showhrs | Show the ring of minutes |
+| showday | Show the ring of days |
+
+**The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
#### Widget Countdown FlipClock
-A countdown widget in a airport flip board style
-##### Widget Properties
-###### oid
-The timer datapoint of a countdown datapoint.
-###### countdown_showsec
-Shows the seconds-part. there must be no gap between two units.
-###### countdown_showmin
-Shows the minute-part. there must be no gap between two units.
-###### countdown_showhrs
-Shows the hours-part. there must be no gap between two units.
-###### countdown_showday
-Shows the day-part. there must be no gap between two units.
-###### countdown_color
-Color of the countdowntimer
-###### countdown_background_color
-Backgroundcolor of the countdowntimer
-###### countdown_dot_color
-Color of the dots of the countdowntimer
-
-##### Tips
-If you want to adjust the size of the countdown flipclock, under css settings in vis you can enter for half size:
-Group CSS-Common / transform "scale(0.5)"
+A countdown widget in a airport flip board style
-##### The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector.
+##### Widget Properties of Countdown FlipClock
-```
+| Datapoint | Description |
+| -------------------------- | --------------------------------------------------------------- |
+| oid | The timer datapoint of a countdown datapoint. |
+| countdown_showsec | Shows the seconds-part. there must be no gap between two units. |
+| countdown_showmin | Shows the minute-part. there must be no gap between two units. |
+| countdown_showhrs | Shows the hours-part. there must be no gap between two units. |
+| countdown_showday | Shows the day-part. there must be no gap between two units. |
+| countdown_color | Color of the countdowntimer |
+| countdown_background_color | Backgroundcolor of the countdowntimer |
+| countdown_dot_color | Color of the dots of the countdowntimer |
+
+**Tips:**
+
+If you want to adjust the size of the countdown flipclock,
+under css settings in vis you can enter for half size:
+Group CSS-Common / transform "scale(0.5)"
+
+**The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
#### Widget Countdown NixieClock
-A countdown widget in a Nixie-Tube/LED style
-##### Widget Properties
-###### oid
-The timer datapoint of a countdown datapoint.
-###### countdown_showsec
-Shows the seconds-part. there must be no gap between two units.
-###### countdown_showmin
-Shows the minute-part. there must be no gap between two units.
-###### countdown_showhrs
-Shows the hours-part. there must be no gap between two units.
-###### countdown_showday
-Shows the day-part. there must be no gap between two units.
-###### countdown_color_active
-Color of the countdowntimer
-###### countdown_color_inactive
-Color of the inactiv digits
-###### countdown_opacity_inactive
-Opacity of the color of the inactive digits
-###### countdown_glowcolor
-Color of the glow around thie Nixie-digits
+A countdown widget in a Nixie-Tube/LED style
+
+##### Widget Properties of Countdown NixieClock
+
+| Datapoint | Description |
+| -------------------------- | --------------------------------------------------------------- |
+| oid | The timer datapoint of a countdown datapoint. |
+| countdown_showsec | Shows the seconds-part. there must be no gap between two units. |
+| countdown_showmin | Shows the minute-part. there must be no gap between two units. |
+| countdown_showhrs | Shows the hours-part. there must be no gap between two units. |
+| countdown_showday | Shows the day-part. there must be no gap between two units. |
+| countdown_color_active | Color of the countdowntimer |
+| countdown_color_inactive | Color of the inactiv digits |
+| countdown_opacity_inactive | Opacity of the color of the inactive digits |
+| countdown_glowcolor | Color of the glow around thie Nixie-digits |
#### Widget Wordclock
+
A widget to show a wordclock with many options
-##### Widget Properties
-###### language
-Some different languages for the wordclock are available
-###### letterActivated
-Color for the highlighted words
-###### letterDeactivated
-Color for the normal letters
-###### wordclockMargin
-Margin between the wordclock and the LEDs
-###### withMinutes
-Show the Minute-LEDs in the Corner of the wordclock
-###### minuteSize
-Size in Pixels of the Minute LEDs
-###### minuteColor
-color of the Minute LED
-###### withSeconds
-Show the Seconds-LEDs of the wordclock
-###### secondSize
-Size in Pixels of the Seconds LEDs
-###### secondColor
-color of the Seconds LED
-###### timezone
-The time of the selected timezone is displayed
-
-##### Tips
-If you want to adjust the size of the countdown nixieclock, under css settings in vis you can enter for half size:
+##### Widget Properties of Wordclock
+
+| Datapoint | Description |
+| ----------------- | -------------------------------------------------------- |
+| language | Some different languages for the wordclock are available |
+| letterActivated | Color for the highlighted words |
+| letterDeactivated | Color for the normal letters |
+| wordclockMargin | Margin between the wordclock and the LEDs |
+| withMinutes | Show the Minute-LEDs in the Corner of the wordclock |
+| minuteSize | Size in Pixels of the Minute LEDs |
+| minuteColor | color of the Minute LED |
+| withSeconds | Show the Seconds-LEDs of the wordclock |
+| secondSize | Size in Pixels of the Seconds LEDs |
+| secondColor | color of the Seconds LED |
+| timezone | The time of the selected timezone is displayed |
+
+**Tips:**
+
+If you want to adjust the size of the countdown nixieclock,
+under css settings in vis you can enter for half size:
Group CSS-Common / transform "scale(0.5)"
+**The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector:**
-##### The actual action state (cdstop,cdrun,cdpause,cdend) of the countdown is available as CSS-Class selector.
-
-```
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
## Todo
-* 7segment display
-* rolling numbers
-* customizable fonts
-* ts: timerules for exclusion (time range, single dates)
-* ~~add timezone for wordclock~~
-* ~~wordclock timer~~
-* ~~timed scheduler: plan single date/time and recurring events like outlook~~
-* ~~Nixie style~~
-* ~~flip board display (airport-display)~~
-* ~~new command to set only target time without date~~
-* ~~countdown circle widget with option to disable countdown text
-* ~~Groupseperator '.' in Name~~
-* ~~Polar clock~~
-* ~~circle reverse~~
-* ~~circle with round caps~~
+
+- 7segment display
+- rolling numbers
+- customizable fonts
+- ts: timerules for exclusion (time range, single dates)
+- ~~add timezone for wordclock~~
+- ~~wordclock timer~~
+- ~~timed scheduler: plan single date/time and recurring events like outlook~~
+- ~~Nixie style~~
+- ~~flip board display (airport-display)~~
+- ~~new command to set only target time without date~~
+- ~~countdown circle widget with option to disable countdown text
+- ~~Groupseperator '.' in Name~~
+- ~~Polar clock~~
+- ~~circle reverse~~
+- ~~circle with round caps~~
## Changelog
+
+
+### **WORK IN PROGRESS**
+
+- switch to iobroker eslint
+- adjust many code to follow the new rules
+- add some jsdoc
+
+### 1.2.2 (2024-11-18)
+
+- improve readme
+- improve widget js
+- remove word test from widgets html, sorry
+
+### 1.2.1 (2024-11-17)
+
+- interprete all commands in lowercase
+
+### 1.2.0 (2024-11-15)
+
+- widgets are now compatible with vis2
+
+### 1.1.1 (2024-11-13)
+
+- fix problem with start of vis2, exclude widgets for vis2
+
+### 1.1.0 (2024-11-12)
+
+- IMPORTANT: Changed Datapoint names and datastructure for the configuration,
+ no migration you have to enter all configurations again
+- add some new commands to restart the countdown time in place
+- repair save command
+- removed vis dependency from io-package.json
+
+### 1.0.15 (2024-11-11)
+
+- repair issues from repochecker
+
+### 1.0.14 (2024-11-11)
+
+- improve test and release process
+- update github workflow
+- remove eslint command from package.json
+- switch back to node 18 for testing due to airbnb error
+- more repair
+- add package-lock.json to git
+- remove unused library
+- add lint and lint
+- remove iobroker eslint
+- general revision
+- updating the configuration dialogs for countdown and timeseries
+ in jsonConfig and custom react
+
### 0.7.12
-* add html_prepend and html_append properties to the widget reverse countdown
+
+- add html_prepend and html_append properties to the widget reverse countdown
+
### 0.7.10
-* add widget reverse countdown
+
+- add widget reverse countdown
+
### 0.7.9
-* add more wordclock tests
-* fix wordclock matrix swiss
+
+- add more wordclock tests
+- fix wordclock matrix swiss
+
### 0.7.8
-* add timezone for wordclock
+
+- add timezone for wordclock
+
### 0.7.7
-* add timezone for wordclock
+
+- add timezone for wordclock
+
### 0.7.6
-* add tests for wordclock * remove admin tab
+
+- add tests for wordclock \* remove admin tab
+
### 0.7.5
-* Remove comments in io-package
+
+- Remove comments in io-package
+
### 0.7.4
-* fix spanish language pack
+
+- fix spanish language pack
+
### 0.7.3
-* * add turkish language for wordclock
+
+- add turkish language for wordclock
+
### 0.7.2
-* * add russian and espaniol language for wordclock
+
+- add russian and espaniol language for wordclock
+
### 0.7.1
-* add margin property for wordclock * add italiano and francais for wordclock * wordclock remove border
+
+- add margin property for wordclock
+- add italiano and francais for wordclock
+- wordclock remove border
+
### 0.7.0
-* New widget wordclock
+
+- New widget wordclock
+
### 0.6.1
-* remove beta tag from widgets * m,assive reengeneering of the react classes, add functions für exclusion rules, adding single time events and exclude single time events
+
+- remove beta tag from widgets \* m,assive reengeneering of the react classes,
+ add functions für exclusion rules, adding single time events
+ and exclude single time events
+
### 0.6.0
-* Introduction of new functionality timeseries
+
+- Introduction of new functionality timeseries
+
### 0.5.2
-* fix an issue and introduce a new command save to save the configuration defined in datapoints to the iobroker configuration data
+
+- fix an issue and introduce a new command save to save the configuration
+ defined in datapoints to the iobroker configuration data
+
### 0.5.1
-* Migration of old counters
+
+- Migration of old counters
+
### 0.5.0
-* Change settings dialog to react
+
+- Change settings dialog to react
+
### 0.4.2
-* performance optimization. mytime now checks the data from internal and did not read the data allways from datapoints | update dependencies
+
+- performance optimization. mytime now checks the data from internal
+ and did not read the data allways from datapoints | update dependencies
+
### 0.4.1
-* widget cd flipclock: remove dot labels
+
+- widget cd flipclock: remove dot labels
+
### 0.4.0
-* New widget NixieClock
+
+- New widget NixieClock
+
### 0.3.1
-* remove mytime tile in iobroker overview
-* set initial visual countdown value to 0
-* prefix css classes, due css artefacts from other adapters (eg kodi and css class stop)
+
+- remove mytime tile in iobroker overview
+- set initial visual countdown value to 0
+- prefix css classes, due css artefacts from other adapters
+ (eg kodi and css class stop)
+
### 0.3.0
-* new command to set only target time without date
-* countdown circle widget now with option to disable countdown text
-* timers are now groupable in subdirectories. you can now enter dots (.) as a groupseperater in the name of a timer
+
+- new command to set only target time without date
+- countdown circle widget now with option to disable countdown text
+- timers are now groupable in subdirectories.
+ you can now enter dots (.) as a groupseperater in the name of a timer
+
### 0.2.1
-* fix timer display in configuration dialog
-* fix default template of countdown plain
-* add icons for countdonw plain and countdown circle widgets
-* fix startangle calculation for countdown circle if time values are 0
-* remove timer intervals in editmode due to interfer with the configuration dialog and didnt save the ne values
+
+- fix timer display in configuration dialog
+- fix default template of countdown plain
+- add icons for countdonw plain and countdown circle widgets
+- fix startangle calculation for countdown circle if time values are 0
+- remove timer intervals in editmode due to interfer with
+ the configuration dialog and didnt save the ne values
+
### 0.2.0
-* extend the countdown circle with more rings for days, hours and minutes
+
+- extend the countdown circle with more rings for days, hours and minutes
+
### 0.1.2
-* Setting for growing or shrinking the ring/circle
-* Setting for the ends of the ring/circle: round or straight
-* Extend special char filtering with umlauts
-* Fix state request issue in widget countdown circle
+
+- Setting for growing or shrinking the ring/circle
+- Setting for the ends of the ring/circle: round or straight
+- Extend special char filtering with umlauts
+- Fix state request issue in widget countdown circle
+
### 0.1.1
-* Add a countdown name datapoint
-### 0.1.0
-* Forum release
+
+- Add a countdown name datapoint
+
### 0.1.0
-* initial release
+
+- Forum release
+- initial release
## License
+
MIT License
-Copyright (c) 2020 oweitman
+Copyright (c) 2024 oweitman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -448,4 +583,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
\ No newline at end of file
+SOFTWARE.
diff --git a/docs/en/adapterref/iobroker.myuplink/README.md b/docs/en/adapterref/iobroker.myuplink/README.md
index c7bf5a922..c44604e28 100644
--- a/docs/en/adapterref/iobroker.myuplink/README.md
+++ b/docs/en/adapterref/iobroker.myuplink/README.md
@@ -48,6 +48,11 @@ The adapter also has no influence on which parameters are sent by myUplink.
## Changelog
+**WORK IN PROGRESS**
+
+- xl attributes have been added to the jsonConfig #77
+- Dependencies have been updated
+
### 0.8.3 (2024-10-20)
- TabsStyle was added to jsonConfig #71
diff --git a/docs/en/adapterref/iobroker.myvbus/README.md b/docs/en/adapterref/iobroker.myvbus/README.md
index 7431b5820..9f7627698 100644
--- a/docs/en/adapterref/iobroker.myvbus/README.md
+++ b/docs/en/adapterref/iobroker.myvbus/README.md
@@ -49,6 +49,10 @@ A derived version of this adapter supporting control of VBus devices is availabl
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### **WORK IN PROGRESS**
+
+* (simatec) Responsive Design added
+
### 0.4.0 (2024-08-13) - 2024H2 maintenance release
* (pdbjjens) Change: node>=18, js-contoller>=5 and admin>=6 required
diff --git a/docs/en/adapterref/iobroker.nibeuplink/README.md b/docs/en/adapterref/iobroker.nibeuplink/README.md
index 3a2ce64e9..66bccb060 100644
--- a/docs/en/adapterref/iobroker.nibeuplink/README.md
+++ b/docs/en/adapterref/iobroker.nibeuplink/README.md
@@ -10,6 +10,8 @@
## nibeuplink adapter for ioBroker
+**The nibeuplink API has been officially discontinued! For this reason, this ioBroker adapter will not be developed any further! Please use the myUplink adapter!**
+
This ioBroker adapter receives data from a Nibe heat pump from Nibe Uplink.
This adapter does NOT work with Nibe myUplink! It therefore does NOT work with S-series heat pumps such as Nibe VVM S320.
@@ -49,8 +51,8 @@ You can read other values but I think you can't write other values. Other values
https://github.com/sebilm/ioBroker.nibeuplink/blob/master/nibe-fetcher.js#L41
## Changelog
-
-### **WORK IN PROGRESS**
+### 1.3.2 (2024-11-10)
+- The nibeuplink API has been officially discontinued! For this reason, this ioBroker adapter will not be developed any further! Please use the myUplink adapter!
- Dependencies have been updated
### 1.3.1 (2023-12-23)
diff --git a/docs/en/adapterref/iobroker.nissan/README.md b/docs/en/adapterref/iobroker.nissan/README.md
index e1978e0af..ef3c770a6 100644
--- a/docs/en/adapterref/iobroker.nissan/README.md
+++ b/docs/en/adapterref/iobroker.nissan/README.md
@@ -32,10 +32,18 @@ Feel free to follow the discussions in the german [iobroker forum](https://forum
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+
+### 0.1.13 (2024-11-22)
+
+- battery status v2 moved to to batter-statusv2 object folder
+
+### 0.1.7 (2024-11-11)
+
+- battery status fixed
+
### 0.1.6 (2024-11-01)
-- (bolliy) dependency and configuration updates
-### 0.1.5 (2024-11-01)
+- (bolliy) dependency and configuration updates
- (bolliy) Requirements from ioBroker Check and Service Bot
- (bolliy) dependency and configuration updates
diff --git a/docs/en/adapterref/iobroker.odl/README.md b/docs/en/adapterref/iobroker.odl/README.md
index cfc98572f..89b1d3e11 100644
--- a/docs/en/adapterref/iobroker.odl/README.md
+++ b/docs/en/adapterref/iobroker.odl/README.md
@@ -38,6 +38,10 @@ When the adapter is started for the first time, the time for retrieving the data
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 4.0.2 (2024-11-16)
+
+* (crycode-de) Added missing sizes to jsonConfig
+
### 4.0.1 (2024-10-23)
* (crycode-de) Added support for tiny screens to jsonConfig
@@ -149,7 +153,7 @@ When the adapter is started for the first time, the time for retrieving the data
Copyright (c) 2019-2024 Peter Müller
-Data (c) [German Federal Office for Radiation Protection (Bundesamt für Strahlenschutz, BfS)](https://www.bfs.de/), [Data licence Germany – attribution – Version 2.0](http://www.govdata.de/dl-de/by-2-0)
+Data (c) [German Federal Office for Radiation Protection (Bundesamt für Strahlenschutz, BfS)](https://www.bfs.de/), [Data License Germany – attribution – Version 2.0](http://www.govdata.de/dl-de/by-2-0)
### MIT License
diff --git a/docs/en/adapterref/iobroker.pegelalarm/README.md b/docs/en/adapterref/iobroker.pegelalarm/README.md
index 98d0c24ff..9a48871de 100644
--- a/docs/en/adapterref/iobroker.pegelalarm/README.md
+++ b/docs/en/adapterref/iobroker.pegelalarm/README.md
@@ -38,6 +38,7 @@ When the adapter crashes or an other Code error happens, this error message that
### __WORK IN PROGRESS__
* (simatec) Dependencies updated
+* (simatec) Issue Action added
### 1.3.5 (2024-09-21)
* (simatec) small fix
diff --git a/docs/en/adapterref/iobroker.proxmox/README.md b/docs/en/adapterref/iobroker.proxmox/README.md
index 567fc900b..36b891923 100644
--- a/docs/en/adapterref/iobroker.proxmox/README.md
+++ b/docs/en/adapterref/iobroker.proxmox/README.md
@@ -27,6 +27,11 @@ BADGE-Installed: http://iobroker.live/badges/proxmox-installed.svg
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+
+### **WORK IN PROGRESS**
+* (arteck) add new eslint file
+* (arteck) fix node message
+
### 2.3.0 (2024-04-26)
* (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now
* (jens-maus) fix ha and ceph object type
diff --git a/docs/en/adapterref/iobroker.pvforecast/README.md b/docs/en/adapterref/iobroker.pvforecast/README.md
index 246a625c9..c01c22b37 100644
--- a/docs/en/adapterref/iobroker.pvforecast/README.md
+++ b/docs/en/adapterref/iobroker.pvforecast/README.md
@@ -70,8 +70,10 @@ If you want to take the json graph and table you can use this [example](./vis.md
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
-- (simatec) Admin-UI has been adapted for small displays.
+### 4.1.0 (2024-11-15)
+
+* (@klein0r) Added estimated energy: now until end of day
+* (@simatec) Admin-UI has been adapted for small displays
### 4.0.1 (2024-10-22)
@@ -91,10 +93,6 @@ NodeJS >= 18.x and js-controller >= 5 is required
### 2.9.1 (2023-12-18)
* (klein0r) Avoid logging of api key
-### 2.9.0 (2023-10-28)
-* (klein0r) Updated conversion for Solcast
-* (klein0r) Store JSON state values in prettified format
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.remeha-home/README.md b/docs/en/adapterref/iobroker.remeha-home/README.md
index 32ad7591a..03fcd8554 100644
--- a/docs/en/adapterref/iobroker.remeha-home/README.md
+++ b/docs/en/adapterref/iobroker.remeha-home/README.md
@@ -52,10 +52,13 @@ You must enter these in the configuration of the adapter.
---
+## Changelog
### **WORK IN PROGRESS**
* (simatec) Dependencies updated
+* (simatec) Fix jsonConfig
+* (simatec) Issue Action added
+* (simatec) eslint-config added
-## Changelog
### 0.2.4 (2024-09-28)
* (simatec) Fix request error
* (simatec) Dependencies updated
diff --git a/docs/en/adapterref/iobroker.renacidc/README.md b/docs/en/adapterref/iobroker.renacidc/README.md
index 4219d389a..9f791a02f 100644
--- a/docs/en/adapterref/iobroker.renacidc/README.md
+++ b/docs/en/adapterref/iobroker.renacidc/README.md
@@ -28,7 +28,10 @@ For further information on the product range, please visit the official website:
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 0.1.4 (2024-11-08)
+* (raschy) Deploy reactivated in the workflow
+
+### 0.1.3 (2024-11-08)
* (raschy) updated to adapter-core 3.2.2
* (raschy) responsive-design customized
* (raschy) Translations revised
diff --git a/docs/en/adapterref/iobroker.ring/README.md b/docs/en/adapterref/iobroker.ring/README.md
index 702f87233..0a429a598 100644
--- a/docs/en/adapterref/iobroker.ring/README.md
+++ b/docs/en/adapterref/iobroker.ring/README.md
@@ -97,6 +97,12 @@ doorbell recorded video.
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 6.3.0 (2024-11-08)
+
+* (theimo1221) #768 Add df_doorbell_clownfish
+* (theimo1221) #738 Add stickup_cam_medusa
+* (theimo1221) #685 Add cocoa_doorbell_v3
+
### 6.2.4 (2024-10-31)
* (simatec) Settings for responsive Design
diff --git a/docs/en/adapterref/iobroker.rpi2/README.md b/docs/en/adapterref/iobroker.rpi2/README.md
index b39b695ad..e505b9088 100644
--- a/docs/en/adapterref/iobroker.rpi2/README.md
+++ b/docs/en/adapterref/iobroker.rpi2/README.md
@@ -156,6 +156,9 @@ Connect such a sensor to a GPIO pin as described on the [node-dht-sensor](https:
PLACEHOLDER for the next version:
### **WORK IN PROGRESS**
-->
+### 2.2.2 (2024-11-02)
+* (simatec) responsive design for settings page added
+
### 2.2.1 (2024-10-15)
* (Garfonso) temperature has now proper role and type.
@@ -168,9 +171,6 @@ Connect such a sensor to a GPIO pin as described on the [node-dht-sensor](https:
### 2.1.1 (2024-10-13)
* (Garfonso) fix gpio undefined errors.
-### 2.1.0 (2024-10-13)
-* (jangatzke) add support for gpios on Raspberry Zero.
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/README.md b/docs/en/adapterref/iobroker.schedule-switcher/README.md
new file mode 100644
index 000000000..109f7d829
--- /dev/null
+++ b/docs/en/adapterref/iobroker.schedule-switcher/README.md
@@ -0,0 +1,847 @@
+---
+BADGE-NPM version: https://img.shields.io/npm/v/iobroker.schedule-switcher.svg
+BADGE-Downloads: https://img.shields.io/npm/dm/iobroker.schedule-switcher.svg
+BADGE-Number of Installations: https://iobroker.live/badges/schedule-switcher-installed.svg
+BADGE-Current version in stable repository: https://iobroker.live/badges/schedule-switcher-stable.svg
+BADGE-NPM: https://nodei.co/npm/iobroker.schedule-switcher.png?downloads=true
+---
+![Logo](../../admin/schedule-switcher.png)
+
+# ioBroker.schedule-switcher
+
+[Back to the README](/README.md)
+
+# Introduction
+
+This adapter allows the user to switch devices on/off or 100/0 using time schedules.
+The schedules can be fully configured by a vis or vis-2 widget.
+One schedule switches one or more ioBroker states and consists of one or more triggers that define when and how the state should be switched.
+It is possible to configure at which time and on which weekdays the trigger should be triggered. Astro triggers or countdowns can also be created.
+
+# Summary
+
+- [Instance Settings](#instance-settings-schedule-switcher)
+- [Objecte](#states)
+- [Example trigger evenst as JSON](#example-trigger-events-json)
+- [Example trigger as JSON](#example-trigger-json)
+- [Example sendTo Trigger (Experts only)](#example-of-creating-or-editing-triggers-with-sendto-experts)
+- [Example widget as JSON](#example-widgets-json)
+- [Example history as JSON](#example-history-json)
+- [Example widget view as JSON](#example-widget-view-json)
+- [Create widget](#create-widget)
+- [Change name](#change-name)
+- [Create condition](#create-condition)
+- [Change text](#change-text)
+- [Use css](#use-css-description-see-css)
+- [Create trigger](#trigger)
+- [create astro trigger](#astro-trigger)
+- [Create one time trigger](#one-time-trigger)
+- [HTML settings](#html-for-vis-and-vis-2)
+- [HTML Funktion for VIS-2 only](#function-for-vis-2-only)
+- [CSS](#css)
+
+### Instance settings schedule-switcher
+
+[Summary](#summary)
+
+- `+ icon`: Add new schedule
+- `ID`: object channel id
+- `Object id`: object
+- `Object name`: Name of the widget
+- `Trigger count`: Number of triggers
+- `Status`: Status enabled/disabled
+- `Delay between 2 switching operations in ms`: Prevents states from being set at the same time
+- `History switching as JSON (max 100/0 for off)` Max. history json
+- `Create HTML for VIS and VIS-2 (VIS-2 see description)` HTML overview enabled
+
+ ![instance_settings.png](img/instance_settings.png)
+ ![instance_settings_1.png](img/instance_settings_1.png)
+
+### States
+
+[Summary](#summary)
+
+- onoff
+- `schedule-switcher.0.onoff.6.data` All triggers as JSON
+- `schedule-switcher.0.onoff.6.enabled` Active or Inactive
+- `schedule-switcher.0.onoff.6.views` Where widgets were created for the objects
+- Status
+- `schedule-switcher.0.counterTrigger` Number of triggers (active and inactive)
+- `schedule-switcher.0.history` History from schedules switching
+- `schedule-switcher.0.nextEvents` Next switching operations as JSON Table
+- `schedule-switcher.0.sendto` With VIS-2, changes are passed to the adapter via this object
+
+![101_remote.png](img/view_states.png)
+
+# Example trigger events JSON
+
+[Summary](#summary)
+
+```json
+[
+ {
+ "type": "TimeTrigger", // TimeTrigger, AstroTrigger or OneTimeTrigger
+ "name": "Rollloade Wohn", // Name
+ "triggerid": 0, // Trigger ID
+ "action": "OnOffStateAction", // OnOffStateAction or Condition
+ "states": ["0_userdata.0.test", "0_userdata.0.test5"], // States
+ "active": true, // enabled true or false
+ "hour": 16, // Hour
+ "minute": 22, // Minute
+ "day": 9, // Day
+ "dateISO": "2024-11-09T15:22:00.000Z", // Time without timezone
+ "timestamp": 1731165720000, // Timestamp without timezone
+ "objectId": 1 // ObejektId schedule-switcher.0.onoff..data
+ }
+]
+```
+
+# Example trigger JSON
+
+[Summary](#summary)
+
+```json
+{
+ "type": "OnOffSchedule",
+ "name": "Rolllade Wohn", // Name of the last widget created
+ "onAction": {
+ // Action for On
+ "type": "OnOffStateAction",
+ "valueType": "number",
+ "onValue": 0,
+ "offValue": 100,
+ "booleanValue": true,
+ "idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
+ },
+ "offAction": {
+ // Action for Off
+ "type": "OnOffStateAction",
+ "valueType": "number",
+ "onValue": 0,
+ "offValue": 100,
+ "booleanValue": false,
+ "idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
+ },
+ "triggers": [
+ {
+ "type": "AstroTrigger", // Trigger - AstroTrigger - OneTimeTrigger
+ "astroTime": "sunrise",
+ "shiftInMinutes": 0,
+ "weekdays": [1, 2, 3, 4, 5, 6],
+ "id": "0",
+ "action": {
+ "type": "ConditionAction",
+ "condition": {
+ "type": "StringStateAndConstantCondition",
+ "constant": "true",
+ "stateId": "0_userdata.0.test",
+ "sign": "=="
+ },
+ "action": {
+ "type": "OnOffStateAction",
+ "name": "On"
+ }
+ }
+ }
+ ]
+}
+```
+
+# Example widgets JSON
+
+[Summary](#summary)
+
+```json
+{
+ "vis-2.0": {
+ // Which VIS version
+ "main": {
+ // Project
+ "w000005": {
+ // Widget ID
+ "prefix": "main", // Project
+ "namespace": "vis-2.0", // Which VIS version
+ "view": "Rollladen", // Which view
+ "widgetId": "w000005", // Widget ID
+ "newId": "schedule-switcher.0.onoff.6.data", // New Object
+ "oldId": "timer-switch.0.onoff.1.data", // Old Object
+ "enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
+ "stateCount": 1, // Counter States
+ "state": [
+ // States
+ {
+ "oid-stateId1": "0_userdata.0.test5"
+ }
+ ],
+ "conditionCount": 1, // Counter Conditions
+ "condition": [
+ // States of Conditions
+ {
+ "oid-conditionStateId1": "0_userdata.0.test"
+ }
+ ]
+ },
+ "w000006": {
+ // Which VIS version
+ "prefix": "main", // Project
+ "namespace": "vis-2.0", // Which VIS version
+ "view": "Test", // Which view
+ "widgetId": "w000006", // Widget ID
+ "newId": "schedule-switcher.0.onoff.6.data", // New Object
+ "oldId": "timer-switch.0.onoff.1.data", // Old Object
+ "enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
+ "stateCount": 1, // Counter States
+ "state": [
+ // States
+ {
+ "oid-stateId1": "0_userdata.0.test4"
+ }
+ ],
+ "conditionCount": 1, // Counter Conditions
+ "condition": [] // States of Conditions
+ }
+ }
+ }
+}
+```
+
+# Example of creating or editing triggers with sendTo (experts)
+
+[Summary](#summary)
+
+```JSON
+sendTo("schedule-switcher.0", "add-trigger", { // Create new trigger
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerType":"TimeTrigger",
+ "actionType":"OnOffStateAction"
+});
+
+sendTo("schedule-switcher.0", "update-trigger", { // Set the action for the new trigger
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":{
+ "type":"TimeTrigger",
+ "hour":12,
+ "minute":32,
+ "weekdays":[1,2,3,4,5],
+ "id":"0", // Known ID
+ "action":{
+ "type":"OnOffStateAction",
+ "name":"On"
+ }
+ }
+});
+
+sendTo("schedule-switcher.0", "add-trigger", { // Create new Astrotrigger
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerType":"AstroTrigger",
+ "actionType":"OnOffStateAction"
+});
+
+sendTo("schedule-switcher.0", "update-trigger", { // Set the action for the new trigger
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":{
+ "type":"AstroTrigger",
+ "astroTime":"sunrise", // sunrise, sunset or solarNoon
+ "shiftInMinutes":0,
+ "weekdays":[1,2,3,4,5],
+ "id":"0", // ID abgleichen
+ "action":{
+ "type":"OnOffStateAction",
+ "name":"On"
+ }
+ }
+});
+
+sendTo("schedule-switcher.0", "disable-schedule", { // deactivate trigger
+ "dataId":"schedule-switcher.0.onoff.6.data"
+});
+
+sendTo("schedule-switcher.0", "enable-schedule", { // activate trigger
+ "dataId":"schedule-switcher.0.onoff.6.data"
+});
+
+sendTo("schedule-switcher.0", "add-one-time-trigger", { // Create onetimetrigger
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":"{\"type\":\"OneTimeTrigger\",\"date\":\"2024-10-17T06:14:22.660Z\",\"timedate\":false,\"action\":{\"type\":\"OnOffStateAction\",\"name\":\"On\"}}"
+});
+
+sendTo("schedule-switcher.0", "delete-trigger", { // Delete trigger with known ID
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerId":"0"
+});
+```
+
+# Example history JSON
+
+[Summary](#summary)
+
+```JSON
+[
+ {
+ "setObjectId": "0_userdata.0.test4",
+ "objectId": 0,
+ "value": "true",
+ "object": "0_userdata.0.test4",
+ "trigger": "TimeTrigger",
+ "astroTime": "unknown",
+ "shift": 0,
+ "date": 0,
+ "hour": 20,
+ "minute": 48,
+ "weekdays": [
+ [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 0
+ ]
+ ],
+ "time": 1729622880040
+ },
+ {
+ "setObjectId": "0_userdata.0.test4",
+ "objectId": 0,
+ "value": "true",
+ "object": "0_userdata.0.test4",
+ "astroTime": "unknown",
+ "shift": 0,
+ "date": 0,
+ "hour": 20,
+ "minute": 47,
+ "weekdays": [
+ [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 0
+ ]
+ ],
+ "time": 1729622820071
+ }
+]
+```
+
+# Example Widget View JSON
+
+[Summary](#summary)
+
+```json
+{
+ "vis-2.0": {
+ "main": {
+ "w000004": {
+ "prefix": "main", // Project
+ "namespace": "vis-2.0", // VIS
+ "view": "default", // View
+ "widgetId": "w000004", // Widget ID
+ "newId": "schedule-switcher.0.onoff.3.data" // Object ID
+ }
+ }
+ },
+ "vis.0": {
+ "main": {
+ "w00001": {
+ "prefix": "main",
+ "namespace": "vis.0",
+ "view": "Rollo",
+ "widgetId": "w00001",
+ "newId": "schedule-switcher.0.onoff.3.data"
+ }
+ }
+ }
+}
+```
+
+### Create widget
+
+[Summary](#summary)
+
+- Insert a widget in a view
+
+![create_widget.png](img/create_widget.png)
+
+- Select ID for schematic data
+- Select Schedule Activation ID
+- Select ID of the switched state (max. 10 possible)
+
+![create_widget_stateid.png](img/create_widget_stateid.png)
+
+- Define value type and the values that should be set
+
+![create_widget_stateid_1.png](img/create_widget_stateid_1.png)
+
+- Create on time schedule
+
+![create_widget_select.png](img/create_widget_select.png)
+
+### Change name
+
+[Summary](#summary)
+
+- Change names - objects are customized
+
+![create_widget_name.png](img/create_widget_name.png)
+
+### Create condition
+
+[Summary](#summary)
+
+- Create a condition.
+
+![create_widget_select_condition.png](img/create_widget_select_condition.png)
+
+### Change text
+
+[Summary](#summary)
+
+- Change text on/off and all on/all off
+
+![create_widget_rename_1.png](img/create_widget_rename_1.png)
+![create_widget_rename_2.png](img/create_widget_rename_2.png)
+
+### Use css [Description see css](#css)
+
+[Summary](#summary)
+
+- Use Enable CSS to customize the style
+ ![create_widget_css.png](img/create_widget_css.png)
+ ![create_widget_css_1.png](img/create_widget_css_1.png)
+ ![create_widget_css_2.png](img/create_widget_css_2.png)
+ ![create_widget_css_3.png](img/create_widget_css_3.png)
+ ![widget_switched.png](img/widget_switched.png)
+ ![widget_manual.png](img/widget_manual.png)
+ ![widget_astro_icon.png](img/widget_astro_icon.pngg)
+ ![widget_condition_1.png](img/widget_condition_1.png)
+ ![widget_condition_2.png](img/widget_condition_2.png)
+
+### Trigger
+
+[Summary](#summary)
+
+- Click on the pen to enter the time or click on the trash can to delete the trigger
+
+![create_widget_select_time.png](img/create_widget_select_time.png)
+
+- Select switching state
+- Select a condition (optional)
+- Enter time (hh:mm)
+
+```:warning:
+ ⚠ Does not show any time field in Firefox.
+```
+
+![create_widget_select_time_add_1.png](img/create_widget_select_time_add_1.png)
+
+- Select day of the week
+- Click save at the top right
+
+![create_widget_select_time_add_2.png](img/create_widget_select_time_add_2.png)
+
+- Done
+
+![create_widget_select_time_done.png](img/create_widget_select_time_done.png)
+
+### Astro Trigger
+
+[Summary](#summary)
+
+- Click on the pen to select the astro time or click on the trash can to delete the trigger
+
+![create_widget_select_astro.png](img/create_widget_select_astro.png)
+
+- Select switching state
+- Select a condition (optional)
+- Select astro time (Sunrise, Sunset or Noon)
+
+![create_widget_select_astro_add_1.png](img/create_widget_select_astro_add_1.png)
+
+- Enter offset in minutes (optional)
+- Select day of the week
+- Click save at the top right
+
+![create_widget_select_astro_add_2.png](img/create_widget_select_astro_add_2.png)
+
+- Done
+
+![create_widget_select_astro_done.png](img/create_widget_select_astro_done.png)
+
+### One Time Trigger
+
+[Summary](#summary)
+
+- Select switching state
+- Select a condition (optional)
+- Enter time (hh:mm:ss)
+- Click save at the top right
+
+![create_widget_select_onetime.png](img/create_widget_select_onetime.png)
+
+- Done
+
+![create_widget_select_onetime_done.png](img/create_widget_select_onetime_done.png)
+
+- Select switching state
+- Select a condition (optional)
+- Enter or select time/date (dd.mm.yyyy hh:mm:ss)
+- Click save at the top right
+
+```:warning:
+ ⚠ Does not show any time field in Firefox.
+```
+
+![create_widget_select_onetime_date.png](img/create_widget_select_onetime_date.png)
+![create_widget_select_onetime_date_calendar.png](img/create_widget_select_onetime_date_calendar.png)
+
+- Done
+
+![create_widget_select_onetime_date_done.png](img/create_widget_select_onetime_date_done.png)
+
+### HTML for VIS and VIS-2
+
+[Summary](#summary)
+
+- `html.background_color_body` Background color of the body. Complete with VIS and only the widget with VIS-2 - default #000000
+- `html.background_color_even` background color trigger even number - default #1E1E1E
+- `html.background_color_odd` background color trigger odd number - default #18171C
+- `html.background_color_trigger` background color trigger object - default #000000
+- `html.background_color_weekdays_hover` background color when hovering over the days of the week - click to activate/deactivate - default blue
+- `html.column_align_01` Header text alignment column 1 - default center
+- `html.column_align_02` Header text alignment column 2 - default center
+- `html.column_align_03` Header text alignment column 3 - default center
+- `html.column_align_04` Header text alignment column 4 - default center
+- `html.column_align_05` Header text alignment column 5 - default center
+- `html.column_align_06` Header text alignment column 6 - default center
+- `html.column_align_07` Header text alignment column 7 - default center
+- `html.column_align_08` Header text alignment column 8 - default center
+- `html.column_align_09` Header text alignment column 9 - default center
+- `html.column_align_10` Header text alignment column 10 - default center
+- `html.column_text_01` Header text column 1 - default Schedule
+- `html.column_text_02` Header text column 2 - default Devices
+- `html.column_text_03` header text column 3 - default switch
+- `html.column_text_04` header text column 4 - default Mon
+- `html.column_text_05` header text column 5 - default Tu
+- `html.column_text_06` Header text column 6 - default We
+- `html.column_text_07` Header text column 7 - default Th
+- `html.column_text_08` header text column 8 - default Fr
+- `html.column_text_09` header text column 9 - default Sa
+- `html.column_text_10` Header text column 10 - default Su
+- `html.column_width_01` width of column 1 - default auto
+- `html.column_width_02` width of column 2 - default auto
+- `html.column_width_03` Width of column 3 - default auto
+- `html.column_width_04` Width of column 4 - default auto
+- `html.column_width_05` Width of column 5 - default auto
+- `html.column_width_06` Width of column 6 - default auto
+- `html.column_width_07` Width of column 7 - default auto
+- `html.column_width_08` Width of column 8 - default auto
+- `html.column_width_09` Width of column 9 - default auto
+- `html.column_width_70` Width of column 10 - default auto
+- `html.font_color_text_disabled` Text color from disabled object - default red
+- `html.font_color_text_enabled` Text color of the activated object - default yellow
+- `html.font_color_weekdays_disabled` Text color of disabled weekdays - default red
+- `html.font_color_weekdays_enabled` Text color of enabled weekdays - default yellow
+- `html.header_border` head margin in px - default 2
+- `html.header_font_family` head font family - default Helvetica
+- `html.header_font_size` head font size - default 15
+- `html.header_linear_color_1` head background image: linear gradient 1 - default #BDBDBD
+- `html.header_linear_color_2` head background image: linear gradient 2 - default #BDBDBD
+- `html.header_tag_border_color` Head HTML TAG `` border color - default #424242
+- `html.header_width` head TAG `` size default auto
+- `html.column_align_row_01` Text alignment of the rows in column 1 - default left
+- `html.column_align_row_02` Text alignment of the rows in column 2 - default left
+- `html.column_align_row_03` Text alignment of the rows in column 3 - default left
+- `html.column_align_row_04` Text alignment of the rows in column 4 - default left
+- `html.column_align_row_05` Text alignment of the rows in column 5 - default left
+- `html.column_align_row_06` Text alignment of the rows in column 6 - default left
+- `html.column_align_row_07` Text alignment of the rows in column 7 - default left
+- `html.column_align_row_08` Text alignment of the rows in column 8 - default left
+- `html.column_align_row_09` Text alignment of the rows in column 9 - default left
+- `html.column_align_row_10` Text alignment of the rows in column 10 - default left
+- `html.headline_color` Header font color (schedule, device ...) - default #ffffff
+- `html.headline_font_size` Header font size in px - default 16
+- `html.headline_height` Header height in px - default 35
+- `html.headline_underlined` Header underline in px - default 3
+- `html.headline_underlined_color` Header underline color - default #ffffff
+- `html.headline_weight` Header text weight - default normal
+- `html.html_code` HTML Code for VIS, VIS-2, Jarvis, IQontrol etc
+- `html.icon_false` Icon Trigger off - default ⚪
+- `html.icon_switch_symbol` Icon switch to activate/deactivate the timer - default ⏱
+- `html.icon_true` Icon Trigger on - default 🟡
+- `html.jarvis` Compatible with Jarvis - default false
+- `html.p_tag_text_algin` HTML `` Text align (Last Update and Footer) - default center
+- `html.table_tag_border_color` Border color for ` ` - default #424242
+- `html.table_tag_cell` border-spacing for `` in px - default 6
+- `html.table_tag_text_align` Text algin for `` - default center
+- `html.table_tag_width` Width for `` - default auto
+- `html.td_tag_border_bottom` Border bottom for `` in px - default 1
+- `html.td_tag_border_color` Border color for ` | ` - default #424242
+- `html.td_tag_border_right` Border right for ` | ` in px - default 1
+- `html.td_tag_cell` Padding text for ` | ` in px - default 6
+- `html.top_font_family` Font family for header and footer - default Helvetica
+- `html.top_font_size` Font size for header and footer in px - default 20
+- `html.top_font_weight` Font weight for header and footer - default normal"
+- `html.top_text` Own text for header - default your text
+- `html.top_text_color` Text color for header and footer - default #ffffff
+- `html.update` Start manual update
+
+![vis_object_1.png](img/vis_object_1.png)
+
+- Click on the text “Last updated” to manual update
+- Click on the icon to activate/deactivate the widget
+- To delete a trigger you first have to tick the checkbox and then press the 'delete' button
+- Change times/Astro and press the 'save' button to apply the changes
+- Click on the day of the week to activate/deactivate it
+
+![vis_view_1.png](img/vis_view_1.png)
+![vis_view_2.png](img/vis_view_2.png)
+
+### Function for VIS-2 ONLY!!!
+
+[Summary](#summary)
+
+Unfortunately, ONLY with VIS-2 the functions listed below have to be inserted manually (see pictures)
+
+![vis2_object.png](img/vis2_object.png)
+![vis2_script.png](img/vis2_script.png)
+
+```java
+function deleteTrigger(stateId, command, id, dataid, count) {
+ var check = document.getElementById('delete' + count).checked;
+ if (ckeck) {
+ var data = {
+ "command": command,
+ "message": {
+ "triggerid": id,
+ "dataId": dataid,
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+ }
+}
+function changeweekdays(stateId, command, dataid, id, changeid, type) {
+ if (type === "OneTimeTrigger") return;
+ var data = {
+ "command": command,
+ "message": {
+ "changeid": changeid,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function updateTrigger(stateId) {
+ vis.conn.setState(stateId + '.html.update', { val: true, ack: false });
+}
+function setState(stateId, value) {
+ vis.conn.setState(stateId, { val: value == 'false' ? false : true, ack: false });
+}
+function sendToAstro(stateId, command, dataid, id, count) {
+ var timeselect = document.getElementById('timeselect' + count).value;
+ var shift = document.getElementById('shift' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "astrotime": timeselect,
+ "shift": shift,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToDateTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('datetime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('nexttime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+```
+
+### CSS
+
+[Summary](#summary)
+
+```
+app-on-off-schedules-widget {
+ /* Primary color (button background, toggle switch color) */
+ --ts-widget-primary-color: #337ab7;
+
+ /* Background color of the widget */
+ --ts-widget-bg-color: #424242;
+ /* Background color of the triggers */
+ --ts-widget-trigger-bg-color: #272727;
+
+ /* Foreground color (font color and scrollbar color) */
+ --ts-widget-fg-color: white;
+ /* Font color of the switched states id */
+ --ts-widget-oid-fg-color: #a5a5a5;
+ /* Font color in buttons */
+ --ts-widget-btn-fg-color: white;
+ /* Font color of a disabled weekday */
+ --ts-widget-weekdays-disabled-fg-color: #5D5D5D;
+ /* Font color of an enabled weekday */
+ --ts-widget-weekdays-enabled-fg-color: white;
+ /* Font color of the name of the widget (defaults to --ts-widget-fg-color) */
+ --ts-widget-name-fg-color: white;
+ /* Font color of switched time (defaults to --ts-widget-fg-color) */
+ --ts-widget-switched-time-fg-color: white;
+ /* Font color of switched value (defaults to --ts-widget-fg-color)*/
+ --ts-widget-switched-value-fg-color: white;
+ /* Font color of the astro time (defaults to --ts-widget-fg-color) */
+ --ts-widget-astro-time-fg-color: black;
+ /* Font color of the astro time's shift */
+ --ts-widget-astro-shift-fg-color: #5d5d5d;
+ /* Font color of condition (defaults to --ts-widget-fg-color) */
+ --ts-widget-condition-fg-color: white;
+ /* Font color of toogle button off */
+ --ts-widget-off-color: #c0c0c0;
+ /* Color background toogle button off */
+ --ts-widget-off-color-container: #808080;
+ /* Color of next astro switching time */
+ --ts-widget-astro-next-fg-color: white;
+
+ /* Font family used in the whole widget */
+ --ts-widget-font-family: 'Roboto', 'Segoe UI', BlinkMacSystemFont, system-ui, -apple-system;
+ /* Font size of the name of the widget */
+ --ts-widget-name-font-size: 2em;
+ /* Font size of the switched oid */
+ --ts-widget-oid-font-size: 30px;
+ /* Font size of switch text */
+ --ts-widget-state-action-width: 65px;
+ /* Font size of next astro switching time */
+ --ts-widget-astro-next-font-size: 2em;
+ /* Width of date time input */
+ --ts-widget-datetime-width: 230px;
+
+ /* Display of edit name button. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-edit-name-button-display: block;
+ /* Display of condition. Use 'none' to hide the condition and 'block' to show it
+ -ts-widget-condition-display: block;
+ /* Display of time icon. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-time-icon-display: none;
+
+ /* Applies a filter to icons used in buttons (safe, edit, remove, cancel), for
+ white use invert(1) and for black invert(0) */
+ --ts-widget-img-btn-filter: invert(1);
+
+ /* Add trigger dropdown background color */
+ --ts-widget-add-trigger-dropdown-bg-color: #f1f1f1;
+ /* Add trigger dropdown font color */
+ --ts-widget-add-trigger-dropdown-fg-color: black;
+ /* Add trigger dropdown hover background color */
+ --ts-widget-add-trigger-dropdown-hover-bg-color: #ddd;
+
+ /* ! Changing these may break the layout, change at your own risk */
+
+ /* Font size of weekdays */
+ --ts-widget-weekdays-font-size: 23px;
+ /* Font size of switched value (on/off) */
+ --ts-widget-switched-value-font-size: 2em;
+ /* Font size of switched time */
+ --ts-widget-switched-time-font-size: 2em;
+ /* Font size of the astro time (e.g. Sunrise, ...) */
+ --ts-widget-astro-time-font-size: 1.5em;
+ /* Font size of the astro time's shift */
+ --ts-widget-astro-shift-font-size: 1em;
+ /* Font size of condition */
+ --ts-widget-condition-font-size: 1em;
+}
+```
+
+## Changelog
+
+
+
+### **WORK IN PROGRESS**
+
+- (Lucky_ESA) HTML overview added
+
+### 0.0.6 (2024-11-16)
+
+- (Lucky_ESA) Put value of state correctly
+- (Lucky_ESA) Added next triggers as JSON
+- (Lucky_ESA) Added counter trigger
+- (Lucky_ESA) Updating astro time fixed
+
+### 0.0.5 (2024-11-06)
+
+- (Lucky_ESA) Crash when updating astro time fixed
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.4 (2024-11-04)
+
+- (Lucky_ESA) Temporary function removed
+- (Lucky_ESA) Creation of objects adjusted
+- (Lucky_ESA) Validation check of the states
+- (Lucky_ESA) Validation check for 2 widgets with one object
+
+### 0.0.3 (2024-10-30)
+
+- (Lucky_ESA) Fixed VIS translate
+- (Lucky_ESA) Added astro time in trigger
+- (Lucky_ESA) Fixed OneTimeTrigger
+- (Lucky_ESA) Added date for OneTimeTrigger
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.2 (2024-10-22)
+
+- (Lucky_ESA) Fix translate
+- (Lucky_ESA) Fix background color disable Weekdays
+- (Lucky_ESA) Fix sendTo
+- (Lucky_ESA) Added jsonConfig
+- (Lucky_ESA) Added history
+
+### 0.0.1 (2024-10-19)
+
+- (Lucky_ESA) initial release
+
+## License
+
+MIT License
+
+Copyright (c) 2024 Lucky_ESA
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget.png
new file mode 100644
index 000000000..1d2fe5fd1
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css.png
new file mode 100644
index 000000000..11c1fd5f3
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png
new file mode 100644
index 000000000..1c0cb5ce5
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png
new file mode 100644
index 000000000..2ca07bfd2
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png
new file mode 100644
index 000000000..57c9cbb95
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_name.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_name.png
new file mode 100644
index 000000000..618f6e623
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_name.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png
new file mode 100644
index 000000000..1aad20b42
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png
new file mode 100644
index 000000000..adf93acf5
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select.png
new file mode 100644
index 000000000..d77729b5d
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png
new file mode 100644
index 000000000..e01a1fb9c
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png
new file mode 100644
index 000000000..15e84fa39
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png
new file mode 100644
index 000000000..977ba0b0e
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png
new file mode 100644
index 000000000..e01a1fb9c
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png
new file mode 100644
index 000000000..1ced265a9
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png
new file mode 100644
index 000000000..7b4d7c8c8
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png
new file mode 100644
index 000000000..96b792652
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png
new file mode 100644
index 000000000..c3e2025cc
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png
new file mode 100644
index 000000000..b592c057e
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png
new file mode 100644
index 000000000..5bc959f4e
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png
new file mode 100644
index 000000000..97d819e52
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png
new file mode 100644
index 000000000..63ad6c0cc
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png
new file mode 100644
index 000000000..5ab2e107a
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png
new file mode 100644
index 000000000..fdf800ca7
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png
new file mode 100644
index 000000000..954ae1ac6
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png
new file mode 100644
index 000000000..70959aed6
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings.png b/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings.png
new file mode 100644
index 000000000..1c9151cd5
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png
new file mode 100644
index 000000000..926a0ed42
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/view_states.png b/docs/en/adapterref/iobroker.schedule-switcher/img/view_states.png
new file mode 100644
index 000000000..fa32347be
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/view_states.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_object.png b/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_object.png
new file mode 100644
index 000000000..364ef5cbb
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_object.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_script.png b/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_script.png
new file mode 100644
index 000000000..ae8596bcb
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/vis2_script.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/vis_object_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_object_1.png
new file mode 100644
index 000000000..1e9c35613
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_object_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_1.png
new file mode 100644
index 000000000..ee2c16193
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_2.png
new file mode 100644
index 000000000..4ace7e49e
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/vis_view_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png
new file mode 100644
index 000000000..43ded1185
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png
new file mode 100644
index 000000000..d9b52aa8d
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/widget_manual.png b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_manual.png
new file mode 100644
index 000000000..841b69837
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_manual.png differ
diff --git a/docs/en/adapterref/iobroker.schedule-switcher/img/widget_switched.png b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_switched.png
new file mode 100644
index 000000000..200f15142
Binary files /dev/null and b/docs/en/adapterref/iobroker.schedule-switcher/img/widget_switched.png differ
diff --git a/docs/en/adapterref/iobroker.schoolfree/README.md b/docs/en/adapterref/iobroker.schoolfree/README.md
index 71483d721..5d554fbf5 100644
--- a/docs/en/adapterref/iobroker.schoolfree/README.md
+++ b/docs/en/adapterref/iobroker.schoolfree/README.md
@@ -79,9 +79,10 @@ When the adapter crashes or an other Code error happens, this error message that
## Changelog
+### __WORK IN PROGRESS__
* (simatec) Dependencies updated
+* (simatec) Issue Action added
-### __WORK IN PROGRESS__
### 1.1.5 (2024-09-21)
* (simatec) Dependencies updated
* (simatec) small fix
diff --git a/docs/en/adapterref/iobroker.semp/README.md b/docs/en/adapterref/iobroker.semp/README.md
index 5edd3db81..d976ceb7b 100644
--- a/docs/en/adapterref/iobroker.semp/README.md
+++ b/docs/en/adapterref/iobroker.semp/README.md
@@ -43,11 +43,11 @@ It is not even necessary for the consumption of a single device to be measured.
## user documentation
-see [docu](docu/docu_en.md)
+see [docu](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/docu_en.md)
-For details about protocol and usage check [SMA docu](docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
+For details about protocol and usage check [SMA docu](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
-An description about general usage of energy requests see [SMA docu](docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf). (german only)
+An description about general usage of energy requests see [SMA docu](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf). (german only)
## Features
* add devices from ioBroker in SunnyPortal via SMA SEMP
@@ -66,11 +66,10 @@ An description about general usage of energy requests see [SMA docu](docu/SMA/SS
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-
-### **WORK IN PROGRESS**
+### 1.4.8 (2024-11-20)
* (René) update dependencies
* (René) issue #317: test with nodejs@22
-
+* (René) issue #329: links to docu updated
### 1.4.7 (2024-09-13)
* (René) see issue #314: bug fix to use express@5.0.0
diff --git a/docs/en/adapterref/iobroker.shuttercontrol/README.md b/docs/en/adapterref/iobroker.shuttercontrol/README.md
index 5a7ed69fc..882fd3be1 100644
--- a/docs/en/adapterref/iobroker.shuttercontrol/README.md
+++ b/docs/en/adapterref/iobroker.shuttercontrol/README.md
@@ -795,8 +795,14 @@ _[Back to top](#documentation-and-instructions-for-shuttercontrol)_
## Changelog
### __WORK IN PROGRESS__
+* (simatec) Bugfix Brightness down
+* (simatec) eslint-config added
+
+### 1.8.4 (2024-11-07)
* (simatec) Issue Info added
* (simatec) Dependencies updated
+* (simatec) Design Fix
+* (simatec) Bugfix Brightness down
### 1.8.3 (2024-10-16)
* (simatec) Fix Alarm
diff --git a/docs/en/adapterref/iobroker.signifylights/README.md b/docs/en/adapterref/iobroker.signifylights/README.md
index e074b7670..dce3e650e 100644
--- a/docs/en/adapterref/iobroker.signifylights/README.md
+++ b/docs/en/adapterref/iobroker.signifylights/README.md
@@ -24,7 +24,11 @@ Reference to a company or a product name does not imply approval or recommendati
that company or product to the exclusion of others.
## Changelog
-### 0.4.0 (2024-11-01)
+### 0.4.2 (2024-11-06)
+* implement responsive design in config page (thx simatec)
+
+### 0.4.1 (2024-11-02)
+* fix eslint 9.x
* add ESP26_SHRGB_01: WIZ Wi-Fi BLE ST64 E27 822-65 RGB CL
* add ESP25_SHRGB_01: added (WiZ Wi-Fi BLE 60W A60 E27 822-65 RGB)
* various stuff from adapter check
diff --git a/docs/en/adapterref/iobroker.slideshow/README.md b/docs/en/adapterref/iobroker.slideshow/README.md
index 11d24fc9b..82cd690bd 100644
--- a/docs/en/adapterref/iobroker.slideshow/README.md
+++ b/docs/en/adapterref/iobroker.slideshow/README.md
@@ -132,7 +132,7 @@ Also configurable is how often the list of images should be updated. The setting
When source "File system" is selected, the path can be entered and the format (landscape or portrait) of the pictures to be shown. Also the order can be configured.
-When source "Synology PhotoStation" is selected, the Synology DSM version, the IP address or hostname and an username with password has to be configured. Download of pictures has to be enabled in PhotoStation settings.
+When source "Synology PhotoStation" is selected, the Synology DSM version, the IP address or hostname and an username with password has to be configured.
Attention: After changes (Adding or Deleting) a restart of the adapter is required.
@@ -174,30 +174,21 @@ Can network drives be integrated?
Yes, but not directly through the adapter. ioBroker now supports a large number of operating systems. Accessing and connecting network shares is completely different depending on the operating system. In some cases, additional components such as Samba for Linux are also required. The connection of the network drive (mapping or mount) can be done directly by the operating system. Under Linux, the mount takes place in a specified directory, e.g. / mnt / pictures. This directory can then be used in the adapter configuration.
-**Source Synology**
-
-Can additional settings like album selection be integrated for Synology PhotoStation?
-Can DSM 7 (Synology Photos) be supported?
-
-Synology PhotoStation will end with DSM 6. The successor, Synology Photos, appears with DSM 7. DSM 7 is currently still beta, the final version will probably appear in summer 2021. Presumably the developer interface will also change. So I won't invest any more effort in the previous version. As soon as DSM 7 is officially released, I will check the integration. Unfortunately, there was no official Synology documentation for the previous version.
-However, access to certain photo albums or folders can easily be implemented in the current version of PhotoStation. To do this, create a user for slideshow under DSM and only give this user permissions to the desired photo albums or folders in the PhotoStation.
-
## Changelog
+### 0.2.1 (2024-11-18)
+* (Gaudes) Update in package.json for VIS
-### __WORK IN PROGRESS__
-* (Scrounger) image location infos added
-* (Scrounger) reading gps data
-* (Scrounger) Exif data fallback method added
+### 0.2.0 (2024-11-13)
* (Gaudes) Include support for Synology DSM 7
-* (Gaudes) Remove support for Node 10 and 12 (dependency)
+* (Gaudes) Add controls for start/stop
+* (Gaudes) Remove support for older Node versions
* (Gaudes) Update to newest Adapter creator for internal dependencies
* (Gaudes) Include adapter-dev
* (Gaudes) Include Dependabot updates
-* (Gaudes) Remove su
### 0.1.4 (2021-04-18)
* (Gaudes) Configurable order for Filesystem (Git #37)
@@ -255,7 +246,7 @@ However, access to certain photo albums or folders can easily be implemented in
## License
MIT License
-Copyright (c) 2022 Gaudes
+Copyright (c) 2024 Gaudes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/en/adapterref/iobroker.sma-em/README.md b/docs/en/adapterref/iobroker.sma-em/README.md
index 1eddfb4da..42e78746c 100644
--- a/docs/en/adapterref/iobroker.sma-em/README.md
+++ b/docs/en/adapterref/iobroker.sma-em/README.md
@@ -58,6 +58,11 @@ From this, the object names are put together, e.g.
- ...
## Changelog
+
+### __WORK IN PROGRESS__
+
+- (simatec) Responsive Design added
+
### 1.1.0 (2024-08-15) - 2024H2 maintenance release
- (pdbjjens) Change: node>=18, js-contoller>=5 and admin>=6 required
diff --git a/docs/en/adapterref/iobroker.smoothed/README.md b/docs/en/adapterref/iobroker.smoothed/README.md
index 9b80aadc9..f86e25f4c 100644
--- a/docs/en/adapterref/iobroker.smoothed/README.md
+++ b/docs/en/adapterref/iobroker.smoothed/README.md
@@ -27,6 +27,9 @@ Or ignore values with a high standard deviation.
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.1.1 (2024-11-21)
+* Add more smoothtime values
+
### 1.1.0 (2024-08-13)
* (BenAhrdt) Update Dependencies: "js-controller": ">=5.0.19"
Check your System before installing new Version
diff --git a/docs/en/adapterref/iobroker.solarmanpv/README.md b/docs/en/adapterref/iobroker.solarmanpv/README.md
index 3d0317eb4..62b26ba4a 100644
--- a/docs/en/adapterref/iobroker.solarmanpv/README.md
+++ b/docs/en/adapterref/iobroker.solarmanpv/README.md
@@ -53,6 +53,10 @@ adaptations of the api, as far as they exist, have not been made.
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 0.6.2 (2024-11-08)
+* (raschy) responsive-design customized
+* (raschy) updated to adapter-core 3.2.2
+
### 0.6.1 (2024-08-15)
* (raschy) renewed version without changes
* (raschy) Dependencies require minor releases
diff --git a/docs/en/adapterref/iobroker.solax/README.md b/docs/en/adapterref/iobroker.solax/README.md
index 0bc4acc95..eafdbce1a 100644
--- a/docs/en/adapterref/iobroker.solax/README.md
+++ b/docs/en/adapterref/iobroker.solax/README.md
@@ -102,6 +102,8 @@ If you would like to have other inverters integrated, you should make the data e
### __WORK IN PROGRESS__
* (simatec) Dependencies updated
+* (simatec) small Design fix
+* (simatec) Issue Action added
### 0.9.12 (2024-09-26)
* (simatec) Fix for Admin 7.1.5
diff --git a/docs/en/adapterref/iobroker.statistics/README.md b/docs/en/adapterref/iobroker.statistics/README.md
index a8c86255a..e71186abf 100644
--- a/docs/en/adapterref/iobroker.statistics/README.md
+++ b/docs/en/adapterref/iobroker.statistics/README.md
@@ -50,7 +50,12 @@ The structure of the state is: `statistics.0.{save|temp}.{kind of stat}.{origina
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
-### **WORK IN PROGRESS**
+### 3.1.0 (2024-11-18)
+
+* (@simatec) Added responsive jsonConfig
+* (@klein0r) Copy unit of source state to all statistic states
+
+### 3.0.0 (2024-11-15)
NodeJS >= 18.x and js-controller >= 5 is required
### 2.4.0 (2023-11-03)
@@ -75,12 +80,6 @@ NodeJS 14.5.0 is required
* (klein0r) Removed dayMin and dayMax from avg (use minmax for that case!)
* (klein0r) Fix: Calculation of avg when no change of value
-### 2.2.0 (2022-07-07)
-* (klein0r) Added absolute min and max values
-
-### 2.1.1 (2022-06-16)
-* (klein0r) Fixed usage of default values for groups
-
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.sun2000/README.md b/docs/en/adapterref/iobroker.sun2000/README.md
index f89ac5642..417a07955 100644
--- a/docs/en/adapterref/iobroker.sun2000/README.md
+++ b/docs/en/adapterref/iobroker.sun2000/README.md
@@ -34,6 +34,16 @@ Work in progress
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 0.17.1 (2024-11-21)
+* during the device status "Standby: detecting irradiation" (0x0002) register data is now also read from the inverter
+* The reading order of the battery data has been adjusted
+
+### 0.17.0 (2024-11-05)
+* adjust for Responsive Design #134
+* migrate to ESLint 9.x
+* node >= v18.18.0
+* modbus-proxy: enabled reading data via input register
+
### 0.16.0 (2024-11-01)
* dependency and configuration updates
* read additional register data of Huawei Emma
diff --git a/docs/en/adapterref/iobroker.tado/README.md b/docs/en/adapterref/iobroker.tado/README.md
index f8a616303..3a0679203 100644
--- a/docs/en/adapterref/iobroker.tado/README.md
+++ b/docs/en/adapterref/iobroker.tado/README.md
@@ -65,6 +65,11 @@ If your setup is not working, please raise a [ticket](https://github.com/Drozmot
Placeholder for the next version (at the beginning of the line):
### __WORK IN PROGRESS__
-->
+### 0.6.1 (2024-11-04)
+* (HGlab01) Add attributes 'expiryInSeconds' and 'activated'
+* (HGlab01) Extend timeout back to 20s
+* (HGlab01) Tado° X improvements
+
### 0.6.0 (2024-10-23)
* (HGlab01) Start supporting Tado° X
@@ -84,9 +89,6 @@ If your setup is not working, please raise a [ticket](https://github.com/Drozmot
* (HGlab01) Add attribute 'language'
* (HGlab01) Add attribute 'isHeatPumpInstalled'
-### 0.5.5 (2024-06-25)
-* (HGlab01) Bump axios to 1.7.2
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.tapo/README.md b/docs/en/adapterref/iobroker.tapo/README.md
index 537a40ae1..5c1bef913 100644
--- a/docs/en/adapterref/iobroker.tapo/README.md
+++ b/docs/en/adapterref/iobroker.tapo/README.md
@@ -32,6 +32,10 @@ tapo.0.id.remote auf true/false setzen steuert den jeweiligen Befehl. Der Befehl
## Changelog
+### 0.3.4 (2024-11-10)
+
+- update Tapo local lib
+
### 0.3.3 (2024-06-17)
- ignore ssl legacy error
diff --git a/docs/en/adapterref/iobroker.telegram-menu/README.md b/docs/en/adapterref/iobroker.telegram-menu/README.md
index ce64659ad..856c2f0bc 100644
--- a/docs/en/adapterref/iobroker.telegram-menu/README.md
+++ b/docs/en/adapterref/iobroker.telegram-menu/README.md
@@ -33,6 +33,10 @@ You can create different groups with separate menus, and then assign users to th
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.1.4 (2024-11-23)
+
+- FIX: #203 Scrolling in table
+
### 2.1.3 (2024-10-21)
- FIX: User checkbox error message
diff --git a/docs/en/adapterref/iobroker.tibberlink/README.md b/docs/en/adapterref/iobroker.tibberlink/README.md
index 65f3ef4e5..16765805f 100644
--- a/docs/en/adapterref/iobroker.tibberlink/README.md
+++ b/docs/en/adapterref/iobroker.tibberlink/README.md
@@ -106,6 +106,15 @@ If you enjoyed this project — or just feeling generous, consider buying me a b
## Changelog
+### 3.5.3 (2024-11-23)
+
+- (HombachC) fix edge case in output state setup and usage
+- (HombachC) optimzed state subscription
+- (HombachC) update deprecated state calls
+- (HombachC) add await to delObjectAsync
+- (HombachC) harmonize project tools
+- (HombachC) dependency updates
+
### 3.5.2 (2024-10-30)
- (HombachC) add verification for YES/NO 2 values in calculator (#547)
diff --git a/docs/en/adapterref/iobroker.tinker/README.md b/docs/en/adapterref/iobroker.tinker/README.md
index c915e816a..bc9b07882 100644
--- a/docs/en/adapterref/iobroker.tinker/README.md
+++ b/docs/en/adapterref/iobroker.tinker/README.md
@@ -85,6 +85,8 @@ On configuration page you can select following modules:
### __WORK IN PROGRESS__
* (simatec) Dependencies updated
+* (simatec) Fix jsonConfig
+* (simatec) Issue Action added
### 1.3.4 (2024-09-26)
* (simatec) Fix for Admin 7.1.5
diff --git a/docs/en/adapterref/iobroker.tractive-gps/README.md b/docs/en/adapterref/iobroker.tractive-gps/README.md
index 719dfbc24..bb3436eb7 100644
--- a/docs/en/adapterref/iobroker.tractive-gps/README.md
+++ b/docs/en/adapterref/iobroker.tractive-gps/README.md
@@ -83,6 +83,13 @@ Or you can use the tab **files** to upload the file. (see image below)
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 2.1.0 (2024-11-12)
+* (mcm1957) Adapter requires node 20 now.
+* (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+* (simatec) Adapter changed to meet Responsive Design rules.
+* (mcm1957) An error at jsonConfig invalidating reauthorization command has been corrected.
+* (mcm1957) Dependencies have been updated.
+
### 2.0.1 (2024-08-20)
* (bluefox) Fixing encryption of the access token
@@ -100,10 +107,6 @@ Or you can use the tab **files** to upload the file. (see image below)
* (Scrounger) Bugfix for excessive number of warnings has been added
* (Scrounger) Distance calculation between ioBroker and tracker has been added
-### 1.0.0 (2023-11-04)
-* (mcm1957) Adapter has been moved into iobroker-community-adapters organisation
-* (mcm1957) Dependencies have been updated
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.trashschedule/README.md b/docs/en/adapterref/iobroker.trashschedule/README.md
index 5119767c1..f38dd0a08 100644
--- a/docs/en/adapterref/iobroker.trashschedule/README.md
+++ b/docs/en/adapterref/iobroker.trashschedule/README.md
@@ -66,9 +66,10 @@ chapters: {"pages":{"en/adapterref/iobroker.trashschedule/README.md":{"title":{"
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
-### **WORK IN PROGRESS**
+### 3.4.0 (2024-11-07)
* (@klein0r) Validate user inputs in instance configuration
+* (@Sickboy78) Added Awido as Webservice
### 3.3.0 (2024-04-28)
@@ -92,10 +93,6 @@ NodeJS >= 18.x and js-controller >= 5 is required
* (klein0r) Fixed exception when cache dir doesn't exist
-### 3.1.1 (2023-12-22)
-
-* (klein0r) Fixed config validation / integration test
-
## License
MIT License
diff --git a/docs/en/adapterref/iobroker.trashschedule/providers.md b/docs/en/adapterref/iobroker.trashschedule/providers.md
index c3f2f5b7b..3a8a219f9 100644
--- a/docs/en/adapterref/iobroker.trashschedule/providers.md
+++ b/docs/en/adapterref/iobroker.trashschedule/providers.md
@@ -114,4 +114,55 @@ chapters: {"pages":{"en/adapterref/iobroker.trashschedule/README.md":{"title":{"
- Waldenbuch
- Weil der Stadt
- Weil im Schönbuch
- - Weissach
\ No newline at end of file
+ - Weissach
+
+## Awido.de
+
+- LK Aichach Friedberg
+- LK Altenkirchen
+- LK Ansbach
+- LK Aschaffenburg
+- LK Bad Dürkheim
+- LK Bad Tölz - Wolfratshausen
+- LK Berchtesgadener Land
+- Burbach
+- LK Coburg
+- LK Dachau
+- LK Erding
+- Fulda
+- LK Fulda
+- LK Fürstenfeldbruck
+- LK Gießen
+- LK Gotha
+- LK Günzburg
+- LK Haßberge
+- LK Hersfeld Rotenburg
+- Kaufbeuren
+- LK Kelheim
+- LK Kulmbach
+- LK Kronach
+- LK Lahn Dill
+- Memmingen
+- LK Mühldorf am Inn
+- München Südost
+- LK Neuburg Schrobenhausen
+- LK Neustadt a.d. Waldnaab
+- Nordschwaben
+- Pullach
+- Regensburg
+- LK Regensburg
+- LK Rems-Murr AöR
+- LK Rosenheim
+- LK Roth
+- LK Rottal-Inn und Dingolfing-Landau
+- LK Saale-Orla und Saalfeld-Rudolstadt
+- LK Schweinfurt
+- LK Südliche Weinstrasse
+- LK Tirschenreuth
+- LK Tübingen
+- Unterhaching
+- Unterschleißheim
+- Allmannshofen [Kein Müll]
+- Heretsried [Kein Müll]
+- Tae Kwon Do Bruderschule Hyeonsil [Kein Müll]
+- VDI Mittelrheinischer Bezirksverein [Kein Müll]
\ No newline at end of file
diff --git a/docs/en/adapterref/iobroker.tvprogram/README.md b/docs/en/adapterref/iobroker.tvprogram/README.md
index 8463ca717..f0939e90d 100644
--- a/docs/en/adapterref/iobroker.tvprogram/README.md
+++ b/docs/en/adapterref/iobroker.tvprogram/README.md
@@ -2,20 +2,16 @@
# ioBroker.tvprogram
-[![NPM version](https://img.shields.io/npm/v/iobroker.tvprogram1.svg)](https://www.npmjs.com/package/iobroker.tvprogram1)
-[![Downloads](https://img.shields.io/npm/dm/iobroker.tvprogram1.svg)](https://www.npmjs.com/package/iobroker.tvprogram1)
-![Number of Installations](https://iobroker.live/badges/tvprogram1-installed.svg)
-![Current version in stable repository](https://iobroker.live/badges/tvprogram1-stable.svg)
+[![NPM version](https://img.shields.io/npm/v/iobroker.tvprogram.svg)](https://www.npmjs.com/package/iobroker.tvprogram)
+[![Downloads](https://img.shields.io/npm/dm/iobroker.tvprogram.svg)](https://www.npmjs.com/package/iobroker.tvprogram)
+![Number of Installations](https://iobroker.live/badges/tvprogram-installed.svg)
+![Current version in stable repository](https://iobroker.live/badges/tvprogram-stable.svg)
-[![NPM](https://nodei.co/npm/iobroker.tvprogram1.png?downloads=true)](https://nodei.co/npm/iobroker.tvprogram1/)
+[![NPM](https://nodei.co/npm/iobroker.tvprogram.png?downloads=true)](https://nodei.co/npm/iobroker.tvprogram/)
-**Tests:** ![Test and Release](https://github.com/oweitman/ioBroker.tvprogram1/workflows/Test%20and%20Release/badge.svg)
+**Tests:** ![Test and Release](https://github.com/oweitman/ioBroker.tvprogram/workflows/Test%20and%20Release/badge.svg)
-**Tests:**
-[![Travis-CI](http://img.shields.io/travis/oweitman/ioBroker.tvprogram/master.svg)](https://travis-ci.com/oweitman/ioBroker.tvprogram)
-[![AppVeyor Build Status](https://img.shields.io/appveyor/ci/oweitman/iobroker-tvprogram.svg)](https://ci.appveyor.com/project/oweitman/iobroker-tvprogram)
-
-## tvprogram adapter for ioBroker
+## `tvprogram` adapter for ioBroker
This adapter polls information about the television program at regular intervals.
The data can be displayed in various widgets.
@@ -33,14 +29,6 @@ The adapter can be installed via the stable or for testing verions via beta/late
You can configure how much different TVs, or at least different configurations you will have.
-### Warnings in the iobroker-log
-
-Warnings like
-
-"Read-only state "tvprogram.0.tv1.cmd" has been written without ack-flag with value "new|program|2021-01-01"
-
-are ok by design, due the internal signalling mechanism between the adapter and the widgets, which are first set without the ack flag and after a while is reset with the ack flag.
-
### Widgets
Widgets are supported only in modern browsers (Google Chrome, Mozilla Firefox, Opera, Safari).
@@ -61,34 +49,34 @@ iobroker upload all
The following attributes are available for configuration in vis
Minimum configuration is to set the datapoint to the cmd-datapoint.
-| Attribute | Example | Description |
-| --------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
-| tvprogram_oid | tvprogram.0.tv1.cmd | A Datapoint of a instance of the tvprogram adapter. |
-| widthItem | 120 | Standard width in pixels for a 30 minute segment |
-| heightRow | 35 | Height for each displayed line |
-| showpictures | x | Show pictures in timeline if available |
-| headerfontpercent | 125 | Character size in percent for the heading (time) |
-| broadcastfontpercent | 75 | Character size in percent for the broadcasts |
-| highlightcolor | yellow | color for the favorites |
-| markerpositionpercent | 25 | Position of the Marker in percent ot the widget width |
-| dialogwidthpercent | 90 | size of the dialogs in percent of the widget |
-| dialogheightpercent | 90 | size of the dialogs in percent of the widget |
+| Attribute | Example | Description |
+| ----------------------- | --------------------- | ----------------------------------------------------- |
+| `tvprogram_oid` | `tvprogram.0.tv1.cmd` | A Datapoint of a instance of the `tvprogram` adapter. |
+| `widthItem` | 120 | Standard width in pixels for a 30 minute segment |
+| `heightRow` | 35 | Height for each displayed line |
+| `showpictures` | x | Show pictures in timeline if available |
+| `headerfontpercent` | 125 | Character size in percent for the heading (time) |
+| `broadcastfontpercent` | 75 | Character size in percent for the broadcasts |
+| `highlightcolor` | yellow | color for the favorites |
+| `markerpositionpercent` | 25 | Position of the Marker in percent ot the widget width |
+| `dialogwidthpercent` | 90 | size of the dialogs in percent of the widget |
+| `dialogheightpercent` | 90 | size of the dialogs in percent of the widget |
##### CSS-Classes
-Please change w00001 to your widget ID
+Please change `w00001` to your widget ID
To Change the formatting of the dialogs
```css
#w00001channeldlg {
- background-color: red !important;
+ background-color: red !important;
}
```
```css
#w00001broadcastdlg {
- background-color: red !important;
+ background-color: red !important;
}
```
@@ -97,26 +85,36 @@ Maybe you have to set a higher number than 300. This depends on settings in othe
```css
.ui-dialog.w00001 {
- z-index:300 !important;
+ z-index: 300 !important;
}
```
To Change the formatting of the alternating background colors of the broadcasts
```css
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(odd),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+#w00001 .scrollcontainer ul.tv-row:nth-child(odd) > li.broadcast:nth-child(odd),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.65);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(even),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(odd)
+ > li.broadcast:nth-child(even),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.55);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.45);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.45);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.35);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.35);
}
-
```
#### Favorites
@@ -126,13 +124,13 @@ This widget shows a list of the selected favorites, sorted by date and time.
The following attributes are available for configuration in vis
Minimum configuration is to set the datapoint to the cmd-datapoint.
-| Attribute | Example | Description |
-| -------------- | -------------------- | --------------------------------------------------- |
-| oid | tvprogram.0.tv 1.cmd | A Datapoint of a instance of the tvprogram adapter. |
-| channelname | no | Show logo (off) or channelname |
-| showweekday | yes | Show Weekday |
-| maxfavorites | 10 | Max favorites to show |
-| highlightcolor | yellow | color for the favorites |
+| Attribute | Example | Description |
+| ---------------- | ---------------------- | ----------------------------------------------------- |
+| `oid` | `tvprogram.0.tv 1.cmd` | A Datapoint of a instance of the `tvprogram` adapter. |
+| `channelname` | `no` | Show logo (off) or channelname |
+| `showweekday` | `yes` | Show Weekday |
+| `maxfavorites` | 10 | Max favorites to show |
+| `highlightcolor` | `yellow` | color for the favorites |
#### Control
@@ -142,34 +140,33 @@ you can click on the broadcast to get detailed information about thew broadcast.
The following attributes are available for configuration in vis
Minimum configuration is to set the datapoint to the cmd-datapoint.
-| Attribute | Example | Description |
-| --------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
-| oid | tvprogram.0.tv1.cmd | A Datapoint of a instance of the tvprogram adapter. |
-| time | | If empty then the actual broadcasts would be shown |
-| time | 20:15 | if time only the broadcast at this time would be shown for 120 minutes, then the next day is shown |
-| time | 20:15/200 | if time with duration the broadcast at this time would be shown for 200 minutes |
-| time | 2021-02-15T20:15:00.000Z | If valid Datestring, then the broadcast at this tim would be shown. Remember the timezones |
-| heightRow | 35 | Height for each displayed line |
-| showpictures | x | Show pictures if available |
-| broadcastfontpercent | 75 | Character size in percent for the broadcasts |
-| highlightcolor | yellow | color for the favorites |
-| dialogwidthpercent | 90 | size of the dialogs in percent of the widget |
-| dialogheightpercent | 90 | size of the dialogs in percent of the widget |
+| Attribute | Example | Description |
+| ---------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
+| `oid` | `tvprogram.0.tv1.cmd` | A Datapoint of a instance of the `tvprogram` adapter. |
+| `time` | | If empty then the actual broadcasts would be shown |
+| `time` | 20:15 | if time only the broadcast at this time would be shown for 120 minutes, then the next day is shown |
+| `time` | 20:15/200 | if time with duration the broadcast at this time would be shown for 200 minutes |
+| `time` | 2021-02-15T20:15:00.000Z | If valid Datestring, then the broadcast at this tim would be shown. Remember the timezones |
+| `heightRow` | 35 | Height for each displayed line |
+| `showpictures` | x | Show pictures if available |
+| `broadcastfontpercent` | 75 | Character size in percent for the broadcasts |
+| `highlightcolor` | `yellow` | color for the favorites |
+| `dialogwidthpercent` | 90 | size of the dialogs in percent of the widget |
+| `dialogheightpercent` | 90 | size of the dialogs in percent of the widget |
##### CSS-Classes
-Please change w00001 to your widget ID
+Please change `w00001` to your widget ID
To Change the formatting of the alternating background colors of the broadcasts
```css
#w00001 .tv-control .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-control .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
#### Search
@@ -182,119 +179,122 @@ One or both of the inputfields searchtext and category must be filled/selected.
The following attributes are available for configuration in vis
Minimum configuration is to set the datapoint to the cmd-datapoint.
-| Attribute | Example | Description |
-| --------------------- | ------------------- | ---------------------------------------------------- |
-| Object ID | tvprogram.0.tv1.cmd | A Datapoint of a instance of the tvprogram adapter. |
-| showpictures | x | Show pictures if available |
-| maxresults | 10 | max results in the List |
-| heightRow | 35 | Height for each displayed line |
-| broadcastfontpercent | 75 | Character size in percent for the broadcasts |
-| highlightcolor | yellow | color for the favorites |
-| dialogwidthpercent | 90 | size of the dialogs in percent of the widget |
-| dialogheightpercent | 90 | size of the dialogs in percent of the widget |
+| Attribute | Example | Description |
+| ---------------------- | --------------------- | ----------------------------------------------------- |
+| `Object ID` | `tvprogram.0.tv1.cmd` | A Datapoint of a instance of the `tvprogram` adapter. |
+| `showpictures` | x | Show pictures if available |
+| `maxresults` | 10 | max results in the List |
+| `heightRow` | 35 | Height for each displayed line |
+| `broadcastfontpercent` | 75 | Character size in percent for the broadcasts |
+| `highlightcolor` | `yellow` | color for the favorites |
+| `dialogwidthpercent` | 90 | size of the dialogs in percent of the widget |
+| `dialogheightpercent` | 90 | size of the dialogs in percent of the widget |
##### CSS-Classes
-Please change w00001 to your widget ID
+Please change `w00001` to your widget ID
To Change the formatting of the alternating background colors of the broadcasts
```css
#w00001 .tv-search .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-search .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
### Provided Datapoints
The following set of datapoint exists for every created TV
-#### channelfilter
+#### `channelfilter`
this datapoint contains the channels shown in the widget as a JSON-Array
-#### cmd
+#### `cmd`
this datapoint is used for internal communication between the widgets and the adapter
-#### favorites
+#### `favorites`
this datapoint contains the selected favorites as a JSON-Array
-#### record
+#### `record`
This datapoint is set if the user clicks the record button in the detail view of a broadcast.
The provided data are
-| field | Example | Description |
-| ----------- | -------------------------- | ---------------------- |
-| startTime | 2021-01-01T00:10:00+01:00 | Start time |
-| endTime | 2021-01-01T00:10:30+01:00 | End time |
-| title | Title of the broadcast | title of the broadcast |
-| channel | 7 | Unique channel number |
-| channelid | zdf | Unique channel id |
-| channelname | ZDF | Readable channel name |
-| eventid | 12345678 | Unique broadcast id |
+| field | Example | Description |
+| ------------- | ------------------------- | ---------------------- |
+| `startTime` | 2021-01-01T00:10:00+01:00 | Start time |
+| `endTime` | 2021-01-01T00:10:30+01:00 | End time |
+| `title` | Title of the broadcast | title of the broadcast |
+| `channel` | 7 | Unique channel number |
+| `channelid` | `zdf` | Unique channel id |
+| `channelname` | `ZDF` | Readable channel name |
+| `eventid` | 12345678 | Unique broadcast id |
-#### selectchannel
+#### `selectchannel`
This datapoint is used to recognize a channel switch command with a click on the channel logo or the switch icon in the detail view.
-#### show
+#### `show`
this datapoint contains the status of whether only favorites or everything should be displayed in the widget tvprogram
-#### config
+#### `config`
this datapoint is deprecated and will be removed in the next versions
-### Provided Sendto-Commands
+### Provided `Sendto`-Commands
All Data can be requested from the adapter by sendto-commands. this can be used to develop individual functionalities
-#### getServerData
+#### `getServerData`
Request base data from the adapter.
##### Valid parameters are
-* categories
-* genres
-* channels
+- `categories`
+- `genres`
+- `channels`
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerData","categories",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerData", "categories", (data) =>
+ console.log(data),
+);
```
-#### getServerTVProgram
+#### `getServerTVProgram`
Request program data from the adapter.
##### Valid parameters are
-a datestring in the following format: yyyy-mm-dd
+a datestring in the following format: `yyyy-mm-dd`
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerTVProgram","2021-02-10",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerTVProgram", "2021-02-10", (data) =>
+ console.log(data),
+);
```
-#### getServerBroadcast
+#### `getServerBroadcast`
Request the detail data of a broadcast.
@@ -306,34 +306,40 @@ the eventid of the broadcast
**Returns:**
-Object
+`Object`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerBroadcast",{viewdate:"2021-02-10",eventid:"10659522"},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcast",
+ { viewdate: "2021-02-10", eventid: "10659522" },
+ (data) => console.log(data),
+);
```
-#### getFavoritesDatax
+#### `getFavoritesData`
Request all favorite broadcast from now till end of saved data.
##### Valid parameters are
-Array of favorites
+`Array` of favorites
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getFavoritesDatax",['heute','Tagesschau'],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getFavoritesData", ["heute", "Tagesschau"], (data) =>
+ console.log(data),
+);
```
-#### getServerBroadcastNow
+#### `getServerBroadcastNow`
Requests all broadcasts that are currently running
@@ -343,16 +349,17 @@ Array of channelIDs of your favorite channels
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastNow",[1,6,22,7],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerBroadcastNow", [1, 6, 22, 7], (data) =>
+ console.log(data),
+);
```
-#### getServerBroadcastDate
+#### `getServerBroadcastDate`
Requests all broadcasts that are running at a datetime
@@ -363,46 +370,55 @@ datetime
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastDate",{channelfilter:[1,6,22,7],date:"2021-02-10T20:15:00.000Z"},(data)=>console.log(data));
-
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastDate",
+ { channelfilter: [1, 6, 22, 7], date: "2021-02-10T20:15:00.000Z" },
+ (data) => console.log(data),
+);
```
-#### getServerBroadcastFind
+#### `getServerBroadcastFind`
Search for broadcasts in a range of time and optional with categories
##### Valid parameters are
-channelfilter: Array of channelIDs of your favorite channels
-categoryfilter: Optional Array of categoryIDs
-datetimefrom: datetime from
-datetimetill: datetime till
-textfilter: Optional title or part of a title to search
-maxresults: Optional the max amount of results. Default value is 10
+`channelfilter`: Array of channelIDs of your favorite channels
+`categoryfilter`: Optional Array of categoryIDs
+`datetimefrom`: datetime from
+`datetimetill`: datetime till
+`textfilter`: Optional title or part of a title to search
+`maxresults`: Optional the max amount of results. Default value is 10
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastFind",{
- channelfilter:[1,6,22,7],
- categoryfilter:[],
- datefrom:"2021-02-10T10:00:00.000Z",
- datetill:"2021-02-10T23:00:00.000Z",
- textfilter:"",
- maxresults:10
-},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastFind",
+ {
+ channelfilter: [1, 6, 22, 7],
+ categoryfilter: [],
+ datefrom: "2021-02-10T10:00:00.000Z",
+ datetill: "2021-02-10T23:00:00.000Z",
+ textfilter: "",
+ maxresults: 10,
+ },
+ (data) => console.log(data),
+);
```
-#### getServerInfo
+#### `getServerInfo`
Request available dates of broadcast in the adapter memory
@@ -412,20 +428,19 @@ empty object
**Returns:**
-Array
+`Array`
**Example:**
```javascript
-sendTo("tvprogram.0","getServerInfo","{}",(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerInfo", "{}", (data) => console.log(data));
```
### Community provides widgets/scripts
-#### Harmony and MagentaTV
+#### `Harmony` and `MagentaTV`
-Skript provides by pix
+Skript provided by pix
After click on the channel logo the script sets the mapped channel-id to the harmony-datapoint
```javascript
@@ -443,91 +458,103 @@ Adapter von 1/2021 von oweitmann https://github.com/oweitman/ioBroker.tvprogram
const logging = true;
const idKanalWahl = "tvprogram.0.tv1.selectchannel"; // Dateingabe aus VIS
const fbdelay = 1000; // delay zwischen Tastendrücken der IR_Fernbedienung in ms
-const channelList = { // Ausgabe vom Adapter : Kanalnummer im Receiver
- "ard" : 1,
- "zdf" : 2,
- "rtl" : 3,
- "sat1": 4,
- "pro7": 5,
- "vox" : 6,
- "kaka":7,
- "rtl2":8,
- "superrtl":9,
- "kika":10,
- /* nickelodeon 11 */
- "3sat":12,
- "welt":13,
- "ntv":14,
- "phoenix":15,
- "tele5":16,
- "zdfneo":17,
- /* #dabeiTV 18 */
- /* disneyplus 19 */
- /* lokalTV 20 */
- "bayern3":21,
- "hessen3":25,
- "mdr":27,
- "nord3":29,
- /* "bremen":30, */
- /* "rbb berlin":31, */
- /* "sr":36, */
- "sw3":37, // bw
- /* "sw3":38, // rp */
- "west3":39,
- /* "eurosport1":50, */
- "sport1":51,
- /* sky sport news 52 */
- "arte":55,
- "one":56,
- /* anixe 60 */
- "dmax":64,
- "pro7maxx":69,
- "nitro":70,
- /* sat1 gold 73 */
- "sixx":75,
- /* ard alpha 80 */
- /* DW 85 */
- /* euronews */
- /* Kabel Eins Doku 89 */
- /* N24 Doku 90 */
- "tagesschau24":91,
- /* Welt der Wunder 92 */
- /* zdfinfo 93 */
- "mtv":99,
+const channelList = {
+ // Ausgabe vom Adapter : Kanalnummer im Receiver
+ ard: 1,
+ zdf: 2,
+ rtl: 3,
+ sat1: 4,
+ pro7: 5,
+ vox: 6,
+ kaka: 7,
+ rtl2: 8,
+ superrtl: 9,
+ kika: 10,
+ /* nickelodeon 11 */
+ "3sat": 12,
+ welt: 13,
+ ntv: 14,
+ phoenix: 15,
+ tele5: 16,
+ zdfneo: 17,
+ /* #dabeiTV 18 */
+ /* disneyplus 19 */
+ /* lokalTV 20 */
+ bayern3: 21,
+ hessen3: 25,
+ mdr: 27,
+ nord3: 29,
+ /* "bremen":30, */
+ /* "rbb berlin":31, */
+ /* "sr":36, */
+ sw3: 37, // bw
+ /* "sw3":38, // rp */
+ west3: 39,
+ /* "eurosport1":50, */
+ sport1: 51,
+ /* sky sport news 52 */
+ arte: 55,
+ one: 56,
+ /* anixe 60 */
+ dmax: 64,
+ pro7maxx: 69,
+ nitro: 70,
+ /* sat1 gold 73 */
+ sixx: 75,
+ /* ard alpha 80 */
+ /* DW 85 */
+ /* euronews */
+ /* Kabel Eins Doku 89 */
+ /* N24 Doku 90 */
+ tagesschau24: 91,
+ /* Welt der Wunder 92 */
+ /* zdfinfo 93 */
+ mtv: 99,
};
-function selectChannel (chNo) {
- // Zerlegen mehrstelliger Zahlen
- let ch_arr = new Array();
- ch_arr = [];
- if (logging) log("Kanalnummer gewählt: " + chNo);
- while (chNo > 0) { // rückwärts
- if (logging) log("erkannte Ziffer: " + chNo % 10 );
- ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
- chNo = chNo / 10;
- chNo = parseInt(chNo);
- }
- // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
- ch_arr.reverse();
- if (logging) log ("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
- for (let i = 0; i < ch_arr.length; i++) {
- // passende OID füllen
- setStateDelayed("harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i], 1, fbdelay, function() {
- if (logging) log ((i+1) + ". Taste: " + ch_arr[i] + " gedrückt");
- });
- }
+function selectChannel(chNo) {
+ // Zerlegen mehrstelliger Zahlen
+ let ch_arr = new Array();
+ ch_arr = [];
+ if (logging) log("Kanalnummer gewählt: " + chNo);
+ while (chNo > 0) {
+ // rückwärts
+ if (logging) log("erkannte Ziffer: " + (chNo % 10));
+ ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
+ chNo = chNo / 10;
+ chNo = parseInt(chNo);
+ }
+ // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
+ ch_arr.reverse();
+ if (logging) log("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
+ for (let i = 0; i < ch_arr.length; i++) {
+ // passende OID füllen
+ setStateDelayed(
+ "harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i],
+ 1,
+ fbdelay,
+ function () {
+ if (logging) log(i + 1 + ". Taste: " + ch_arr[i] + " gedrückt");
+ },
+ );
+ }
}
on(idKanalWahl, function (obj) {
- log("Neues TV Programm: " + obj.state.val + " auf Kanal " + channelList[obj.state.val] + " gewählt");
- selectChannel(channelList[obj.state.val]);
+ log(
+ "Neues TV Programm: " +
+ obj.state.val +
+ " auf Kanal " +
+ channelList[obj.state.val] +
+ " gewählt",
+ );
+ selectChannel(channelList[obj.state.val]);
});
-
```
### functions not implemented in the Adapter, but provides as scripts for the javascript-adapter
-#### Recordlist
+#### `Recordlist`
List of all current recording times recorded by the recording data point and updated every minute.
You have to configure the data point name of your RecorderList and the name of the data point to be observed.
@@ -537,43 +564,42 @@ As soon as the script has added the recording to the list, the record data point
// datapoint where the List should be saved
var recorderListDP = "0_userdata.0.tvprogram.RecorderList";
// datapoint who should be monitored of new data
-var recorderDP ="tvprogram.0.tv1.record";
+var recorderDP = "tvprogram.0.tv1.record";
on(recorderDP, function (obj) {
- var recorderList;
- var index;
- console.log(obj.state.val);
- try {
- var recObj = JSON.parse(obj.state.val);
- } catch {
- return;
- }
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- index = recorderList.findIndex(function(el) {
- return JSON.stringify(el)==JSON.stringify(recObj);
- });
- if (index>-1) {
- recorderList.splice(index,1);
- }
- recorderList.push(recObj);
- setState(recorderListDP,JSON.stringify(recorderList));
- setState(recorderDP,"");
-
+ var recorderList;
+ var index;
+ console.log(obj.state.val);
+ try {
+ var recObj = JSON.parse(obj.state.val);
+ } catch {
+ return;
+ }
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ index = recorderList.findIndex(function (el) {
+ return JSON.stringify(el) == JSON.stringify(recObj);
+ });
+ if (index > -1) {
+ recorderList.splice(index, 1);
+ }
+ recorderList.push(recObj);
+ setState(recorderListDP, JSON.stringify(recorderList));
+ setState(recorderDP, "");
});
-var timer = setInterval(function() {
- var recorderList;
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- recorderList=recorderList.filter( (el) => new Date(el.endTime)>new Date());
- setState(recorderListDP,JSON.stringify(recorderList));
-},1000*60);
- ```
+var timer = setInterval(function () {
+ var recorderList;
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ recorderList = recorderList.filter((el) => new Date(el.endTime) > new Date());
+ setState(recorderListDP, JSON.stringify(recorderList));
+}, 1000 * 60);
+```
To visualize this data, the widget JSON template from the adapter myTime can help with the following template.
-Enter as json_oid the datapoint with the recordlist and as json_template the following code:
+Enter as json_oid the datapoint with the `recordlist` and as json_template the following code:
```javascript
<% data.sort((a,b)=>new Date(a.startTime) - new Date(b.startTime)) %>
@@ -605,19 +631,21 @@ var favoritesDP = "tvprogram.0.tv1.favorites";
// channelfilter datapoint of your tv
var channelfilterDP = "tvprogram.0.tv1.channelfilter";
// datapoint where the result should be saved
-var favoritesBool ="0_userdata.0.tvprogram.favoriteNow";
-
-var timer = setInterval(function() {
- var favorites = JSON.parse(getState(favoritesDP).val);
- var channelfilter = JSON.parse(getState(channelfilterDP).val);
- sendTo("tvprogram.0","getServerBroadcastNow",channelfilter,(data)=>{
- setState(favoritesBool,data.some((el) => favorites.includes(el.events[0].title)))
- });
-},1000*60);
-
+var favoritesBool = "0_userdata.0.tvprogram.favoriteNow";
+
+var timer = setInterval(function () {
+ var favorites = JSON.parse(getState(favoritesDP).val);
+ var channelfilter = JSON.parse(getState(channelfilterDP).val);
+ sendTo("tvprogram.0", "getServerBroadcastNow", channelfilter, (data) => {
+ setState(
+ favoritesBool,
+ data.some((el) => favorites.includes(el.events[0].title)),
+ );
+ });
+}, 1000 * 60);
```
-#### Coloring of programs that are located in the recordlist data point in the widget tvprogram
+#### Coloring of programs that are located in the `recordlist` data point in the widget tvprogram
the following template is for the widget JSON template from the adapter rssfeed.
this template does not generate any visible output, but generates css instructions that color the current programs.
@@ -650,65 +678,80 @@ and insert the following template in json_template
### Functions
-* show tv data on timeline by tv channel
-* show details about a tv broadcast if available
-* show a marker of actual position with automatic scrolling
-* configure displayed tv channels and order, reordering ist possible via dragNdrop.
-* switch command via datapoint after click on logo
-* zoomin/zoomout
-* navigation next and prev days
-* play button to switchchannel datapoint
-* center zoom in next days
-* return to today
-* reset zoom
-* favorite broadcasts
-* copy text from Detailview
-* markerposition is configurable
-* dialog width and height is configurable
-* Datenpunkt record, der nach druck auf Knopf mit Aufnahmedaten gefüllt wird
-* Widget for Favorites
-* hide Non-Favorites
+- show tv data on timeline by tv channel
+- show details about a tv broadcast if available
+- show a marker of actual position with automatic scrolling
+- configure displayed tv channels and order, reordering ist possible via dragNdrop.
+- switch command via datapoint after click on logo
+- zoomin/zoomout
+- navigation next and prev days
+- play button to switchchannel datapoint
+- center zoom in next days
+- return to today
+- reset zoom
+- favorite broadcasts
+- copy text from Detailview
+- markerposition is configurable
+- dialog width and height is configurable
+- Datenpunkt record, der nach druck auf Knopf mit Aufnahmedaten gefüllt wird
+- Widget for Favorites
+- hide Non-Favorites
### Todo
widget tvprogram:
-* maybe a highlight broadcasts widget
-* Data adapter for other sources (Internet, hardware such as Enigma, VU-Box). Considerations on this are currently suspended due to the low demand
-* ~~improve documentation for configuring the widgets~~
-* ~~broadcast pictures if available in the main view of the time widget~~
-* ~~search through the whole text to also find directors and actors~~
-* ~~tooltips for the buttons in the time widget~~
-* ~~Ideas for further widgets based on the existing TV program script~~
-* ~~Problem: endless scroll in firefox~~
-* ~~to be discussed: Datenpunkt, mit allen Aufnahmedaten, should be implementet at a videorecorder adapter or in a seperate script~~
-* ~~responsive design for detail view->no responsive design possible for jquery dialog, found another solution with fixed layouts for height>width~~
-* ~~Problem: small Pixel glitch if scroll pane is completle on the left side~~
+- maybe a highlight broadcasts widget
+- Data adapter for other sources (Internet, hardware such as Enigma, VU-Box). Considerations on this are currently suspended due to the low demand
+- ~~improve documentation for configuring the widgets~~
+- ~~broadcast pictures if available in the main view of the time widget~~
+- ~~search through the whole text to also find directors and actors~~
+- ~~tooltips for the buttons in the time widget~~
+- ~~Ideas for further widgets based on the existing TV program script~~
+- ~~Problem: endless scroll in firefox~~
+- ~~to be discussed: Datenpunkt, mit allen Aufnahmedaten, should be implementet at a videorecorder adapter or in a seperate script~~
+- ~~responsive design for detail view->no responsive design possible for jquery dialog, found another solution with fixed layouts for height>width~~
+- ~~Problem: small Pixel glitch if scroll pane is completle on the left side~~
## Changelog
+
-### 1.1.3-alpha.1 (2024-06-04)
-* fix lint errors
+### **WORK IN PROGRESS**
+
+- Change sento command from getFavoritesDatax to getFavoritesData
+
+### 2.0.2 (2024-11-17)
+
+- fix jsonconfig
+- add node 22 to testing
+
+### 2.0.1 (2024-11-16)
+
+- fix lint errors
-### 1.1.3-alpha.0 (2024-06-04)
+### 2.0.0 (2024-11-16)
-* align structures and files
+- fix lint errors
+- align structures and files
+- switch to jsonconfig
+- config translations
+- make vis2 compatible (maybe some glitches included, please report)
### 1.1.1 (2021-08-10)
-* remove dead code / extend doku about the warnings in the iobroker log * change the method of setting for configuration data from widget to datapoint
+- remove dead code / extend doku about the warnings in the iobroker log \* change the method of setting for configuration data from widget to datapoint
### 1.1.0 (2021-05-06)
-* tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
+- tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
### 1.0.0
-* (oweitman) stable version
+- (oweitman) stable version
## License
diff --git a/docs/en/adapterref/iobroker.uv-protect/README.md b/docs/en/adapterref/iobroker.uv-protect/README.md
index 6e41c93da..05230e076 100644
--- a/docs/en/adapterref/iobroker.uv-protect/README.md
+++ b/docs/en/adapterref/iobroker.uv-protect/README.md
@@ -37,6 +37,9 @@ When the adapter crashes or an other Code error happens, this error message that
### __WORK IN PROGRESS__
* (simatec) json5 added
* (simatec) Dependencies updated
+* (simatec) small Design Fix
+* (simatec) Issue Action added
+* (simatec) eslint-config added
### 0.6.3 (2024-09-26)
* (simatec) Fix for Admin 7.1.5
diff --git a/docs/en/adapterref/iobroker.vds2465-server/README.md b/docs/en/adapterref/iobroker.vds2465-server/README.md
index 9b95b2916..f5a09dd89 100644
--- a/docs/en/adapterref/iobroker.vds2465-server/README.md
+++ b/docs/en/adapterref/iobroker.vds2465-server/README.md
@@ -43,7 +43,9 @@ Von diesem Adapter wird auch das "Service Request" unterstützt, welches in eini
## Changelog
-
+### 1.0.1
+* (Hirsch-DE) Packages updated
+* (Hirsch-DE) Design Anpassungen
### 1.0.0
* (Hirsch-DE) Packages updated
* (Hirsch-DE) Minimum node.js version is 18.x
diff --git a/docs/en/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md b/docs/en/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
index d95350e3b..0fcf4a46e 100644
--- a/docs/en/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
+++ b/docs/en/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
@@ -21,7 +21,7 @@ Das Video wie man die Widgets benutzt kann man [hier](https://youtu.be/Rplr2Ba-G
![Actual news ](img/news.png)
To use this widget, you need to create a small script in Javascript adapter:
-```
+```js
const axios = require('axios');
function readRss() {
@@ -42,6 +42,9 @@ And then use `javascript.0.rss` object in this widget.
### **WORK IN PROGRESS**
-->
## Changelog
+### 1.3.2 (2024-11-22)
+* (bluefox) Corrected "close on click" option for shutter and dimmer
+
### 1.3.1 (2024-09-23)
* (bluefox) Removed gulp from a build process
* (bluefox) Added the possibility to select camera from the "cameras" adapter
diff --git a/docs/en/adapterref/iobroker.vis-2-widgets-material/README.md b/docs/en/adapterref/iobroker.vis-2-widgets-material/README.md
index af1acad99..4100c9db3 100644
--- a/docs/en/adapterref/iobroker.vis-2-widgets-material/README.md
+++ b/docs/en/adapterref/iobroker.vis-2-widgets-material/README.md
@@ -1,4 +1,5 @@
![Logo](admin/vis-2-widgets-material.png)
+
# Material widgets for ioBroker.vis 2.0
![Number of Installations](http://iobroker.live/badges/vis-2-widgets-material-installed.svg) ![Number of Installations](http://iobroker.live/badges/vis-2-widgets-material-stable.svg) [![NPM version](http://img.shields.io/npm/v/iobroker.vis-2-widgets-material.svg)](https://www.npmjs.com/package/iobroker.vis-2-widgets-material)
@@ -7,7 +8,9 @@
[![NPM](https://nodei.co/npm/iobroker.vis-2-widgets-material.png?downloads=true)](https://nodei.co/npm/iobroker.vis-2-widgets-material/)
## Widgets
+
### Buttons and switches
+
![Switches](img/material-switches.png)
![Switches](img/material-switches-buttons.png)
@@ -15,33 +18,37 @@
![Switches](img/material-switches-buttons-2.png)
### Clock
-- Analog
-
+
+- Analog
+
![Clock Analog](img/material-clock-analog-1.png)
-
-- Analog variation
+
+- Analog variation
![Clock Analog 2](img/material-clock-analog-2.png)
-- Digital
+- Digital
![Digital](img/material-clock-digital-1.png)
-- Digital2 (SVG Text)
+- Digital2 (SVG Text)
![Digital2](img/material-clock-digital-2.png)
### Simple state
+
With this widget, you can control one device. Boolean or number.
-- Number
+
+- Number
![Simple state](img/material-simple-state-1.png)
-- Control
+- Control
![Simple state](img/material-simple-state-2.png)
### View in widget
+
![View in widget](img/material-view-in-widget-1.png)
Not as button: View could be shown in full size, and you can control elements in view.
@@ -51,67 +58,79 @@ Not as button: View could be shown in full size, and you can control elements in
As button: You can show a small thumbnail of view, and by pressing on it, it will be shown in full size.
### Thermostat
+
![Thermostat](img/material-thermostat-1.png)
Additionally, it can show a history if you activated it.
### Actual value with chart
+
![Actual value](img/material-actual-value-1.png)
![Actual value with chart](img/material-actual-value-2.png)
### Security control
+
![Security control](img/material-security-0.png)
![Security control](img/material-security-1.png)
You can define the delay in seconds.
-By activation, the defined ID will be written with number of the delay seconds,
+By activation, the defined ID will be written with number of the delay seconds,
and after the delay is over, the defined ID will be set to 0, and the alarm ID be set to true.
![Security control](img/material-security-2.png)
### Player
+
![Player](img/material-player.png)
### Map
+
![Player](img/material-map-1.png)
Position could be defined as a combined state, like `9.2344;41.374652` - (longitude;latitude) or as two separate states.
### Camera
+
![Player](img/material-camera-1.png)
### Html Template
+
![Player](img/material-html-1.png)
Html template can be used to show any html code.
Additionally, you can show image or iframe with this widget too.
### Blinds
+
![Blinds](img/material-blinds-1.png)
![Player](img/material-blinds-2.png)
### Color Lamp
+
With the RGB lamp widget, you can control different types of RGB lamps. Here are some examples:
-- RGB colors are set in one state like '#RRGGBB'
-- R/G/B colors are set in different states from 0 to 255
-- RGBW as one variable like '#RRGGBBWW'
-- R/G/B/W colors are set in different states from 0 to 255
-- hue/sat/lum as 3 different states
-- color temperature as one state from 2700 to 6500 or defined by min/max of the object
-- White mode state can be used to switch between RGB and white mode via special state
+
+- RGB colors are set in one state like '#RRGGBB'
+- R/G/B colors are set in different states from 0 to 255
+- RGBW as one variable like '#RRGGBBWW'
+- R/G/B/W colors are set in different states from 0 to 255
+- hue/sat/lum as 3 different states
+- color temperature as one state from 2700 to 6500 or defined by min/max of the object
+- White mode state can be used to switch between RGB and white mode via special state
![RGB Lamp 1](img/material-rgb-1.png)
![RGB Lamp 2](img/material-rgb-2.png)
### Door lock
+
![Door lock](img/material-lock.png)
### Vacuum cleaner
+
This widget is primary for Xiaomi vacuum cleaner. But it can be used for any other vacuum cleaner too.
The only difference is that Xiaomi supports the room cleaning.
@@ -120,171 +139,225 @@ The only difference is that Xiaomi supports the room cleaning.
### Time picker
-
## Todo
-- Extend Blinds with shutter
+
+- Extend Blinds with shutter
+
## Changelog
+
+### **WORK IN PROGRESS**
+
+- (bluefox) Corrected thermostat slider
+
### 1.4.10 (2024-08-09)
-* (Steiger04) Corrected recursive icon search on channel, device, instance and adapter.
+
+- (Steiger04) Corrected recursive icon search on a channel, device, instance and adapter.
### 1.4.9 (2024-08-03)
-* (bluefox) Corrected blinds dialog
-* (bluefox) Added the invert option for blinds
+
+- (bluefox) Corrected blinds dialog
+- (bluefox) Added the invert option for blinds
### 1.4.8 (2024-07-12)
-* (bluefox) Small changes for SweetHome3D
+
+- (bluefox) Small changes for SweetHome3D
### 1.4.7 (2024-07-11)
-* (bluefox) Corrected thermostat chart button
+
+- (bluefox) Corrected thermostat chart button
### 1.4.6 (2024-07-10)
-* (bluefox) Better detection of modes for thermostat
-* (bluefox) Round temperature in charts
+
+- (bluefox) Better detection of modes for thermostat
+- (bluefox) Round temperature in charts
### 1.4.1 (2024-07-07)
-* (bluefox) removed withStyles package
-* (bluefox) Better thermostat visualization by narrow height
+
+- (bluefox) removed withStyles package
+- (bluefox) Better thermostat visualization by narrow height
### 1.3.33 (2024-06-10)
-* (bluefox) Wait for data before the map is shown
-* (bluefox) Round of value is possible now in the actual value widget (with chart)
+
+- (bluefox) Wait for data before the map is shown
+- (bluefox) Round of value is possible now in the actual value widget (with chart)
### 1.3.32 (2024-05-14)
-* (bluefox) Corrected error with multi-language names
+
+- (bluefox) Corrected error with multi-language names
### 1.3.31 (2024-04-26)
-* (bluefox) Improved wizard layout
+
+- (bluefox) Improved wizard layout
### 1.3.28 (2024-04-19)
-* (bluefox) Improved resolving of icons
+
+- (bluefox) Improved resolving of icons
### 1.3.27 (2024-04-09)
-* (bluefox) Updated packages
-* (bluefox) improved RGB widget
+
+- (bluefox) Updated packages
+- (bluefox) improved RGB widget
### 1.3.25 (2024-03-07)
-* (bluefox) Corrected filter property in the widget settings
+
+- (bluefox) Corrected filter property in the widget settings
### 1.3.23 (2024-03-05)
-* (bluefox) Added possibility to change the icon size in simple widget
+
+- (bluefox) Added possibility to change the icon size in simple widget
### 1.3.21 (2024-02-22)
-* (bluefox) Corrected small input fields
+
+- (bluefox) Corrected small input fields
### 1.3.18 (2024-01-16)
-* (bluefox) Corrected long click for RGB widget on touch devices
-* (bluefox) Corrected dimmer widget
+
+- (bluefox) Corrected long click for RGB widget on touch devices
+- (bluefox) Corrected dimmer widget
### 1.3.17 (2023-12-19)
-* (bluefox) Added option to hide the line in switches widget
+
+- (bluefox) Added option to hide the line in switches widget
### 1.3.15 (2023-12-17)
-* (foxriver76) Added option to rotate video
+
+- (foxriver76) Added option to rotate video
### 1.3.14 (2023-12-05)
-* (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
-* (bluefox) Added class names to ON/OFF widgets to allow styling
+
+- (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
+- (bluefox) Added class names to ON/OFF widgets to allow styling
### 1.3.11 (2023-11-17)
-* (bluefox) Allowed opening/closing dialogs of some widgets by command
+
+- (bluefox) Allowed opening/closing dialogs of some widgets by command
### 1.3.9 (2023-11-10)
-* (bluefox) updated packages
+
+- (bluefox) updated packages
### 1.3.8 (2023-11-08)
-* (bluefox) Corrected RGB widget if minimal is equal with maximal
+
+- (bluefox) Corrected RGB widget if minimal is equal with maximal
### 1.3.5 (2023-11-06)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added option for RGB widget to hide brightness control
-* (bluefox) Added option for white mode in RGB widget
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added option for RGB widget to hide brightness control
+- (bluefox) Added option for white mode in RGB widget
### 1.3.3 (2023-10-26)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added color settings to actual
-* (bluefox) Vacuum settings were hidden
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added color settings to actual
+- (bluefox) Vacuum settings were hidden
### 1.3.2 (2023-10-14)
-* (bluefox) Small improvements done
+
+- (bluefox) Small improvements done
### 1.3.1 (2023-10-13)
-* (bluefox) Added the vacuum cleaner widget
+
+- (bluefox) Added the vacuum cleaner widget
### 1.2.1 (2023-09-18)
-* (bluefox) Added door lock, rgb and thermostat to switches widget
+
+- (bluefox) Added door lock, rgb and thermostat to switches widget
### 1.1.3 (2023-09-10)
-* (bluefox) Door lock improved
+
+- (bluefox) Door lock improved
### 1.1.0 (2023-09-08)
-* (bluefox) Added door lock
+
+- (bluefox) Added door lock
### 1.0.0 (2023-08-21)
-* (bluefox) Added RGB widget
+
+- (bluefox) Added RGB widget
### 0.8.5 (2023-08-11)
-* (bluefox) Improvement of the widget loading
+
+- (bluefox) Improvement of the widget loading
### 0.8.4 (2023-08-10)
-* (bluefox) Improvement of wizard
+
+- (bluefox) Improvement of wizard
### 0.8.3 (2023-07-30)
-* (bluefox) Font styles are applied to all buttons
+
+- (bluefox) Font styles are applied to all buttons
### 0.8.2 (2023-07-19)
-* (bluefox) Corrected small layout problems
+
+- (bluefox) Corrected small layout problems
### 0.8.0 (2023-07-18)
-* (bluefox) Added wizard for widgets
+
+- (bluefox) Added wizard for widgets
### 0.7.1 (2023-07-02)
-* (bluefox) Added washer widget
+
+- (bluefox) Added washer widget
### 0.6.2 (2023-06-29)
-* (bluefox) Allowed usage without a frame for all widgets
+
+- (bluefox) Allowed usage without a frame for all widgets
### 0.6.0 (2023-06-28)
-* (bluefox) Added blinds to switches widget
-* (bluefox) Allowed to place widgets in widgets
+
+- (bluefox) Added blinds to switches widget
+- (bluefox) Allowed to place widgets in widgets
### 0.5.3 (2023-06-21)
-* (bluefox) Corrected errors with view in widget
+
+- (bluefox) Corrected errors with view in widget
### 0.5.1 (2023-06-20)
-* (bluefox) Added widget to switch the theme
-* (bluefox) Improved HTML widget to show iframe and image
+
+- (bluefox) Added widget to switch the theme
+- (bluefox) Improved HTML widget to show iframe and image
### 0.4.0 (2023-06-16)
-* (bluefox) Added button texts for switches widget
-* (bluefox) Removed static widget, as it was replaced by switches widget
+
+- (bluefox) Added button texts for switches widget
+- (bluefox) Removed static widget, as it was replaced by switches widget
### 0.3.1 (2023-06-14)
-* (bluefox) Improved buttons widget
+
+- (bluefox) Improved buttons widget
### 0.2.13 (2023-03-22)
-* (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
-* (bluefox) update packages
+
+- (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
+- (bluefox) update packages
### 0.2.9 (2023-02-27)
-* (bluefox) Made this adapter singleton
+
+- (bluefox) Made this adapter singleton
### 0.2.2 (2023-02-22)
-* (bluefox) Update packages
+
+- (bluefox) Update packages
### 0.2.1 (2022-11-26)
-* (bluefox) Implemented the blinds widget
+
+- (bluefox) Implemented the blinds widget
### 0.1.5 (2022-10-27)
-* (bluefox) First beta version
+
+- (bluefox) First beta version
### 0.1.2 (2022-10-21)
-* (bluefox) initial commit
+
+- (bluefox) initial commit
## License
+
The MIT License (MIT)
Copyright (c) 2022-2024 Denis Haev
diff --git a/docs/en/adapterref/iobroker.vis-2-widgets-weather-and-heating/README.md b/docs/en/adapterref/iobroker.vis-2-widgets-weather-and-heating/README.md
index 529bdf84e..8e88fe8a2 100644
--- a/docs/en/adapterref/iobroker.vis-2-widgets-weather-and-heating/README.md
+++ b/docs/en/adapterref/iobroker.vis-2-widgets-weather-and-heating/README.md
@@ -93,6 +93,9 @@ Based on [Pittini's](https://github.com/Pittini/iobroker-heatingcontrol-vis) pro
## Changelog
+### 0.8.0 (2024-11-24)
+ * (René) see issue #60: add missing module
+
### 0.7.7 (2024-10-27)
* (René) show absolute / relative as info in Heating Room Profile Params widget
* (René) Heating Time Schedule: copy periods added
diff --git a/docs/en/adapterref/iobroker.vis-2/README.md b/docs/en/adapterref/iobroker.vis-2/README.md
index b74e83b4f..5a9275fb6 100644
--- a/docs/en/adapterref/iobroker.vis-2/README.md
+++ b/docs/en/adapterref/iobroker.vis-2/README.md
@@ -294,6 +294,9 @@ npm run start
### **WORK IN PROGRESS**
-->
## Changelog
+### 2.10.8 (2024-11-22)
+* (bluefox) Added new option for view: "Limit only for instances"
+
### 2.10.7 (2024-07-23)
* (bluefox) Optimization of the module federation
diff --git a/docs/en/adapterref/iobroker.vis-icontwo/README.md b/docs/en/adapterref/iobroker.vis-icontwo/README.md
index e4b53cabe..62b0ef62a 100644
--- a/docs/en/adapterref/iobroker.vis-icontwo/README.md
+++ b/docs/en/adapterref/iobroker.vis-icontwo/README.md
@@ -60,6 +60,14 @@ Falls Dir unsere Arbeit gefällt und Du uns unterstützen möchtest, wir freuen
## Changelog / Änderungsprotokoll
+### 1.8.1
+
+• Bug-Fix
+
+### 1.8.0
+
+• Neue Icons hinzugefügt (Devices - Network)
+
### 1.6.3
• Bug-Fix
diff --git a/docs/en/adapterref/iobroker.voltoplus/README.md b/docs/en/adapterref/iobroker.voltoplus/README.md
index 65bd96793..07cafc0d0 100644
--- a/docs/en/adapterref/iobroker.voltoplus/README.md
+++ b/docs/en/adapterref/iobroker.voltoplus/README.md
@@ -61,7 +61,7 @@ or any associated subsidiaries, logos or trademarks.
## License
MIT License
-Copyright (c) 2023 Jey Cee
+Copyright (c) 2024 Jey Cee
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/en/adapterref/iobroker.weather-warnings/README.md b/docs/en/adapterref/iobroker.weather-warnings/README.md
index 3a55b2b8c..62dd76a44 100644
--- a/docs/en/adapterref/iobroker.weather-warnings/README.md
+++ b/docs/en/adapterref/iobroker.weather-warnings/README.md
@@ -146,6 +146,16 @@ Iconpage: https://icon-icons.com/de/symbol/Wetter-wind-cloud-Blitz-Regen/189105
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 0.6.10 (2024-11-11)
+* (ticaki) fixed: warntype filter
+* (ticaki) fixed: if every provider except zamg is deactivated in the notifications - no message went out
+* (ticaki) fixed: downgrade a dependency for compatibility with node 18
+
+### 0.6.9 (2024-11-10)
+* (ticaki) added missing text (settings - alexa - soundtable)
+* (ticaki) fixed alerts start/end datapoints. (string -> number)
+* (ticaki) dependencies up to date
+
### 0.6.7 (2024-02-19)
* (ticaki) Reduce history data to 80 entries around 4000 lines, because of jerks in the admin
diff --git a/docs/en/adapterref/iobroker.webui/README.md b/docs/en/adapterref/iobroker.webui/README.md
index 26ae34cc4..2e89886b2 100644
--- a/docs/en/adapterref/iobroker.webui/README.md
+++ b/docs/en/adapterref/iobroker.webui/README.md
@@ -129,6 +129,27 @@ runtime.html?screenName=screen2
Placeholder for next versions:
### __WORK IN PROGRESS__
-->
+### 1.19.4 (2024-11-03)
+- copy & paste events
+
+### 1.19.3 (2024-11-03)
+- support null value
+
+### 1.19.2 (2024-11-03)
+- use name in classlist
+
+### 1.19.1 (2024-11-02)
+- copy path for screens/controls
+
+### 1.19.0 (2024-11-02)
+- fix error in script system
+
+### 1.18.5 (2024-11-02)
+- compile fix
+
+### 1.18.4 (2024-11-02)
+- fix wrong shadow root used
+
### 1.18.3 (2024-11-01)
- small typo fix
diff --git a/docs/en/adapterref/iobroker.wiegand-tcpip/README.md b/docs/en/adapterref/iobroker.wiegand-tcpip/README.md
index f8af72eed..85b4689da 100644
--- a/docs/en/adapterref/iobroker.wiegand-tcpip/README.md
+++ b/docs/en/adapterref/iobroker.wiegand-tcpip/README.md
@@ -128,11 +128,19 @@ The publicly known IP port of the ioBroker instance on the remote network after
[^8]: You can replace the "Unicast Address" with the "Directed Broadcast Address" in the configuration.
## Changelog
-0.4.6 (2022-03-18)
-- Documentation
-- Translations
-- Cosmetic improvements
-- Fix for [Repository PR1720](https://github.com/ioBroker/ioBroker.repositories/pull/1720)
+### 0.4.7 (2024-11-05)
+* Fix for ioBroker.BOT see issues
+* Changes to new dependencies Node 22.x, Admin 5 and JS-Controler 5.0.19...
+
+### 0.4.6 (2022-03-18)
+* Documentation
+* Translations
+* Cosmetic improvements
+* Fix for [Repository PR1720](https://github.com/ioBroker/ioBroker.repositories/pull/1720).
+
+#### [History](CHANGELOG.md)
## License
-GPL-3.0-only
\ No newline at end of file
+GPL-3.0-only
+
+Copyright (c) 2024 kbrausew
\ No newline at end of file
diff --git a/docs/en/adapterref/iobroker.worx/README.md b/docs/en/adapterref/iobroker.worx/README.md
index 05c2000f4..5f41354e8 100644
--- a/docs/en/adapterref/iobroker.worx/README.md
+++ b/docs/en/adapterref/iobroker.worx/README.md
@@ -782,11 +782,11 @@ Default without zone:
![img/array_nok.png](img/array_nok.png)
## Changelog
-
-**WORK IN PROGRESS**
+### 3.1.1 (2024-11-04)
- (Lucky-ESA) Added JS-Controller Notification
- (Lucky-ESA) Dependencies updated
+- (Lucky-ESA) New design for settings page added
### 3.1.0 (2024-09-10)
diff --git a/docs/en/adapterref/iobroker.ws/README.md b/docs/en/adapterref/iobroker.ws/README.md
index b9e715148..f98f461f5 100644
--- a/docs/en/adapterref/iobroker.ws/README.md
+++ b/docs/en/adapterref/iobroker.ws/README.md
@@ -31,7 +31,7 @@ Object is meta information that describes data point and could content: max/min
### State
State is the actual value of the data point and presented by javascript object:
-```
+```js
{
val: VALUE,
ack: ACKNOWLEDGED,
@@ -69,6 +69,9 @@ It is suggested to use [socket class](https://github.com/ioBroker/socket-client)
-->
## Changelog
+### 2.7.0 (2024-11-17)
+* (bluefox) Update ws-server library
+
### 2.6.2 (2024-06-26)
* (bluefox) Corrected call of getObjectView with null parameter
diff --git a/docs/en/adapterref/iobroker.youtube/README.md b/docs/en/adapterref/iobroker.youtube/README.md
index edece370d..e98f2d378 100644
--- a/docs/en/adapterref/iobroker.youtube/README.md
+++ b/docs/en/adapterref/iobroker.youtube/README.md
@@ -77,6 +77,15 @@ on({ id: 'youtube.0.summary.json', change: 'any' }, async (obj) => {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 5.1.1 (2024-11-12)
+
+* (@klein0r) Added video list (yesterday)
+
+### 5.1.0 (2024-11-11)
+
+* (klein0r) Added groups
+* (klein0r) Added icons of channels to object list
+
### 5.0.0 (2024-04-03)
NodeJS >= 18.x and js-controller >= 5 is required
@@ -93,16 +102,6 @@ NodeJS 16.x is required
* (klein0r) Added customUrl to JSON summary
-### 4.2.1 (2023-03-13)
-
-* (klein0r) Video data as JSON
-
-### 4.2.0 (2023-02-03)
-
-* (klein0r) Allow alias or custom url in configuration
-* (klein0r) Added request success indicators
-* (klein0r) Added Ukrainian language
-
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.zendure-solarflow/README.md b/docs/en/adapterref/iobroker.zendure-solarflow/README.md
index 0dbef9665..f302fadb7 100644
--- a/docs/en/adapterref/iobroker.zendure-solarflow/README.md
+++ b/docs/en/adapterref/iobroker.zendure-solarflow/README.md
@@ -24,7 +24,7 @@ You can read more about the API here: https://github.com/Zendure/developer-devic
- Stop input if one battery drops into low voltage (battery protect). Works only when setting the output limit via the adapter
- Control more than one Solarflow at the same time!
- Get more precise calculations!
-- Works with all Zendure SolarFlow devices: HUB1200 (tested), HUB2000 and AIO (both untested)!
+- Works with all Zendure SolarFlow devices: HUB1200, Hyper2000, HUB2000 and AIO! I can test only on HUB1200 as I don't own the other devices...
## Notes
@@ -34,6 +34,8 @@ You can read more about the API here: https://github.com/Zendure/developer-devic
2. You will be logged out of the official iOS or Android App after logging in with the ioBroker adapter. This is a normal behavior. As a workaround you can create an second Zendure account with another e-mail and grant access to your Solarflow HUB to this account. Then use the second account for ioBroker / the Zendure Solarflow adapter.
+3. The Adapter will show a +10W use on battery if no solar input and device is online. This will reflect the "stand-by" usage of the device.
+
## Credits
Credits goes to https://github.com/reinhard-brandstaedter/solarflow which helped a lot with the knowledge about the MQTT server from Zendure! Thanks!
@@ -46,6 +48,23 @@ If you find the adapter useful for you and want to support my work, feel free to
[![Donate](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)](https://www.paypal.com/paypalme/PeterFrommert)
## Changelog
+### 1.9.3 (2024-11-22)
+
+- Fix for Low Voltage Block not deactivated.
+
+### 1.9.2 (2024-11-21)
+
+- Fix some state definitions
+
+### 1.9.1 (2024-11-21)
+
+- Improvement for 'Low Voltage Block'.
+- Changed the state "hubState" a an option value.
+
+### 1.9.0 (2024-11-20)
+
+- New option to force Solarflow device to go offline when "Low Voltage Block"-option is used.
+
### 1.8.8 (2024-09-20)
- Improve connection retry, expand the time with every retry attempt.
diff --git a/docs/en/adapterref/iobroker.zigbee/README.md b/docs/en/adapterref/iobroker.zigbee/README.md
index f1772e8a7..aaa3c0806 100644
--- a/docs/en/adapterref/iobroker.zigbee/README.md
+++ b/docs/en/adapterref/iobroker.zigbee/README.md
@@ -131,6 +131,15 @@ There is [another](https://www.zigbee2mqtt.io/) with the same functions and the
Other topics related to this adapter are also documented in the associated wiki.
## Changelog
+### **WORK IN PROGRESS**
+* (arteck) deleteDeviceStates change to deleteObj
+
+### 1.10.13 (2024-11-10)
+* (arteck) corr icon download bug (axios)
+
+### 1.10.12 (2024-11-03)
+* (asgothian) corr Channel Scan
+
### 1.10.11 (2024-11-02)
* BREAKING CHANGE
*
@@ -181,407 +190,7 @@ Other topics related to this adapter are also documented in the associated wiki.
* (arteck) new zigbee-herdsman-converters 18.x
* (arteck) configure message is now a warning
-### 1.9.7 (2024-01-05)
-* (arteck) corr configure for some devices
-
-### 1.9.6 (2024-01-01)
-* (arteck) corr ikea bug
-* (crckmc) trv child lock works
-
-### 1.9.5 (2023-12-29)
-* (arteck) update dependency
-* (arteck) min node 18.x.
-
-### 1.9.4 (2023-12-29)
-* (arteck) typo
-
-### 1.9.3 (2023-12-26)
-* (arteck) last zhc Version 16.x
-* (arteck) corr reboot in statecontroller
-
-### 1.9.2 (2023-12-25)
-* (arteck) gen states from exposes as function
-* (arteck) rebuild dev_names.json with state cleanup button
-
-### 1.9.1 (2023-12-23)
-* (arteck) corr TypeError: Cannot read properties of undefined (reading 'state')
-
-### 1.9.0 (2023-12-22)
-* (arteck) up to new zhc
-* (arteck) update dependency
-
-### 1.8.27 (2023-12-22)
-* (arteck) update dependency
-
-### 1.8.26 (2023-12-22)
-* (arteck) corr toZigbee message
-* (arteck) add deviceManager
-
-### 1.8.25 (2023-12-17)
-* zhc 16.x
-* (arteck) corr group from exclude dialog
-
-### 1.8.24 (2023-09-05)
-* (arteck) switch to exposes tab for some Aqara Devices [more infos](https://github.com/ioBroker/ioBroker.zigbee/wiki/Exposes-for-device-integration)
-
-### 1.8.23 (2023-08-10)
-* (arteck) query from xiaomi is now better
-
-### 1.8.22 (2023-08-05)
-* (arteck) crash when meta is empty
-
-### 1.8.21 (2023-07-31)
-* (arteck) no converter found
-
-### 1.8.20 (2023-07-31)
-* (arteck) add log
-
-### 1.8.19 (2023-07-31)
-* (arteck) fix occupancy_timeout
-* (arteck) fix battery percentage and voltage
-
-### 1.8.18 (2023-07-16)
-* (arteck) little fix sentry and error log
-
-### 1.8.17 (2023-07-15)
-* (arteck) sentry corr
-
-### 1.8.16 (2023-07-11)
-* (arteck) battery corr
-
-### 1.8.15 (2023-07-11)
-* (arteck) corr battery status
-
-### 1.8.13 (2023-07-09)
-* (arteck) ota corr
-* (arteck) devices are wrong with enum exposes
-* (arteck) select field for groups is larger
-* (kirovilya) tuya.whitelabel corr
-
-### 1.8.12 (2023-06-30)
-* (arteck) new Documentation (thx Stefan)
-
-### 1.8.11 (2022-12-10)
-* (arteck) fix compsite exposes with a list
-
-### 1.8.10 (2022-12-12)
-* (asgothian) fix group access
-* (asgothian) add option for pairing code:
- A new icon allows opening the network after first entering a pairing code
- listed on the device
-* (asgothian) easier use of external converters
- - external converters can now be placed in the zigbee adapter data folder
- - no absolite path is required to access them
- - external converters posted on the GitHub for zigbee-herdsman-converters
- should work as they are - folders for libraries are rewritten to match
- the expected location when 'required' from within the zigbee adapter
- - Log entries will identify which files are entered as converters. Errors
- in these files should not cause the adapter to crash - instead, use of
- external converters may be unavailable.
-
-### 1.8.9 (2022-12-10)
-* (arteck) fix lidl plug
-
-### 1.8.7 (2022-12-01)
-* (arteck) fix exposes
-
-### 1.8.5 (2022-11-30)
-* (arteck) fix for new code
-
-### 1.8.3 (2022-11-30)
-* (arteck) back to old source
-
-### 1.8.1 (2022-11-28)
-* (bluefox) Packages updated
-* (bluefox) Added names of serial ports in configuration dialog
-
-### 1.7.7 (2022-11-24)
-* dep update
-
-### 1.7.6 (2022-07-23)
-* (kirovilya) fix selecting nodes in admin
-* (arteck) ikea fix
-
-### 1.7.5 (2022-06-01)
-* (arteck) error message for undefined devices or icons
-
-### 1.7.4 (2022-05-30)
-* (arteck) missing icons with multiple description
-
-### 1.7.2 (2022-05-28)
-* (arteck) download missing icons corr
-
-### 1.7.1 (2022-05-28)
-* (arteck) available status in admin is colored
-* (arteck) disable Backups checkbox in settings
-* (arteck) we keep last 10 backup files
-* (arteck) download missing icons automatically (manual upload needed)
-
-### 1.6.18 (2022-04-21)
-* (arteck) fix pairing modus
-
-### 1.6.17 (2022-04)
- rollback
-
-### 1.6.16 (2022-02-16)
-* (arteck) admin dep fix
-* (arteck) colored objects for online/offline state
-
-### 1.6.15 (2022-02-08)
-* (arteck) Battery status % calculation was changed for xiaomi devices
-
-### 1.6.14 (2022-01)
-* (asgothian) OTA limitation
- - devices with the available state set to false are excluded from OTA updates (and the update check)
- - devices with link_quality 0 are excluded from OTA updates (and the update check)
-* (asgothian) Device deactivation:
- - Devices can be marked inactive from the device card.
- - inactive devices are not pinged
- - state changes by the user are not sent to inactive devices.
- - when a pingable device is marked active (from being inactive) it will be pinged again.
- - inactive devices are excluded from OTA updates.
-* (asgothian) Group rework part 2:
- - state device.groups will now be deleted with state Cleanup
- - state info.groups is now obsolete and will be deleted at adapter start (after transferring data to
- the new storage)
-* (asgothian) Device name persistance.
- - Changes to device names made within the zigbee adapter are stored in the file dev_names.json. This file
- is not deleted when the adapter is removed, and will be referenced when a device is added to the zigbee adapter. Deleting and reinstalling the adapter will no longer remove custom device names, nor will deleting and adding the device anew.
-* (asgothian) Readme edit to reflect the current information on zigbee coordinator hardware.
-* (arteck) Zigbee-Herdsman 0.14.4, Zigbee-Herdsman-Converters 14.0.394
-
-### 1.6.13 (2022-01)
-
-* (kirovilya) update to Zigbee-Herdsman 0.14
-
-### 1.6.12 (2022-01)
-* (asgothian) Groups were newly revised (read [here](https://github.com/ioBroker/ioBroker.zigbee/pull/1327) )
- - object device.groups is obsolet..the old one is no longer up to date
-
-### 1.6.9 (2021-12)
-* (simatec) fix admin Dark-Mode
-* (asgothian) Expose Access Handling
-* (arteck) translations
-* (asgothian) fix groups
-* (agross) use different normalization rules
-
-### 1.6.1 (2021-08)
-* (kirovilya) herdsman compatibility
-
-### 1.6.0 (2021-08-09)
-
-### 1.5.6 (2021-05-26)
-* (kirovilya) new UI add
-
-### 1.5.5 (2021-05-05)
-* Fixes for new zigbee-herdsman-converters
-* UI fixes
-
-### 1.5.3 (2021-04-30)
-* (arteck) Fix for js-controller 3.3.*
-
-### 1.5.2 (2021-04-29)
-* (asgothian) Groups on dashboard
-
-### 1.5.1 (2021-04-14)
-* (kirovilya) Dashboard
-* (asgothian) Groups (reworked)
-* [Experimental support EZSP protocol for EFR32 chips](https://github.com/Koenkk/zigbee-herdsman/issues/319) (zigbee-herdsman)
-
-### 1.4.4 (2021-02-14)
-* (kirovilya) External converters https://www.zigbee2mqtt.io/information/configuration.html#external-converters-configuration
-* (asgothian) Enhancement ping process
-* (asgothian) Devive query state-button
-* (asgothian) State Cleanup button
-* (arteck) Setting to use exposes instead of internal device description
-
-### 1.4.1 (2020-12)
-* (o0shojo0o) added a kelvin possibility into colortemp
-* (asgothian) Hue_calibration for exposed devices (Use requires PR on zigbee-herdsman-converters, PR is being worked on)
-* (asgothian) fix Tuya Thermostat: restore lost property "preset"
-* (asgothian) Change for Device Availability: Stagger initial ping by 200 ms to prevent network congestion due to a large number of ping requests
-* (asgothian) Change for Device Availability: Ping request triggered on reconnect. Before the herdsman Ping function is used, the adapter attempts to read the "state" dp. If this is successful, no ping is sent and the state is set
-* (asgothian) Change for Device Availability: Set link Quality to 0 when a device is not connected, 10 when it is reconnecting.
-* (asgothian) fix for message "illegal properties x,y" - remove color and color_temp from readable states on device available again (Issue #607)
-* (asgothian) RGB Color can now be entered as "named" color. Implemented names are taken from the list of extended web colors on wikipedia (https://en.wikipedia.org/wiki/Web_colors)
-* (asgothian) change in how RGB color is parsed. Incomplete colors will now be parsed successfully. #FFF will result in R 0, G 15, B 255
-* (asgothian) change in OTA: Message that a device does not respond for OTA query downgraded to "info" from "error"
-* (asgothian) new coordinator card
-
-### 1.4.0 (2020-12)
-* Many new devices available
-
-Starting from version 1.4.0, new devices in iobroker.zigbee will be added automatically, based on the *exposes* described in zigbee-herdsman-converters.
-The *exposes* section describes the device's capabilities, events and control commands. In iobroker.zigbee these descriptions are converted to iobroker states.
-This means that the new device is described correctly enough in zigbee-herdsman-converters to start working with iobroker.zigbee (do not need to add it to our /lib/devices files.js and /lib/states.js).
-
-The only thing that is not described (yet, it may change in the future) in zigbee-herdsman-converters is the device image. This is why the device icon on network map uses external links to the resource https://www.zigbee2mqtt.io/images/devices/*.
-If you want to use local images, then you need to put the image file in /admin/img and briefly describe the device in the /lib/devices.js file without the *states*:
-```
-{
- models: [‘01MINIZB’],
- icon: 'img/ITEAD01ZBMINI. png',
-}
-```
-in this case, the *states* attribute will be formed based on the *exposes* description and the image will be local.
-
-### 1.3.1 (2020-10-30)
-* [Experimental Zigate support](https://github.com/Koenkk/zigbee-herdsman/issues/242) (zigbee-herdsman)
-* New devices by:
- asgothian, arteck, kirovilya, PaulchenPlump
-
-### 1.3.0 (2020-10-07)
-* More stable (zigbee-herdsman)
-* Backup prior database and nv-data (for z-stack 3) before start adapter
-* Allow to select bind cluster
-* Admin Tab support (experimental)
-* (UncleSamSwiss, DutchmanNL) Translation
-* New devices by:
- arteck, kirovilya, Shade, krumbholz, fre, Alex18081, ae, asgothian,
- Strunzdesign, kairauer, VLGorskij, Hesse-Bub, PaulchenPlump, blackrozes
-
-### 1.2.1 (2020-08-16)
-* Fixes after changing device identify method
-* (Garfonso) Allow unbinding from coordinator
-
-### 1.2.0 (2020-08-09)
-* Serialport 9.0.0. (zigbee-herdsman)
-* Drop support Node < 10 (zigbee-herdsman)
-* Device now identify (for zigbee-herdsman-converters) by model not zigbeeModel
-
-Improvements and fixes:
-* (Strunzdesign) Fixed the mapping between bulb levels and adapter levels
-* (kirovilya) Fix ota for unavailable devices
-* (kirovilya) Lazy states - created only when an event arrives
-* (kirovilya) States generator - states are created depending on the device and its endpoints
-* (Shade) Fixed WXKG11LM clicks
-* (allofmex) Improved DeveloperTab logs
-* (allofmex) Add humidity and temperature calibration state to Tuya RH3052
-* (kirovilya) Fixed a typo due to which extPanID was not set
-* (allofmex) Retry reconnect gateway all the time for TCP-connected gateway
-* (kirovilya) Allow collecting zigbee-herdsman logs to iobroker logs
-* (kirovilya) Additional states for QBKG12LM
-
-New devices:
-* (kirovilya) BlitzWolf BW-IS3, Paulmann 500.67, Paulmann 798.09
-* (kirovilya) DiY Geiger counter https://modkam.ru/?p=1591
-* (kirovilya) DiY 8 Relays + 8 switches https://modkam.ru/?p=1638
-* (kirovilya) DiY Freepad https://github.com/diyruz/freepad
-* (kirovilya) Neo Zigbee Siren Alarm https://szneo.com/en/products/show.php?id=241
-* (Shade) RB 278 T
-* (arteck) TS0601_thermostat
-* (arteck) TS0121
-* (arteck) GL-D-004Z
-* (Shade) WXKG07LM
-* (drohne200) 1746430P7
-* (sebastian) 4058075816459
-* (itProfi) SGMHM-I1
-* (arteck) owvfni3
-* (arteck) TS0001, TS0111
-* (Daniel Dreier) Paulmann 500.45
-* (arteck) ZK-EU-2U
-* (Newan) Busch-Jaeger 6735/6736/6737
-* (andrico21) ZM-L03E-Z
-* (arteck) 915005106701, 9290018187B
-* (frankjoke) HGZB-20-UK, GL-W-001Z
-* (arteck) 4034031P7, 3435011P7
-* (arteck) TS0041
-* (agross) 5062231P7, 5062431P7
-* (kirovilya) TI0001-switch, TI0001-socket
-* (arteck) RB 178 T
-* (arteck) HGZB-07A, AV2010/22, AV2010/22A, TS0041, TS0043
-* (nbars) E1744
-* (Florian Look) GS361A-H04
-* (arteck) ICZB-IW11SW
-* (kirovilya) HS2WD-E
-* (Sacred-Shadow) FL 130 C
-* (arteck) HS3SA, 9290022169, 4096730U7, AC10787, SP 220, SP 222, SP 224, 07004D, BW-IS2, InstaRemote
-* (kirovilya) MCLH-08, MCLH-05
-* (Sacred-Shadow) 1746130P7
-* (mar565) GUNNARP panel round
-* (Erdnuss3003) 4090531P7
-
-### 1.1.1 (2020-04-17)
-* (kirovilya) Critical. Fixed error starting adapter if cc-chip was only flashed
-* (kirovilya) Nue/3A FNB56-ZSW02LX2.0
-* (Strunzdesign) Added missing raw button events for Philips Hue Smart Button ROM001
-* (Sacred-Shadow) Fix Color for Outdoor Lantern W RGBW OSRAM
-
-### 1.1.0 (2020-04-12)
-new Zigbee-herdsman features:
-* ConBee/RaspBee (experimental support) https://github.com/Koenkk/zigbee-herdsman/issues/72
-* OTA update for some devices (IKEA, OSRAM and other) https://github.com/Koenkk/zigbee2mqtt/issues/2921
-* Touchlink reset and join https://github.com/Koenkk/zigbee2mqtt/issues/2396
-* Green Power devices support https://github.com/Koenkk/zigbee2mqtt/issues/3322
-* (peterfido) iCasa KPD14S und KPD18S hinzu
-* (kirovilya) Moes Zigbee Thermostatic Radiator
-* (kirovilya) LifeControl power plug MCLH-03, bulb MCLH-02, water leak MCLH-07, door sensor MCLH-04
-* (kirovilya) Philips LCT002, LCT011, LTW015, LWG004
-* (kirovilya) Gledopto GL-C-007 with a channel
-* (MultivitaminJuice) Iluminize 511.040
-* (Sacred-Shadow) Bitron 902010/24
-* (kirovilya) Color indication of LQI and Battery icon
-* (kirovilya) Device info modal dialog
-* (arteck) Philips LCT026
-* (obakuhl) Improvements Osram switch mini
-* (arteck) Nue / 3A FB56+ZSW1GKJ2.5, LXN-1S27LX1.0
-* (agross) Philips Signe Floor and Table
-* (arteck) TRADFRI bulb E14 WS 470lm, OSRAM PAR16 TW Z3
-* (kirovilya) Smart remote controller (4 buttons)
-* (allofmex) OTA updates
-* (kirovilya) Aqara opple change mode keys (for binding)
-* (palsch) Heiman HS2WD-E siren
-
-### 1.0.4 (2020-03-14)
-* (kirovilya) Philips Hue Adore Bathroom Mirror Light
-* (kirovilya) Oujiabao Gas and carbon monoxide alarm
-* (kirovilya) Tuya SOS button
-* (Erdnuss3003) Schwaiger ZBT-DIMLight-GLS0800
-* (arteck) Smart Home Pty FB56-ZCW11HG1.4, LXT56-LS27LX1.7
-* (arteck) Xiaomi plug lumi.plug.mmeu01
-* (arteck) Innr RS 228 T, RS 230 C
-* (arteck) Gledopto GL-MC-001, GL-D-003ZS
-* (allmyjoes) Bitron AV2010/21A
-* (arteck) Osram Panel TW 595 UGR22
-* (kirovilya) IKEA SURTE door WS 38x64
-* (andigandi) Philips Hue LCG002, Hue LTG002
-* (arteck) iCasa ICZB-FC
-* (arteck) Osram A60 DIM Z3
-* (arteck) Paulmann 371000001
-* (DaCHRIS) Osram PAR16 DIM Z3
-* (DaCHRIS) Philips LWG001
-* (DaCHRIS) Illuminize 511.202
-* (SchumyHao) TERNCY-SD01 knob dimmer
-* (SchumyHao) Xiaomi lumi.lock.aq1
-* (kirovilya) New eWeLink devices: button, TH sensor, contact sensor, motion sensor
-* (kirovilya) Allow pairing to routers (again)
-* (Erdnuss3003) Philips Hue LCT021
-* (root) Trust ZWLD-100 water leak sensor
-* (smartpran) Bitron AV2010/32
-
-### 1.0.3 (2020-02-09)
-* (Tw1nh34d) Hornbach FLAIR LED
-* (asgothian) Hue smart button, Heiman smoke sensor
-* (kirovilya) Philips LTC014, LTC015
-* (kirovilya) Power states for QBKG11LM
-* (Garfonso) Change role for occupancy state to 'sensor.motion'
-* (kirovilya) Change illuminance state to illuminance_lux (for lux value)
-* (arteck) Philips LCF002
-* (arteck) TRADFRI open/close remote
-* (kirovilya) Tuya sensor TS0201
-
-### 1.0.2 (2020-01-29)
-* (kirovilya) All button events for Aqara Opple switch
-* (ma-john) OSRAM PAR16 RGBW Z3
-* (arteck) Phillips LWA004
-* (MiniMe6666) Heiman SmokeSendor-N-3.0
-* (kirovilya) Force remove device
-* (kirovilya) Fix some networkmap bugs
-* (kirovilya) Extended info button
-* (kirovilya) Long press for WXKG01LM
-
-### 1.0.1 (2020-01-23)
-* fix for old z-stack firmware
+ ***********************************************
### 1.0.0 (2020-01-22)
* Powered by new [zigbee-herdsman](https://github.com/Koenkk/zigbee-herdsman) library and new [converters database](https://github.com/Koenkk/zigbee-herdsman-converters)
@@ -591,6 +200,8 @@ new Zigbee-herdsman features:
* Some design update
* Binding
+------------------------------------------------------------------------------
+
## License
The MIT License (MIT)
diff --git a/docs/en/adapterref/iobroker.zoe2/README.md b/docs/en/adapterref/iobroker.zoe2/README.md
index 7bca79033..c96ee7a02 100644
--- a/docs/en/adapterref/iobroker.zoe2/README.md
+++ b/docs/en/adapterref/iobroker.zoe2/README.md
@@ -121,6 +121,12 @@ for your great documentation and work.
## Changelog
+### 0.2.10 (2024-10-27)
+- Fixes according to ioBroker-Bot notification
+
+### 0.2.9 (2024-04-27)
+- BugFix Cockpit und Batterie json structure changed by Renault
+
### 0.2.8 (2024-04-27)
- BugFix Cockpit und Batterie (thanks to @MCP-KC, @gik007)
@@ -213,7 +219,7 @@ for your great documentation and work.
## License
The MIT License (MIT)
-Copyright (c) 2021 RenePilz
+Copyright (c) 2024 RenePilz
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/en/dev/adapterjsonconfig.md b/docs/en/dev/adapterjsonconfig.md
index 13656d0f9..3ff7f6bc2 100644
--- a/docs/en/dev/adapterjsonconfig.md
+++ b/docs/en/dev/adapterjsonconfig.md
@@ -1,35 +1,202 @@
-# ioBroker JSON Config
+# ioBroker JSON Configuration: A Guide for Beginners
-Admin (from version 6) supports JSON configuration for adapters.
-It is possible to define the configuration in JSON file and then use it in Admin.
+This guide explains how to define configuration options for your ioBroker adapter using JSON. This approach offers a more user-friendly and flexible way to manage adapter settings within the ioBroker Admin interface.
-Example of `jsonConfig.json` file with multiple tabs can be found here: https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5
-and example with just one panel here: https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json
+## What you'll need
-You can define the settings in JSON or in JSON5 format. JSON5 is more human-readable and supports comments.
+- ioBroker Admin version 6 (or newer)
+- Basic understanding of JSON syntax
-Additionally, to the JSON file, you must define in the `io-package.json` in `common` part:
+## Benefits of JSON Configuration
-```json
+- Improved user experience for configuring adapters
+- Easier integration of complex configuration options
+- Clear separation between adapter code and configuration
+
+## Getting Started
+
+1. **Define the Configuration File:**
+
+ - Create a file named `jsonConfig.json` or `jsonConfig.json5` in your adapter's admin directory.
+ - JSON5 is a superset of JSON that allows for comments, making the configuration file more readable.
+
+2. **Enable JSON Configuration:**
+
+ - In your adapter's `io-package.json` file, add the following line under the `common` section:
+
+ ```json
+ "common": {
+ "adminUI": {
+ "config": "json"
+ }
+ }
+ ```
+
+3. **Structure of the Configuration File:**
+
+ The configuration file defines a hierarchical structure of tabs, panels, and control elements. \
+ Each element has specific attributes that determine its behavior and appearance in the Admin interface.
+
+ jsonConfig automatically ensures that the collected data is recorded as configuration data for the adapter and stored internally so that it can be retrieved and further processed in the adapter.
+
+ The following example would create the following configuration object:
+
+```json5
{
- "common": {
- "adminUI": {
- "config": "json"
+ options1: {
+ myPort: 1234,
+ options: {
+ myType: 1,
+ },
+ myBool: false,
+ },
+}
+```
+
+_If the attribute name starts with "\_" it will not be saved in the object._
+
+## Example of a jsonConfig with multiple tabs
+
+```json5
+{
+ "type": "tabs",
+ "items": {
+ "options1": {
+ "type": "panel",
+ "label": "Tab1",
+ "icon": "base64 svg", // optional
+ "items": {
+ myPort: {
+ "type": "number",
+ "min": 1,
+ "max": 65565,
+ "label": "Number",
+ "sm": 6, // 1 - 12
+ "validator": "!!data.name", // else error
+ "hidden": "data.myType === 1", // hidden if myType is 1
+ "disabled": "data.myType === 2" // disabled if myType is 2
+ },
+ "options.myType": { // name could support more than one level
+ "newLine": true, // must start from new row
+ "type": "select",
+ "label": "Type",
+ "sm": 6, // 1 - 12
+ "options": [
+ {"label": "option 1", "value": 1},
+ {"label": "option 2", "value": 2}
+ ]
+ },
+ "myBool": {
+ "type": "checkbox",
+ "label": "My checkbox",
+ },
+ "_notSaved":"abc"
+ }
+ },
+ "tab2": {
+ "label": "Tab2",
+ "type": "panel",
+ "disabled": "data.myType === 1",
+ "hidden": "data.myType === 2",
}
- }
+ },
}
```
-to say that the adapter supports JSON configuration.
+Further examples can be found in many other adapters on GitHub in the respective admin directory.
-You can see almost all components in action if you test this adapter: https://github.com/mcm4iob/ioBroker.jsonconfig-demo.
-You can install it via GitHub icon in admin by entering `iobroker.jsonconfig-demo` on the npm tab.
+## Support for developing tools
-The schema for JSON config file is defined here: https://github.com/ioBroker/adapter-react-v5/blob/main/schemas/jsonConfig.json
+### VS Code
-All labels, texts, help texts can be multi-language or just strings.
+To enable the validation of the jsonConfig in VS code, the following section must be added to the file ".vscode/settings.json".
-_If the attribute name starts with "\_" it will not be saved in the object._
+```json5
+ "json.schemas": [
+ {
+ "fileMatch": ["admin/jsonConfig.json", "admin/jsonCustom.json", "admin/jsonTab.json"],
+ "url": "https://raw.githubusercontent.com/ioBroker/adapter-react-v5/main/schemas/jsonConfig.json"
+ }
+ ]
+```
+
+## Common Control Elements
+
+A jsonConfig consists of several elements that are structured hierarchically. \
+Each of the elements can be of one of the following types.\
+Some elements can contain additional child elements.
+
+You can see almost all components in action if you test this adapter: [jsonconfig-demo](https://github.com/mcm4iob/ioBroker.jsonconfig-demo).\
+You can install it via GitHub icon in admin by entering `iobroker.jsonconfig-demo` on the npm tab.
+
+- [**`accordion`:**](#accordion) Accordion element for collapsible content (Admin 6.6.0 or newer)
+- [**`alive`:**](#alive) Displays if an instance is running (read-only)
+- [**`autocomplete`:**](#autocomplete) Input field with autocomplete suggestions
+- [**`autocompleteSendTo`:**](#autocompletesendto) Autocomplete control with instance values for sending data
+- [**`certificate`:**](#certificate) Manages certificates for secure connections
+- [**`certificateCollection`:**](#certificatecollection) Selects a collection for Let's Encrypt certificates
+- [**`certificates`:**](#certificates) Universal type for managing different certificate types (from Admin 6.4.0)
+- [**`checkbox`:**](#checkbox) Checkbox for boolean values
+- [**`checkLicense`:**](#checklicense) Very special component to check the license online
+- [**`chips`:**](#chips) User can enter words that are added to an array
+- [**`color`:**](#color) Color picker
+- [**`cron`:**](#cron) Configures cron expressions for scheduling tasks
+- [**`custom`:**](#custom) Integrates custom components for specific functionalities (Admin 6 only)
+- [**`datePicker`:**](#datepicker) Allows users to select a date
+- [**`deviceManager`:**](#devicemanager) show device manager
+- [**`divider`:**](#divider) Creates a horizontal line separator
+- [**`file`:**](#file) Input field with file selection and optional upload/download capabilities (Admin 6 only)
+- [**`fileSelector`:**](#fileselector) Allows users to select files from the system (only Admin6)
+- [**`func`:**](#func) Selects a function from the enum.func list (Admin 6 only)
+- [**`header`:**](#header) Creates a heading with different sizes (h1-h5)
+- [**`image`:**](#image) Uploads or displays an image
+- [**`imageSendTo`:**](#imagesendto) Displays an image received from the backend and sends data based on a command
+- [**`instance`:**](#instance) Selects an adapter instance
+- [**`interface`:**](#interface) Selects the interface from of the host, where the instance runs
+- [**`ip`:**](#ip) Input field for IP addresses with advanced options
+- [**`jsonEditor`:**](#jsoneditor) JSON editor for complex configuration data
+- [**`language`:**](#language) Selects the user interface language
+- [**`license`:**](#license) shows the license information if not already accepted.
+- [**`number`:**](#number) Numeric input field with min/max values and step size
+- [**`objectId`:**](#objectid) Selects an object ID with name, color, and icon
+- [**`panel`:**](#panel) Tab with items
+- [**`password`:**](#password) Password input field
+- [**`pattern`:**](#pattern) Read-only field showing a pattern (e.g., URL)
+- [**`port`:**](#port) Special input for ports
+- [**`qrCode`:**](#qrcode) Displays data as a QR code (Admin 7.0.18 or newer)
+- [**`room`:**](#room) Selects a room from the `enum.room` list (Admin 6 only)
+- [**`select`:**](#select) Dropdown menu with predefined options
+- [**`selectSendTo`:**](#selectsendto) Dropdown menu with instance values for sending data
+- [**`sendTo`:**](#sendto) Button that sends a request to an instance
+- [**`setState`:**](#setstate) Button that sets an instance's state
+- [**`slider`:**](#slider) Slider for selecting a value within a range (Admin 6 only)
+- [**`state`:**](#state) Show control or information from the state (admin >= 7.1.0)
+- [**`staticImage`:**](#staticimage) Displays a static image
+- [**`staticInfo`:**](#staticinfo) Shows static information in preformatted form, like "Title: value unit" (admin >= 7.3.3)
+- [**`staticLink`:**](#staticlink) Creates a static link
+- [**`staticText`:**](#statictext) Displays static text (e.g., description)
+- [**`coordinates`:**](#coordinates) Determines current location and used `system.config` coordinates if not possible in form "latitude,longitude"
+- [**`table`:**](#table) Table with rows that can be added, deleted, or reordered
+- [**`tabs`:**](#tabs) Tabs with items
+- [**`text`:**](#text) Single- or multi-line text input field
+- [**`textSendTo`:**](#textsendto) Shows readonly control with the given from the instance values.
+- [**`timePicker`:**](#timepicker) Allows users to select a time
+- [**`user`:**](#user) Selects a user from the `system.user` list
+- [**`uuid`:**](#uuid) Show iobroker UUID
+
+By leveraging JSON configuration, you can create a user-friendly and \
+adaptable configuration experience for your ioBroker adapter.
+
+## Example projects
+
+| Type | Link |
+|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Multiple Tabs: | [`ioBroker.admin`](https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5) |
+| Only one Panel: | [`ioBroker.dwd`](https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json) |
+| Custom component: | [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) or in [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin) |
+| Validation: | |
+
+## Separation of the large Configurations
## Includes
@@ -40,100 +207,287 @@ The included file must be in the same directory as the main file.
```json5
{
- tabs: {
- tab1: {
- type: 'panel', // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
- '#include': 'tab1.json',
- },
+ tabs: {
+ tab1: {
+ type: "panel", // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
+ "#include": "tab1.json",
},
+ },
+}
+```
+
+## i18n - Internationalization
+
+There are several options to provide the translations. Only the first one is compatible with our Community Translation Tool Weblate, so it should be favored over the others!
+
+To enable the translation feature, you need to provide and enable the i18n property at the top level of the JSON configuration object.
+
+```json5
+{
+ i18n: true,
}
```
-## Possible control types
-
-Possible types:
-
-- `tabs` - Tabs with items
- - `items` - Object with panels `{"tab1": {}, "tab2": {}...}`
- - `iconPosition` - `bottom`, `end`, `start` or `top`. Only for panels that has `icon` attribute. Default: `start`
- - `tabsStyle` - CSS Styles in React format (`marginLeft` and not `margin-left`) for the Mui-Tabs component
-
-- `panel` - Tab with items
- - `icon` - tab can have icon (base64 like `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`)
- - `label` - Label of tab
- - `items` - Object `{"attr1": {}, "attr2": {}}...`
- - `collapsable` - only possible as not part of tabs[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json)
- - `color` - color of collapsable header `primary` or `secondary` or nothing
- - `innerStyle` - CSS Styles for inner div in React format (`marginLeft` and not `margin-left`) for the Panel component. Not used for collapsable panels.
-
-- `text` - Text component
- - `maxLength` - max length of the text in field
- - `readOnly` - read-only field
- - `trim` - default is true. Set this attribute to `false` if trim is not desired.
- - `minRows` - default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row.
- - `maxRows` - max rows of textarea. Used only if `minRows` > 1.
- - `noClearButton` - if true, the clear button will not be shown (admin >= 6.17.13)
- - `validateJson` - if true, the text will be validated as JSON
- - `allowEmpty` - if true, the JSON will be validated only if the value is not empty
- - `time` - the value is time in ms or a string. Used only with readOnly flag
-
-- `number`
- - `min` - minimal value
- - `max` - maximal value
- - `step` - step
-
-- `color` - color picker
- - `noClearButton` - if true, the clear button will not be shown (admin >= 6.17.13)
-
-- `checkbox` - show checkbox
-
-- `slider` - show slider (only Admin6)
- - `min` - (default 0)
- - `max` - (default 100)
- - `step` - (default `(max - min) / 100`)
- - `unit` - Unit of slider
-
-- `qrCode` - show data in a QR Code (admin >= 7.0.18)
- - `data` - the data to be encoded in the QR Code
- - `size` - size of the QR code
- - `fgColor` - Foreground color
- - `bgColor` - Background color
- - `level` - QR code level (`L` `M` `Q` `H`)
-
-- `ip` - bind address
- - `listenOnAllPorts` - add 0.0.0.0 to option
- - `onlyIp4` - show only IP4 addresses
- - `onlyIp6` - show only IP6 addresses
- - `noInternal` - do not show internal IP addresses
-
-- `user` - Select user from system.user. (With color and icon)
- - `short` - no system.user.
-
-- `room` - Select room from `enum.room` (With color and icon) - (only Admin6)
- - `short` - no `enum.rooms.`
- - `allowDeactivate` - allow letting room empty
-
-- `func` - Select function from `enum.func` (With color and icon) - (only Admin6)
- - `short` - no `enum.func.`
- - `allowDeactivate` - allow letting functionality empty
-
-- `select`
- - `options` - `[{label: {en: "option 1"}, value: 1}, ...]` or
- `[{"items": [{"label": "Val1", "value": 1}, {"label": "Val2", value: "2}], "name": "group1"}, {"items": [{"label": "Val3", "value": 3}, {"label": "Val4", value: "4}], "name": "group2"}, {"label": "Val5", "value": 5}]`
-
-- `autocomplete`
- - `options` - `["value1", "value2", ...]` or `[{"value": "value", "label": "Value1"}, "value2", ...]` (keys must be unique)
- - `freeSolo` - Set `freeSolo` to `true`, so the textbox can contain any arbitrary value.
-
-- `image` - saves image as file of the `adapter.X` object or as base64 in attribute
- - `filename` - name of file is structure name. In the below example `login-bg.png` is file name for `writeFile("myAdapter.INSTANCE", "login-bg.png")`
- - `accept` - html accept attribute, like `{ 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }`
- - `maxSize` - maximal size of file to upload
- - `base64` - if true the image will be saved as data-url in attribute, elsewise as binary in file storage
- - `crop` - if true, allow user to crop the image
- - `!maxWidth`
- - `!maxHeight`
- - `!square` - width must be equal to height, or crop must allow only square as shape
+### Translation in separated files: compatible with weblate
+
+By default, the files must be located in the following directories:
+
+```text
+admin/i18n/de/translations.json
+admin/i18n/en/translations.json
+```
+
+or
+
+```text
+admin/i18n/de.json
+admin/i18n/en.json
+```
+
+Additionally, user can provide the path to `i18n` files, `i18n`: `customI18n` and provide files in admin:
+
+```json5
+ i18n: "customI18n",
+```
+
+```text
+admin/customI18n/de/translations.json
+admin/customI18n/en/translations.json
+```
+
+or
+
+```text
+admin/customI18n/de.json
+admin/customI18n/en.json
+```
+
+The structure of a file corresponds to the following structure
+
+**en.json:**
+
+```json5
+{
+ i18nText1: "Open",
+ i18nText2: "Close",
+ "This is a Text": "This is a Text",
+}
+```
+
+**de.json:**
+
+```json5
+{
+ i18nText1: "Öffnen",
+ i18nText2: "Schließen",
+ "This is a Text": "Dies ist ein Text",
+}
+```
+
+When searching for a translation, the information in the specific field is used to find the property with the text in the files. If the property is not found, the information from the field remains. It is recommended to enter the text in English.
+
+### Provide translation directly in the fields
+
+Translations can be specified in all fields that can contain text. Examples of fields are label, title, tooltip, text, etc.
+
+```json5
+ "type": "text",
+ "label: {
+ "en": "house",
+ "de": "Haus"
+ }
+}
+```
+
+### Provide translation directly in the i18n
+
+The translations can also be provided directly as an object in the `i18n` attribute at the top level of the `jsonConfig` object.
+
+When searching for a translation, the information in the specific field is used to find the property with the text in the i18n object.
+If the property is not found, the information from the field remains.
+It is recommended to enter the text in English.
+
+## Element types
+
+Each element can have [common attributes](#common-attributes-of-controls) and the special attributes belonging to the respective type as follows
+
+### `tabs`
+
+Tabs with items
+
+| Property | Description |
+|-----------------|------------------------------------------------------------------------------------------------|
+| `items` | Object with panels `{"tab1": {}, "tab2": {}...}` |
+| `iconPosition` | `bottom`, `end`, `start` or `top`. Only for panels that has `icon` attribute. Default: `start` |
+| `tabsStyle` | CSS Styles in React format (`marginLeft` and not `margin-left`) for the Mui-Tabs component |
+
+### `panel`
+
+Tab with items
+
+| Property | Description |
+|---------------|-----------------------------------------------------------------------------------------------------------------------------------------|
+| `icon` | tab can have icon (base64 like `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`) |
+| `label` | Label of tab |
+| `items` | Object `{"attr1": {}, "attr2": {}}...` |
+| `collapsable` | only possible as not part of tabs[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) |
+| `color` | color of collapsable header `primary` or `secondary` or nothing |
+| `innerStyle` | CSS Styles for inner div in React format (`marginLeft` and not `margin-left`) for the Panel component. Not used for collapsable panels. |
+
+### `text`
+
+Text component
+
+| Property | Description |
+|-------------------|--------------------------------------------------------------------------------------------------------|
+| `maxLength` | max length of the text in field |
+| `readOnly` | read-only field |
+| `copyToClipboard` | show copy to clipboard button, but only if disabled or read-only is true |
+| `trim` | default is true. Set this attribute to `false` if trim is not desired. |
+| `minRows` | default is 1. Set this attribute to `2` or more if you want to have a textarea with more than one row. |
+| `maxRows` | max rows of textarea. Used only if `minRows` > 1. |
+| `noClearButton` | if true, the clear button will not be shown (admin >= 6.17.13) |
+| `validateJson` | if true, the text will be validated as JSON |
+| `allowEmpty` | if true, the JSON will be validated only if the value is not empty |
+| `time` | the value is time in ms or a string. Used only with readOnly flag |
+
+### `number`
+
+| Property | Description |
+|----------|---------------|
+| `min` | minimal value |
+| `max` | maximal value |
+| `step` | step |
+
+### `color`
+
+color picker
+
+| Property | Description |
+|-----------------|----------------------------------------------------------------|
+| `noClearButton` | if true, the clear button will not be shown (admin >= 6.17.13) |
+
+### `checkbox`
+
+show checkbox
+
+### `slider`
+
+show slider (only Admin6)
+
+| Property | Description |
+| -------- | ----------------------------- |
+| `min` | (default 0) |
+| `max` | (default 100) |
+| `step` | (default `(max - min) / 100`) |
+| `unit` | Unit of slider |
+
+### `qrCode`
+
+show data in a QR Code (admin >= 7.0.18)
+
+| Property | Description |
+| --------- | ------------------------------------- |
+| `data` | the data to be encoded in the QR Code |
+| `size` | size of the QR code |
+| `fgColor` | Foreground color |
+| `bgColor` | Background color |
+| `level` | QR code level (`L` `M` `Q` `H`) |
+
+### `ip`
+
+bind address
+
+| Property | Description |
+|--------------------|-----------------------------------|
+| `listenOnAllPorts` | add 0.0.0.0 to option |
+| `onlyIp4` | show only IP4 addresses |
+| `onlyIp6` | show only IP6 addresses |
+| `noInternal` | do not show internal IP addresses |
+
+### `user`
+
+lect user from system.user. (With color and icon)
+
+| Property | Description |
+|----------|-----------------|
+| `short` | no system.user. |
+
+### `room`
+
+Select room from `enum.room` (With color and icon) - (only Admin6)
+
+| Property | Description |
+|-------------------|--------------------------|
+| `short` | no `enum.rooms.` |
+| `allowDeactivate` | allow letting room empty |
+
+### `func`
+
+Select function from `enum.func` (With color and icon) - (only Admin6)
+
+| Property | Description |
+|-------------------|-----------------------------------|
+| `short` | no `enum.func.` |
+| `allowDeactivate` | allow letting functionality empty |
+
+### `select`
+
+| Property | Description |
+|-----------|-------------------------------------------------------------------------|
+| `options` | object with labels, optional translations, optional grouping and values |
+
+#### Example for `select options`
+
+```json
+[
+ {"label": {"en": "option 1"}, "value": 1}, ...
+]
+```
+or
+```json
+[
+ {
+ "items": [
+ {"label": "Val1", "value": 1},
+ {"label": "Val2", "value": 2}
+ ],
+ "name": "group1"
+ },
+ {
+ "items": [
+ {"label": "Val3", "value": 3},
+ {"label": "Val4", "value": 4}
+ ],
+ "name": "group2"
+ },
+ {"label": "Val5", "value": 5}
+]
+```
+
+### `autocomplete`
+
+| Property | Description |
+|------------|---------------------------------------------------------------------------------------------------------------|
+| `options` | `["value1", "value2", ...]` or `[{"value": "value", "label": "Value1"}, "value2", ...]` (keys must be unique) |
+| `freeSolo` | Set `freeSolo` to `true`, so the textbox can contain any arbitrary value. |
+
+### `image`
+
+saves image as a file of the `adapter.X` object or as base64 in attribute
+
+| Property | Description |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
+| `filename` | name of file is structure name. In the below example `login-bg.png` is file name for `writeFile("myAdapter.INSTANCE", "login-bg.png")` |
+| `accept` | html accept attribute, like `{ 'image/**': [], 'application/pdf': ['.pdf'] }`, default `{ 'image/*': [] }` |
+| `maxSize` | maximal size of file to upload |
+| `base64` | if true the image will be saved as data-url in attribute, elsewise as binary in file storage |
+| `crop` | if true, allow user to crop the image |
+| `!maxWidth` | |
+| `!maxHeight` | |
+| `!square` | width must be equal to height, or crop must allow only square as shape |
+
+#### Example for `image`
```json
"login-bg.png": {
@@ -156,364 +510,635 @@ Possible types:
}
```
-- `objectId` - object ID: show it with name, color and icon
- - `types` - Desired type: `channel`, `device`, ... (has only `state` by default). It is plural, because `type` is already occupied.
- - `root` - [optional] Show only this root object and its children
- - `customFilter` - [optional] Cannot be used together with `type` settings. It is an object and not a JSON string. Examples
- - `{common: {custom: true}}` - show only objects with some custom settings
- - `{common: {custom: 'sql.0'}}` - show only objects with sql.0 custom settings (only of the specific instance)
- - `{common: {custom: '_dataSources'}}` - show only objects of adapters `influxdb` or `sql` or `history`
- - `{common: {custom: 'adapterName.'}}` - show only objects of custom settings of specific adapter (all instances)
- - `{type: 'channel'}` - show only channels
- - `{type: ['channel', 'device']}` - show only channels and devices
- - `{common: {type: 'number'}` - show only states of type 'number
- - `{common: {type: ['number', 'string']}` - show only states of type 'number and string
- - `{common: {role: 'switch'}` - show only states with roles starting from switch
- - `{common: {role: ['switch', 'button']}` - show only states with roles starting from `switch` and `button`
- - `filterFunc` - [optional] Cannot be used together with `type` settings. It is a function that will be called for every object and must return true or false. Example: `obj.common.type === 'number'`
-
-- `password` - password field
- This field-type just have an effect in the UI.
- Passwords and other sensitive data should be stored encrypted!
- To do this, the key must be provided in the io-package.json under [nativeEncrypted](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields).
- Additionally, you can protect this property from being served to other adapters but `admin` and `cloud` by adding it to `protectedNative` in `io-package.json` file.
- - `repeat` - repeat password must be compared with password
- - `visible` - true if allow viewing the password by toggling the view button (only for a new password while entering)
- - `readOnly` - the read-only flag. Visible is automatically true if readOnly is true
- - `maxLength` - max length of the text in field
-
-- `instance`
- - `adapter` - name of adapter. With special name `_dataSources` you can get all adapters with flag `common.getHistory`.
- - `adapters` - optional list of adapters, that should be shown. If not defined, all adapters will be shown. Only active if `adapter` attribute is not defined.
- - `allowDeactivate` - if true. Additional option "deactivate" is shown
- - `onlyEnabled` - if true. Only enabled instances will be shown
- - `long` - value will look like `system.adapter.ADAPTER.0` and not `ADAPTER.0`
- - `short` - value will look like `0` and not `ADAPTER.0`
- - `all` - Add to the options "all" option with value `*`
-
-- `chips` - user can enter the word, and it will be added (see cloud => services => White list). Output is an array if no `delimiter` defined.
- - `delimiter` - if it is defined, so the option will be stored as string with delimiter instead of an array. E.g., by `delimiter=;` you will get `a;b;c` instead of `['a', 'b', 'c']`
-
-- `alive` - just indication if the instance is alive, and it could be used in "hidden" and "disabled" (will not be saved in config)
- Just text: Instance is running, Instance is not running
- - `instance` - check if the instance is alive. If not defined, it will be used current instance. You can use `${data.number}` pattern in the text.
- - `textAlive` - default text is `Instance %s is alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files
- - `textNotAlive` - default text is `Instance %s is not alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files
-
-- `pattern` - read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)
- Text input with the read-only flag, that shows a pattern.
- - `copyToClipboard` - if true - show button
- - `pattern` - my pattern
-
-- `sendto` - button that sends request to instance (https://github.com/iobroker-community-adapters/ioBroker.email/blob/master/admin/index_m.html#L128)
- - `command` - (Default `send`)
- - `jsonData` - string - `"{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}"`. You can use special variables `data._origin` and `data._originIp` to send to instance the caller URL, like `http://127.0.0.1:8081/admin`.
- - `data` - object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both.
- - `result` - `{result1: {en: 'A'}, result2: {en: 'B'}}`
- - `error` - `{error1: {en: 'E'}, error2: {en: 'E2'}}`
- - `variant` - `contained`, `outlined` or nothing
- - `openUrl` - if true - open URL in new tab, if response contains attribute `openUrl`, like `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. If `saveConfig` is true, the user will be requested to save the configuration.
- - `reloadBrowser` - if true - reload the current browser window, if response contains attribute `reloadBrowser`, like `{"reloadBrowser": true}`.
- - `window` - if `openUrl` is true, this is a name of the new window. Could be overwritten if response consist `window` attribute.
- `this.props.socket.sendTo(adapterName.instance, command || 'send', data, result => {});`
- - `icon` - if icon should be shown: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. You can use `base64` icons (like `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`). (Request via issue if you need more icons)
- - `useNative` - if adapter returns a result with `native` attribute it will be used for configuration. If `saveConfig` is true, the user will be requested to save the configuration.
- - `showProcess` - Show spinner while request is in progress
- - `timeout` - timeout for request in ms. Default: none.
- - `onLoaded` - execute the button logic once initially
-
-- `setState` - button that sets instance's state
- - `id` - `system.adapter.myAdapter.%INSTANCE%.test`, you can use the placeholder `%INSTANCE%` to replace it with the current instance name
- - `ack` - false (default false)
- - `val` - '${data.myText}\_test' or number. Type will be detected automatically from the state type and converting done too
- - `okText` - Alert which will be shown by pressing the button
- - `variant` - `contained`, `outlined`, ''
-
-- `staticText` - static text like description
- - `label` - multi-language text
- - `text` - same as label
-
-- `staticLink` - static link
- - `label` - multi-language text
- - `href` - link. Link could be dynamic like `#tab-objects/customs/${data.parentId}`
- - `target` - `_blank` or `_self` or window name
- - `close` - if true, the GUI will be closed (used not for JsonConfig in admin, but for dynamic GUI)
- - `button` - show a link as button
- - `variant` - type of button (`outlined`, `contained`, `text`)
- - `color` - color of button (e.g. `primary`)
- - `icon` - if icon should be shown: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. You can use `base64` icons (it starts with `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`) . (Request via issue if you need more icons)
-
-- `staticImage` - static image
- - `href` - optional HTTP link
- - `src` - name of picture (from admin directory)
-
-- `table` - table with items that could be deleted, added, moved up, moved down
- - `items` - `[{"type": see above, "width": px or %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]`
- - `noDelete` - boolean if delete or add disabled, If `noDelete` is false, add, delete and move up/down should work
- - `objKeyName` - (legacy setting, don't use!) - name of the key in `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}`
- - `objValueName` - (legacy setting, don't use!) - name of the value in `{"192.168.1.1": "value1", "192.168.1.2": "value2"}`
- - `allowAddByFilter` - if add allowed even if filter is set
- - `showSecondAddAt` - Number of lines from which the second add button at the bottom of the table will be shown. Default 5
- - `showFirstAddOnTop` - Show first plus button on top of the first column and not on the left.
- - `clone` - [optional] - if clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.
- - `export` - [optional] - if export button should be shown. Export as csv file.
- - `import` - [optional] - if import button should be shown. Import from csv file.
- - `uniqueColumns` - [optional] - specify an array of columns, which need to have unique entries
- - `encryptedAttributes` - [optional] - specify an array of columns, which should be encrypted
- - `compact` - [optional] - if true, the table will be shown in a compact mode
-
-- `accordion` - accordion with items that could be deleted, added, moved up, moved down (Admin 6.6.0 and newer)
- - `items` - `[{"type": see above, "attr": "name", "default": ""}]` - items can be placed like on a `panel` (xs, sm, md, lg and newLine)
- - `titleAttr` - key of the item's list which should be used as name
- - `noDelete` - boolean if delete or add disabled, If `noDelete` is false, add, delete and move up/down should work
- - `clone` - [optional] - if clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique.
-
-- `jsonEditor` - json editor
- - `validateJson` - if false, the text will be not validated as JSON
- - `allowEmpty` - if true, the JSON will be validated only if the value is not empty
-
-- `language` - select language
- - `system` - allow the usage of the system language from `system.config` as default (will have an empty string value if selected)
-
-- `certificate`
- - `certType` - on of: `public`, `private`, `chained`. But from 6.4.0 you can use `certificates` type.
-
-- `certificates` - it is a universal type that manages `certPublic`, `certPrivate`, `certChained` and `leCollection` attributes for you.
- Example:
+### `objectId`
+
+object ID: show it with name, color and icon
+
+| Property | Description |
+|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `types` | Desired type: `channel`, `device`, ... (has only `state` by default). It is plural, because `type` is already occupied. |
+| `root` | [optional] Show only this root object and its children |
+| `customFilter` | [optional] Cannot be used together with `type` settings. It is an object and not a JSON string. |
+| `filterFunc` | [optional] Cannot be used together with `type` settings. It is a function that will be called for every object and must return true or false. Example: `obj.common.type === 'number'` |
+
+#### Examples for `customFilter`
+
+##### show only objects with some custom settings
+
+`{common: {custom: true}}`
+
+##### show only objects with sql.0 custom settings (only of the specific instance)
+
+`{common: {custom: 'sql.0'}}`
+
+##### show only objects of adapters `influxdb` or `sql` or `history`
+
+`{common: {custom: '_dataSources'}}`
+
+##### show only objects of custom settings for specific adapter (all instances)
+
+`{common: {custom: 'adapterName.'}}`
+
+##### show only channels
+
+`{type: 'channel'}`
+
+##### show only channels and devices
+
+`{type: ['channel', 'device']}`
+
+##### show only states of type 'number'
+
+`{common: {type: 'number'}`
+
+##### show only states of type 'number' and 'string'
+
+`{common: {type: ['number', 'string']}`
+
+##### show only states with roles starting from switch
+
+`{common: {role: 'switch'}`
+
+##### show only states with roles starting from `switch` and `button`
+
+`{common: {role: ['switch', 'button']}`
+
+### `password`
+
+This field-type just has an effect on the UI.
+Passwords and other sensitive data should be stored encrypted!
+To do this, the key must be provided in the io-package.json under [nativeEncrypted](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields).
+Additionally, you can protect this property from being served to other adapters but `admin` and `cloud` by adding it to `protectedNative` in `io-package.json` file.
+
+| Property | Description |
+|-------------|---------------------------------------------------------------------------------------------------------|
+| `repeat` | repeat password must be compared with password |
+| `visible` | true if allow viewing the password by toggling the view button (only for a new password while entering) |
+| `readOnly` | the read-only flag. Visible is automatically true if readOnly is true |
+| `maxLength` | max length of the text in field |
+
+### `instance`
+
+| Property | Description |
+|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `adapter` | name of adapter. With special name `_dataSources` you can get all adapters with flag `common.getHistory`. |
+| `adapters` | optional list of adapters, that should be shown. If not defined, all adapters will be shown. Only active if `adapter` attribute is not defined. |
+| `allowDeactivate` | if true. Additional option "deactivate" is shown |
+| `onlyEnabled` | if true. Only enabled instances will be shown |
+| `long` | value will look like `system.adapter.ADAPTER.0` and not `ADAPTER.0` |
+| `short` | value will look like `0` and not `ADAPTER.0` |
+| `all` | Add to the options "all" option with value `*` |
+
+### `chips`
+
+User can enter the word, and it will be added (see cloud => services => White list). Output is an array if no `delimiter` defined.
+
+| Property | Description |
+|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `delimiter` | if it is defined, so the option will be stored as string with delimiter instead of an array. E.g., by `delimiter=;` you will get `a;b;c` instead of `['a', 'b', 'c']` |
+
+### `alive`
+
+just indication if the instance is alive, and it could be used in "hidden" and "disabled" (will not be saved in config)
+
+Just text: Instance is running, Instance is not running
+
+| Property | Description |
+|----------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `instance` | check if the instance is alive. If not defined, it will be used current instance. You can use `${data.number}` pattern in the text. |
+| `textAlive` | default text is `Instance %s is alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files |
+| `textNotAlive` | default text is `Instance %s is not alive`, where %s will be replaced by `ADAPTER.0`. The translation must exist in i18n files |
+
+### `pattern`
+
+read-only field with pattern like 'https://${data.ip}:${data.port}' (will not be saved in config)
+Text input with the read-only flag, that shows a pattern.
+
+| Property | Description |
+|-------------------|-----------------------|
+| `copyToClipboard` | if true - show button |
+| `pattern` | my pattern |
+
+### `sendTo`
+
+button that sends request to instance ()
+
+| Property | Description |
+|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | (Default `send`) |
+| `jsonData` | string - `"{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}"`. You can use special variables `data._origin` and `data._originIp` to send to instance the caller URL, like `http://127.0.0.1:8081/admin`. |
+| `data` | object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. |
+| `result` | `{result1: {en: 'A'}, result2: {en: 'B'}}` |
+| `error` | `{error1: {en: 'E'}, error2: {en: 'E2'}}` |
+| `variant` | `contained`, `outlined` or nothing |
+| `openUrl` | if true - open URL in new tab, if response contains attribute `openUrl`, like `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. If `saveConfig` is true, the user will be requested to save the configuration. |
+| `reloadBrowser` | if true - reload the current browser window, if response contains attribute `reloadBrowser`, like `{"reloadBrowser": true}`. |
+| `window` | if `openUrl` is true, this is a name of the new window. Could be overwritten if response consist `window` attribute. `this.props.socket.sendTo(adapterName.instance, command \|\| 'send', data, result => {});` |
+| `icon` | if icon should be shown: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. You can use `base64` icons (like `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`). (Request via issue if you need more icons) |
+| `useNative` | if adapter returns a result with `native` attribute it will be used for configuration. If `saveConfig` is true, the user will be requested to save the configuration. |
+| `showProcess` | Show spinner while request is in progress |
+| `timeout` | timeout for request in ms. Default: none. |
+| `onLoaded` | execute the button logic once initially |
+
+### `setState`
+
+button that sets instance's state
+
+| Property | Description |
+|-----------|-----------------------------------------------------------------------------------------------------------------------------------|
+| `id` | `system.adapter.myAdapter.%INSTANCE%.test`, you can use the placeholder `%INSTANCE%` to replace it with the current instance name |
+| `ack` | false (default false) |
+| `val` | `${data.myText}\_test` or number. Type will be detected automatically from the state type and converting done too |
+| `okText` | Alert which will be shown by pressing the button |
+| `variant` | `contained`, `outlined`, '' |
+
+### `staticText`
+
+static text like description
+
+| Property | Description |
+|----------|---------------------|
+| `label` | multi-language text |
+| `text` | same as label |
+
+### `staticLink`
+
+| Property | Description |
+|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `label` | multi-language text |
+| `href` | link. Link could be dynamic like `#tab-objects/customs/${data.parentId}` |
+| `target` | `_blank` or `_self` or window name |
+| `close` | if true, the GUI will be closed (used not for JsonConfig in admin, but for dynamic GUI) |
+| `button` | show a link as button |
+| `variant` | type of button (`outlined`, `contained`, `text`) |
+| `color` | color of button (e.g. `primary`) |
+| `icon` | if icon should be shown: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. You can use `base64` icons (it starts with `data:image/svg+xml;base64,...`) or `jpg/png` images (ends with `.png`) . (Request via issue if you need more icons) |
+
+### `staticImage`
+
+| Property | Description |
+|----------|----------------------------------------|
+| `href` | optional HTTP link |
+| `src` | name of picture (from admin directory) |
+
+### `table`
+
+table with items that could be deleted, added, moved up, moved down
+
+| Property | Description |
+|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "width": px or %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]` |
+| `noDelete` | boolean if delete or add disabled, If `noDelete` is false, add, delete and move up/down should work |
+| `objKeyName` | (legacy setting, don't use!) - name of the key in `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}` |
+| `objValueName` | (legacy setting, don't use!) - name of the value in `{"192.168.1.1": "value1", "192.168.1.2": "value2"}` |
+| `allowAddByFilter` | if add allowed even if filter is set |
+| `showSecondAddAt` | Number of lines from which the second add button at the bottom of the table will be shown. Default 5 |
+| `showFirstAddOnTop` | Show first plus button on top of the first column and not on the left. |
+| `clone` | [optional] - if clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. |
+| `export` | [optional] - if export button should be shown. Export as csv file. |
+| `import` | [optional] - if import button should be shown. Import from csv file. |
+| `uniqueColumns` | [optional] - specify an array of columns, which need to have unique entries |
+| `encryptedAttributes` | [optional] - specify an array of columns, which should be encrypted |
+| `compact` | [optional] - if true, the table will be shown in a compact mode |
+
+### `accordion`
+
+accordion with items that could be deleted, added, moved up, moved down (Admin 6.6.0 and newer)
+
+| Property | Description |
+|-------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "attr": "name", "default": ""}]` items can be placed like on a `panel` (xs, sm, md, lg and newLine) |
+| `titleAttr` | key of the item's list which should be used as name |
+| `noDelete` | boolean if delete or add disabled, If `noDelete` is false, add, delete and move up/down should work |
+| `clone` | [optional] - if clone button should be shown. If true, the clone button will be shown. If attribute name, this name will be unique. |
+
+### `jsonEditor`
+
+| Property | Description |
+|----------------|--------------------------------------------------------------------|
+| `validateJson` | if false, the text will be not validated as JSON |
+| `allowEmpty` | if true, the JSON will be validated only if the value is not empty |
+
+### `language`
+
+select language
+
+| Property | Description |
+|----------|----------------------------------------------------------------------------------------------------------------------|
+| `system` | allow the usage of the system language from `system.config` as default (will have an empty string value if selected) |
+
+### `certificate`
+
+| Property | Description |
+|------------|----------------------------------------------------------------------------------------|
+| `certType` | on of: `public`, `private`, `chained`. But from 6.4.0 you can use `certificates` type. |
+
+### `certificates`
+
+it is a universal type that manages `certPublic`, `certPrivate`, `certChained` and `leCollection` attributes for you.
+Example:
```json
{
- "_certs": {
- "type": "certificates",
- "newLine": true,
- "hidden": "!data.secure",
- "sm": 12
- }
+ "_certs": {
+ "type": "certificates",
+ "newLine": true,
+ "hidden": "!data.secure",
+ "sm": 12
+ }
}
```
-- `certCollection` - select certificate collection or just use all collections or don't use let's encrypt at all.
- - `leCollectionName` - name of the certificate collection
-
-- `custom` (only Admin6)
- - `name` - Component name that will be provided via props, like ComponentInstancesEditor
- - `url` - Location of the component
- - `custom/customComponents.js`: in this case the files will be loaded from `/adapter/ADAPTER_NAME/custom/customComponents.js`
- - `https://URL/myComponent`: direct from URL
- - `./adapter/ADAPTER_NAME/custom/customComponent.js`: in this case the files will be loaded from `/adapter/ADAPTER_NAME/custom/customComponents.js`
- - `i18n` - true if `i18n/xx.json` files are located in the same directory as component, or translation object `{"text1": {"en": Text1"}}`
-
-- `datePicker` - allow the user to select a date input the UI format comes from the configured `dateFormat` in the users' installation. The
- component returns a parseable date string.
-
-- `timePicker` - allow the user to select a date input the returned string is a parseable date string or of format `HH:mm:ss`
- - `format` - format passed to the date picker defaults to `HH:mm:ss`
- - `views` - Configure which views should be shown to the users. Defaults to `['hours', 'minutes', 'seconds']`
- - `timeSteps` - Represent the available time steps for each view. Defaults to `{ hours: 1, minutes: 5, seconds: 5 }`
- - `returnFormat` - `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons.
-
-- `divider` - horizontal line
- - `height` - optional height
- - `color` - optional divider color or `primary`, `secondary`
-
-- `header`
- - `text`
- - `size` - 1-5 => h1-h5
-
-- `cron`
- - `complex` - show CRON with "minutes", "seconds" and so on
- - `simple` - show simple CRON settings
-
-- `fileSelector` (only Admin6)
- - `pattern` - File extension pattern. Allowed `**/*.ext` to show all files from subfolders too, `*.ext` to show from root folder or `folderName/*.ext` to show all files in sub-folder `folderName`. Default `**/*.*`.
- - `fileTypes` - [optional] type of files: `audio`, `image`, `text`
- - `objectID` - Object ID of type `meta`. You can use special placeholder `%INSTANCE%`: like `myAdapter.%INSTANCE%.files`
- - `upload` - path, where the uploaded files will be stored. Like `folderName`. If not defined, no upload field will be shown. To upload in the root, set this field to `/`.
- - `refresh` - Show refresh button near the select.
- - `maxSize` - max file size (default 2MB)
- - `withFolder` - show folder name even if all files in same folder
- - `delete` - Allow deletion of files
- - `noNone` - Do not show `none` option
- - `noSize` - Do not show size of files
-
-- `file` - (only Admin6) Input field with file selector
- - `disableEdit` - if user can manually enter the file name and not only through select dialog
- - `limitPath` - limit selection to one specific object of type `meta` and following path (not mandatory)
- - `filterFiles` - like `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']`
- - `allowUpload` - allowed upload of files
- - `allowDownload` - allowed download of files (default true)
- - `allowCreateFolder` - allowed creation of folders
- - `allowView` - allowed tile view (default true)
- - `showToolbar` - show toolbar (default true)
- - `selectOnlyFolders` - user can select only folders (e.g. for upload path)
- - `trim` - trim the file name
-
-- `imageSendTo` - shows image, that was received from backend as base64 string
- - `width` - width of QR code in px
- - `height` - height of QR code in px
- - `command` - sendTo command
- - `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to backend
- - `data` - object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to backend if jsonData is not defined.
- Example of code in back-end:
+### `certificateCollection`
-```
-adapter.on('message', obj => {
- if (obj.command === 'send') {
- const QRCode = require('qrcode');
- QRCode.toDataURL('3ca4234a-fd81-fdb8-5584-08c732f70e4d', (err, url) =>
- obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback));
- }
+select certificate collection or just use all collections or don't use let's encrypt at all.
+
+| Property | Description |
+|--------------------|------------------------------------|
+| `leCollectionName` | name of the certificate collection |
+
+### `custom`
+
+only Admin6
+
+| Property | Description |
+|----------|--------------------------------------------------------------------------------------------------------------------------------|
+| `name` | Component name that will be provided via props, like `ComponentInstancesEditor` |
+| `url` | Location of the component |
+| `i18n` | true if `i18n/xx.json` files are located in the same directory as component, or translation object `{"text1": {"en": Text1"}}` |
+
+#### Example for url
+
+- `custom/customComponents.js`: in this case the files will be loaded from `/adapter/ADAPTER_NAME/custom/customComponents.js`
+- `https://URL/myComponent`: direct from URL
+- `./adapter/ADAPTER_NAME/custom/customComponent.js`: in this case the files will be loaded from `/adapter/ADAPTER_NAME/custom/customComponents.js`
+
+### `datePicker`
+
+allow the user to select a date input the UI format comes from the configured
+
+### `timePicker`
+
+allow the user to select a date input the returned string is a parseable date string or of format `HH:mm:ss`
+
+| Property | Description |
+|----------------|------------------------------------------------------------------------------------------------------|
+| `format` | format passed to the date picker defaults to `HH:mm:ss` |
+| `views` | Configure which views should be shown to the users. Defaults to `['hours', 'minutes', 'seconds']` |
+| `timeSteps` | Represent the available time steps for each view. Defaults to `{ hours: 1, minutes: 5, seconds: 5 }` |
+| `returnFormat` | `fullDate` or `HH:mm:ss`. Defaults to full date for backward compatibility reasons. |
+
+### `divider`
+
+horizontal line
+
+| Property | Description |
+|----------|--------------------------------------------------|
+| `height` | optional height |
+| `color` | optional divider color or `primary`, `secondary` |
+
+### `header`
+
+| Property | Description |
+|----------|--------------|
+| `text` | |
+| `size` | 1-5 => h1-h5 |
+
+### `cron`
+
+| Property | Description |
+|-----------|-----------------------------------------------|
+| `complex` | show CRON with "minutes", "seconds" and so on |
+| `simple` | show simple CRON settings |
+
+### `fileSelector`
+
+only Admin6
+
+| Property | Description |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `pattern` | File extension pattern. Allowed `**/*.ext` to show all files from subfolders too, `*.ext` to show from root folder or `folderName/*.ext` to show all files in sub-folder `folderName`. Default `**/*.*`. |
+| `fileTypes` | [optional] type of files: `audio`, `image`, `text` |
+| `objectID` | Object ID of type `meta`. You can use special placeholder `%INSTANCE%`: like `myAdapter.%INSTANCE%.files` |
+| `upload` | path, where the uploaded files will be stored. Like `folderName`. If not defined, no upload field will be shown. To upload in the root, set this field to `/`. |
+| `refresh` | Show refresh button near the select. |
+| `maxSize` | max file size (default 2MB) |
+| `withFolder` | show folder name even if all files in same folder |
+| `delete` | Allow deletion of files |
+| `noNone` | Do not show `none` option |
+| `noSize` | Do not show size of files |
+
+### `file`
+
+only Admin6.
+Input field with file selector
+
+| Property | Description |
+|---------------------|------------------------------------------------------------------------------------------|
+| `disableEdit` | if user can manually enter the file name and not only through select dialog |
+| `limitPath` | limit selection to one specific object of type `meta` and following path (not mandatory) |
+| `filterFiles` | like `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']` |
+| `allowUpload` | allowed upload of files |
+| `allowDownload` | allowed download of files (default true) |
+| `allowCreateFolder` | allowed creation of folders |
+| `allowView` | allowed tile view (default true) |
+| `showToolbar` | show toolbar (default true) |
+| `selectOnlyFolders` | user can select only folders (e.g. for upload path) |
+| `trim` | trim the file name |
+
+### `imageSendTo`
+
+shows image that was received from backend as base64 string
+
+| Property | Description |
+|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `width` | width of QR code in px |
+| `height` | height of QR code in px |
+| `command` | sendTo command |
+| `jsonData` | string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to backend |
+| `data` | object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to backend if jsonData is not defined. |
+
+#### Example of code in back-end for `imageSendTo`
+
+```js
+adapter.on("message", (obj) => {
+ if (obj.command === "send") {
+ const QRCode = require("qrcode");
+ QRCode.toDataURL(
+ "3ca4234a-fd81-fdb8-5584-08c732f70e4d",
+ (err, url) =>
+ obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback)
+ );
+ }
});
```
-- `selectSendTo` - Shows the drop-down menu with the given from the instance values.
- - `command` - sendTo command
- - `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend
- - `data` - object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined.
- - `manual` - allow manual editing. Without drop-down menu (if instance is offline). Default `true`.
- - `multiple` - Multiple choice select
- - `showAllValues` - show item even if no label was found for it (by multiple), default=`true`
- - `noTranslation` - do not translate label of selects
- To use this option, your adapter must implement message handler:
- The result of command must be an array in form `[{"value": 1, "label": "one"}, ...]`
- - `alsoDependsOn` - by change of which attributes, the command must be resent
+### `selectSendTo`
+
+Shows the drop-down menu with the given from the instance values.
+
+| Property | Description |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | sendTo command |
+| `jsonData` | string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend |
+| `data` | object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined. |
+| `manual` | allow manual editing. Without drop-down menu (if instance is offline). Default `true`. |
+| `multiple` | Multiple choice select |
+| `showAllValues` | show item even if no label was found for it (by multiple), default=`true` |
+| `noTranslation` | do not translate label of selects. To use this option, your adapter must implement message handler.The result of command must be an array in form `[{"value": 1, "label": "one"}, ...]` |
+| `alsoDependsOn` | by change of which attributes, the command must be resent |
+
+#### Example of code in back-end for `selectSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- if (obj.callback) {
- try {
- const { SerialPort } = require('serialport');
- if (SerialPort) {
- // read all found serial ports
- SerialPort.list()
- .then(ports => {
- adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
- adapter.sendTo(obj.from, obj.command, ports.map(item => ({label: item.path, value: item.path})), obj.callback);
- })
- .catch(e => {
- adapter.sendTo(obj.from, obj.command, [], obj.callback);
- adapter.log.error(e)
- });
- } else {
- adapter.log.warn('Module serialport is not available');
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- } catch (e) {
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- }
-
- break;
- }
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ if (obj.callback) {
+ try {
+ const { SerialPort } = require("serialport");
+ if (SerialPort) {
+ // read all found serial ports
+ SerialPort.list()
+ .then((ports) => {
+ adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ ports.map((item) => ({
+ label: item.path,
+ value: item.path,
+ })),
+ obj.callback
+ );
+ })
+ .catch((e) => {
+ adapter.sendTo(obj.from, obj.command, [], obj.callback);
+ adapter.log.error(e);
+ });
+ } else {
+ adapter.log.warn("Module serialport is not available");
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ } catch (e) {
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ }
+
+ break;
+ }
+ }
});
```
-- `autocompleteSendTo`
- Shows autocomplete control with the given from the instance values.
- - `command` - sendTo command
- - `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend
- - `data` - object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined.
- - `freeSolo` - Set `freeSolo` to `true`, so the textbox can contain any arbitrary value.
- - `alsoDependsOn` - by change of which attributes, the command must be resent
- - `maxLength` - max length of the text in field
-
- To use this option, your adapter must implement message handler:
- The result of command must be an array in form `["value1", {"value": "value2", "label": "Value2"}, ...]` (keys must be unique)
- See `selectSendTo` for handler example
-
-- `textSendTo`
- Shows readonly control with the given from the instance values.
- - `container` - div, text, html
- - `copyToClipboard` - if true - show button
- - `alsoDependsOn` - by change of which attributes, the command must be resent
- - `command` - sendTo command
- - `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend
- - `data` - object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined.
- To use this option, your adapter must implement a message handler:
- The result of command must be a string or object with the following parameters:
+### `autocompleteSendTo`
+
+Shows autocomplete control with the given from the instance values.
+
+| Property | Description |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | sendTo command |
+| `jsonData` | string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend |
+| `data` | object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined. |
+| `freeSolo` | Set `freeSolo` to `true`, so the textbox can contain any arbitrary value. |
+| `alsoDependsOn` | by change of which attributes, the command must be resent |
+| `maxLength` | max length of the text in field |
+
+To use this option, your adapter must implement message handler:
+
+The result of command must be an array in form `["value1", {"value": "value2", "label": "Value2"}, ...]` (keys must be unique)
+See `selectSendTo` for handler example
+
+### `textSendTo`
+
+Shows readonly control with the given from the instance values.
+
+| Property | Description |
+|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `container` | div, text, html |
+| `copyToClipboard` | if true - show button |
+| `alsoDependsOn` | by change of which attributes, the command must be resent |
+| `command` | sendTo command |
+| `jsonData` | string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. This data will be sent to the backend |
+| `data` | object - `{"subject1": 1, "data": "static"}`. You can specify jsonData or data, but not both. This data will be sent to the backend if jsonData is not defined. |
+
+To use this option, your adapter must implement a message handler:
+The result of command must be a string or object with the following parameters:
```json5
{
- text: 'text to show', // mandatory
- style: { color: 'red' }, // optional
- icon: 'search', // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
- // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, puase, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
- iconStyle: {width: 30} // optional
+ text: "text to show", // mandatory
+ style: { color: "red" }, // optional
+ icon: "search", // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
+ // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, pause, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
+ iconStyle: { width: 30 }, // optional
}
```
-Example:
+#### Example for `textSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- obj.callback && adapter.sendTo(obj.from, obj.command, 'Received ' + JSON.stringify(obj.message), obj.callback);
- // or with style
- obj.callback && adapter.sendTo(obj.from, obj.command, { text: 'Received ' + JSON.stringify(obj.message), style: { color: 'red' }, icon: 'search', iconStyle: { width: 30 }}, obj.callback);
- // or as html
- obj.callback && adapter.sendTo(obj.from, obj.command, ` ${JSON.stringify(obj.message)} `, obj.callback);
- break;
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ "Received " + JSON.stringify(obj.message),
+ obj.callback
+ );
+ // or with style
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ {
+ text: "Received " + JSON.stringify(obj.message),
+ style: { color: "red" },
+ icon: "search",
+ iconStyle: { width: 30 },
+ },
+ obj.callback
+ );
+ // or as html
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ `${JSON.stringify(obj.message)} `,
+ obj.callback
+ );
+ break;
}
+ }
});
```
-- `coordinates`
- Determines current location and used `system.config` coordinates if not possible in form "latitude,longitude"
- - `divider` - divider between latitude and longitude. Default "," (Used if longitudeName and latitudeName are not defined)
- - `autoInit` - init field with current coordinates if empty
- - `longitudeName` - if defined, the longitude will be stored in this attribute, divider will be ignored
- - `latitudeName` - if defined, the latitude will be stored in this attribute, divider will be ignored
- - `useSystemName` - if defined, the checkbox with "Use system settings" will be shown and latitude, longitude will be read from `system.config`, a boolean will be saved to the given name
-
-- `interface`
- Selects the interface from of the host, where the instance runs
- - `ignoreLoopback` - do not show loopback interface (127.0.0.1)
- - `ignoreInternal` - do not show internal interfaces (normally it is 127.0.0.1 too)
-
-- `license` - shows the license information if not already accepted. One of attributes `texts` or `licenseUrl` must be defined. When the license is accepted, the defined configuration attribute will be set to `true`.
- - `texts` - array of paragraphs with texts, which will be shown each as a separate paragraph
- - `licenseUrl` - URL to the license file (e.g. https://raw.githubusercontent.com/ioBroker/ioBroker.docs/master/LICENSE)
- - `title` - Title of the license dialog
- - `agreeText` - Text of the agreed button
- - `checkBox` - If defined, the checkbox with the given name will be shown. If checked, the agreed button will be enabled.
-
-- `checkLicense` - Very special component to check the license online. It's required exactly `license` and `useLicenseManager` properties in native.
- - `uuid` - Check UUID
- - `version` - Check version
-
-- `uuid` - Show iobroker UUID
-
-- `port` - Special input for ports. It checks automatically if port is used by other instances and shows a warning
- - `min` - minimal allowed port number. It could be 0. And if the value is then zero, the check if the port is occupied will not happen.
-
-- `state` - (admin >= 7.1.0) Show control or information from the state
- - `oid` - Which object ID should be taken for the controlling. The ID is without "adapter.X." prefix
- - `system` - If true, the state will be taken from system.adapter.XX.I. and not from XX.I
- - `control` - How the value of the state should be shown: `text`, `html`, `input`, `slider`, `select`, `button`, `switch`, `number`
- - `controlled` - If true, the state will be shown as switch, select, button, slider or text input. Used only if no control property is defined
- - `unit` - Add unit to the value
- - `trueText` - this text will be shown if the value is true
- - `trueTextStyle` - Style of the text if the value is true
- - `falseText` - this text will be shown if the value is false or if the control is a "button"
- - `falseTextStyle` - Style of the text if the value is false or if the control is a "button"
- - `trueImage` - This image will be shown if the value is true
- - `falseImage` - This image will be shown if the value is false or if the control is a "button"
- - `min` - Minimum value for control type slider or number
- - `max` - Maximum value for control type slider or number
- - `step` - Step value for control type slider or number
- - `controlDelay` - delay in ms for slider or number
- - `variant` - Variant of button: `contained`, `outlined`, `text`
- - `readOnly` - Defines if the control is read-only
-
-- `deviceManager` - show device manager. For that, the adapter must support device manager protocol. See iobroker/dm-utils.
- Here is an example of how to show device manager in a tab:
+### `coordinates`
+
+Determines current location and used `system.config` coordinates if not possible in form "latitude,longitude"
+
+| Property | Description |
+|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `divider` | divider between latitude and longitude. Default "," (Used if longitudeName and latitudeName are not defined) |
+| `autoInit` | init field with current coordinates if empty |
+| `longitudeName` | if defined, the longitude will be stored in this attribute, divider will be ignored |
+| `latitudeName` | if defined, the latitude will be stored in this attribute, divider will be ignored |
+| `useSystemName` | if defined, the checkbox with "Use system settings" will be shown and latitude, longitude will be read from `system.config`, a boolean will be saved to the given name |
+
+### `interface`
+
+Selects the interface of the host, where the instance runs
+
+| Property | Description |
+|------------------|----------------------------------------------------------------|
+| `ignoreLoopback` | do not show loopback interface (127.0.0.1) |
+| `ignoreInternal` | do not show internal interfaces (normally it is 127.0.0.1 too) |
+
+### `license`
+
+shows the license information if not already accepted. One of attributes `texts` or `licenseUrl` must be defined. When the license is accepted, the defined configuration attribute will be set to `true`.
+
+| Property | Description |
+|--------------|------------------------------------------------------------------------------------------------------------|
+| `texts` | array of paragraphs with texts, which will be shown each as a separate paragraph |
+| `licenseUrl` | URL to the license file (e.g. ) |
+| `title` | Title of the license dialog |
+| `agreeText` | Text of the agreed button |
+| `checkBox` | If defined, the checkbox with the given name will be shown. If checked, the agreed button will be enabled. |
+
+### `checkLicense`
+
+Very special component to check the license online. It's required exactly `license` and `useLicenseManager` properties in native.
+
+| Property | Description |
+|-----------|---------------|
+| `uuid` | Check UUID |
+| `version` | Check version |
+
+### `uuid`
+
+Show iobroker UUID
+
+### `port`
+
+Special input for ports. It checks automatically if port is used by other instances and shows a warning
+
+| Property | Description |
+|----------|-------------------------------------------------------------------------------------------------------------------------------|
+| `min` | minimal allowed port number. It could be 0. And if the value is then zero, the check if the port is occupied will not happen. |
+
+### `state`
+
+(admin >= 7.1.0) Show control or information from the state
+
+| Property | Description |
+|------------------|--------------------------------------------------------------------------------------------------------------------------------------|
+| `oid` | Which object ID should be taken for the controlling. The ID is without `adapter.X.` prefix |
+| `system` | If true, the state will be taken from `system.adapter.X.` and not from `adapter.X` |
+| `foreign` | The `oid` is absolute and no need to add `adapter.X` or `system.adapter.X.` to oid |
+| `control` | How the value of the state should be shown: `text`, `html`, `input`, `slider`, `select`, `button`, `switch`, `number` |
+| `controlled` | If true, the state will be shown as switch, select, button, slider or text input. Used only if no control property is defined |
+| `unit` | Add unit to the value |
+| `trueText` | this text will be shown if the value is true |
+| `trueTextStyle` | Style of the text if the value is true |
+| `falseText` | this text will be shown if the value is false or if the control is a "button" |
+| `falseTextStyle` | Style of the text if the value is false or if the control is a "button" |
+| `trueImage` | This image will be shown if the value is true |
+| `falseImage` | This image will be shown if the value is false or if the control is a "button" |
+| `min` | Minimum value for control type slider or number |
+| `max` | Maximum value for control type slider or number |
+| `step` | Step value for control type slider or number |
+| `controlDelay` | delay in ms for slider or number |
+| `variant` | Variant of button: `contained`, `outlined`, `text` |
+| `readOnly` | Defines if the control is read-only |
+| `narrow` | Normally the title and value are shown on the left and right of the line. With this flag, the value will appear just after the label |
+| `blinkOnUpdate` | Value should blink when updated (true or color) |
+| `size` | Font size: small, normal, large or number |
+| `addColon` | Add to label the colon at the end if not exist in label |
+| `labelIcon` | Base64 icon for label |
+
+### `staticInfo`
+
+(admin >= 7.3.3) Shows static information in preformatted form, like "Title: value unit"
+This control is used mostly in dynamic forms
+
+| Property | Description |
+|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `data` | Value to be shown |
+| `label` | Label for the value (could be multi-language) |
+| `unit` | (optional) unit (could be multi-language) |
+| `narrow` | (optional) Normally the title and value are shown on the left and right of the line. With this flag, the value will appear just after the label |
+| `addColon` | (optional) Add to label the colon at the end if not exist in label |
+| `blinkOnUpdate` | (optional) Value should blink when updated (true or color) |
+| `blink` | (optional) Value should blink continuously (true or color) |
+| `styleLabel` | (optional) React CSS Styles |
+| `styleValue` | (optional) React CSS Styles |
+| `styleUnit` | (optional) React CSS Styles |
+| `copyToClipboard` | (optional) Show copy to clipboard button for value |
+| `labelIcon` | (optional) base64 icon for label |
+| `size` | (optional) font size: small, normal, large or number |
+| `highlight` | (optional) Highlight line on mouse over |
+| `booleanAsCheckbox` | (optional) Show boolean values as checkbox |
+
+### `deviceManager`
+
+show device manager. For that, the adapter must support device manager protocol. See iobroker/dm-utils.
+
+Here is an example of how to show device manager in a tab:
```json
"_deviceManager": {
@@ -545,100 +1170,107 @@ adapter.on('message', obj => {
## Common attributes of controls
-All types could have:
-
-- `xl` - width in 1/12 of screen on extra large screens (1536px < width)
-- `lg` - width in 1/12 of screen on large screens (1200px <= width < 1536px)
-- `md` - width in 1/12 of screen on middle screens (900px <= width < 1200px)
-- `sm` - width in 1/12 of screen on small screen (600px <= width < 900px)
-- `xs` - width in 1/12 of screen on tiny screens (width < 600px)
-- `newLine` - should be shown from new line
-- `label` - String or object like {en: 'Name', ru: 'Имя'}
-- `hidden` - JS function that could use `native.attribute` for calculation
-- `hideOnlyControl` - if hidden the place will be shown, but no control
-- `disabled` - JS function that could use `native.attribute` for calculation
-- `help` - help text (multi-language)
-- `helpLink` - href to help (could be used only together with `help`)
-- `style` - CSS style in ReactJS notation: `radiusBorder` and not `radius-border`.
-- `darkStyle` - CSS style for dark mode
-- `validator` - JS function: true no error, false - error
-- `validatorErrorText` - Text to show if validator fails
-- `validatorNoSaveOnError` - disable save button if error
-- `tooltip` - optional tooltip
-- `default` - default value
-- `defaultFunc` - JS function to calculate default value
-- `defaultSendTo` - command to request initial value from running instance, example: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
- - `data` - static data
- - `jsonData` - static data
- - if no `data` and `jsonData` defined, the following info will be sent `{"attr": "", "value": ""}`
- - `button` - button label to re-trigger request from instance
- - `buttonTooltip` - Button tooltip (default: `Request data by instance`)
- - `buttonTooltipNoTranslation` - Do not translate button tooltip
- - `allowSaveWithError` - Allow saving of configuration even if the instance is offline
-- `placeholder` - placeholder (for text control)
-- `noTranslation` - do not translate selects or other options (not for help, label or placeholder)
-- `onChange` - Structure in form `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}`
-- `doNotSave` - Do not save this attribute as used only for internal calculations
-- `noMultiEdit` - if this flag set to true, this field will not be shown if user selected more than one object for edit.
-- `confirm`
- - `condition` - JS function: true show confirm dialog
- - `text` - text of confirmation dialog
- - `title` - title of confirmation dialog
- - `ok` - Text for OK button
- - `cancel` - Text for Cancel button
- - `type` - One of: `info`, `warning`, `error`, `none`
- - `alsoDependsOn` - array with attributes, to check the condition by these attributes too
+### Layout options `xl`,`lg`,`md`,`sm`,`xs`
-```json5
-{
- "type": "tabs",
- "items": {
- "options1": {
- "type": "panel",
- "label": "Tab1",
- "icon": "base64 svg", // optional
- "items": {
- myPort: {
- "type": "number",
- "min": 1,
- "max": 65565,
- "label": "Number",
- "sm": 6, // 1 - 12
- "validator": "'"!!data.name"'", // else error
- "hidden": "data.myType === 1", // hidden if myType is 1
- "disabled": "data.myType === 2" // disabled if myType is 2
- },
- "options.myType": { // name could support more than one levelhelperText
- "newLine": true, // must start from new row
- "type": "select",
- "label": "Type",
- "sm": 6, // 1 - 12
- "options": [
- {"label": "option 1", "value": 1},
- {"label": "option 2", "value": 2}
- ]
- },
- "myBool": {
- "type": "checkbox",
- "label": "My checkbox",
- }
- }
- },
- "tab2": {
- "label": "Tab2",
- "disabled": "data.myType === 1",
- "hidden": "data.myType === 2",
- }
- },
-}
+These options are used to define the width of elements on different screen sizes, ensuring a responsive and adaptable layout across various devices.
+
+Valid numbers are 1 to 12.
+
+If you specify a number, for example 6, then the width of the element will be 6/12 (50%) of the screen width or for example 3, then the width of the element will be 3/12 (25%) of the screen width.
+Assign numbers to the different layout options specify the width of the element for the different screen sizes.
+
+| option | description |
+|--------|------------------------------------------|
+| `xl` | extra large screens (1536px >= width) |
+| `lg` | large screens (1200px <= width < 1536px) |
+| `md` | middle screens (900px <= width < 1200px) |
+| `sm` | small screen (600px <= width < 900px) |
+| `xs` | tiny screens (width < 600px) |
+
+The following options are the recommended presets that fit most cases
+
+```json
+"xs": 12,
+"sm": 12,
+"md": 6,
+"lg": 4,
+"xl": 4,
```
+#### Recommended checking the layout
+
+The respective layout should be checked for each adapter to see whether the layout can be displayed and used in all resolutions.
+
+This can be tested, for example, using the Web Developer Tools, which are built into every Chromium-based browser.
+
+Step 1: Open the Web Developer Tools with F12
+
+Step 2: Open the device Toolbar (1)
+
+Step 3: Select different devices (2)
+
+![image](img/webdevtools.png)
+
+In the Settings of the Web developer tools, you can create your own devices with the exact widths if you want.
+
+### Further options
+
+| option | description |
+|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `type` | If element has no attribute `type`, assume it has default type 'panel'. Type of an element. For currently available options see [Common Control Elements:](#common-control-elements) |
+| `newLine` | should be shown from new line |
+| `label` | String or object like {en: 'Name', ru: 'Имя'} |
+| `hidden` | JS function that could use `native.attribute` for calculation |
+| `hideOnlyControl` | if hidden the place will be shown, but no control |
+| `disabled` | JS function that could use `native.attribute` for calculation |
+| `help` | help text (multi-language) |
+| `helpLink` | href to help (could be used only together with `help`) |
+| `style` | CSS style in ReactJS notation: `radiusBorder` and not `radius-border`. |
+| `darkStyle` | CSS style for dark mode |
+| `validator` | JS function: true no error, false - error |
+| `validatorErrorText` | Text to show if validator fails |
+| `validatorNoSaveOnError` | disable save button if error |
+| `tooltip` | optional tooltip |
+| `default` | default value |
+| `defaultFunc` | JS function to calculate default value |
+| `placeholder` | placeholder (for text control) |
+| `noTranslation` | do not translate selects or other options (not for help, label or placeholder) |
+| `onChange` | Structure in form `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}` |
+| `doNotSave` | Do not save this attribute as used only for internal calculations |
+| `noMultiEdit` | if this flag set to true, this field will not be shown if user selected more than one object for edit. |
+
+### Options with detailed configuration
+
+#### `defaultSendTo`
+
+command to request initial value from running instance, example: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
+
+- `data` - static data
+- `jsonData` - static data
+- if no `data` and `jsonData` defined, the following info will be sent `{"attr": "", "value": ""}`
+- `button` - button label to re-trigger request from instance
+- `buttonTooltip` - Button tooltip (default: `Request data by instance`)
+- `buttonTooltipNoTranslation` - Do not translate button tooltip
+- `allowSaveWithError` - Allow saving of configuration even if the instance is offline
+
+#### `confirm`
+
+- `condition` - JS function: true show confirm dialog
+- `text` - text of confirmation dialog
+- `title` - title of confirmation dialog
+- `ok` - Text for OK button
+- `cancel` - Text for Cancel button
+- `type` - One of: `info`, `warning`, `error`, `none`
+- `alsoDependsOn` - array with attributes, to check the condition by these attributes too
+
+## Autocomplete
+
`Number`, `text`, `checkbox`, `select` support autocomplete to allow selection of options if used as custom settings.
In this case, the value will be provided as an array of all possible values.
Example:
-```json
+```json5
// ...
"timeout": {
"type": "number",
@@ -658,13 +1290,15 @@ Boolean must support indeterminate if value is [false, true]
For non changed `__different__` the value different must be returned:
-```
Input:
+```json
data: {
timeout: [1000, 2000, 3000]
}
+```
Output if timeout was not changed:
+```json
newData: {
timeout: "__different__"
}
@@ -688,98 +1322,17 @@ Component must look like
If no schema is provided, the schema must be created automatically from data.
-- `boolean` => checkbox
-- `text` => text input
-- `number` => number
-- name `bind` => ip
-- name `port` => number, min=1, max=0xFFFF
-- name `timeout` => number, help="ms"
-
-If element has no attribute `type`, assume it has default type 'panel'.
-
-## Panel style
-
-You can provide style for panels too. Here is an example with panel background:
-
-```json
-{
- "i18n": true,
- "type": "panel",
- "style": {
- "backgroundImage": "url(adapter/mpd/background.png)",
- "backgroundPosition": "top",
- "backgroundRepeat": "no-repeat",
- "backgroundSize": "cover"
- },
- "items": {
- "...": {}
- }
-}
-```
-
-## i18n
-
-There are several options to provide the translations.
-Only the first one is compatible with our Community Translation Tool Weblate, so it should be favored over the others!
-
-1. Users can provide texts from files.
-
-On the top level of structure set `i18n: true` and provide files in admin:
-
-- `admin/i18n/de/translations.json`
-- `admin/i18n/en/translations.json`
-- ...
-
-or
-
-- `admin/i18n/de.json`
-- `admin/i18n/en.json`
-- ...
-
-Additionally, user can provide the path to i18n files, `i18n: "customI18n"`and provide files in admin:
+- `boolean` => checkbox
+- `text` => text input
+- `number` => number
+- name `bind` => ip
+- name `port` => number, min=1, max=0xFFFF
+- name `timeout` => number, help="ms"
-- `admin/customI18n/de/translations.json`
-- `admin/customI18n/en/translations.json`
-- ...
+## Todo
-or
-
-- `admin/customI18n/de.json`
-- `admin/customI18n/en.json`
-- ...
-
-2. User can provide translations directly in label like:
-
-```json
-{
- "type": "text",
- "label: {
- "en": "Label",
- "de": "Taxt"
- }
-}
-```
-
-3. User can provide translations in i18n attribute:
-
-```json
-{
- "18n": {
- "My Text: {
- "en": "My Text",
- "de": "Mein Text"
- },
- "My Text2: {
- "en": "My Text2",
- "de": "Mein Text2"
- },
- },
- "type": "panel",
- ...
-}
-```
-
-We suggest using variant 1 whenever possible, as it will be possible to process the texts with Weblate.
+The following chapters are taken from the original SCHEMA.MD.
+I didn't understand the content in detail and had to be improved by bluefox.
## JS Functions
@@ -801,62 +1354,70 @@ const func = new Function(
'_instance', // instance number
'arrayIndex', // filled only by table and represents the row index
'globalData', // filled only by table and represents the obj.native or obj.common.custom['adapter.X'] object
- '_changed' // indicator if some data was changed and must be saved
+ '_changed', // indicator if some data was changed and must be saved
myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
const isValid = func(data, systemConfig.common, instanceAlive, adapter.common, this.props.socket);
-
```
If the `alive` status changes, so all fields must be updated, validated, disabled, hidden anew.
The following variables are available in JS function in adapter settings:
-- `data` - native settings for this instance or current line in the table (to access all settings use globalData)
-- `_system` - system configuration
-- `_alive` - is instance being alive
-- `_common` - common settings for this instance
-- `_socket` - socket
-- `_instance` - instance number
-- `arrayIndex` - used only in table and represent current line in an array
-- `globalData` - used only in table for all settings and not only one table line
+- `data` - native settings for this instance or current line in the table (to access all settings use globalData)
+- `_system` - system configuration
+- `_alive` - is instance being alive
+- `_common` - common settings for this instance
+- `_socket` - socket
+- `_instance` - instance number
+- `arrayIndex` - used only in table and represent current line in an array
+- `globalData` - used only in table for all settings and not only one table line
### Custom settings dialog
JS function is:
```js
-const myValidator = "customObj.common.type === 'boolean' && data.options.myType == 2";
+const myValidator =
+ "customObj.common.type === 'boolean' && data.options.myType == 2";
const func = new Function(
- 'data',
- 'originalData',
- '_system',
- 'instanceObj',
- 'customObj',
- '_socket',
+ "data",
+ "originalData",
+ "_system",
+ "instanceObj",
+ "customObj",
+ "_socket",
arrayIndex,
- myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
-
-const isValid = func(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket);
+ myValidator.includes("return") ? myValidator : "return " + myValidator
+); // e.g. "_alive === true"
+
+const isValid = func(
+ data || this.props.data,
+ this.props.originalData,
+ this.props.systemConfig,
+ instanceObj,
+ customObj,
+ this.props.socket
+);
```
The following variables are available in JS function in custom settings:
-- `data` - current custom settings or current line in the table (to access all settings use globalData)
-- `originalData` - Unchanged data
-- `_system` - system configuration
-- `instanceObj` - adapter instance object
-- `customObj` - current object itself
-- `_socket` - socket
-- `arrayIndex` - used only in table and represent current line in an array
-- `globalData` - used only in table for all settings and not only one table line
+- `data` - current custom settings or current line in the table (to access all settings use globalData)
+- `originalData` - Unchanged data
+- `_system` - system configuration
+- `instanceObj` - adapter instance object
+- `customObj` - current object itself
+- `_socket` - socket
+- `arrayIndex` - used only in table and represent current line in an array
+- `globalData` - used only in table for all settings and not only one table line
## Custom component
```jsx
+
+Send push notifications from ioBroker to Gotify.
+
+
diff --git a/docs/ru/adapterref/iobroker.canbus/README.md b/docs/ru/adapterref/iobroker.canbus/README.md
index ce7f43cb8..127914c3d 100644
--- a/docs/ru/adapterref/iobroker.canbus/README.md
+++ b/docs/ru/adapterref/iobroker.canbus/README.md
@@ -1,63 +1,63 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.canbus/README.md
title: ioBroker.canbus
-hash: 3cIsF9IkK2XBHSxx2d33+5cqsawYPRQ8dsqv1hiTq80=
+hash: AsmePoTscNwWtzLsi82WDRG9EPTCLQmIlZFVoUGldy8=
---
# IoBroker.canbus
![Логотип](../../../en/adapterref/iobroker.canbus/admin/canbus.png)
-![версия NPM](https://img.shields.io/npm/v/iobroker.canbus.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.canbus.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.canbus.svg)
-![Количество установок (последние)](https://iobroker.live/badges/canbus-installed.svg)
+![Количество установок (последнее)](https://iobroker.live/badges/canbus-installed.svg)
![Количество установок (стабильно)](https://iobroker.live/badges/canbus-stable.svg)
![НПМ](https://nodei.co/npm/iobroker.canbus.png?downloads=true)
[![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/canbus/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
-**Тесты:** ![Тестируйте и выпускайте](https://github.com/crycode-de/ioBroker.canbus/workflows/Test%20and%20Release/badge.svg)
+**Тесты:** ![Тест и выпуск](https://github.com/crycode-de/ioBroker.canbus/workflows/Test%20and%20Release/badge.svg)
-## Адаптер шины CAN для ioBroker
-Этот адаптер соединяет ioBroker с локальной сетью контроллеров (шина CAN).
+## Адаптер CAN-шины для ioBroker
+Этот адаптер подключает ioBroker к сети контроллеров (шине CAN).
-**Этот адаптер использует библиотеки Sentry для автоматического сообщения об исключениях и ошибках кода разработчикам.** Дополнительные сведения и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
+**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Более подробную информацию и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
## Функции
-* Получайте и отправляйте необработанные сообщения, используя стандартные кадры и расширенные кадры
-* Каждое сообщение может быть настроено на получение и/или отправку данных
-* Возможность автоматического добавления объектов для увиденных сообщений CAN, которые еще не настроены
-* Настроить синтаксические анализаторы для каждого сообщения для чтения/записи данных из/в буфер необработанных сообщений.
- * Числовые типы
- * Логические значения, включая поддержку битовой маски
- * Строки в разных кодировках символов
- * Пользовательские скрипты для чтения/записи из/в буфер необработанных данных
+* Получать и отправлять необработанные сообщения с использованием стандартных и расширенных кадров.
+* Каждое сообщение может быть настроено для получения и/или отправки данных.
+* Возможность автоматического добавления объектов для увиденных CAN-сообщений, которые еще не настроены
+* Настройте парсеры для каждого сообщения для чтения/записи данных из/в буфер необработанных сообщений
+* Числовые типы
+* Булевы значения, включая поддержку битовых масок
+* Строки в разных кодировках символов
+* Пользовательские скрипты для чтения/записи из/в буфер необработанных данных
* Расширенная функция импорта/экспорта
- * Импортируйте конфигурации сообщений, чтобы расширить существующую конфигурацию
- * Импорт предопределенных «хорошо известных» конфигураций из GitHub в интерфейсе администратора.
- * Экспорт и импорт конфигураций ваших сообщений в виде файлов `json` или `csv`
-* Дополнительная поддержка фиксированной длины данных (DLC)
-* Дополнительная поддержка флага RTR
-* Необязательные необработанные состояния, содержащие необработанные объекты сообщений CAN.
+* Импортируйте конфигурации сообщений для расширения существующей конфигурации
+* Импортируйте предопределенные «общеизвестные» конфигурации из GitHub в интерфейсе администратора
+* Экспортируйте и импортируйте конфигурации сообщений в виде файлов `json` или `csv`
+* Опциональная поддержка фиксированной длины данных (DLC)
+* Опциональная поддержка флага RTR
+* Необязательные необработанные состояния, содержащие необработанные объекты сообщений CAN
* Необязательно автоматически устанавливать определенное значение в заданном интервале для каждого парсера (полезно для опроса данных)
## Требования
* Операционная система Linux (из-за используемой библиотеки socketcan)
-* Аппаратное обеспечение CAN, которое поддерживается ядром и создает интерфейс, подобный `can0`
-* Некоторые знания о сообщениях, отправляемых по шине CAN.
+* Аппаратное обеспечение CAN, которое поддерживается ядром и создает интерфейс типа `can0`
+* Некоторые знания о сообщениях, отправляемых по вашей шине CAN
## Парсеры
-Используя синтаксические анализаторы, вы можете читать данные или записывать данные в буфер сообщений CAN.
+Используя парсеры, вы можете считывать данные из буфера сообщений CAN или записывать данные в него.
-Существуют предопределенные синтаксические анализаторы для следующих типов данных.
-Кроме того, вы можете написать свои собственные скрипты для чтения/записи значений с помощью *настраиваемого парсера*.
+Существуют предопределенные парсеры для следующих типов данных.
+Кроме того, вы можете написать собственные скрипты для чтения/записи значений с помощью *пользовательского парсера*.
### Числовые типы в представлении *big-endian* и *little-endian*
-* 8-, 16- и 32-битное целое число со знаком и без знака
-* 32-битное число с плавающей запятой
+* Знаковые и беззнаковые 8-, 16- и 32-битные целые числа
+* 32-битное число с плавающей точкой
* 64-битный двойной
-### Логическое значение
+### Булево значение
* 1 байт, включая поддержку битовой маски
### Нить
@@ -65,36 +65,41 @@ hash: 3cIsF9IkK2XBHSxx2d33+5cqsawYPRQ8dsqv1hiTq80=
* Кодировка: *ascii*, *base64*, *hex*, *latin1*, *utf8*, *utf16le*
### Обычай
-Для пользовательского парсера вы должны предоставить свой собственный скрипт чтения и записи.
-Эти скрипты должны быть чистыми javascript и будут работать в песочнице.
+Для пользовательского парсера вам необходимо предоставить собственный скрипт чтения и записи.
+Эти скрипты должны быть чистым javascript и будут работать в ограниченной области.
В скриптах вы можете использовать следующие функции:
-* Большинство встроенных функций Node.js
-* `асинхронно`/`ждите`
+* Глобальные переменные `undefined`, `NaN`, `isNaN`, `Infinity`, `isFinite`, `atob`, `btoa`,
+
+`encodeURI`, `encodeURIComponent`, `decodeURI`, `decodeURIComponent`, `parseFloat`, `parseInt`, `JSON`, `Number`, §§ SSSSS_15§§, `Array`, `BigInt`, `Blob`, `Boolean`, `Date`, `Map`, `Math`, `Object`, `RegExp`, `Set`, `Intl`, `Buffer`, `Promise`, `setTimeout`, §§ SSSSS_30§§
+
+* `async`/`await`
* Функции журнала адаптера `log.warn('something')`, `log.info('something')`, `log.debug('something')`
-* `getStateAsync('id')` и `getObjectAsync('id')`, где `id` - это полный идентификатор состояния/объекта
-* Объект `sharedData`, который является общим для всех пользовательских сценариев экземпляра адаптера.
+* `getStateAsync('id')`, `getObjectAsync('id')`, `setStateAsync('id', 'value', ack)`, где `id` — это частичный идентификатор состояния/объекта под текущим экземпляром адаптера
+* `getForeignStateAsync('id')`, `getForeignObjectAsync('id')` и `setForeignStateAsync('id', 'value', ack)`, где `id` — полный идентификатор состояния/объекта
+* Функция `wait(ms)`, которая возвращает Promise, который разрешается по истечении указанного времени
+* Объект `sharedData`, который является общим для всех пользовательских скриптов экземпляра адаптера.
-Ошибки в сценариях будут протоколироваться адаптером.
+Ошибки в скриптах будут регистрироваться адаптером.
-В обоих сценариях переменные `buffer` и `value` определены заранее.
+В обоих скриптах переменные `buffer` и `value` предопределены.
`buffer` всегда содержит текущее содержимое сообщения CAN в виде буфера Node.js.
-Объект `sharedData` по умолчанию пуст и может использоваться для обмена некоторыми данными между несколькими вызовами одного пользовательского анализатора или даже между несколькими пользовательскими анализаторами.
+Объект `sharedData` по умолчанию пуст и может использоваться для совместного использования некоторых данных между несколькими вызовами одного пользовательского анализатора или даже между несколькими пользовательскими анализаторами.
#### Пользовательский скрипт чтения
-В сценарии чтения вы должны прочитать `value` из переменной `buffer`.
+В скрипте чтения необходимо прочитать `value` из переменной `buffer`.
-В начале пользовательского сценария чтения `buffer` будут данными полученного/текущего сообщения CAN (как в состоянии `.json`).
-`value` будет равно `undefined` и должно быть установлено сценарием.
+В начале пользовательского скрипта чтения `buffer` будет копией полученных/текущих данных сообщения CAN (как в состоянии `.json`).
+`value` будет `undefined` и должен быть установлен скриптом.
-Содержимое переменной `value` в конце пользовательского сценария чтения будет использоваться как новое значение для состояния.
-Если `value` равно `undefined`, оно будет проигнорировано. Используя это, вы можете фильтровать сообщения в пользовательском сценарии чтения по частям данных.
+Содержимое переменной `value` в конце пользовательского скрипта чтения будет использоваться как новое значение для состояния.
+Если `value` равно `undefined`, оно будет проигнорировано. Используя это, вы можете фильтровать сообщения в пользовательском скрипте чтения по частям данных.
##### Пример пользовательского сценария чтения
Проверьте первые три байта в полученном буфере на соответствие фиксированным значениям.
-При совпадении считать 16-битное целое число со знаком из буферных байтов 3 и 4 и разделить его на 10.
+Если совпадают, считайте 16-битное целое число со знаком из байтов 3 и 4 буфера и разделите его на 10.
```js
if (buffer[0] === 0xC2 && buffer[1] === 0x10 && buffer[2] === 0x0F) {
@@ -102,26 +107,27 @@ if (buffer[0] === 0xC2 && buffer[1] === 0x10 && buffer[2] === 0x0F) {
}
```
-Причина `value` устанавливается только при совпадении первых трех байтов, все остальные данные будут игнорироваться и не будут устанавливать новое значение для состояния.
+Причина `value` устанавливается только при совпадении первых трех байтов, все остальные данные будут проигнорированы и не установят новое значение состояния.
-#### Пользовательский сценарий записи
-В сценарии записи вы должны изменить (или заменить) переменную `buffer`.
+#### Пользовательский скрипт записи
+В скрипте записи необходимо изменить (или заменить) переменную `buffer`.
-В начале пользовательского сценария записи `buffer` будут текущими данными сообщения CAN (как в состоянии `.json`).
-`value` устанавливается в значение состояния, которое должно быть записано в `buffer`.
+В начале пользовательского скрипта записи `buffer` будет копией текущих данных сообщения CAN (как в состоянии `.json`). `value` устанавливается на значение состояния, которое должно быть записано в `buffer`.
-Содержимое переменной `buffer` в конце пользовательского сценария записи будет использоваться как новые данные для сообщения CAN.
+Содержимое переменной `buffer` в конце пользовательского скрипта записи будет использоваться в качестве новых данных для сообщения CAN.
-##### Пример пользовательского скрипта записи
+Вы также можете отменить запись, вызвав `return false;` в пользовательском скрипте записи. Это позволяет предотвратить запись, если определенные условия не выполнены.
+
+##### Пример пользовательского сценария записи
Подготовьте новый буфер с фиксированными значениями.
-Запишите значение состояния в буфер как 16-битное целое число со знаком, начиная с пятого байта в буфере.
+Запишите значение состояния в буфер как знаковое 16-битное целое число, начиная с пятого байта в буфере.
```js
buffer = Buffer.from([0x30, 0x00, 0xFA, 0x06, 0x7E, 0x00, 0x00]);
buffer.writeInt16BE(value, 5);
```
-Затем новое состояние `buffer` будет установлено как состояние `.json`.
+Новое состояние `buffer` будет установлено как состояние `.json`.
Если для сообщения включена опция *autosend*, сообщение будет отправлено автоматически.
## Использование в скриптах
@@ -129,9 +135,9 @@ buffer.writeInt16BE(value, 5);
Кроме того, вы можете использовать состояния `raw.received` и `raw.send`, если они включены в конфигурации адаптера.
Они содержат строковые данные JSON данных сообщения и могут использоваться для обработки каждого полученного или отправленного сообщения независимо от настроенных сообщений.
-Записав данные JSON в состояние `raw.send`, вы можете отправлять сообщения CAN, содержащие любые данные, которые вам нравятся.
+Записав данные JSON в состояние `raw.send`, вы можете отправлять сообщения CAN, содержащие любые данные, которые вам нужны.
-### Пример необработанного объекта сообщения
+### Пример объекта необработанного сообщения
```js
{
"id": 42,
@@ -145,71 +151,40 @@ buffer.writeInt16BE(value, 5);
## Changelog
-### 1.3.0 (2022-02-07)
-* (crycode-de) Added `sharedData` object in custom parsers
+
+### 2.1.1 (2024-11-04)
-### 1.2.3 (2021-10-17)
-* (crycode-de) Added missing `autoSet...` parser options to csv export/import
-* (crycode-de) Fixed `TypeError: Method Promise.prototype.then called on incompatible receiver [object Object]` triggered by a bug in an old `vm2` version
-* (crycode-de) Updated dependencies
+* (crycode-de) Fixed get/set functions in custom parser scripts
-### 1.2.2 (2021-08-22)
-* (crycode-de) Fixed text colors in dark theme of admin 5
-* (crycode-de) Updated dependencies
+### 2.1.0 (2024-11-03)
-### 1.2.1 (2021-06-22)
-* (crycode-de) Added option to automatically set a certain value in a given interval for each parser
-* (crycode-de) Added checks for duplicate parser IDs
-* (VeSler) Russian translation updates
-* (crycode-de) Use inline sourcemaps for the adapter build files to make remote debugging work
-* (crycode-de) Updated dependencies
+* (crycode-de) Allow `setStateAsync` and `setForeignStateAsync` in custom parser scripts
+* (crycode-de) Allow `setTimeout` and `clearTimeout` in custom parser scripts (using the adapters setTimeout implementation)
+* (crycode-de) Added `wait` function to custom parser scripts
-### 1.1.4 (2021-04-30)
-* (crycode-de) Added license information to import of well-known configurations
-* (crycode-de) Fixed "Parser returned wrong data type undefined" log message
-* (crycode-de) Updated dependencies
+### 2.0.0 (2024-11-02)
-### 1.1.3 (2021-04-12)
-* (crycode-de) Added definition of possible state values in admin
-* (crycode-de) Added selection of the state role for each parser in admin
-* (crycode-de) Fixed display bug of floating action buttons in admin
-* (crycode-de) Export uses defaults if some config parts are not defined (e.g. if the config is from an older version)
-* (crycode-de) Fixed wrong validation if a message/parser was deleted
-
-### 1.1.2 (2021-04-06)
-* (crycode-de) Added copy/paste function for message and parser configurations in admin
-
-### 1.1.1 (2021-04-02)
-* (crycode-de) Import bugfixes
-* (crycode-de) Prevent wrong log warning if a parser returned undefined
-* (crycode-de) Added react errorboundary for better clientside error handling
-
-### 1.1.0 (2021-04-01)
-* (crycode-de) Added import/export feature for messages in json or csv format
-* (crycode-de) Added import of well known configurations from GitHub
-* (crycode-de) Fixed config import in admin
-* (crycode-de) Added ioBroker state data type option for custom parsers
-
-### 1.0.2 (2021-03-26)
-* (crycode-de) Fixed issue where missing state prevented custom parser write
-* (DutchmanNL) Dutch translation updates
-* (UncleSamSwiss) French translation updates
-* (VeSler) Russian translation updates
-
-### 1.0.1 (2021-03-12)
-* (crycode-de) Use a queue to process _parser_ and _send_ state changes in the correct order
-* (crycode-de) Fixed some spelling issues
+* (crycode-de) Node.js >= 18, Admin >= 6.17, js-contoller >= 5.0.19 are required
+* (crycode-de) Changed how custom parser scripts are interpreted. Most custom parser scripts should work as before but they have a limited scope now.
+* (crycode-de) Custom parser scripts now support `getStateAsync`, `getForeignStateAsync`, `getObjectAsync` and `getForeignObjectAsync`. If you have used `getStateAsync`/`getObjectAsync` before you need to change them to `getForeignStateAsync`/`getForeignObjectAsync` or update the IDs if you get data from the same adapter instance.
+* (crycode-de) Custom write parser scripts an now return false to cancel the write
* (crycode-de) Updated dependencies
-### 1.0.0 (2021-02-23)
-* (crycode-de) Sort messages in admin
-* (VeSler) Russian admin translations
+### 1.3.1 (2022-04-19)
+
+* (crycode-de) Fixed `autoSetValue` defaults for parsers
+* (crycode-de) Fixed sentry admin integration
* (crycode-de) Updated dependencies
-Older changelog is in CHANGELOG_OLD.md
+### 1.3.0 (2022-02-07)
+
+* (crycode-de) Added `sharedData` object in custom parsers
## License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
-Copyright (c) 2020-2022 Peter Müller (https://crycode.de/)
+Copyright (c) 2020-2024 Peter Müller ()
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.chargemaster/README.md b/docs/ru/adapterref/iobroker.chargemaster/README.md
index 10336d129..9b018d9ff 100644
--- a/docs/ru/adapterref/iobroker.chargemaster/README.md
+++ b/docs/ru/adapterref/iobroker.chargemaster/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.chargemaster/README.md
title: ioBroker.chargemaster
-hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
+hash: 2EbVwumyVSdhYHp9OXAmESj0vVZpYWXZ3072v6R8Lt4=
---
![Логотип](../../../en/adapterref/iobroker.chargemaster/admin/chargemaster.png)
@@ -37,7 +37,7 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
Для подключения к настенным устройствам введите в конфигурацию штаты с необходимыми данными.
## Часовой
-Этот адаптер использует библиотеки Sentry для автоматического сообщения об исключениях и ошибках кода разработчикам. Для получения дополнительных сведений и информации о том, как отключить отчеты об ошибках, обратитесь к [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry инициируются, начиная с js-controller 3.0.
+Этот адаптер использует библиотеки Sentry для автоматического сообщения об исключениях и ошибках кода разработчикам. Для получения более подробной информации и информации о том, как отключить отчеты об ошибках, обратитесь к [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry инициируются, начиная с js-controller 3.0.
## Пожертвовать
Если вам понравился этот проект — или вы просто чувствуете щедрость, подумайте о том, чтобы угостить меня пивом. Ура! :beers:
@@ -49,9 +49,35 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
! Note that missing version entries are typically dependency updates for improved security.
+### 0.12.3 (2024-11-18)
+
+- (HombachC) fix bug in state subscription
+- (HombachC) harmonize project tools
+- (HombachC) bump dependencies
+
+### 0.12.2 (2024-10-27)
+
+- (HombachC) migrate eslint to >9.x
+- (HombachC) bumped dependencies
+
+### 0.12.1 (2024-10-22)
+
+- (HombachC) fix error in jsonConfig.json
+
+### 0.12.0 (2024-10-22)
+
+- (HombachC) BREAKING: dropped support for admin < 7 (#544)
+- (HombachC) optimized responsive design (#544)
+- (HombachC) optimized translation handling
+
+### 0.11.1 (2024-09-16)
+
+- (HombachC) add node.js 22 to the adapter testing matrix (#523)
+- (HombachC) Bump @iobroker/testing to 5.0.0
+
### 0.11.0 (2024-08-29)
-- (HombachC) implement variable wallbox amount
+- (HombachC) implement variable wallbox amount
- (HombachC) fix errors in wallbox control
- (HombachC) complete rework of configuration screen
- (HombachC) move utils to extra class
@@ -117,11 +143,11 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
### 0.7.2 (2023-06-19)
-- (HombachC) Removed Travis
+- (HombachC) Removed Travis
### 0.7.1 (2023-06-13)
-- (HombachC) Fixed typo in docu, added translations
+- (HombachC) Fixed typo in docu, added translations
### 0.7.0 (2023-06-11)
@@ -132,6 +158,7 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md)
## License
+
MIT License
Copyright (c) 2021-2024 Christian Hombach
diff --git a/docs/ru/adapterref/iobroker.energiefluss-erweitert/README.md b/docs/ru/adapterref/iobroker.energiefluss-erweitert/README.md
index e9cef3a6d..2b28b7b43 100644
--- a/docs/ru/adapterref/iobroker.energiefluss-erweitert/README.md
+++ b/docs/ru/adapterref/iobroker.energiefluss-erweitert/README.md
@@ -1,48 +1,140 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.energiefluss-erweitert/README.md
title: ioBroker.energiefluss-erweitert
-hash: vsARQbYdgcw/lJBEm2U3w2stnXawxezk2ZEksje8PLY=
+hash: fEb4Hijmvjno9IO29UgyE9kVIKTHHbm3FlOvAUnvN7Y=
---
![Логотип](../../../en/adapterref/iobroker.energiefluss-erweitert/admin/energiefluss-erweitert.png)
-![НПМ-версия](https://img.shields.io/npm/v/iobroker.energiefluss-erweitert?style=flat-square)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.energiefluss-erweitert?style=flat-square)
![Загрузки](https://img.shields.io/npm/dm/iobroker.energiefluss-erweitert.svg)
![Количество установок](https://iobroker.live/badges/energiefluss-erweitert-installed.svg)
![GitHub](https://img.shields.io/github/license/SKB-CGN/iobroker.energiefluss-erweitert?style=flat-square)
![Размер репозитория GitHub](https://img.shields.io/github/repo-size/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
-![Действия по фиксации GitHub](https://img.shields.io/github/commit-activity/m/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
+![Активность коммита GitHub](https://img.shields.io/github/commit-activity/m/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
![Последний коммит GitHub](https://img.shields.io/github/last-commit/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
![Проблемы с GitHub](https://img.shields.io/github/issues/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
![НПМ](https://nodei.co/npm/iobroker.energiefluss-erweitert.png?downloads=true)
# IoBroker.energiefluss-erweitert
-![Тестирование и выпуск](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/workflows/Test%20and%20Release/badge.svg)
+![Тест и выпуск](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/workflows/Test%20and%20Release/badge.svg)
## Адаптер energiefluss-erweitert для ioBroker
-Он обеспечивает анимированный поток энергии для всех добавляемых вами элементов. Это может быть: фотоэлектрика, аккумулятор, домашнее потребление, питание от сети (потребление в сети), зарядка автомобиля и т. д.
+Вы добавляете, что он обеспечивает анимированный поток энергии для всех элементов. Это может быть: фотоэлектричество, аккумулятор, потребление дома, подача в сеть (потребление в сеть), зарядка автомобиля и т. д.
## Документация
* [Тема форума](https://forum.iobroker.net/topic/64734/test-adapter-energiefluss-erweitert-v0-0-x-github-latest)
-* [описание на английском языке](./docs/en/README.md)
+* [Описание на английском языке](./docs/en/README.md)
* [Deutsche Beschreibung](./docs/de/README.md)
-* [Витрина просмотров](https://forum.iobroker.net/topic/74890/energiefluss-erweitert-ansichten/)
+* [Диаграмма просмотров](https://forum.iobroker.net/topic/74890/energiefluss-erweitert-ansichten/)
+* [Вики](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki)
## Changelog
+### 0.5.1-alpha.11 (2024-11-12)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly applied (#272)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Timestamp of the last change was timestamp of the last update (#279)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Font-size could not be changed
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved UI
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Information Icon on the live-view, to inform the user about any errors that have occured
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Responsive Design for Adapter-Admin area added to meet new requirements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Added: last change timestamp to datasource elements. Corresponds to fix (#279)
+
+### 0.5.1-alpha.10 (2024-10-24)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Applied fill color of element could not be removed or set to transparent
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Own Styles could not be modified, if they were empty or not set
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If width or height of a rect or circle is changed, the corresponding line-connection was not updated correctly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Less power mode was not working correctly, if line animation should be reversed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Shadow on a line was not saved (#264)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Line can be hidden, if no animation is active (#263)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved Less power mode. It now uses much less resources
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Text and Datasource-Elements can be rotated continuously up to 360 degrees
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Option to make the configbar transparent, while changing settings (This is useful to see the changes on mobile devices, where the configbar could hide the element)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Update properties only if they have changed - ignore ioBroker timestamp updates on states as well
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Smoothly animate filling of of rect or circle
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Option to animate line drawing during loading live-view
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Browser-Frames can now have user defined height and width
+
+### 0.5.1-alpha.9 (2024-09-23)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Wording for some boxes updated and general improvements of help functions
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for Apple Devices including correct placement of texts and applying shadows to elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Error handling for 'Browser Frame' inside iFrame overlay - if the URL can not be loaded in 5 seconds, the overlay will be closed
+
+### 0.5.1-alpha.8 (2024-09-18)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some basic values were not saved properly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Skipping version check while in display-mode (reduces loading time and bandwidth)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New option "Auto detect" for "Show source as". The source and unit (if present and not entered before) will be automatically detected
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: UI improvements
+
+### 0.5.1-alpha.7 (2024-09-16)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Backup routine reworked to improve storage (sending/receiving data reduced)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements, which have addition or subtraction in use, now create states with their values and can be re-used by the user
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language and explanation improvements, some routines updated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Optimized contextmenu for touch-devices
+
+### 0.5.1-alpha.6 (2024-08-29)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Show element coordinates when selecting and while dragging (can be deactivated inside settings)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Workspace can not be less height and width than the coordinates of the placed elements
+
+### 0.5.1-alpha.5 (2024-08-27)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Configbar was not opening when another element was moved before (#232)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Adapter was crashing, if a static picture from the gallery has had an associated datasource (#233)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Rounded corners inside rect were not correctly set
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If workspace is completely empty, the first new added element could not be edited
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly applied, if source value was converted to number and should be a string instead
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Access key inside live-view was not working
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Rightclick contextmenu for quick access to some functions
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Global Undo&Redo functionality for moving, adding, removing and connecting elements (does not affect configuration dialog)
+
+### 0.5.1-alpha.4 (2024-08-07)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Alignments for elements refactored (Better detection if they run out of the workspace)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New element "ForeignObject" added. This allows normal HTML content inside the workspace.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Images can now have a shadow
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Keyboard copy, paste and delete functions added (Strg/cmd + c and Strg/cmd + v, Entf/del)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Double-Click on element or Connection-Line opens the 'extended'-tab and single click opens 'basic'-tab inside the configbar
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The liveview can now be displayed in fullscreen via doubleclick oder double-tap
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better handling of images through datasources (image will be hidden, if datasource is empty)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Connection-Lines can now have frame options for opening URLs
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Object-Browser scrolls the first clicked parent folder to the top
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Element with linebreak was not able to be moved after applying linebreak
+
+### 0.5.1-alpha.3 (2024-07-18)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Rewritten Upload engine (Using Web-POST instead of sockets)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Behaviour of the lines can be changed in the connection area. This includes the radius length (smaller and bigger) and the start of the curves (earlier and later)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Several functions are optimized
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Warn message in Web-Adapter was missleading (removed)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Message, that adapter is not configured was handling a different exception (solved)
+
+### 0.5.1-alpha.2 (2024-07-09)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for https via Web-Adapter (own certificates necessary)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icon-Proxy is removed from the adapter settings and runs on the extension of the Web-Adapter (If you use it or not - no changes are required)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: 2 new override parameter "pos_x" and "pos_y" are available, to position text and datasource elements depending on their value
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Energiefluss-erweitert is now available through the welcome screen of the Web-Adapter
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Energiefluss-erweitert is now reachable via iobroker.net through the ioBroker-cloud adapter (No pro license required)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: If the Web-Adapter is configured to use valid certificates, the view of Energiefluss-erweitert can be installed as PWA (progressive Web App) on Android and iOS [Explained here](https://www.google.de/search?q=what+is+a+pwa)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Sometimes, the object-browser could not load states and crashed
+
+### 0.5.1-alpha.1 (2024-07-04)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The image gallery has now a filter function which helps you to find the images more easily
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The datasource object-browser has now a filter function which helps you to find the datasource more easily
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Added some crash-handler, which might throw an error, when the associated state is not found
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Linebreak was not working correctly (Delimiter was ignored)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances a datasource could not be modified
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Text prepend was not working correctly if source is displayed as text
+
### 0.5.1-alpha.0 (2024-06-28)
-- FIX: The coordinates and size of an added icon could not be changed
-- FIX: Cursor as Pointer (hand) did not appear on elements with action
-- FIX: NPM dependency for gallery was not fetched properly
-- FIX: Newly added Text didnt save text (was empty instead)
-- FIX: Under some circumstances an element could not be deleted (Error: Existing connection!)
-- Added: Text-Elements can now be used as date and time element
-- Added: Icons can now be rotated and flipped (even when using overrides for them)
-- Added: New overrides parameter 'icon' available to change icons (Explained in [Wiki](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki/Custom-Overrides-for-elements#for-icons))
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: The coordinates and size of an added icon could not be changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Cursor as Pointer (hand) did not appear on elements with action
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: NPM dependency for gallery was not fetched properly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Newly added Text didnt save text (was empty instead)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances an element could not be deleted (Error: Existing connection!)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Text-Elements can now be used as date and time element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icons can now be rotated and flipped (even when using overrides for them)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New overrides parameter 'icon' available to change icons (Explained in [Wiki](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki/Custom-Overrides-for-elements#for-icons))
### 0.5.0-alpha.0 (2024-06-24)
**!!! Please note, this currently an Alpha-Version, because many things are changed and needed to be tested!!!**
@@ -53,252 +145,252 @@ Note: save content of the state 'configuration' inside the instance as text on y
After downloading the BETA Version, please manually proceed with uploading the adapter (this has to be done, after adapters are installed via Github)
described here: https://www.iobroker.net/#de/documentation/tutorial/adapter.md?#uploadvonadapterdateien
-- Added: Support for Websockets is now integrated. Adapter uses the faster Websockets if available. If not, the connection falls back to socket polling
-- Added: Better Darkmode Support (including Log, Overrides and CSS Styles layout)
-- Added: New option "Manual value change" for click options of datasources. With this you can directly modify the associated state inside ioBroker. Also predefined value(s) for quick accesses are possible.
-- Added: Automatic line-break after x characters for datasources, which provide longer text (e.g. weather forecasts)
-- Added: Define one Datasource as display and choose an other one to control (e.g. display the energy of a wallsocket, but switch it on or off with a different state via click-option)
-- Added: Language and dependencies are updated
-- Added: Better support for iOS devices as the values are not calculated via the objects itself anymore (should work for thickness and alignments)
-- Added: Autocomplete when adding or modifying sources inside datasources (if active)
-- Added: Import and Exports elements (e.g. for sharing a nice designed element with others)
-- Added: Preview elements (circle and rect) with their fill or outline layout
-- Added: Image gallery and query via web implementation of ioBroker
-- Added: Select datasources which contain image paths for images (e.g. WeatherAdapter)
-- Added: Improved workspace (better adding of elements, when scrolled, many design and element improvements etc.)
-- FIX: Some bugs or routines where not working as they should
-- FIX: Battery-Discharge was wrongly calculated, if the DoD should discharge till 0%
-- FIX: Removed kW settings in calculation tab as they are already set as factor inside the datasource area
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for Websockets is now integrated. Adapter uses the faster Websockets if available. If not, the connection falls back to socket polling
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better Darkmode Support (including Log, Overrides and CSS Styles layout)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New option "Manual value change" for click options of datasources. With this you can directly modify the associated state inside ioBroker. Also predefined value(s) for quick accesses are possible.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Automatic line-break after x characters for datasources, which provide longer text (e.g. weather forecasts)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Define one Datasource as display and choose an other one to control (e.g. display the energy of a wallsocket, but switch it on or off with a different state via click-option)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language and dependencies are updated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better support for iOS devices as the values are not calculated via the objects itself anymore (should work for thickness and alignments)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Autocomplete when adding or modifying sources inside datasources (if active)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Import and Exports elements (e.g. for sharing a nice designed element with others)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Preview elements (circle and rect) with their fill or outline layout
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Image gallery and query via web implementation of ioBroker
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Select datasources which contain image paths for images (e.g. WeatherAdapter)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved workspace (better adding of elements, when scrolled, many design and element improvements etc.)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some bugs or routines where not working as they should
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Battery-Discharge was wrongly calculated, if the DoD should discharge till 0%
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Removed kW settings in calculation tab as they are already set as factor inside the datasource area
### 0.4.1 (2024-04-18)
- Hotfix: After uprading the Adapter, it could happen, that the first datasource was not updated properly
### 0.4.0 (2024-04-15)
-- Added: The adapter provides 3 new states. charging_grid (battery charged via grid), charging_solar (battery charged via solar) and production (overall production) (#173, #152, #148)
-- Added: Datasources for the battery calculation now need to be provided via the datasources tab and selected in the calculation tab (**!!! Important: !!! This is a major change**)
-- Added: A Milliseconds Timestamp for Values can be selected (This can be used for custom overrides, to display what ever the user likes)
-- Added: Object browser now provides the names of channels and devices and is more responsive
-- Added: Better support inside configuration area for smaller devices like mobilephones and tablets
-- Added: A new override property (img_url) has been added, to change pictures addresses for picture elements
-- Added: Overrides can now contain states from iobroker, to directly read and for example calculate a value with an additional state. Please provide the name in curly braces.
-- FIX: Wrong alignment of rectangle with border-fill if height and width are different (#172)
-- FIX: The adapter could crash if the data source inside calculation was missing or deleted (#178)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The adapter provides 3 new states. charging_grid (battery charged via grid), charging_solar (battery charged via solar) and production (overall production) (#173, #152, #148)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Datasources for the battery calculation now need to be provided via the datasources tab and selected in the calculation tab (**!!! Important: !!! This is a major change**)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A Milliseconds Timestamp for Values can be selected (This can be used for custom overrides, to display what ever the user likes)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Object browser now provides the names of channels and devices and is more responsive
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better support inside configuration area for smaller devices like mobilephones and tablets
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A new override property (img_url) has been added, to change pictures addresses for picture elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Overrides can now contain states from iobroker, to directly read and for example calculate a value with an additional state. Please provide the name in curly braces.
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Wrong alignment of rectangle with border-fill if height and width are different (#172)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: The adapter could crash if the data source inside calculation was missing or deleted (#178)
### 0.3.0 (2024-03-12)
-- Added: Up to 50% faster performance on saving data to the "data" datapoint due to removing unnecessary stuff
-- Added: Support for light and dark theme manual selection with URL parameter "theme=dark" or "theme=light" for overwriting the system darkmode (if applicable)
-- Added: Code optimization during start-up and releasing memory cause of not using start-up stuff during runtime anymore
-- Added: When duplicating an element, the override properties are also duplicated
-- Added: Elements can now be selected while holding ctrl key
-- Added: New override features for all elements added. The override features are explained inside the Wiki of the adapter (#153)
-- FIX: Datasource could not be deleted (#145)
-- FIX: If there is more power on a line than configured, the maximum amount of dots was ignored (#160)
-- FIX: If image URL from datapoint is empty or NULL - remove the displayed image (useful for weather datapoints)
-- FIX: If icon or svg was duplicated, the defined color was not adopted
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Up to 50% faster performance on saving data to the "data" datapoint due to removing unnecessary stuff
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for light and dark theme manual selection with URL parameter "theme=dark" or "theme=light" for overwriting the system darkmode (if applicable)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Code optimization during start-up and releasing memory cause of not using start-up stuff during runtime anymore
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: When duplicating an element, the override properties are also duplicated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements can now be selected while holding ctrl key
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New override features for all elements added. The override features are explained inside the Wiki of the adapter (#153)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Datasource could not be deleted (#145)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If there is more power on a line than configured, the maximum amount of dots was ignored (#160)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If image URL from datapoint is empty or NULL - remove the displayed image (useful for weather datapoints)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If icon or svg was duplicated, the defined color was not adopted
### 0.2.2 (2024-02-15)
-- Added: if using datasource as an image URL, in some cases the picture url is empty (for forecasts e.g.) - Chrome displayed a broken image
-- Added: current active element receives a dashed border. This helps, to identify a picture element with empty url (if served via datasource)
-- Added: Changed the previous added "unit" column for watts and kilowatts inside datasources into "factor" with a description
-- Added: A new button inside datsources is able to check which datasources are in use
-- Added: New translations and some code optimizations
-- FIX: Broken SVG corrected
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: if using datasource as an image URL, in some cases the picture url is empty (for forecasts e.g.) - Chrome displayed a broken image
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: current active element receives a dashed border. This helps, to identify a picture element with empty url (if served via datasource)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Changed the previous added "unit" column for watts and kilowatts inside datasources into "factor" with a description
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A new button inside datsources is able to check which datasources are in use
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New translations and some code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Broken SVG corrected
### 0.2.1 (2024-01-25)
-- Added: Support for datasources as image URL's (explanation is given via question mark)
-- Added: Background for workspace can now be set in basic settings (CSS still works as well)
-- FIX: SVG element was not correctly saved after saving the workspace
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for datasources as image URL's (explanation is given via question mark)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Background for workspace can now be set in basic settings (CSS still works as well)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: SVG element was not correctly saved after saving the workspace
### 0.2.0 (2024-01-11)
-- Added: Control for not deleting sources, if they are in use as source, addition or subtraction (elements which use this one, will be displayed with additional information)
-- Added: IDs for datasources will be displayed inside configuration bar, to better find the ID the element for reason mentioned before
-- Added: Control for not adding duplicate datasources from ioBroker as this will lead into crashes cause of duplicate keys
-- Added: Form on datasources configuration page will be deactivated during the time a datasource is edited
-- Added: A unit for the datasource is selectable - this makes it easier to use those values for addition&subtraction without using Auxiliary data points
-- Added: New translations, design modifcations and various code optimizations
-- FIX: Crash Handler for missing datasources extended (if datasource from ioBroker was deleted and used as source, addition or subtraction in any element)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Control for not deleting sources, if they are in use as source, addition or subtraction (elements which use this one, will be displayed with additional information)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: IDs for datasources will be displayed inside configuration bar, to better find the ID the element for reason mentioned before
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Control for not adding duplicate datasources from ioBroker as this will lead into crashes cause of duplicate keys
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Form on datasources configuration page will be deactivated during the time a datasource is edited
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A unit for the datasource is selectable - this makes it easier to use those values for addition&subtraction without using Auxiliary data points
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New translations, design modifcations and various code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Crash Handler for missing datasources extended (if datasource from ioBroker was deleted and used as source, addition or subtraction in any element)
### 0.1.0 (2023-11-15)
-- FIX: Alignment of texts and group movement was not possible, after changing to new multiline texts
-- FIX: Saved default fill and outline colors were not applied if adding new text or datasource to workspace
-- Added: Extended the auto calculation to W, kW, MW and GW
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alignment of texts and group movement was not possible, after changing to new multiline texts
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Saved default fill and outline colors were not applied if adding new text or datasource to workspace
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Extended the auto calculation to W, kW, MW and GW
### 0.0.2-alpha.24 (2023-11-14)
-- Added: Lacy loading for Object-Browser. The Object-Browser will not be loaded on configuration start. It will load necessary objects on request, to not block UI anymore
-- Added: Support for line-breaks inside Text or Datasource elements. Line break can be done via or \n. (#10)
-- Added: Overrides can now handle 'text', 'unit', 'append' and 'prepend' values to be replaced
-- Added: Check for Datasources - inside Datasources is a button, which is able to check you sources
-- Added: Faster loading due to code optimizations
-- FIX: Convert Value to positiv was not working. If value is positiv, it was displayed as negative
-- FIX: After waking up displaying device (phone/tablet) from standby, datasources were not refreshed anymore (#99)
-- FIX: If shadow color was entered in hex instead of rgb(a) it was not saved correctly (#90)
-- FIX: Alias values without acknowledge were not updating (#96)
-- FIX: Border-Fill on element was not showing, if value has changed the sign and should be displayed in the other direction
-- FIX: Removed javascript warnings for some icons
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Lacy loading for Object-Browser. The Object-Browser will not be loaded on configuration start. It will load necessary objects on request, to not block UI anymore
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for line-breaks inside Text or Datasource elements. Line break can be done via or \n. (#10)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Overrides can now handle 'text', 'unit', 'append' and 'prepend' values to be replaced
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Check for Datasources - inside Datasources is a button, which is able to check you sources
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Faster loading due to code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Convert Value to positiv was not working. If value is positiv, it was displayed as negative
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: After waking up displaying device (phone/tablet) from standby, datasources were not refreshed anymore (#99)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If shadow color was entered in hex instead of rgb(a) it was not saved correctly (#90)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alias values without acknowledge were not updating (#96)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Border-Fill on element was not showing, if value has changed the sign and should be displayed in the other direction
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Removed javascript warnings for some icons
### 0.0.2-alpha.23 (2023-10-25)
-- Added: Extended the value calculation 'Calculate Value from W to kW' to: deactivated, Calculate Value from W to kW, Automatic calculation including unit (W, kW)
-- Added: Some crash-handler if states were deleted
-- FIX: Font face was not applied if changed
-- FIX: When a state inside the "alias" environment was deleted and not removed from the workspace, the adapter could crash unexpectedly
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Extended the value calculation 'Calculate Value from W to kW' to: deactivated, Calculate Value from W to kW, Automatic calculation including unit (W, kW)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Some crash-handler if states were deleted
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Font face was not applied if changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When a state inside the "alias" environment was deleted and not removed from the workspace, the adapter could crash unexpectedly
### 0.0.2-alpha.22 (2023-10-20)
-- Added: Support for boolean states to apply CSS Class, if their value is true/false
-- Added: Refresh Button for object browser - if a new state was added through objects, the configuration needed a complete refresh to receive the new state
-- Added: Support for own Text inside a datasource element. Useful, if you want to style text depending on the value of the datasource
-- FIX: Overrides were not correctly loaded when adapter starts
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for boolean states to apply CSS Class, if their value is true/false
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Refresh Button for object browser - if a new state was added through objects, the configuration needed a complete refresh to receive the new state
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for own Text inside a datasource element. Useful, if you want to style text depending on the value of the datasource
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly loaded when adapter starts
### 0.0.2-alpha.21 (2023-10-17)
-- Added: Using left over space in configbar, to display wider text/number boxes and more text without using more space
-- Added: Static navigation in config bar for easier switching between basic and extended settings of the element
-- Added: Better handling of boxes in tab menu. Now we use flex views to grow or shrink boxes. Some boxes a re-aligned to use the available space in a more efficient way.
-- Added: ACE-Editor with syntax highlighting, autocompletion for properties and error notification while using in CSS tab (more user friendly when applying styles). Style of Log output is also formated with syntax highlighting
-- Added: Override function for elements with datasources. Its now possible to add overrides to any element which uses a datasource. With this function, you are able to style the element depending on the value of the datasource
-- FIX: Alignment of elements was not working correctly for text append, text prepend and grouped icons
-- FIX: When using animation depencies with dots, it could be the case that an icorrect amount of dots was displayed
-- FIX: When using subtraction or addition on a datasource, the displayed value was not updated if one of the subtraction or addition values were changed
-- FIX: Thresholds were only possible for Integers - now decimal numbers are also possible
-- FIX: If values were set to be animated, they stopped being updated after some time
-- FIX: Some layout fixes
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Using left over space in configbar, to display wider text/number boxes and more text without using more space
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Static navigation in config bar for easier switching between basic and extended settings of the element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better handling of boxes in tab menu. Now we use flex views to grow or shrink boxes. Some boxes a re-aligned to use the available space in a more efficient way.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: ACE-Editor with syntax highlighting, autocompletion for properties and error notification while using in CSS tab (more user friendly when applying styles). Style of Log output is also formated with syntax highlighting
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Override function for elements with datasources. Its now possible to add overrides to any element which uses a datasource. With this function, you are able to style the element depending on the value of the datasource
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alignment of elements was not working correctly for text append, text prepend and grouped icons
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When using animation depencies with dots, it could be the case that an icorrect amount of dots was displayed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When using subtraction or addition on a datasource, the displayed value was not updated if one of the subtraction or addition values were changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Thresholds were only possible for Integers - now decimal numbers are also possible
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If values were set to be animated, they stopped being updated after some time
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some layout fixes
### 0.0.2-alpha.20 (2023-09-22)
-- FIX: states in user environment (userdata and javascript) do not need ACK flags anymore
-- FIX: Darkmode cleanups and some layout improvements
-- FIX: Changed some CSS styles to be consistent
-- Added: Version Checker to check the version on Github and inform the user
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: states in user environment (userdata and javascript) do not need ACK flags anymore
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Darkmode cleanups and some layout improvements
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Changed some CSS styles to be consistent
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Version Checker to check the version on Github and inform the user
### 0.0.2-alpha.19 (2023-09-14)
-- FIX: Since number animation, it could occur, that decimal places got cut off on initial values
-- FIX: Save & Exit was not working correctly, if an high amount of data should be saved
-- Added: Made previously count up/down Animation for numbers configurable for each datasource element
-- Added: Low power mode for animations (can be enabled generaly or via URL parameter on each device)
-- Added: If Element is filled depending on value, it is now possible, to use the basic color as fill for the remaining space or none as transparent
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Since number animation, it could occur, that decimal places got cut off on initial values
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Save & Exit was not working correctly, if an high amount of data should be saved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Made previously count up/down Animation for numbers configurable for each datasource element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Low power mode for animations (can be enabled generaly or via URL parameter on each device)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: If Element is filled depending on value, it is now possible, to use the basic color as fill for the remaining space or none as transparent
### 0.0.2-alpha.18 (2023-09-11)
-- Added: Count up/down Animation for numbers added. Instead of directly changing numbers, they are animated.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Count up/down Animation for numbers added. Instead of directly changing numbers, they are animated.
### 0.0.2-alpha.17 (2023-09-07)
-- FIX: Object browser did not show all states - especially not the ones in Channel or Folders
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Object browser did not show all states - especially not the ones in Channel or Folders
### 0.0.2-alpha.16 (2023-08-31)
-- FIX: Adapter crashed sometimes, due to accessing invalid ids
-- Added: Possibility to addition values to other values
-- Added: Directly display animations and values after startup instead of waiting till first value changes
-- Added: Adapter depencies and stability
-- Added: New Translations for new functions
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Adapter crashed sometimes, due to accessing invalid ids
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Possibility to addition values to other values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Directly display animations and values after startup instead of waiting till first value changes
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Adapter depencies and stability
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New Translations for new functions
### 0.0.2-alpha.15 (2023-08-10)
-- FIX: Under some circumstances symbols, texts and images could run out off workspace
-- FIX: consumption calculation produced high CPU load on some systems (#43)
-- FIX: Crash-Handler for animations optimized - if animation is present before value is updated, the adapter could crash
-- Added: Better duplication of items
-- Added: Actions for Datasources and Icons (on, off, toggle) - State can be display in Datasource as well
-- Added: Consumption calculation - Added states if battery charge/discharge and public grid-feed/grid-consumption are not the same
-- Added: Backup moved from states to ioBroker folder instead (saving Redis power and states loading)
-- Added: Loading information for object browser (if not loaded already)
-- Added: Darkmode for Layout
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances symbols, texts and images could run out off workspace
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: consumption calculation produced high CPU load on some systems (#43)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Crash-Handler for animations optimized - if animation is present before value is updated, the adapter could crash
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better duplication of items
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Actions for Datasources and Icons (on, off, toggle) - State can be display in Datasource as well
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Consumption calculation - Added states if battery charge/discharge and public grid-feed/grid-consumption are not the same
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Backup moved from states to ioBroker folder instead (saving Redis power and states loading)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Loading information for object browser (if not loaded already)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Darkmode for Layout
### 0.0.2-alpha.14 (2023-08-04)
-- Added: Support for SVG elements. SVG will be an area inside the workspace and allows to paste pure SVG data (#31)
-- Added: Support for own images. The user is responsible how to upload the image to ioBroker, as the adapter has no upload possibility
-- Added: Support to arrange pictures and elements in levels. They can now be moved to fore- or background
-- Added: Consumption calculation - Currently, only single-mode (positive and negative) states are supported. Different states for battery charge/discharge and public grid-feed/grid-consumption will be added in next version
-- Added: Some error handling improved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for SVG elements. SVG will be an area inside the workspace and allows to paste pure SVG data (#31)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for own images. The user is responsible how to upload the image to ioBroker, as the adapter has no upload possibility
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support to arrange pictures and elements in levels. They can now be moved to fore- or background
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Consumption calculation - Currently, only single-mode (positive and negative) states are supported. Different states for battery charge/discharge and public grid-feed/grid-consumption will be added in next version
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Some error handling improved
### 0.0.2-alpha.13 (2023-07-26)
-- FIX: Icon-Proxy was not showing icons under some circumstances
-- FIX: Reverse steps for alignment was in the wrong order (#37)
-- Added: Build-in Object Browser for faster loading and saving bandwith (get rid of the default one)
-- Added: Autocomplete for Datasources Boxes - Datasource will be fetched during typing
-- Added: Language for some boxes were missing
-- Added: Disable all other Datasources in list while editing to prevent layout mix
-- Added: New states for 'battery_remaining_target', which shows the target time in Unixtime and 'battery_remaining_target_DT', which shows the time in human readable format
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Icon-Proxy was not showing icons under some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Reverse steps for alignment was in the wrong order (#37)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Build-in Object Browser for faster loading and saving bandwith (get rid of the default one)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Autocomplete for Datasources Boxes - Datasource will be fetched during typing
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language for some boxes were missing
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Disable all other Datasources in list while editing to prevent layout mix
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New states for 'battery_remaining_target', which shows the target time in Unixtime and 'battery_remaining_target_DT', which shows the time in human readable format
### 0.0.2-alpha.12 (2023-07-18)
-- Added: Improved Icon - Proxy, to serve icons for all symbols (if enabled)
-- Added: Language translations for live-view variables
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved Icon - Proxy, to serve icons for all symbols (if enabled)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language translations for live-view variables
### 0.0.2-alpha.11 (2023-07-17)
-- Added: Configuration Bar can be swapped from right to left (better handling, if elements are behind bar)
-- Added: Icon-Proxy-Server (if some of your devices inside the network do not have an internet connection, Energiefluss-erweitert will serve those icons and cache them as well)
-- Added: Better Help-Center when hitting the question mark icon
-- Added: Language translation into: english, german, espanol, french, italian, netherlands, polish language, portuguese, russian, ukrainian, chinese
-- Added: Previous outline fill extended for filling reverse
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Configuration Bar can be swapped from right to left (better handling, if elements are behind bar)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icon-Proxy-Server (if some of your devices inside the network do not have an internet connection, Energiefluss-erweitert will serve those icons and cache them as well)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better Help-Center when hitting the question mark icon
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language translation into: english, german, espanol, french, italian, netherlands, polish language, portuguese, russian, ukrainian, chinese
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Previous outline fill extended for filling reverse
### 0.0.2-alpha.10 (2023-07-10)
-- FIX: Basic icon color was not applied correctly
-- FIX: Fill placeholders for elements were created in error in some circumstances
-- FIX: Subtract was not calculated correctly, if state value is negative
-- FIX: Better handling of positioning elements when entering coordinates
-- FIX: Icons sometimes got a faulty format if duplicated
-- Added: Circles and Rectangles can now have a fill border depending on the value
-- Added: Configuration backup for the last 10 versions
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Basic icon color was not applied correctly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Fill placeholders for elements were created in error in some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Subtract was not calculated correctly, if state value is negative
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Better handling of positioning elements when entering coordinates
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Icons sometimes got a faulty format if duplicated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Circles and Rectangles can now have a fill border depending on the value
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Configuration backup for the last 10 versions
### 0.0.2-alpha.9 (2023-07-04)
-- FIX: CSS classes were causing color errors while being applied in config mode
-- FIX: Do not Load CSS class when adapter is starting - only when values change
-- FIX: Threshold was not calculated correctly, if element was substracted by other values
-- FIX: ID list in configbar was loosing event for choosing next element in drop-down
-- Added: Subtract values from other values
-- Added: Start coordinates can be specified in basic settings to better position new elements
-- Added: Threshold for rectangle and circle
-- Added: duplication of one or more element(s)
-- Added: Fill element according to value can now have different directions (bottom to top, top to bottom, right to left, left to right)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: CSS classes were causing color errors while being applied in config mode
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Do not Load CSS class when adapter is starting - only when values change
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Threshold was not calculated correctly, if element was substracted by other values
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: ID list in configbar was loosing event for choosing next element in drop-down
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Subtract values from other values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Start coordinates can be specified in basic settings to better position new elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Threshold for rectangle and circle
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: duplication of one or more element(s)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Fill element according to value can now have different directions (bottom to top, top to bottom, right to left, left to right)
### 0.0.2-alpha.8 (2023-06-26)
-- FIX: Remaining Battery Calculation was not working if source has an ID 0 assigned
-- FIX: Animation timing improved. Better time-handling (#20)
-- FIX: Line could not be clicked/choosen (#19)
-- FIX: Threshold was not working correctly
-- Added: All elements can have CSS classes for their current state values. Active positive, Active negative, Inactive positive and Inactive negative
-- Added: Battery Remaining Time explanation improved
-- Added: Animation can run into opposite direction, if value has changed to positive/negative (#15, #18)
-- Added: Datasource text elements can now have a text before and after their value
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Remaining Battery Calculation was not working if source has an ID 0 assigned
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Animation timing improved. Better time-handling (#20)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line could not be clicked/choosen (#19)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Threshold was not working correctly
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: All elements can have CSS classes for their current state values. Active positive, Active negative, Inactive positive and Inactive negative
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Battery Remaining Time explanation improved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Animation can run into opposite direction, if value has changed to positive/negative (#15, #18)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Datasource text elements can now have a text before and after their value
### 0.0.2-alpha.7 (2023-05-25)
-- FIX: Some Icons were not moveable
-- FIX: Initial configuration was broken
-- Added: Existing Line can be modified as well
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some Icons were not moveable
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Initial configuration was broken
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Existing Line can be modified as well
### 0.0.2-alpha.6 (2023-05-24)
-- FIX: Line could not be restored in some circumstances
-- FIX: Line was not editable anymore after modifying start and end
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line could not be restored in some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line was not editable anymore after modifying start and end
### 0.0.2-alpha.5 (2023-05-24)
-- Added: Calculation of battery runtime (charge & discharge) can be calculated and implemented via source
-- Added: Basic settings extended to colors of elements
-- Added: alignment of text is possible (right, middle, left)
-- Added: last change timestamp extended to more formats
-- Added: Line can be modified (new start and/or end position). Useful, if many settings applied and line needs to be moved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Calculation of battery runtime (charge & discharge) can be calculated and implemented via source
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Basic settings extended to colors of elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: alignment of text is possible (right, middle, left)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: last change timestamp extended to more formats
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Line can be modified (new start and/or end position). Useful, if many settings applied and line needs to be moved
### 0.0.2-alpha.4 (2023-05-17)
-- Added: String Datasource can now be displayed
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: String Datasource can now be displayed
### 0.0.2-alpha.3 (2023-05-17)
-- FIX: Animations not running after adding each of them
-- Added: Elements can be chosen inside side-panel (useful, if element is not clickable anymore)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Animations not running after adding each of them
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements can be chosen inside side-panel (useful, if element is not clickable anymore)
### 0.0.2-alpha.2 (2023-05-15)
-- FIX: Source missing after saving - fill of element not possible (fix #11)
-- FIX: Offset was not working
-- Added: admin menu - link recolored
-- Added: admin menu - access key table
-- Added: question-mark icon for config-wheel
-- Added: New animation-depencies added in advanced menu of animation. Choose dots or duration, to display power-amount on the line
-- Added: last change timestamp of the datasource can be displayed as option: relative to now, timestamp US or timestamp DE
-- Added: all elements can be moved with arrow keys for smoother alignment. Click icon and press arrow-key on keyboard to move it
-- Added: noscroll is added to the workspace, while moving elements. This prevents the page being scrolled up or down
-- Added: elements can be selected with the "lasso-function" - select more than one element with cursor
-- Added: "lasso-catched" elements can be moved with mouse or keyboard (arrow keys)
-- Added: Settings-menu has now basic settings for the elements. All values can be set as default values
-- Added: displayed values can be reduced by other values (selectable)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Source missing after saving - fill of element not possible (fix #11)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Offset was not working
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: admin menu - link recolored
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: admin menu - access key table
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: question-mark icon for config-wheel
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New animation-depencies added in advanced menu of animation. Choose dots or duration, to display power-amount on the line
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: last change timestamp of the datasource can be displayed as option: relative to now, timestamp US or timestamp DE
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: all elements can be moved with arrow keys for smoother alignment. Click icon and press arrow-key on keyboard to move it
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: noscroll is added to the workspace, while moving elements. This prevents the page being scrolled up or down
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: elements can be selected with the "lasso-function" - select more than one element with cursor
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: "lasso-catched" elements can be moved with mouse or keyboard (arrow keys)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Settings-menu has now basic settings for the elements. All values can be set as default values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: displayed values can be reduced by other values (selectable)
### 0.0.2-alpha.1 (2023-04-28)
-- FIX: removed local Test file, which does not belong to the project
-- Added: Settings Wheel can be disabled in Live-View
-- Added: Last selected Datasource can be "cached", for easier treeview (can be enabled/disabled in settings)
-- Added: Alignment functions do now have an undo function for all steps
-- Added: socket connection is monitored, shows a waiting screen, if instance is not started or restarted
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: removed local Test file, which does not belong to the project
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Settings Wheel can be disabled in Live-View
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Last selected Datasource can be "cached", for easier treeview (can be enabled/disabled in settings)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Alignment functions do now have an undo function for all steps
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: socket connection is monitored, shows a waiting screen, if instance is not started or restarted
### 0.0.2-alpha.0 (2023-04-28)
* (SKB) initial release
@@ -324,4 +416,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.flexcharts/README.md b/docs/ru/adapterref/iobroker.flexcharts/README.md
index 3a9ba19d8..a062f2d53 100644
--- a/docs/ru/adapterref/iobroker.flexcharts/README.md
+++ b/docs/ru/adapterref/iobroker.flexcharts/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.flexcharts/README.md
title: ioBroker.flexcharts
-hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
+hash: bg7vZAhUrEEfOHPWcLi2QWejGsWx19+UsdyyKnWX0u4=
---
![Логотип](../../../en/adapterref/iobroker.flexcharts/admin/flexcharts-icon-small.png)
@@ -20,7 +20,7 @@ hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
# Основная концепция
Для просмотра диаграмм в ioBroker доступно несколько адаптеров. Насколько мне известно, все они используют пользовательский интерфейс для настройки содержимого и параметров диаграмм. Обычно не все функции используемой графической подсистемы могут быть использованы таким образом. Например, невозможно просматривать полнофункциональные стековые диаграммы с помощью eChart-Adapter.
-Этот адаптер использует другой подход. Он приносит полный набор функций [Apache ECharts](https://echarts.apache.org/en/index.html) для ioBroker. Посмотрите [демонстрационные графики](https://echarts.apache.org/examples/en/index.html).
+Этот адаптер использует другой подход. Он приносит почти полный набор функций [Apache ECharts](https://echarts.apache.org/en/index.html) в ioBroker. Взгляните на [демонстрационные графики](https://echarts.apache.org/examples/en/index.html).
Примечание: Адаптер пока не тестировался на MacOS.
@@ -47,20 +47,22 @@ hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
}
```
-Адаптер flexchart затем покажет эту диаграмму: ![flexcharts_stacked1](https://github.com/user-attachments/assets/7cf6dfab-ddad-4b2f-a1e1-20fa4b876b4c)
+Адаптер flexchart затем отобразит следующую диаграмму:
+
+![flexcharts_stacked1](https://github.com/user-attachments/assets/7cf6dfab-ddad-4b2f-a1e1-20fa4b876b4c)
Обычно для создания и обновления контента этого состояния используется Blockly или JavaScript.
Есть еще одна возможность напрямую передавать данные eCharts через функцию обратного вызова в javascript. Подробности см. ниже.
Для ясности: этот подход не предназначен для быстрого создания простой диаграммы.
-Но если у вас есть очень конкретная идея для более сложной диаграммы, flexcharts предлагает возможность реализовать ее.
+Но если у вас есть конкретная идея для более сложной диаграммы, flexcharts предлагает возможность ее реализовать.
# Начиная
### Использование адаптера
-Этот адаптер предоставляет свою функциональность в качестве веб-расширения. Поэтому обязательно иметь установленный и работающий [веб-адаптер](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`). Предполагается, что вы используете стандартный порт 8082 для веб-адаптера.
+Этот адаптер предоставляет свою функциональность в качестве веб-расширения. Поэтому обязательно иметь установленный и работающий [веб-адаптер](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`). В этом файле readme предполагается, что вы используете стандартный порт 8082 для веб-адаптера.
-Когда адаптер flexcharts активен, вы можете получить к нему доступ по адресу http://localhost:8082/flexcharts/echarts.html (замените `localhost` на адрес вашего сервера ioBroker).
+Когда адаптер flexcharts активен, вы можете получить к нему доступ через http://localhost:8082/flexcharts/echarts.html (замените `localhost` на адрес вашего сервера ioBroker).
Вы можете использовать этот адрес в виджетах iFrame vis или jarvis или других визуализациях. Конечно, вы также можете использовать его непосредственно во вкладке браузера.
@@ -69,27 +71,27 @@ hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
* `source=state` => Вы предоставляете данные диаграммы в состоянии ioBroker (json)
* `source=script` => Вы предоставляете данные диаграммы через скрипт (javascript или блочный)
-Доступна встроенная демонстрационная диаграмма: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-
-Чтобы использовать темный режим ECharts, добавьте `&darkmode`, например http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&darkmode
+Доступны дополнительные опции, пожалуйста, обратитесь к [справочный раздел](#reference)
-Чтобы включить регулярное обновление графика, используйте параметр `&refresh`, например, http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&refresh=15 для обновления графика каждые 15 секунд. Минимальное значение — 5 секунд. По умолчанию — 60 секунд.
+Для проверки правильности установки адаптера используйте встроенную демонстрационную диаграмму: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-### Использовать состояние ioBroker как источник для диаграммы
+### Использовать состояние ioBroker как источник для eChart
Пример: `http://localhost:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.echarts.chart1`
Flexcharts оценит состояние `0_userdata.0.echarts.chart1` как данные для eChart. Попробуйте: создайте такое состояние и скопируйте данные json из примера, показанного выше (`{ "tooltip": { ...`) как содержимое состояния, затем получите доступ к указанному адресу с помощью браузера.
-### Используйте JavaScript в качестве источника для диаграммы
-Это немного сложнее, но гораздо эффективнее. Вы предоставляете данные диаграмм напрямую вашим скриптом JS, который динамически вызывается адаптером flexcharts.
+### Используйте JavaScript в качестве источника для eChart
+Это немного сложнее, но гораздо эффективнее и гибче. Вы предоставляете данные диаграмм напрямую вашим скриптом JS, который динамически вызывается адаптером flexcharts. Вы можете передать дополнительные параметры вашему скрипту, добавив параметры к http-адресу, например, `&chart=chart1`. Все http-параметры доступны внутри скрипта в объекте `httpParams` (см. пример ниже).
Опять же, лучше всего объяснить на примере. Создайте скрипт с этим содержимым (поддерживается только первый экземпляр JS (**javascript.0**), имя скрипта не имеет значения):
```
-onMessage('flexcharts', (data, callback) => {
- console.log(`data = ${JSON.stringify(data)}`);
+onMessage('flexcharts', (httpParams, callback) => {
+ const myJsonParams = (httpParams.myjsonparams ? JSON.parse(httpParams.myjsonparams) : {} );
+ console.log(`httpParams = ${JSON.stringify(httpParams)}`);
+ console.log(`myJsonParams = ${JSON.stringify(myJsonParams)}`);
chart1(result => callback(result));
});
@@ -123,21 +125,56 @@ function chart1(callback) {
Должна появиться та же диаграмма, что и в предыдущем примере.
+Вы должны получить две записи в журнале примера скрипта:
+
+```
+httpParams = {"message":"mylinechart","source":"script"}
+myJsonParams = {}
+```
+
+Дополнительные параметры могут быть переданы в скрипт и будут доступны в скрипте в переменной `httpParams`. Попробуйте следующую команду: `http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1&myjsonparams={"period":"daily"}`
+
+Записи журнала теперь должны выглядеть так:
+
+```
+httpParams = {"source":"script","chart":"chart1","myjsonparams":"{\"period\":\"daily\"}"}`
+myJsonParams = {"period":"daily"}
+```
+
Пожалуйста, обратите внимание, **вам необходимо использовать функциональность `onMessage()` для получения триггера от адаптера**. Значение по умолчанию для сообщения — `flexcharts`, как показано в примере выше. Вы можете использовать другие сообщения, указав дополнительный параметр, например, чтобы использовать сообщение `mycharts`, добавьте `&message=mycharts` к http-адресу: `http://localhost:8082/flexcharts/echarts.html?source=script&message=mycharts`
-Дополнительные параметры могут быть переданы в скрипт и будут доступны в скрипте в переменной `data`. Попробуйте следующую команду: `http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1¶ms={"period":"daily"}`
+## Шаблоны
+Шаблоны Javascript доступны для некоторых вариантов использования:
+
+* диаграмма с использованием данных из адаптера истории: [template1](templates/flexchartsTemplate1.js)
+* простая диаграмма для тепловой кривой: [template2](templates/flexchartsTemplate2.js)
+* Для устройств Viessmann серии E3 доступен очень специфический вариант использования, например, тепловой насос Vitocal 250. См. https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35
+
+## Ссылка
+Использовать **состояние ioBroker** в качестве источника данных: `http://localhost:8082/flexcharts/echarts.html?source=state&id=my_state_id`
+
+Использовать **javascript** в качестве источника данных: `http://localhost:8082/flexcharts/echarts.html?source=script`
+
+### Необязательные аргументы
+* `&message=my_message` - отправляет "my_message" в javascript. Используйте `onMessage('my_message', (httpParams, callback) => { callback(mychart); })` для предоставления данных диаграммы. По умолчанию `flexcharts`.
+* `&darkmode` - активирует темный режим визуализации ECharts.
+* `&refresh=number` - обновлять график каждые "number" секунд. По умолчанию 60 секунд. Минимально допустимое значение 5 секунд.
+* `&user_defined_arguments` - Добавьте больше параметров по мере необходимости. Все аргументы доступны в функции `onMessage()` в объекте `httpParams`. См. примеры выше и шаблоны для получения более подробной информации.
+
+### Встроенная демонстрационная диаграмма
+Доступна встроенная демонстрационная диаграмма: http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-Это должно дать запись журнала в примере скрипта: `data = {"source":"script","chart":"chart1","params":"{\"period\":\"daily\"}"}`
+Это должно открыть демонстрационную диаграмму при запуске flexcharts- и web-адаптера.
-Я работаю над более сложными шаблонами javascript для упрощения использования адаптера. Доступен [первый шаблон](templates/flexchartsTemplate1.js), см. шаблоны папок.
-Для устройств Viessmann серии E3 доступен очень специфический вариант использования, например, тепловой насос Vitocal 250. См. https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35. Дальше больше. Оставайтесь с нами.
+**Примечание:** Замените `localhost` на адрес вашего сервера ioBroker. Замените `8082` на номер порта, используемый вашим веб-адаптером.
## Changelog
-### **WORK IN PROGRESS**
+### 0.2.0 (2024-11-06)
+* (MyHomeMyData) Updated readme. Added sections Templates and Reference.
* (MyHomeMyData) Fix for issue #41 (findings of repository checker)
* (MyHomeMyData) Updated ECharts to version 5.5.1, see issue #40
* (MyHomeMyData) Fix for issue #39 (html warnings)
diff --git a/docs/ru/adapterref/iobroker.gotify-ws/README.md b/docs/ru/adapterref/iobroker.gotify-ws/README.md
index b7cb7ea07..bddc31c08 100644
--- a/docs/ru/adapterref/iobroker.gotify-ws/README.md
+++ b/docs/ru/adapterref/iobroker.gotify-ws/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.gotify-ws/README.md
title: ioBroker.gotify-ws
-hash: ZleT4V2h1sn7+SHyydmhlIKBDbjhJ7fAA55KqnTuJsw=
+hash: oXPHjuHMHoLLlEzMSLVDiPX/+sdFb6o14PVXKItzbxo=
---
![Логотип](../../../en/adapterref/iobroker.gotify-ws/admin/gotify-ws.png)
@@ -68,6 +68,8 @@ Gotify-WS также требуется IP-адрес или домен и по
### **РАБОТА В ХОДЕ**
* (simatec) Зависимости обновлены
+* (simatec) Исправление адаптивного дизайна
+* (simatec) Добавлено действие по проблеме
## Changelog
### 0.1.9 (2024-09-26)
diff --git a/docs/ru/adapterref/iobroker.gsmsms/README.md b/docs/ru/adapterref/iobroker.gsmsms/README.md
index 533a81b09..035533d0e 100644
--- a/docs/ru/adapterref/iobroker.gsmsms/README.md
+++ b/docs/ru/adapterref/iobroker.gsmsms/README.md
@@ -1,171 +1,173 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.gsmsms/README.md
title: ioBroker.gsmsms
-hash: dunlSMGPp9mJWEwiLsW+jZKUNdPBGcuyXoTQ6r32bAY=
+hash: 4OePWk7/C7Efli5jytPaWhasTCdJuILxZpyKT1Jicr0=
---
![Логотип](../../../en/adapterref/iobroker.gsmsms/admin/gsmsms.png)
![Количество установок](https://iobroker.live/badges/gsmsms-installed.svg)
-![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/gsmsms-stable.svg)
-![НПМ-версия](https://img.shields.io/npm/v/iobroker.gsmsms.svg)
+![Текущая версия в стабильном репозитории](https://iobroker.live/badges/gsmsms-stable.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.gsmsms.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.gsmsms.svg)
# IoBroker.gsmsms
-![Тестирование и выпуск](https://github.com/forelleblau/ioBroker.gsmsms/workflows/Test%20and%20Release/badge.svg)
+![Тест и выпуск](https://github.com/forelleblau/ioBroker.gsmsms/workflows/Test%20and%20Release/badge.svg)
-##адаптер gsmsms для ioBroker
-Отправляйте и получайте SMS с помощью GSM-оборудования.
+## Gsmsms адаптер для ioBroker
+Отправка и получение SMS с помощью GSM-оборудования.
## Аппаратное обеспечение
-Любое GSM-оборудование (шилд, серфстик и т. д.), подключенное к последовательному порту вашего устройства ioBroker.
-GSM-модулям/флешкам нужно много энергии. Пожалуйста, обеспечьте достаточный источник питания.
+Любое GSM-оборудование (shield, surfstick и т. д.), подключенное к последовательному порту вашего устройства ioBroker. GSM-модули/sticks требуют много энергии. Пожалуйста, обеспечьте достаточный источник питания.
-Некоторые устройства должны быть установлены в правильный режим для последовательной связи (см. «usb_modeswitch»).
+Некоторые устройства необходимо настроить на правильный режим последовательной связи (см. «usb_modeswitch»).
## Настройки
### Настройка порта и подключения
-#### Путь к последовательному порту — обязателен.
-например `/dev/ttyUSB0` или `/dev/serial/by-id/xxxxxxxxxxx` (по идентификатору более стабильно, ttyUSBx может измениться при перезагрузке)
+#### Путь к последовательному порту — обязательно.
+например, `/dev/ttyUSB0` или `/dev/serial/by-id/xxxxxxxxxxx` (by-id более стабилен, ttyUSBx может измениться при перезагрузке)
-Некоторые устройства имеют несколько портов USB, поэтому, возможно, вам придется попробовать его. Скорее всего, «первый» будет работать, но, возможно, не будет доставлять «уведомления о входящих сообщениях», тогда вы можете попробовать другой, отправить смс и посмотреть, будет ли оно получено через несколько секунд (на Huawai это третий порт как пример).
+Некоторые устройства предоставляют несколько портов USB, поэтому может быть, что вам нужно попробовать. Скорее всего, "первый" будет работать, но, возможно, не будет доставлять "уведомления о входящих сообщениях", тогда вы можете попробовать другой и отправить смс и посмотреть, будет ли оно получено через несколько секунд (на Huawai это третий порт, например).
-#### PIN-код вашей SIM-карты
-Если ваша SIM-карта защищена PIN-кодом, укажите PIN-код, и он будет использоваться для разблокировки SIM-карты во время инициализации (пустое значение означает «на SIM-карте нет PIN-кода»).
+#### Ваш PIN-код SIM-карты
+Если ваша SIM-карта защищена PIN-кодом, укажите PIN-код, и он будет использоваться для разблокировки SIM-карты во время инициализации (пустое поле означает «на SIM-карте нет PIN-кода»).
-###Настройки GSM
-Чтобы не исчерпать SIM-память, все SMS удаляются с SIM-карты после доставки/прочитания. Используйте, например. адаптер «история» для хранения ваших сообщений или любое другое удобное решение.
+### Настройки GSM
+Чтобы не исчерпать память SIM-карты, все SMS удаляются с SIM-карты после доставки/прочтения. Используйте, например, адаптер «история» для хранения сообщений или любое другое удобное решение.
| Имя | Тип | По умолчанию | Описание |
| --------------------------- | ------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Индикация входящего СМС | логическое | правда | Позволяет модему уведомлять о получении нового SMS-сообщения. |
-| Включить конкатенацию | логическое | правда | Получайте объединенные сообщения как одно. |
-| Пользовательская команда Iinit | строка | | Если вашему устройству требуется специальная команда инициализации, она может быть предоставлена и будет использоваться после проверки PIN-кода. то есть некоторым устройствам требуется «AT+CPMS="SM","SM","SM"', чтобы получить правильный набор памяти. Ожидается, что команда вернет `'OK'` (пусто, означает «нет специальной команды для инициализации»). Пожалуйста, ознакомьтесь со спецификациями вашего GSM-устройства. |
-| CNMI, когда модем открыт/закрыт | строка | '2,1,0,2,0' / '2,0,2,2,1' | Определяет, сохраняются ли сообщения на SIM-карте или доставляются мгновенно. Пожалуйста, ознакомьтесь со спецификациями вашего GSM-устройства. |
+| Индикация входящего SMS | логическое значение | true | Позволяет модему уведомлять о получении нового SMS-сообщения. |
+| Включить конкатенацию | boolean | true | Получать объединенные сообщения как одно. |
+| Пользовательская команда Iinit | строка | | Если вашему устройству нужна пользовательская команда инициализации, она может быть предоставлена и будет использоваться после проверки PIN-кода. т. е. некоторым устройствам требуется 'AT+CPMS="SM","SM","SM"' для получения правильного набора хранилищ. Ожидается, что команда вернет `'OK'` (пусто, означает «нет пользовательской команды для инициализации»). пожалуйста, обратитесь к спецификациям вашего GSM-устройства. |
+| CNMI при открытии/закрытии модема | строка | '2,1,0,2,0' / '2,0,2,2,1' | Определяет, будут ли сообщения сохраняться на SIM-карте или доставляться мгновенно. Пожалуйста, ознакомьтесь со спецификациями вашего GSM-устройства. |
-
+
### Настройки последовательного порта
-Пожалуйста, ознакомьтесь со спецификациями вашего GMS-устройства (Google поможет в большинстве случаев)
+Пожалуйста, ознакомьтесь с характеристиками вашего GMS-устройства (в большинстве случаев вам поможет Google)
| Имя | Тип | По умолчанию | Описание |
| -------- | ------- | ------- | ------------------------------------------------------- |
-| скорость передачи | номер | 19200 | Скорость передачи данных порта. |
-| биты данных | номер | 8 | Должно быть одно из: 8, 7, 6 или 5. |
-| стопбиты | номер | 1 | Должно быть одно из: 1 или 2. |
-| паритет | строка | "нет" | Должно быть одно из: «нет», «чет», «отметка», «нечет», «пробел». |
-| рццц | логическое | ложный | настройка управления потоком |
-| ксон | логическое | ложный | настройка управления потоком |
-| хофф | логическое | ложный | настройка управления потоком |
-| Ксани | логическое | ложный | настройки управления потоком |
-
-### Прочие настройки и рекомендации
-#### Указывается как адаптер - объекты (`admin.x`)
-— ваше имя (по умолчанию «ownNumber»), максимальная длина — 16 символов.
-- ваш номер телефона.
-- Режим работы SMS («PDU» или «SMS», «PDU» используется по умолчанию и рекомендуется).
-
-Все входные данные должны выполняться с параметром ack=false!
-
-#### Входящие/Исходящие — История
-Активировав адаптер истории для объекта `inbox.messageRaw` и объекта `sendSMS.messageRaw`, вы получаете полную информацию о входящих и исходящих сообщениях вашего SMS-трафика.
+| baudRate | число | 19200 | Скорость передачи данных порта. |
+| dataBits | number | 8 | Должно быть одно из: 8, 7, 6 или 5. |
+| stopBits | number | 1 | Должно быть одно из: 1 или 2. |
+| четность | строка | "none" | Должно быть одно из: 'none', 'even', 'mark', 'odd', 'space'. |
+| rtscts | логическое значение | false | настройка управления потоком |
+| xon | boolean | false | настройка управления потоком |
+| xoff | boolean | false | настройка управления потоком |
+| xany | boolean | false | настройки управления потоком |
+
+### Другие настройки и рекомендации
+#### Указывать как адаптер - объекты (`admin.x`)
+- ваше имя (по умолчанию `ownNumber`), максимальная длина 16 символов.
+- Ваш номер телефона.
+- Режим работы SMS (`PDU` или `SMS`, `PDU` является режимом по умолчанию и рекомендуется).
+
+Все входные данные должны быть сделаны с ack=false!
+
+#### Входящие/Исходящие - История
+Активировав адаптер истории для объектов `inbox.messageRaw` и `sendSMS.messageRaw`, вы получаете полный список входящих и исходящих сообщений вашего SMS-трафика.
-## Функциональные возможности
-### Получить СМС
-Входящие SMS записываются в объекты `inbox.*`. `inbox.messageRaw` можно использовать в качестве триггера для дальнейших операций (например, пересылка входящих SMS с помощью адаптера электронной почты).
+## Функциональность
+### Получать СМС
+Входящие SMS записываются в объекты `inbox.*`. `inbox.messageRaw` может использоваться как триггер для дальнейших операций (например, пересылка входящих SMS через адаптер электронной почты).
-### Отправить смс
-Чтобы отправить SMS, введите `sendSMS.recipient, sendSMS.message` и дополнительно `sendSMS.alert` и нажмите кнопку `sendSMS.send` -. Или установите `sendSMS.messageRaw` — Объект со строкой в следующем виде и ack=false: `{"recipient": "Number", "message":"Yourtext", "alert":"false"}`.
+### Отправить СМС
+Для отправки смс заполните `sendSMS.recipient, sendSMS.message` и опционально `sendSMS.alert` и нажмите кнопку `sendSMS.send` -. Или установите `sendSMS.messageRaw` - Объект со строкой в следующем виде и ack=false: `{"recipient": "Number", "message":"Yourtext", "alert":"false"}`.
-Этот адаптер также предоставляет блок связи для функций блочного режима и отправки для других скриптов (sendTo("gsmsms._InstanceNo_", "send", {text: '_yourText_',recipient: '_phonenumber_', alert: '_false/true_'} );).
+Этот адаптер также предоставляет comm-block для функциональности blockly и sendTo для других скриптов (sendTo("gsmsms._InstanceNo_", "send", {text: '_yourText_',recipient: '_phonenumber_', alert: '_false/true_'});).
### Выполнение команд AT+
-! Пожалуйста, обязательно знайте, что вы делаете при настройке команд AT+, это ваша SIM-карта/устройство.
+! Пожалуйста, убедитесь, что вы знаете, что вы делаете при настройке команд AT+, это ваша SIM-карта/устройство.
-AT+команды отправляются с установкой `admin.atCommandSLR` в формате `AT+XXXXy`.
-Отправьте любую команду, которая вам нравится, но имейте в виду, что вы увидите только последнюю строку ответа.
+Команды AT+ отправляются с настройкой `admin.atCommandSLR` в формате `AT+XXXXy`.
+Отправьте любую команду, которую захотите, но учтите, что вы увидите только последнюю строку ответа.
-## Серийный порт-GSM
-Этот адаптер основан на [Плагин SerialPort-GSM](https://github.com/zabsalahid/serialport-gsm) для связи с GSM-модемами, в первую очередь для SMS.
+## Последовательный порт-gsm
+Этот адаптер создан на основе [Плагин SerialPort-GSM](https://github.com/zabsalahid/serialport-gsm) для связи с GSM-модемами, в первую очередь для SMS.
+
+## Кредиты
+Этот адаптер был бы невозможен без огромной работы @forelleblau (https://github.com/forelleblau), который разработал предыдущие версии этого адаптера.
## Руководство разработчика
-Этот раздел предназначен для разработчика. Его можно будет удалить позже
+Этот раздел предназначен для разработчика. Его можно удалить позже.
### Начиная
Вы почти закончили, осталось всего несколько шагов:
-1. Перейдите в [main.js](main.js) и начните программировать!
+1. Перейдите на [main.js](main.js) и начните программировать!
### Лучшие практики
-Мы собрали некоторые [лучшие практики](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices), касающиеся разработки и кодирования ioBroker в целом. Если вы новичок в ioBroker или Node.js, вам следует их проверить. Если у вас уже есть опыт, вам также стоит взглянуть на них — возможно, вы узнаете что-то новое :)
+Мы собрали несколько [лучшие практики](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices) относительно разработки ioBroker и кодирования в целом. Если вы новичок в ioBroker или Node.js, вам стоит с ними ознакомиться. Если вы уже опытный, вам также стоит с ними ознакомиться — возможно, вы узнаете что-то новое :)
### Скрипты в `package.json`
-Для вашего удобства предопределено несколько сценариев npm. Вы можете запустить их, используя `npm run `.
+Несколько скриптов npm предопределены для вашего удобства. Вы можете запустить их с помощью `npm run `
-| Имя сценария | Описание |
+| Имя скрипта | Описание |
\|-------------\|-------------\|
-\| `test:js` | Выполняет тесты, определенные вами в файлах `*.test.js`. |
+\| `test:js` | Выполняет тесты, которые вы определили в файлах `*.test.js`. |
\| `test:package` | Гарантирует, что ваши `package.json` и `io-package.json` действительны. |
-\| `test:unit` | Проверяет запуск адаптера с помощью модульных тестов (быстро, но для работы может потребоваться макет модуля). |
-\| `test:integration` | Тестирует запуск адаптера с помощью реального экземпляра ioBroker. |
-\| `test` | Выполняет минимальный тестовый запуск файлов пакета и ваших тестов. |
-\| `check` | Выполняет проверку типа вашего кода (без компиляции). |
-\| `lint` | Запускает `ESLint`, чтобы проверить ваш код на наличие ошибок форматирования и потенциальных ошибок. |
-\| `release` | Создает новый выпуск, подробности см. в [`@alcalzone/release-script`](https://github.com/AlCalzone/release-script#usage). |
+\| `test:unit` | Тестирует запуск адаптера с помощью модульных тестов (быстро, но для работы могут потребоваться имитации модулей). |
+\| `test:integration` | Тестирует запуск адаптера с помощью фактического экземпляра ioBroker. |
+\| `test` | Выполняет минимальный тестовый запуск файлов пакетов и ваших тестов. |
+\| `check` | Выполняет проверку типов вашего кода (без компиляции чего-либо). |
+\| `lint` | Запускает `ESLint` для проверки вашего кода на наличие ошибок форматирования и потенциальных ошибок. |
+\| `release` | Создает новый выпуск, см. [`@alcalzone/release-script`](https://github.com/AlCalzone/release-script#usage) для получения более подробной информации. |
### Написание тестов
-Если все сделано правильно, тестирование кода имеет неоценимую ценность, поскольку оно дает вам уверенность в том, что вы сможете изменить свой код, точно зная, когда что-то сломается. Полезную информацию по теме разработки через тестирование можно найти .
-Хотя написание тестов до написания кода может на первый взгляд показаться странным, но у этого есть очевидные преимущества.
+При правильном выполнении тестирование кода бесценно, поскольку оно дает вам уверенность в том, что вы можете изменить свой код, точно зная, сломается ли что-то и когда. Хорошее чтение по теме разработки через тестирование — .
+Хотя написание тестов перед кодом может показаться странным на первый взгляд, у него есть очень явные преимущества.
-Шаблон предоставляет базовые тесты для файлов запуска адаптера и пакетов.
-Рекомендуется добавить в этот микс свои собственные тесты.
+Шаблон предоставляет вам базовые тесты для запуска адаптера и файлы пакета.
+Рекомендуется добавлять собственные тесты в смесь.
### Публикация адаптера
-Используя действия GitHub, вы можете включить автоматические выпуски в npm всякий раз, когда вы отправляете новый тег git, соответствующий форме `v..`. Мы **настоятельно рекомендуем** это сделать. Необходимые шаги описаны в `.github/workflows/test-and-release.yml`.
+Используя GitHub Actions, вы можете включить автоматические релизы на npm всякий раз, когда вы отправляете новый тег git, соответствующий форме `v..`. Мы **настоятельно** рекомендуем вам это сделать. Необходимые шаги описаны в `.github/workflows/test-and-release.yml`.
-Поскольку вы установили сценарий выпуска, вы можете создать новый выпуск, просто вызвав:
+После установки скрипта релиза вы можете создать новый релиз, просто вызвав:
```bash
npm run release
```
-Дополнительные параметры командной строки для сценария выпуска описаны в [документации сценария выпуска]().
+Дополнительные параметры командной строки для скрипта выпуска описаны в [документации по скрипту выпуска]( ).
-Чтобы выпустить адаптер в ioBroker, обратитесь к документации [ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository).
+Чтобы выпустить свой адаптер в ioBroker, обратитесь к документации [ioBroker.репозитории](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository).
-### Проверьте адаптер вручную с помощью dev-сервера
-Поскольку вы настроили `dev-server`, вы можете использовать его для запуска, тестирования и отладки вашего адаптера.
+### Тестирование адаптера вручную с помощью dev-server
+После настройки `dev-server` вы можете использовать его для запуска, тестирования и отладки вашего адаптера.
-Вы можете запустить `dev-server`, вызвав из каталога разработки:
+Вы можете запустить `dev-server`, вызвав из вашего каталога dev:
```bash
dev-server watch
```
-Интерфейс ioBroker.admin будет доступен по адресу .
+Интерфейс ioBroker.admin будет доступен по адресу
-Для получения более подробной информации обратитесь к [документация `dev-server`](https://github.com/ioBroker/dev-server#command-line).
+Более подробную информацию см. в разделе [документация `dev-server`](https://github.com/ioBroker/dev-server#command-line).
## Changelog
@@ -173,33 +175,36 @@ dev-server watch
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.0.0 (2024-11-23)
+- (mcm1957) Adapter requires node.js 20 now.
+- (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+- (mcm1957) Adapter has been moved to iobroker-community-adapters organization
+- (mcm1957) Some issues reported by adapter checker have been fixed.
+- (mcm1957) Dependencies have been update
-### **WORK IN PROGRESS**
+### 0.0.6
+- (forelleblau) jsonConfig.json, notifications-manager
### 0.0.5
-
-- (forelleblau) bug fixed (adapter set "undefined" into state values)
+- (forelleblau) bug fixed (adapter set "undefined" into state values)
### 0.0.4
-
-- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
+- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
### 0.0.3
-
-- (forelleblau) dependencies updated, bugs fixed
+- (forelleblau) dependencies updated, bugs fixed
### 0.0.2
-
-- (forelleblau) first published version
+- (forelleblau) first published version
### 0.0.1
-
-- (forelleblau) initial release
+- (forelleblau) initial release
## License
MIT License
+Copyright (c) 2023-2024 ioBroker Community Developers
Copyright (c) 2022-2023 forelleblau
Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -220,4 +225,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-
## Changelog
-### 1.24.1 (2024-08-06)
+### 1.25.0 (2024-11-08)
+* (bluefox) Updated packages
+* (bluefox) User prettier for code
+* (bluefox) Added GUI test for the admin component
+
+### 1.24.3 (2024-09-02)
* (bluefox) GUI was migrated for Admin 7
+* (bluefox) Removed gulp
### 1.23.4 (2024-07-07)
* (Apollon77) previousShutterLevel and hardwareColorTemperatureColdWhite datatype corrected
@@ -348,4 +354,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.imap/README.md b/docs/ru/adapterref/iobroker.imap/README.md
index 1b45303f8..c152b61ca 100644
--- a/docs/ru/adapterref/iobroker.imap/README.md
+++ b/docs/ru/adapterref/iobroker.imap/README.md
@@ -8,13 +8,14 @@ BADGE-GitHub commit activity: https://img.shields.io/github/commit-activity/m/Lu
BADGE-GitHub commits since latest release: https://img.shields.io/github/commits-since/Lucky-ESA/ioBroker.imap/latest
BADGE-GitHub last commit: https://img.shields.io/github/last-commit/Lucky-ESA/ioBroker.imap
BADGE-GitHub issues: https://img.shields.io/github/issues/Lucky-ESA/ioBroker.imap
-BADGE-Beta: https://img.shields.io/npm/v/iobroker.imap.svg?color=red&label=beta
+BADGE-Current version in stable repository: https://iobroker.live/badges/imap-stable.svg
BADGE-NPM: https://nodei.co/npm/iobroker.imap.png?downloads=true
+BADGE-Known Vulnerabilities: https://snyk.io/test/github/Lucky-ESA/ioBroker.imap/badge.svg
translatedFrom: de
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.imap/README.md
title: ioBroker.imap
-hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
+hash: BE8xTSdendU5kOGm3Qc7OzvaA15xSrafXCkQWeHNWpQ=
---
![логотип](../../../de/admin/imap.png)
@@ -35,8 +36,8 @@ hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
- [точки данных imap.0](#точки данных-imap0)
- [datapoints imap.0.username](#datapoints-imap0username)
- [Точки данных imap.0.username.email.emails_xx](#data Points-imap0usernameemailemail_xx)
- - [Точки данных imap.0.username.infos](#datapoints-imap0usernameinfos)
- - [точки данных imap.0.username.remote](#data Points-imap0usernameremote)
+ - [точки данных imap.0.username.infos](#data Points-imap0usernameinfos)
+ - [точки данных imap.0.username.remote](#datapoints-imap0usernameremote)
- [точки данных imap.0.username.remote.copy](#datapoints-imap0usernameremotecopy)
- [datapoints imap.0.username.remote.flag](#datapoints-imap0usernameremoteflag)
- [точки данных imap.0.username.remote.html](#datapoints-imap0usernameremotehtml)
@@ -64,7 +65,7 @@ hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
```
- «Активно»: активировать соединение IMAP.
-- `Хост`: например. Например, imap.gmail.com.
+- `Хост`: например. Например, imap.gmail.com
- `Входящие`: стандартные INBOX - Ящик, который следует отслеживать - Возможный выбор см. imap.0.xxx.remote.change_folder
- «Порт»: по умолчанию 993.
- `Username`: Имя пользователя - Экземпляр должен быть активирован!!!
@@ -73,7 +74,7 @@ hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
![imap_create_1.png](../../../de/adapterref/iobroker.imap/img/imap_create_1.png)
- `max.`: максимальная система в виде точек данных email_01...email_02... (1-99)
-- `макс. HTML`: Максимальное количество писем в формате HTML. Должно быть больше максимального значения точек данных (1–99).
+- `макс. HTML`: Максимальное количество писем в формате HTML. Должно быть больше макс. точек данных (1–99).
- `TLS`: использовать соединение TLS - по умолчанию установлено значение true.
- `Флаги`: флаг для запроса IMAP. Возможные флаги:
@@ -111,7 +112,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
![imap_create_3.png](../../../de/adapterref/iobroker.imap/img/imap_create_3.png)
- `макс. Ограничение MEMRSS: С момента, когда, среди прочего, действие срабатывает.
-- `Перезапуск:` Если достигнут предел MEMRSS, адаптер будет перезапущен. Однако проверка осуществляется только каждые 24 часа.
+- `Перезапуск:` Если предел MEMRSS достигнут, адаптер будет перезапущен. Однако проверка осуществляется только каждые 24 часа.
![imap_create_restart.png](../../../de/adapterref/iobroker.imap/img/imap_create_restart.png)
@@ -152,9 +153,9 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| Объект | Описание |
| --------------------- | ----------------------------------------------------------------------------------------------- |
| imap.0.json_imap | Имя соединения IMAP с последней активностью. Триггер для входящих писем или обновлений. |
-| imap.0.json_table | Последнее обновление соединения IMAP в виде таблицы JSON для VIS. |
-| imap.0.online_counter | Количество активных соединений IMAP. |
-| imap.0.online_history | История действий подключения в формате JSON — [Пример](#array-json-imap0online_history). |
+| imap.0.json_table | Последнее обновление соединения IMAP в виде таблицы JSON для VIS. |
+| imap.0.online_counter | Количество активных соединений IMAP. |
+| imap.0.online_history | История действий подключения в формате JSON — [Пример](#array-json-imap0online_history). |
![imap_total_overview.png](../../../de/adapterref/iobroker.imap/img/imap_total_overview.png)
@@ -207,22 +208,22 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.infos.auth_cram-md5 | Метод аутентификации auth_cram-md5 |
| imap.0.xxx.infos.auth_xoauth | Метод аутентификации xoauth |
| imap.0.xxx.infos.auth_xoauth2 | Метод аутентификации xoauth2 |
-| imap.0.xxx.infos.condstore | Возможен запрос MODSEQ [пожалуйста, обратитесь](https://datatracker.ietf.org/doc/html/rfc4551#page-18) |
-| imap.0.xxx.infos.id | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.idle | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.literal\* | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.logindisabled | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.move | Письма можно перемещать. [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.пространство имен | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.quota | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sasl-ir | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sort | Сообщения электронной почты будут отсортированы [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sort_display | Информация заголовка отсортирована.[Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.starttls | starttls поддерживается. Затем можно установить в конфигурации экземпляра. [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.thread_orderedsubject | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.thread_references | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.unselect | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.x-gm-ext-1 | [Пожалуйста, обратитесь](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.condstore | Возможен запрос MODSEQ [видеть](https://datatracker.ietf.org/doc/html/rfc4551#page-18) |
+| imap.0.xxx.infos.id | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.idle | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.literal\* | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.logindisabled | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.move | Письма можно перемещать. [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.пространство имен | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.quota | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sasl-ir | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sort | Сообщения электронной почты будут отсортированы [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sort_display | Информация заголовка отсортирована.[Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.starttls | starttls поддерживается. Затем можно установить в конфигурации экземпляра. [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.thread_orderedsubject | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.thread_references | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.unselect | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.x-gm-ext-1 | [Видеть](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
| imap.0.xxx.infos.x-gm-ext-1 | [См.](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
![imap_overview_capability.png](img/imap_overview_capability.png) ![imap_overview_capability_1.png](../../../de/adapterref/iobroker.imap/img/imap_overview_capability_1.png)
@@ -231,24 +232,30 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
[Краткое содержание](#zusammenfassung)
| Объект | Описание |
-| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.apply_html | Примените изменения к imap.0.xxx.remote.html. |
-| imap.0.xxx.remote.change_folder | Конфигурация экземпляра: изменение почтовой папки, которую следует отслеживать и отображать. Сбрасывается только после перезагрузки. |
-| imap.0.xxx.remote.criteria | Конфигурация экземпляра: изменить поиск. Сбрасывается только после перезагрузки. |
-| imap.0.xxx.remote.reload_emails | Перезагрузите электронную почту. |
+| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| imap.0.xxx.remote.apply_html | Примените изменения к imap.0.xxx.remote.html. |
+| imap.0.xxx.remote.change_folder | Конфигурация экземпляра: изменение почтовой папки, которую следует отслеживать и отображать. Сбрасывается только после перезагрузки. |
+| imap.0.xxx.remote.criteria | Конфигурация экземпляра: изменить поиск. Сбрасывается только после перезагрузки. |
+| imap.0.xxx.remote.mailbox_folder_change_name | Пример изменения имени папки почтового ящика [«INBOX.imap», «INBOX.newimap»] [см.](#ordnername) |
+| imap.0.xxx.remote.mailbox_folder_create | Создать папку почтового ящика |
+| imap.0.xxx.remote.mailbox_folder_delete | Удалить папку почтового ящика с содержимым |
+| imap.0.xxx.remote.reload_emails | Перезагрузите электронную почту. |
| imap.0.xxx.remote.search_start | Применить изменения к Change_folder, критериям и show_mails |
-| imap.0.xxx.remote.show_mails | Конфигурация экземпляра: количество электронных писем (макс. HTML), которые будут загружены. Сбрасывается только после перезагрузки. Конечно, оно должно быть больше значения max.|
-| imap.0.xxx.remote.vis_command | Команда из VIS для перемещения писем из полей выбора. Используется только VIS. |
+| imap.0.xxx.remote.show_mails | Конфигурация экземпляра: количество электронных писем (макс. HTML), которые будут загружены. Сбрасывается только после перезагрузки. Конечно, оно должно быть больше значения max |
+| imap.0.xxx.remote.vis_command | Команда из VIS для перемещения писем из полей выбора. Используется только VIS. |
![imap_overview_remote.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote.png)
+### Имя папки
+Старые имена папок можно просмотреть в объекте imap.0.xxx.remote.change_folder.
+
### Точки данных `imap.0.benutzername.remote.copy`
[Краткое содержание](#zusammenfassung)
| Объект | Описание |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.copy.apply_copy | Применить папку и изменить UID. |
-| imap.0.xxx.remote.copy.folder | Выберите папку, в которую следует скопировать выбранное электронное письмо. |
+| imap.0.xxx.remote.copy.apply_copy | Применить папку и изменить UID. |
+| imap.0.xxx.remote.copy.folder | Выберите папку, в которую следует скопировать выбранное электронное письмо. |
| imap.0.xxx.remote.copy.uid | Введите UID электронного письма, которое необходимо скопировать здесь. UID можно найти в imap.0.xxx.json или в папках электронной почты |
![imap_overview_remote_copy.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_copy.png)
@@ -258,7 +265,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| Объект | Описание |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.flag.apply_flag | Примените набор, тип и изменение uid. |
+| imap.0.xxx.remote.flag.apply_flag | Примените набор, тип и изменение uid. |
| imap.0.xxx.remote.flag.set | Выбор setFlag для установки флага, addFlag для добавления флага и delFlag для удаления флага |
| imap.0.xxx.remote.flag.type | Выберите флаг, который нужно добавить, установить или удалить |
| imap.0.xxx.remote.flag.uid | UID, для которого следует изменить флаг. UID можно найти в imap.0.xxx.json или в папках электронной почты |
@@ -280,14 +287,14 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.header_tag_border_color | Заголовок цвета границы — по умолчанию # 424242 — Все возможно |
| imap.0.xxx.remote.html.header_text_color | Цвет текста заголовка — по умолчанию #BDBDBD |
| imap.0.xxx.remote.html.header_width | Ширина заголовка — по умолчанию авто — возможно в пикселях или % |
-| imap.0.xxx.remote.html.headline_align_column_1 | Выравнивание текста. Столбец 1 заголовка — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
+| imap.0.xxx.remote.html.headline_align_column_1 | Столбец заголовка 1 для выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
![imap_overview_remote_html_1.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_html_1.png)
| Объект | Описание |
| ----------------------------------------------- | --------------------------------------------------------------------------------------------- |
| imap.0.xxx.remote.html.headline_align_column_2 | Столбец заголовка 2 для выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
-| imap.0.xxx.remote.html.headline_align_column_3 | Выравнивание текста. Столбец 3 заголовка — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
+| imap.0.xxx.remote.html.headline_align_column_3 | Столбец заголовка 3 для выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
| imap.0.xxx.remote.html.headline_align_column_4 | Столбец заголовка 4 для выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
| imap.0.xxx.remote.html.headline_align_column_5 | Столбец заголовка 5 для выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
| imap.0.xxx.remote.html.headline_align_column_6 | Столбец 6 заголовка выравнивания текста — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
@@ -309,11 +316,11 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.headline_column_width_5 | Ширина столбца, столбец 5 — по умолчанию авто — возможные пиксели или % |
| imap.0.xxx.remote.html.headline_column_width_6 | Ширина столбца, столбец 6 — по умолчанию авто — возможные пиксели или % |
| imap.0.xxx.remote.html.headline_column_width_7 | Ширина столбца, столбец 7 — по умолчанию авто — возможные пиксели или % |
-| imap.0.xxx.remote.html.headline_column_width_8 | Ширина столбца, столбец 8 — по умолчанию авто — возможные пиксели или % |
+| imap.0.xxx.remote.html.headline_column_width_8 | Ширина столбца Столбец 8 — по умолчанию авто — возможно в пикселях или % |
| imap.0.xxx.remote.html.headline_column_width_9 | Ширина столбца, столбец 9 — по умолчанию авто — возможные пиксели или % |
| imap.0.xxx.remote.html.headline_font_size | Размер текста в строках — по умолчанию 16 пикселей |
| imap.0.xxx.remote.html.headline_height | Высота ячейки — по умолчанию 35 пикселей |
-| imap.0.xxx.remote.html.headline_style | Стиль ячеек – Нормальный по умолчанию – Возможен обычный или полужирный |
+| imap.0.xxx.remote.html.headline_style | Стиль ячеек — Нормальный по умолчанию — Возможен обычный или полужирный |
![imap_overview_remote_html_3.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_html_3.png)
@@ -326,7 +333,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.mails_nextday_color_even | Цвет фона строк для прямых идентификаторов вчера — стандартный #F7FFE0 |
| imap.0.xxx.remote.html.mails_nextday_color_odd | Цвет фона строк для нечетных идентификаторов вчера — по умолчанию #F7FFE0 |
| imap.0.xxx.remote.html.mails_odd_color | Цвет фона линии для нечетных идентификаторов — по умолчанию #FFE32E |
-| imap.0.xxx.remote.html.mails_today_color | Цвет фона строк для текущего дня прямого идентификатора — по умолчанию #ffffff |
+| imap.0.xxx.remote.html.mails_today_color | Цвет фона строк для прямых идентификаторов текущего дня — по умолчанию #ffffff |
| imap.0.xxx.remote.html.mails_today_color_odd | Цвет фона строк для нечетных идентификаторов текущего дня — по умолчанию #ffffff |
| imap.0.xxx.remote.html.p_tag_text_align | Выравнивание текста верхнего и нижнего колонтитула — по умолчанию по центру Возможно по центру, слева, справа и автоматически |
| imap.0.xxx.remote.html.short_content | Ограничение по содержанию букв - стандарт 35 |
@@ -361,7 +368,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.text_select_delflag | Начальный текст в поле выбора флага — по умолчанию delFlags — |
| imap.0.xxx.remote.html.text_select_move | Начало текста в поле выбора копии — перемещение по умолчанию |
| imap.0.xxx.remote.html.text_select_setflag | Начальный текст в поле выбора флага — по умолчанию setFlags — |
-| imap.0.xxx.remote.html.text_seq | Столбец 6 текста заголовка — стандартный SEQ |
+| imap.0.xxx.remote.html.text_seq | Столбец текста заголовка 6 – стандартный SEQ |
| imap.0.xxx.remote.html.text_setflag | Столбец текста заголовка 10 — Стандартное действие флага |
| imap.0.xxx.remote.html.text_subject | Столбец текста заголовка 3 — Тема по умолчанию |
| imap.0.xxx.remote.html.text_uid | Столбец текста заголовка 8 — UID по умолчанию |
@@ -383,8 +390,8 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| Объект | Описание |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.move.apply_move | Применить папку и изменить UID. |
-| imap.0.xxx.remote.move.folder | Выберите папку, в которую следует переместить выбранное электронное письмо. |
+| imap.0.xxx.remote.move.apply_move | Применить папку и изменить UID. |
+| imap.0.xxx.remote.move.folder | Выберите папку, в которую следует переместить выбранное электронное письмо. |
| imap.0.xxx.remote.move.uid | Введите UID электронного письма, которое следует переместить сюда. UID можно найти в imap.0.xxx.json или в папках электронной почты |
![imap_overview_remote_move.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_move.png)
@@ -396,7 +403,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
- Это позволяет вам установить эти [точки данных](#datapoints-imap0usernameremote).
- Возможные флаги можно найти [в конфигурации экземпляра] (#instance-configuration-tab-imap-create).
- Выбор соединения IMAP возможен или применяется ко всем.
-- Разрешено максимум 100 электронных писем.
+- Разрешено максимум 100 писем.
![blockly_imap_1.png](img/blockly_imap_1.png) ![blockly_imap_2.png](../../../de/adapterref/iobroker.imap/img/blockly_imap_2.png)
@@ -407,7 +414,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
- Затем данные доставляются в формате JSON.
- При выводе журнала файл журнала становится очень большим. Поэтому позже удалите вывод журнала еще раз.
- Необходимо создать переменную с именем result.
-- Разрешено максимум 100 электронных писем.
+- Разрешено максимум 100 писем.
- [Примеры](/docs/de/EXAMPLE.md)
![blockly_imap_request.png](../../../de/adapterref/iobroker.imap/img/blockly_imap_request.png)
@@ -573,13 +580,48 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
## Changelog
-
-
### **WORK IN PROGRESS**
+- (Lucky-ESA) Mailbox folder delete added
+- (Lucky-ESA) Mailbox folder create added
+- (Lucky-ESA) Change Mailbox Folder name added
+- (Lucky-ESA) IMAP package changed
+
+### 0.2.2 (2024-11-07)
+
+- (Lucky-ESA) New design for settings page added
+- (Lucky-ESA) Crash if uid is empty for new emails
+
+### 0.2.1 (2024-09-16)
+
+- (Lucky-ESA) Update dependencies
+- (Lucky-ESA) Changed Log info to debug
+- (Lucky-ESA) Fixed blockly setFlag crash
+
+### 0.2.0 (2024-06-15)
+
+- (Lucky-ESA) Updated Blockly definitions
+- (Lucky-ESA) JS-Controller >= 5.0.19 required
+- (Lucky-ESA) Admin >=6.13.16 required
+
+### 0.1.3 (2024-03-06)
+
+- (Lucky-ESA) Fixed setFlag
+- (Lucky-ESA) Fixed sendTo error during instance deletion ([#57](https://github.com/Lucky-ESA/ioBroker.imap/issues/57))
+- (Lucky-ESA) Mass email shift intercepted
+
+### 0.1.2 (2024-01-24)
+
+- (Lucky-ESA) Added missing translate
+- (Lucky-ESA) Updated package
+- (Lucky-ESA) Bug fixes
+
+### 0.1.1 (2023-09-11)
+
+- (Lucky-ESA) Delete wrong error parse message
+
+### 0.1.0 (2023-09-06)
+
- (Lucky-ESA) Added RAM consumption - Instance Settings
- (Lucky-ESA) Added german documention
- (Lucky-ESA) Added Mailparser options
@@ -642,7 +684,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
MIT License
-Copyright (c) 2023 Lucky-ESA
+Copyright (c) 2023-2024 Lucky-ESA
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -660,4 +702,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.innoxel/README.md b/docs/ru/adapterref/iobroker.innoxel/README.md
index 47d97ac5b..f8af439c5 100644
--- a/docs/ru/adapterref/iobroker.innoxel/README.md
+++ b/docs/ru/adapterref/iobroker.innoxel/README.md
@@ -1,69 +1,71 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.innoxel/README.md
title: ioBroker.innoxel
-hash: DYyTobJiWFCFHEUKBVPRm8iV5QBcZWMfhs3JkLncA9I=
+hash: TqfTBZ14ipWOHZEM5vYMcTxv//UOU3mtRfvsOq3kFj8=
---
![Логотип](../../../en/adapterref/iobroker.innoxel/admin/innoxel.png)
![узел](https://img.shields.io/node/v-lts/iobroker.innoxel)
-![НПМ-версия](https://img.shields.io/npm/v/iobroker.innoxel.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.innoxel.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.innoxel.svg)
![лицензия](https://img.shields.io/npm/l/iobroker.innoxel)
![Количество установок](https://iobroker.live/badges/innoxel-installed.svg)
-![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/innoxel-stable.svg)
+![Текущая версия в стабильном репозитории](https://iobroker.live/badges/innoxel-stable.svg)
![Статус зависимости](https://img.shields.io/david/matthsc/iobroker.innoxel.svg)
![НПМ](https://nodei.co/npm/iobroker.innoxel.png?downloads=true)
# IoBroker.innoxel
Адаптер для Innoxel Master 3 (https://innoxel.ch)
-![Тестирование и выпуск](https://github.com/matthsc/ioBroker.innoxel/workflows/Test%20and%20Release/badge.svg)
+![Тест и выпуск](https://github.com/matthsc/ioBroker.innoxel/workflows/Test%20and%20Release/badge.svg)
## Требования
-- NodeJS >= 18.x
-- ioBroker >= 4.x, с администратором >= 5.x
-- Система «Умный дом Innoxel Master 3»
+- NodeJS >= 20.x
+- ioBroker >= 6.0.11, с администратором >= 6.x
+- Система «Умный дом» Innoxel Master 3
-## Монтаж
-Пока адаптер не является частью стабильного репозитория, вы можете установить последнюю версию, включив экспертный режим в ioBroker, и установить адаптер из npm. Не устанавливайте его напрямую с Github, это приведет к ошибке при запуске адаптера («невозможно найти стартовый файл»).
+## Установка
+Пока адаптер не является частью стабильного репозитория, вы можете установить последнюю версию, включив экспертный режим в ioBroker и установив адаптер из npm. Не устанавливайте его напрямую из Github, это приведет к ошибке при запуске адаптера ("не удается найти файл запуска").
-После установки создайте новый экземпляр и настройте параметры:
+Адаптер можно установить прямо из стабильных/бета-репозиториев. После установки создайте новый экземпляр и настройте параметры:
-- Настройки подключения для доступа к мастеру innoxel
- - айпи адрес
- - порт
- - имя пользователя
- - пароль
+- Настройки подключения для доступа к innoxel master
+- IP-адрес
+- порт
+ - имя пользователя
+ - пароль
- Интервалы опроса для разных областей
- - изменения состояния (т.е. переключатели, диммер)
- - комнатный климат/термостаты
- - погода
- - сведения о главном устройстве innoxel (требуются права администратора для пользователя, подключающегося к мастеру innoxel)
+- изменения состояния (т.е. переключатели, диммер)
+- климат в помещении / термостаты
+ - погода
+- сведения об устройстве innoxel master (требуются права администратора для пользователя, подключающегося к innoxel master)
+
+Обратите внимание: не устанавливайте адаптер напрямую из Github, это приведет к ошибке при запуске адаптера («не удается найти файл запуска»).
## Поддерживаемые модули и прошивки
-Предварительная версия этого адаптера работает уже более 2 лет с прошивкой 1.4.1.0, а затем 1.5.1.0.
+Предварительная версия этого адаптера работала более 2 лет с прошивкой 1.4.1.0, а затем 1.5.1.0.
-Эта первоначально выпущенная версия была протестирована с прошивкой 1.6.0.0.
+Первоначально выпущенная версия была протестирована с прошивкой 1.6.0.0.
-Следующие модули были протестированы/поддерживаются:
+Были протестированы/поддерживаются следующие модули:
- Инноксель Мастер 3
- Переключатель 8 G1
- Двигатель 4 x 230 В переменного тока G1
-- Размер 4 x 600 ВА
+- Мощность 4 x 600 ВА
- Дегустатор RGB
- Термо
- Станция влажной уборки P03/3-RS485-CET
-Если у вас работает с другими модулями или у вас есть другие модули, которые не работают, пожалуйста, смело открывайте проблему.
+Если у вас все работает с другими модулями или у вас есть другие модули, которые не работают, пожалуйста, не стесняйтесь открывать проблему.
## Сообщения
Адаптер поддерживает сообщения, описанные в следующих разделах.
### ТриггерВМодуле
-Имитируйте нажатие кнопки на «Дегустаторе».
+Имитация нажатия кнопки на «Тестере».
```ts
sendTo("innoxel.0", "triggerInModule", ":", callback);
@@ -71,50 +73,60 @@ sendTo("innoxel.0", "triggerInModule", ":", callback);
// i.e. to trigger button 1 on "Taster" with id/address 20
sendTo("innoxel.0", "triggerInModule", "20:1");
sendTo("innoxel.0", "triggerInModule", "20:1", () => {
- // do something after the button press has been executed
+ // do something after the button press has been executed
});
```
-- moduleId — идентификатор/адрес «Дегустатора»
-channelId - индекс кнопки на "Дегустаторе"
-- callback (необязательно) функция обратного вызова для вызова при выполнении действия
+- moduleId — это идентификатор/адрес «Тестер»
+- channelId - это индекс кнопки на "Тестере"
+- callback (необязательно) функция обратного вызова, вызываемая после выполнения действия
### SetDimValue
-Имитируйте нажатие кнопки на «Дегустаторе».
+Имитация нажатия кнопки на «Тестере».
```ts
-sendTo("innoxel.0", "setDimValue", ":::", callback);
+sendTo(
+ "innoxel.0",
+ "setDimValue",
+ ":::",
+ callback
+);
// i.e. to set the value of channel 7 on dim module 1 to 80%
sendTo("innoxel.0", "setDimValue", "1:7:80");
sendTo("innoxel.0", "setDimValue", "1:7:80", () => {
- // do something after value has been set
+ // do something after value has been set
});
```
-- moduleId — идентификатор/адрес модуля диммера.
-channelId - канал диммера на модуле
-- dimValue — устанавливаемое значение в процентах (0–100).
-- dimSpeed (необязательно) — используемая скорость затемнения (0–15).
-- callback (необязательно) функция обратного вызова для вызова при выполнении действия
+- moduleId — идентификатор/адрес модуля диммера
+- channelId - канал диммера на модуле
+- dimValue — это значение в процентах для установки (0-100)
+- dimSpeed (необязательно) — скорость затемнения, которую следует использовать (0-15)
+- callback (необязательно) функция обратного вызова, вызываемая после выполнения действия
-### Установка температуры
+### Установить температуру
Установите температуру нагрева или охлаждения.
```ts
-sendTo("innoxel.0", "setTemperature", "::", callback);
+sendTo(
+ "innoxel.0",
+ "setTemperature",
+ "::",
+ callback
+);
// i.e. to set setTemperatureHeating to 20° on room climate module 0
sendTo("innoxel.0", "setTemperature", "1:setTemperature:20");
sendTo("innoxel.0", "setTemperature", "1:setTemperature:20", () => {
- // do something after the button press has been executed
+ // do something after the button press has been executed
});
```
-- moduleId — это идентификатор/адрес модуля климата в помещении.
-temperatureType — тип температуры, который необходимо установить (absenceSetbackTemperatureCooling, отсутсвиеSetbackTemperatureHeating, nightSetbackTemperatureCooling, nightSetbackTemperatureHeating, setTemperatureCooling, setTemperatureHeating, )
-- устанавливаемая temperature с шагом 0,5°. Также есть минимальное/максимальное значение в зависимости от типа.
-- callback (необязательно) функция обратного вызова для вызова при выполнении действия
+- moduleId - это идентификатор/адрес модуля климата помещения
+- temperatureType — тип температуры, который необходимо задать (absenceSetbackTemperatureCooling, lackSetbackTemperatureHeating, nightSetbackTemperatureCooling, nightSetbackTemperatureHeating, setTemperatureCooling, setTemperatureHeating, )
+- temperature температура для установки, с шагом 0,5°. Также есть мин/макс значение в зависимости от типа
+- callback (необязательно) функция обратного вызова, вызываемая после выполнения действия
## Changelog
@@ -122,60 +134,71 @@ sendTo("innoxel.0", "setTemperature", "1:setTemperature:20", () => {
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.0.0 (2024-11-17)
+
+- (matthsc) drop support for Node 18
+- (matthsc) switch admin to json config
+- (matthsc) prepare for future controller versions (fix deprecation warnings)
+- (matthsc & dependabot) dependency updates
+
+### 0.4.2 (2024-08-11)
+
+- (matthsc & dependabot) dependency updates
+
### 0.4.1 (2024-03-23)
-- (matthsc) log soap messages in log level silly
-- (matthsc) fix another potential error when updating modules
-- (matthsc & dependabot) dependency updates
+- (matthsc) log soap messages in log level silly
+- (matthsc) fix another potential error when updating modules
+- (matthsc & dependabot) dependency updates
### 0.4.0 (2024-03-20)
-- (matthsc) fix potential error when processing identities
-- (matthsc) drop support for Node 16
+- (matthsc) fix potential error when processing identities
+- (matthsc) drop support for Node 16
### 0.3.1 (2023-05-23)
-- (matthsc) change actual value from temperature sensor if it doesn't provide values
-- (matthsc & dependabot) dependency updates
+- (matthsc) change actual value from temperature sensor if it doesn't provide values
+- (matthsc & dependabot) dependency updates
### 0.3.0 (2023-04-22)
-- (matthsc) allow to set heating/cooling temperatures
-- (matthsc & dependabot) dependency updates
+- (matthsc) allow to set heating/cooling temperatures
+- (matthsc & dependabot) dependency updates
### 0.2.0 (2022-09-28)
-- (matthsc) drop support for Node 12 and js-controller 3
-- (matthsc) implement migrations from create-adapter
-- (matthsc & dependabot) dependency updates
+- (matthsc) drop support for Node 12 and js-controller 3
+- (matthsc) implement migrations from create-adapter
+- (matthsc & dependabot) dependency updates
### 0.1.5 (2022-02-12)
-- (matthsc) don't always terminate adapter on errors while updating identities
-- (matthsc) improve error messages
+- (matthsc) don't always terminate adapter on errors while updating identities
+- (matthsc) improve error messages
### 0.1.4 (2022-01-25)
-- (matthsc) fix double decryption issues with password in adapter admin
-- (matthsc) change input field types in adapter admin
+- (matthsc) fix double decryption issues with password in adapter admin
+- (matthsc) change input field types in adapter admin
### 0.1.3 (2022-01-16)
-- (matthsc) improve error messages
+- (matthsc) improve error messages
### 0.1.2 (2022-01-07)
-- (matthsc) catch authentication errors
-- (matthsc) fix authentication
-- (matthsc) remove build folders from git
+- (matthsc) catch authentication errors
+- (matthsc) fix authentication
+- (matthsc) remove build folders from git
### 0.1.1 (2022-01-01)
-- (matthsc) implement adapter review feedback
+- (matthsc) implement adapter review feedback
### 0.1.0 (2021-12-30)
-- (matthsc) initial release
+- (matthsc) initial release
## License
@@ -199,4 +222,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.iot/README.md b/docs/ru/adapterref/iobroker.iot/README.md
index d3a7237f8..43ffd1421 100644
--- a/docs/ru/adapterref/iobroker.iot/README.md
+++ b/docs/ru/adapterref/iobroker.iot/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.iot/README.md
title: Адаптер Интернета вещей ioBroker
-hash: QLCR8kdkbOC6tKocRTAIZVdUsr+AB33jinpbjQHEiJc=
+hash: xYoZavDQBapgTH7h8L59dJHYyDlHBTnwId/tEUu+sbA=
---
![Логотип](../../../en/adapterref/iobroker.iot/admin/iot.png)
@@ -49,19 +49,19 @@ hash: QLCR8kdkbOC6tKocRTAIZVdUsr+AB33jinpbjQHEiJc=
Пример:
-- Предположим, что *уровень ВЫКЛ* составляет 30%.
-- Виртуальное устройство «Свет» имеет два физических устройства: *выключатель* и *диммер*.
-- Команда: "установить свет на 40%". Адаптер запомнит это значение для *диммера*, установит его для "диммера" и включит *выключатель*.
-- Команда: "выключить свет". Адаптер установит *диммер* на 0% и выключит *выключатель*.
-- Команда: «включить свет». *диммер* => 40%, *выключатель* => ВКЛ.
-- Команда: "установить свет на 20%". *диммер* => 20%, *переключатель* => ВЫКЛ. Значение для диммера не будет сохранено, так как оно ниже *уровня ВЫКЛ*.
-- Команда: «включить свет». *диммер* => 40%, *выключатель* => ВКЛ.
+- Предположим, что _уровень ВЫКЛ_ составляет 30%.
+- Виртуальное устройство «Свет» имеет два физических устройства: _выключатель_ и _диммер_.
+- Команда: "установить свет на 40%". Адаптер запомнит это значение для _dimmer_, установит его для "dimmer" и включит _switch_.
+- Команда: "выключить свет". Адаптер установит _диммер_ на 0% и выключит _выключатель_.
+- Команда: «включить свет». _диммер_ => 40%, _выключатель_ => ВКЛ.
+- Команда: "установить свет на 20%". _dimmer_ => 20%, _switch_ => OFF. Значение для диммера не будет сохранено, так как оно ниже _уровня OFF_.
+- Команда: «включить свет». _диммер_ => 40%, _выключатель_ => ВКЛ.
### От ON
Вы можете выбрать поведение команды ON, которая придет для состояния числа. Можно выбрать конкретное значение или будет использовано последнее ненулевое значение.
### Написать ответ
-Для каждой команды будет сгенерирован текстовый ответ. Здесь можно определить идентификатор объекта, куда должен быть записан этот текст. Например, *sayit.0.tts.text*.
+Для каждой команды будет сгенерирован текстовый ответ. Здесь можно определить идентификатор объекта, куда этот текст должен быть записан. Например, _sayit.0.tts.text_.
### Цвета
Каналу необходимо 3-5 штатов со следующими ролями:
@@ -69,7 +69,7 @@ hash: QLCR8kdkbOC6tKocRTAIZVdUsr+AB33jinpbjQHEiJc=
- `level.color.saturation` - требуется для определения канала,
- `уровень.цвет.оттенок`,
- `level.dimmer`,
-- `переключатель` - необязательно,
+- `switch` - необязательно,
- `уровень.цвет.температура` (необязательно)
```
@@ -96,10 +96,10 @@ Alexa, lock the "lock name"
Комнаты такие: гостиная, ванная, спальня.
Функции такие: свет, жалюзи, отопление.
-Для попадания состояния в автоматически сгенерированный список необходимо выполнить следующие условия:
+Для попадания штата в автоматически сгенерированный список необходимо выполнить следующие условия:
- состояние должно быть в некотором перечислении «функций».
-- состояние должно иметь роль («состояние», «переключатель» или «уровень.*», например, уровень.диммер), если оно напрямую не включено в «функции».
+- состояние должно иметь роль («состояние», «переключатель» или «уровень.\*», например, уровень.диммер), если оно напрямую не включено в «функции».
Может быть, что канал находится в «функциях», но само состояние отсутствует.
@@ -109,9 +109,9 @@ Alexa, lock the "lock name"
Если состояние находится только в «функциях» и не находится ни в одной «комнате», будет использовано название состояния.
-Имена состояний будут сгенерированы из функции и комнаты. Например, все *светильники* в *гостиной* будут собраны в виртуальном устройстве *светильник в гостиной*.
-Пользователь не может изменить это имя, так как оно генерируется автоматически.
-Но если имя перечисления изменится, это имя также изменится. (например, функция "свет" изменится на "светильники", поэтому *светильник в гостиной* будет изменен на *светильники в гостиной*)
+Имена состояний будут сгенерированы из функции и комнаты. Например, все _светильники_ в _гостиной_ будут собраны в виртуальном устройстве _светильник_ в гостиной.
+Пользователь не может изменить это имя, поскольку оно генерируется автоматически.
+Но если имя перечисления изменится, это имя также изменится. (например, функция "свет" изменится на "светильники", поэтому _светильник_ в гостиной будет изменен на _светильники_ в гостиной)
Все правила будут проигнорированы, если состояние имеет common.smartName. В этом случае будет использоваться только смарт-имя.
@@ -129,7 +129,7 @@ Alexa, lock the "lock name"
Вы можете указать строки, которые могут быть автоматически заменены в именах устройств. Например, если вы установите replaces на: `.STATE,.LEVEL`, то все `.STATE` и `.LEVEL` будут удалены из имен. Будьте осторожны с пробелами.
Если вы установите `.STATE, .LEVEL`, то будут заменены `.STATE` и `.LEVEL`, а не `.LEVEL`.
-## Вспомогательные состояния
+## Состояния помощника
- `smart.lastObjectID`: это состояние будет установлено, если только одно устройство управлялось домашним навыком (Alexa, Google Home).
- `smart.lastFunction`: Имя функции (если существует), для которой была выполнена последняя команда.
- `smart.lastRoom`: Имя комнаты (если существует), для которой была выполнена последняя команда.
@@ -158,9 +158,9 @@ Alexa v3 поддерживает режим переключения. Это о
`[GET]https://service.iobroker.in/v1/iotService?service=custom_&key=&user=&data=myString`
-Если в настройках поля «Белый список для сервисов» задать имя `custom_test` и вызвать с именем сервиса «custom_test», то состояние **cloud.0.services.custom_test** будет установлено в *myString*.
+Если в настройках поля «Белый список для сервисов» задать имя `custom_test` и вызвать с именем сервиса «custom_test», то состояние **cloud.0.services.custom_test** будет установлено в _myString_.
-Вы можете написать «*» в белом списке и все сервисы будут разрешены.
+Вы можете написать «\*» в белом списке и все сервисы будут разрешены.
Здесь вы можете найти инструкции по использованию с [таскер](doc/tasker.md).
@@ -171,17 +171,18 @@ Alexa v3 поддерживает режим переключения. Это о
Вы также можете запросить действительный URL-адрес для сервиса, отправив сообщение:
```js
-sendTo('iot.0', 'getServiceEndpoint', {serviceName: 'custom_myService'}, result =>
- console.log(JSON.stringify(result)));
- // Output: {"result":
- // {"url": "https://service.iobroker.in/v1/iotService?key=xxx&user=uuu&service=custom_myService",
- // "stateID":"iot.0.services.myService",
- // "warning":"Service name is not in white list"
- // }}
+sendTo('iot.0', 'getServiceEndpoint', { serviceName: 'custom_myService' }, result =>
+ console.log(JSON.stringify(result)),
+);
+// Output: {"result":
+// {"url": "https://service.iobroker.in/v1/iotService?key=xxx&user=uuu&service=custom_myService",
+// "stateID":"iot.0.services.myService",
+// "warning":"Service name is not in white list"
+// }}
```
### `text2command`
-Вы можете записать `text2command` в белый список, вы можете отправить POST-запрос на `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=`, чтобы записать данные в переменную *text2command.X.text*.
+Вы можете записать `text2command` в белый список, вы можете отправить POST-запрос на `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=` для записи данных в переменную _text2command.X.text_.
Вы также можете использовать метод GET `https://service.iobroker.in/v1/iotService?service=text2command&key=&user=&data=`
@@ -201,33 +202,33 @@ sendTo('iot.0', 'getServiceEndpoint', {serviceName: 'custom_myService'}, result
### `Javascript`
Есть возможность обработать вопрос напрямую скриптом. Он активируется по умолчанию, если не выбран ни один экземпляр `text2command`.
-Если определен экземпляр `text2command`, то этот экземпляр должен предоставить ответ, а ответ из *script* будет проигнорирован.
+Если определен экземпляр `text2command`, то этот экземпляр должен предоставить ответ, а ответ из _script_ будет проигнорирован.
Адаптер предоставит данные в двух состояниях с разным уровнем детализации.
-* `smart.lastCommand` содержит полученный текст, включая информацию о типе запроса (намерение). Пример: `askDevice Status Rasenmäher`
-* `smart.lastCommandObj` содержит строку JSON, которую можно преобразовать в объект, содержащий следующую информацию
-* `words` содержат полученные слова в массиве
-* `intent` содержит тип запроса. Возможные значения на данный момент:
-* v1 Навык: `askDevice`, `controlDevice`, `actionStart`, `actionEnd`, `askWhen`, `askWhere`, `askWho`
-* v2 Skill: `queryIntent`, если захвачен весь указанный текст, `controlDevice` для отката только с частичным текстом
-* `deviceId` содержит deviceId, идентифицирующий устройство, на которое был отправлен запрос, предоставленный Amazon, будет пустой строкой, если не указан
-* `deviceRoom` содержит сопоставленный идентификатор комнаты, который можно настроить в пользовательском интерфейсе администратора IoT для собранных deviceIds
-* `sessionId` содержит sessionId сеанса навыка, должен быть одинаковым, если было произнесено несколько команд, предоставляется Amazon, будет пустой строкой, если не указано
-* `userId` содержит идентификатор пользователя от владельца устройства (или, возможно, позже, пользователя, который взаимодействовал с навыком), предоставленный Amazon, будет пустой строкой, если не указан
-* `userName` содержит сопоставленное имя пользователя, которое можно настроить в пользовательском интерфейсе администратора IoT для собранных идентификаторов пользователей.
+- `smart.lastCommand` содержит полученный текст, включая информацию о типе запроса (намерение). Пример: `askDevice Status Rasenmäher`
+- `smart.lastCommandObj` содержит строку JSON, которую можно преобразовать в объект, содержащий следующую информацию
+- `words` содержат полученные слова в массиве
+- `intent` содержит тип запроса. Возможные значения на данный момент:
+- v1 Навык: `askDevice`, `controlDevice`, `actionStart`, `actionEnd`, `askWhen`, `askWhere`, `askWho`
+- v2 Skill: `queryIntent`, если захвачен весь указанный текст, `controlDevice` для отката только с частичным текстом
+- `deviceId` содержит deviceId, идентифицирующий устройство, на которое был отправлен запрос, предоставленный Amazon, будет пустой строкой, если не указан
+- `deviceRoom` содержит сопоставленный идентификатор комнаты, который можно настроить в пользовательском интерфейсе администратора IoT для собранных deviceIds
+- `sessionId` содержит sessionId сеанса навыка, должен быть одинаковым, если было произнесено несколько команд, предоставляется Amazon, будет пустой строкой, если не указано
+- `userId` содержит идентификатор пользователя от владельца устройства (или, возможно, позже, пользователя, который взаимодействовал с навыком), предоставленный Amazon, будет пустой строкой, если не указан
+- `userName` содержит сопоставленное имя пользователя, которое можно настроить в пользовательском интерфейсе администратора IoT для собранных идентификаторов пользователей.
Более подробную информацию о том, как распознаются слова и какие типы запросов различает Alexa Custom Skill, можно найти на странице https://forum.iobroker.net/viewtopic.php?f=37&t=17452.
-**Вернуть результат через состояние smart.lastResponse**
+**Возврат результата через состояние smart.lastResponse**
Ответ должен быть отправлен в течение 200 мс в состоянии `smart.lastResponse` и может быть простой текстовой строкой или объектом JSON.
Если это текстовая строка, то этот текст будет отправлен в качестве ответа на навык.
Если текст является объектом JSON, то можно использовать следующие ключи:
-* `responseText` должен содержать текст для возврата на Amazon
-* `shouldEndSession` — логическое значение, которое управляет закрытием сеанса после произнесения ответа или его сохранением для приема другого голосового ввода.
-* `sessionId` должен содержать sessionId, для которого предназначен ответ. В идеале предоставьте его, чтобы разрешить параллельные сеансы. Если не указано, предполагается первый сеанс, ожидающий ответа.
+- `responseText` должен содержать текст для возврата на Amazon
+- `shouldEndSession` — логическое значение, которое управляет закрытием сеанса после произнесения ответа или его сохранением для приема другого голосового ввода.
+- `sessionId` должен содержать sessionId, для которого предназначен ответ. В идеале предоставьте его, чтобы разрешить параллельные сеансы. Если не указано, предполагается первый сеанс, ожидающий ответа.
**Вернуть результат через сообщение экземпляру IoT**
@@ -238,7 +239,7 @@ sendTo('iot.0', 'getServiceEndpoint', {serviceName: 'custom_myService'}, result
```js
// important, that ack=true
-on({id: 'iot.0.smart.lastCommand', ack: true, change: 'any'}, obj => {
+on({ id: 'iot.0.smart.lastCommand', ack: true, change: 'any' }, obj => {
// you have 200ms to prepare the answer and to write it into iot.X.smart.lastResponse
setState('iot.0.smart.lastResponse', 'Received phrase is: ' + obj.state.val); // important, that ack=false (default)
});
@@ -248,13 +249,13 @@ on({id: 'iot.0.smart.lastCommand', ack: true, change: 'any'}, obj => {
```js
// important, that ack=true
-on({id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any'}, obj => {
+on({ id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any' }, obj => {
// you have 200ms to prepare the answer and to write it into iot.X.smart.lastResponse
const request = JSON.parse(obj.state.val);
const response = {
- 'responseText': 'Received phrase is: ' + request.words.join(' ') + '. Bye',
- 'shouldEndSession': true,
- 'sessionId': request.sessionId
+ responseText: 'Received phrase is: ' + request.words.join(' ') + '. Bye',
+ shouldEndSession: true,
+ sessionId: request.sessionId,
};
// Return response via state
@@ -273,7 +274,7 @@ on({id: 'iot.0.smart.lastCommandObj', ack: true, change: 'any'}, obj => {
```js
const OBJECT_FROM_ALISA_SERVICE = {}; // object from alisa service or empty object
OBJECT_FROM_ALISA_SERVICE.alisa = '/path/v1.0/user/devices'; // called URL, 'path' could be any text, but it must be there
-sendTo('iot.0', 'private', {type: 'alisa', request: OBJECT_FROM_ALISA_SERVICE}, response => {
+sendTo('iot.0', 'private', { type: 'alisa', request: OBJECT_FROM_ALISA_SERVICE }, response => {
// Send this response back to alisa service
console.log(JSON.stringify(response));
});
@@ -318,387 +319,510 @@ setState('iot.0.app.message', JSON.stringify({
### **РАБОТА В ХОДЕ** -->
## Changelog
+### 3.4.3 (2024-11-05)
+
+- (@GermanBluefox) corrected the addition of the devices for Alexa
+- (@GermanBluefox) changed compilation of GUI to remove deprecated packages
+
### 3.4.2 (2024-09-17)
-* (@GermanBluefox) Updated GUI packages and removed `gulp`
-* (@foxriver76) do not override custom `result` attribute on `sendToAdapter` response (Visu App - only relevant for developers)
+
+- (@GermanBluefox) Updated GUI packages and removed `gulp`
+- (@foxriver76) do not override custom `result` attribute on `sendToAdapter` response (Visu App - only relevant for developers)
### 3.4.0 (2024-08-26)
-* (@foxriver76) added new commands for the visu app
-* (bluefox) updated packages
-* (bluefox) Migrated GUI for admin v7
+
+- (@foxriver76) added new commands for the visu app
+- (bluefox) updated packages
+- (bluefox) Migrated GUI for admin v7
### 3.3.0 (2024-05-09)
-* (foxriver76) Fix error on reconnecting
-* (foxriver76) prepared adapter for new ioBroker Visu app states
-* (bluefox) updated packages
+
+- (foxriver76) Fix error on reconnecting
+- (foxriver76) prepared adapter for new ioBroker Visu app states
+- (bluefox) updated packages
### 3.2.2 (2024-04-11)
-* (foxriver76) remove some warnings that should only be debug log
+
+- (foxriver76) remove some warnings that should only be debug log
### 3.2.1 (2024-04-11)
-* (foxriver76) fixed issue that only valid JSON could be sent to app via message state
+
+- (foxriver76) fixed issue that only valid JSON could be sent to app via message state
### 3.2.0 (2024-04-10)
-* (foxriver76) implemented geofence with ioBroker Visu app
+
+- (foxriver76) implemented geofence with ioBroker Visu app
### 3.1.0 (2024-02-05)
-* (bluefox) Updated packages
-* (bluefox) Disabled the state change report for alexa v3
+
+- (bluefox) Updated packages
+- (bluefox) Disabled the state change report for alexa v3
### 3.0.0 (2023-10-24)
-* (bluefox) Updated packages
-* (bluefox) The minimal supported node.js version is 16
+
+- (bluefox) Updated packages
+- (bluefox) The minimal supported node.js version is 16
### 2.0.11 (2023-06-20)
-* (bluefox) Added support for the state toggling (alexa 3)
-* (bluefox) Done small improvements for alexa 3
+
+- (bluefox) Added support for the state toggling (alexa 3)
+- (bluefox) Done small improvements for alexa 3
### 2.0.9 (2023-06-15)
-* (bluefox) Working on support for amazon alexa v3
+
+- (bluefox) Working on support for amazon alexa v3
### 2.0.2 (2023-06-05)
-* (bluefox) Added support for amazon alexa v3
-* (bluefox) Removed support for sugar blood indication
+
+- (bluefox) Added support for amazon alexa v3
+- (bluefox) Removed support for sugar blood indication
### 1.14.6 (2023-05-12)
-* (bluefox) Corrected translations
+
+- (bluefox) Corrected translations
### 1.14.5 (2023-03-01)
-* (bluefox) Corrected names of enums in GUI
+
+- (bluefox) Corrected names of enums in GUI
### 1.14.3 (2023-01-10)
-* (kirovilya) Fixed processing for lights with CT and RGB in Alisa
+
+- (kirovilya) Fixed processing for lights with CT and RGB in Alisa
### 1.14.2 (2022-12-23)
-* (bluefox) Updated GUI packages
+
+- (bluefox) Updated GUI packages
### 1.14.1 (2022-12-22)
-* (bluefox) Downgraded the axios version to 0.27.2
+
+- (bluefox) Downgraded the axios version to 0.27.2
### 1.14.0 (2022-12-13)
-* (bluefox) Added netatmo support
+
+- (bluefox) Added netatmo support
### 1.13.0 (2022-12-08)
-* (Apollon77) Added support vor Custom Skill v2
+
+- (Apollon77) Added support vor Custom Skill v2
### 1.12.5 (2022-11-09)
-* (bluefox) Small changes on configuration GUI
+
+- (bluefox) Small changes on configuration GUI
### 1.12.4 (2022-11-03)
-* (bluefox) Added ukrainian language
-* (bluefox) Corrected blockly for unknown languages
+
+- (bluefox) Added ukrainian language
+- (bluefox) Corrected blockly for unknown languages
### 1.12.2 (2022-10-01)
-* (Apollon77) Fixed crash case
+
+- (Apollon77) Fixed crash case
### 1.12.1 (2022-09-27)
-* (bluefox) Corrected error in GUI with empty password
+
+- (bluefox) Corrected error in GUI with empty password
### 1.12.0 (2022-09-27)
-* (Apollon77) Do not control saturation with a percentage request via alexa
-* (bluefox) Migrated GUI to v5
+
+- (Apollon77) Do not control saturation with a percentage request via alexa
+- (bluefox) Migrated GUI to v5
### 1.11.9 (2022-07-22)
-* (Apollon77) Fix temperature controlling for thermostats via alexa
+
+- (Apollon77) Fix temperature controlling for thermostats via alexa
### 1.11.8 (2022-06-24)
-* (Apollon77) Update dependencies to allow better automatic rebuild
+
+- (Apollon77) Update dependencies to allow better automatic rebuild
### 1.11.7 (2022-06-13)
-* (bluefox) Tried to correct URL key creation for Google home
+
+- (bluefox) Tried to correct URL key creation for Google home
### 1.11.5 (2022-06-03)
-* (kirovilya) Alisa: update for binary-sensor "motion" and "contact"
+
+- (kirovilya) Alisa: update for binary-sensor "motion" and "contact"
### 1.11.4 (2022-03-29)
-* (Apollon77) Fix crash cases reported by Sentry
+
+- (Apollon77) Fix crash cases reported by Sentry
### 1.11.3 (2022-03-23)
-* (bluefox) Added the generation of URL key for services
+
+- (bluefox) Added the generation of URL key for services
### 1.11.2 (2022-03-20)
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3P)
+
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3P)
### 1.11.1 (2022-03-18)
-* (Apollon77) Optimize logging when many devices are used
+
+- (Apollon77) Optimize logging when many devices are used
### 1.11.0 (2022-03-17)
-* (Apollon77) Also support "stored" when a rgb state is turned on/off
-* (Apollon77) Fixed control percent value to respect min/max correctly
-* (bluefox) Support for response messages longer than 128k (zip)
+
+- (Apollon77) Also support "stored" when a rgb state is turned on/off
+- (Apollon77) Fixed control percent value to respect min/max correctly
+- (bluefox) Support for response messages longer than 128k (zip)
### 1.10.0 (2022-03-09)
-* (Apollon77) Respect min/max when calculating the value for byOn with % values
+
+- (Apollon77) Respect min/max when calculating the value for byOn with % values
### 1.9.7 (2022-02-20)
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3C)
+
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3C)
### 1.9.6 (2022-02-19)
-* (Apollon77) Make sure to not remember the off value when using stored values for on
-* (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3A)
+
+- (Apollon77) Make sure to not remember the off value when using stored values for on
+- (Apollon77) Fix crash case reported by Sentry (IOBROKER-IOT-3A)
### 1.9.5 (2022-02-08)
-* (bluefox) Fixed Google home error with color control
+
+- (bluefox) Fixed Google home error with color control
### 1.9.4 (2022-02-08)
-* (bluefox) Fixed error with the certificates fetching
+
+- (bluefox) Fixed error with the certificates fetching
### 1.9.3 (2022-02-03)
-* (bluefox) Removed deprecated package `request`
-* (bluefox) Refactoring and better error handling
+
+- (bluefox) Removed deprecated package `request`
+- (bluefox) Refactoring and better error handling
### 1.9.2 (2022-01-26)
-* (bluefox) Added experimental support for remote access
+
+- (bluefox) Added experimental support for remote access
### 1.8.25 (2021-11-18)
-* (bluefox) Corrected the enabling of the category
+
+- (bluefox) Corrected the enabling of the category
### 1.8.24 (2021-09-19)
-* (bluefox) Respect the min/max limits by controlling
+
+- (bluefox) Respect the min/max limits by controlling
### 1.8.23 (2021-09-18)
-* (bluefox) Fixed the response for the heating control
+
+- (bluefox) Fixed the response for the heating control
### 1.8.22 (2021-05-16)
-* (bluefox) Make it admin4 compatible
+
+- (bluefox) Make it admin4 compatible
### 1.8.21 (2021-05-16)
-* (bluefox) Fixed the encryption of the password. Warning: if you see the message in the log, that password is invalid, please enter the password in configuration dialog one more time and save.
+
+- (bluefox) Fixed the encryption of the password. Warning: if you see the message in the log, that password is invalid, please enter the password in configuration dialog one more time and save.
### 1.8.20 (2021-05-16)
-* (foxriver76) we now write data received from custom services with the acknowledge flag
+
+- (foxriver76) we now write data received from custom services with the acknowledge flag
### 1.8.19 (2021-05-14)
-* (bluefox) Only added one debug output
+
+- (bluefox) Only added one debug output
### 1.8.16 (2021-03-13)
-* (bluefox) fixed the blind functionality in alisa
+
+- (bluefox) fixed the blind functionality in alisa
### 1.8.15 (2021-03-12)
-* (bluefox) implemented the sensor functionality in alisa
+
+- (bluefox) implemented the sensor functionality in alisa
### 1.8.14 (2021-03-12)
-* (bluefox) allowed the control of the blinds in alisa
+
+- (bluefox) allowed the control of the blinds in alisa
### 1.8.13 (2021-02-04)
-* (Apollon77) add missing object smart.lastObjectID
+
+- (Apollon77) add missing object smart.lastObjectID
### 1.8.12 (2021-02-02)
-* (bluefox) Fixed the dimmer issue with alisa.
+
+- (bluefox) Fixed the dimmer issue with alisa.
### 1.8.11 (2021-01-20)
-* (Morluktom) Alexa - Corrected the request for percentage values
+
+- (Morluktom) Alexa - Corrected the request for percentage values
### 1.8.10 (2021-01-20)
-* (bluefox) Added the reconnection strategy if DNS address cannot be resolved
+
+- (bluefox) Added the reconnection strategy if DNS address cannot be resolved
### 1.8.9 (2020-12-27)
-* (bluefox) Updated configuration GUI to the latest state
+
+- (bluefox) Updated configuration GUI to the latest state
### 1.8.8 (2020-12-14)
-* (bluefox) Corrected the "Google home" error
+
+- (bluefox) Corrected the "Google home" error
### 1.8.6 (2020-12-13)
-* (bluefox) Try to fix google home error
+
+- (bluefox) Try to fix google home error
### 1.8.5 (2020-11-23)
-* (bluefox) Corrected the configuration table for Google home
+
+- (bluefox) Corrected the configuration table for Google home
### 1.8.4 (2020-11-18)
-* (bluefox) Corrected the configuration table for Google home
+
+- (bluefox) Corrected the configuration table for Google home
### 1.8.3 (2020-11-16)
-* (bluefox) Trying to fix the set to false at start for Google home
+
+- (bluefox) Trying to fix the set to false at start for Google home
### 1.8.2 (2020-11-15)
-* (bluefox) Added the debug outputs for Google home
+
+- (bluefox) Added the debug outputs for Google home
### 1.8.1 (2020-11-13)
-* (bluefox) The deletion of google home devices was corrected
+
+- (bluefox) The deletion of google home devices was corrected
### 1.8.0 (2020-11-12)
-* (bluefox) The Google home table was rewritten
+
+- (bluefox) The Google home table was rewritten
### 1.7.15 (2020-11-05)
-* (Morluktom) Corrected the request for temperature
+
+- (Morluktom) Corrected the request for temperature
### 1.7.14 (2020-11-05)
-* (bluefox) Updated the select ID dialog.
+
+- (bluefox) Updated the select ID dialog.
### 1.7.12 (2020-09-25)
-* (bluefox) Updated the select ID dialog.
+
+- (bluefox) Updated the select ID dialog.
### 1.7.9 (2020-09-17)
-* (bluefox) Updated GUI for config.
+
+- (bluefox) Updated GUI for config.
### 1.7.7 (2020-09-02)
-* (bluefox) Added information about changed linking process.
+
+- (bluefox) Added information about changed linking process.
### 1.7.6 (2020-08-25)
-* (bluefox) Some colors were changed in the dark mode.
+
+- (bluefox) Some colors were changed in the dark mode.
### 1.7.5 (2020-08-21)
-* (Apollon77) Crash prevented (Sentry IOBROKER-IOT-W)
-* (bluefox) Values for modes will be converted to number in Alisa
+
+- (Apollon77) Crash prevented (Sentry IOBROKER-IOT-W)
+- (bluefox) Values for modes will be converted to number in Alisa
### 1.7.3 (2020-08-16)
-* (bluefox) Added vacuum cleaner to Alisa
+
+- (bluefox) Added vacuum cleaner to Alisa
### 1.7.1 (2020-08-16)
-* (bluefox) Added blinds, lock and thermostat to Alisa
+
+- (bluefox) Added blinds, lock and thermostat to Alisa
### 1.6.4 (2020-08-06)
-* (Apollon77) crash prevented (Sentry IOBROKER-IOT-V)
+
+- (Apollon77) crash prevented (Sentry IOBROKER-IOT-V)
### 1.6.3 (2020-08-04)
-* (bluefox) Added french letters to allowed symbols
+
+- (bluefox) Added french letters to allowed symbols
### 1.6.1 (2020-07-10)
-* (bluefox) Used new SelectID Dialog in GUI
+
+- (bluefox) Used new SelectID Dialog in GUI
### 1.5.3 (2020-05-28)
-* (bluefox) Small change for nightscout
+
+- (bluefox) Small change for nightscout
### 1.5.2 (2020-05-21)
-* (bluefox) Changed requirements for password
-* (bluefox) Do not try to load the "sharp" if the blood sugar not enabled
+
+- (bluefox) Changed requirements for password
+- (bluefox) Do not try to load the "sharp" if the blood sugar not enabled
### 1.4.18 (2020-05-11)
-* (Apollon77) Make sure that invalid configured states or values without a timestamp do not crash adapter (Sentry IOBROKER-IOT-8)
-* (Apollon77) Make sure publishes after the disconnect to not break adapter (Sentry IOBROKER-IOT-A)
+
+- (Apollon77) Make sure that invalid configured states or values without a timestamp do not crash adapter (Sentry IOBROKER-IOT-8)
+- (Apollon77) Make sure publishes after the disconnect to not break adapter (Sentry IOBROKER-IOT-A)
### 1.4.17 (2020-05-11)
-* (bluefox) Better error output is implemented
+
+- (bluefox) Better error output is implemented
### 1.4.14 (2020-05-01)
-* (bluefox) Fixed the problem if admin is not on 8081 port
+
+- (bluefox) Fixed the problem if admin is not on 8081 port
### 1.4.12 (2020-04-30)
-* (Apollon77) error case handled where system.config objects does not exist (Sentry IOBROKER-IOT-5)
+
+- (Apollon77) error case handled where system.config objects does not exist (Sentry IOBROKER-IOT-5)
### 1.4.11 (2020-04-26)
-* (bluefox) fixed IOBROKER-IOT-REACT-F
+
+- (bluefox) fixed IOBROKER-IOT-REACT-F
### 1.4.10 (2020-04-24)
-* (bluefox) Fixed crashes reported by sentry
+
+- (bluefox) Fixed crashes reported by sentry
### 1.4.7 (2020-04-23)
-* fixed iot crash when timeouts in communications to Google happens (Sentry IOBROKER-IOT-2)
-* fixed iot crash when google answers without customData (Sentry IOBROKER-IOT-1)
+
+- fixed iot crash when timeouts in communications to Google happens (Sentry IOBROKER-IOT-2)
+- fixed iot crash when google answers without customData (Sentry IOBROKER-IOT-1)
### 1.4.6 (2020-04-18)
-* (Apollon77) Add the Sentry error reporting to `React Frontend`
+
+- (Apollon77) Add the Sentry error reporting to `React Frontend`
### 1.4.4 (2020-04-14)
-* (Apollon77) remove js-controller 3.0 warnings and replace `adapter.objects` access
-* (Apollon77) add linux dependencies for canvas library
-* (Apollon77) add sentry configuration
+
+- (Apollon77) remove js-controller 3.0 warnings and replace `adapter.objects` access
+- (Apollon77) add linux dependencies for canvas library
+- (Apollon77) add sentry configuration
### 1.4.2 (2020-04-08)
-* (TA2k) Fix updateState for Google Home
+
+- (TA2k) Fix updateState for Google Home
### 1.4.1 (2020-04-04)
-* (bluefox) The blood glucose request supported now
+
+- (bluefox) The blood glucose request supported now
### 1.3.4 (2020-02-26)
-* (TA2k) Fixed deconz issues in Google Home
+
+- (TA2k) Fixed deconz issues in Google Home
### 1.3.3 (2020-02-12)
-* (Apollon77) fix alisa error with invalid smartName attributes
+
+- (Apollon77) fix alisa error with invalid smartName attributes
### 1.3.2 (2020-02-10)
-* (Apollon77) usage with all kinds of admin ports and reverse proxies optimized
+
+- (Apollon77) usage with all kinds of admin ports and reverse proxies optimized
### 1.3.1 (2020-02-09)
-* (Apollon77) Dependency updates
-* (Apollon77) Make compatible with Admin > 4.0 because of updated socket.io
+
+- (Apollon77) Dependency updates
+- (Apollon77) Make compatible with Admin > 4.0 because of updated socket.io
### 1.2.1 (2020-01-18)
-* (bluefox) Fixed problem if the port of admin is not 8081
+
+- (bluefox) Fixed problem if the port of admin is not 8081
### 1.2.0 (2020-01-04)
-* (TA2k) Google Home handling and visualization improved.
+
+- (TA2k) Google Home handling and visualization improved.
### 1.1.10 (2020-01-03)
-* (bluefox) Now is allowed to select the temperature values as alexa states
-* (bluefox) Allowed the setting type immediately after insertion of new state
+
+- (bluefox) Now is allowed to select the temperature values as alexa states
+- (bluefox) Allowed the setting type immediately after insertion of new state
### 1.1.9 (2019-11-27)
-* (bluefox) Fixed: sometimes the configuration could not be loaded
+
+- (bluefox) Fixed: sometimes the configuration could not be loaded
### 1.1.8 (2019-09-12)
-* (bluefox) Optimization of google home communication was done
+
+- (bluefox) Optimization of google home communication was done
### 1.1.7 (2019-09-11)
-* (bluefox) The sending rate to google home is limited now
+
+- (bluefox) The sending rate to google home is limited now
### 1.1.6 (2019-09-11)
-* (TA2k) Room fix for Google Home and LinkedDevices
+
+- (TA2k) Room fix for Google Home and LinkedDevices
### 1.1.4 (2019-09-10)
-* (bluefox) decreased keepalive value to fix issue with disconnect
+
+- (bluefox) decreased keepalive value to fix issue with disconnect
### 1.1.3 (2019-09-09)
-* (TA2k) Google Home problem fixed with LinkedDevices
+
+- (TA2k) Google Home problem fixed with LinkedDevices
### 1.1.0 (2019-09-06)
-* (bluefox) Added support of aliases
+
+- (bluefox) Added support of aliases
### 1.0.8 (2019-09-03)
-* (TA2k) Improved support for Google Home
-* (TA2k) Added auto detection for RGB, RGBSingle, Hue, CT, MediaDevice, Switch, Info, Socket, Light, Dimmer, Thermostat, WindowTilt, Blinds, Slider
-* (TA2k) Added support for manually adding states as devices
-* (TA2k) Fix update state after Sync
-* (TA2k) Added typical Google Home devices and traits/actions
-* (TA2k) Fix only process update message when Alexa is checked in the options
+
+- (TA2k) Improved support for Google Home
+- (TA2k) Added auto detection for RGB, RGBSingle, Hue, CT, MediaDevice, Switch, Info, Socket, Light, Dimmer, Thermostat, WindowTilt, Blinds, Slider
+- (TA2k) Added support for manually adding states as devices
+- (TA2k) Fix update state after Sync
+- (TA2k) Added typical Google Home devices and traits/actions
+- (TA2k) Fix only process update message when Alexa is checked in the options
### 1.0.4 (2019-08-01)
-* (bluefox) Fixed password encoding. Please enter password anew!
+
+- (bluefox) Fixed password encoding. Please enter password anew!
### 1.0.3 (2019-07-30)
-* (bluefox) Fixed language issues for google home and yandex alice
+
+- (bluefox) Fixed language issues for google home and yandex alice
### 1.0.1 (2019-07-26)
-* (bluefox) Support of private skills/actions was added.
+
+- (bluefox) Support of private skills/actions was added.
### 1.0.0 (2019-07-14)
-* (TA2k) Google Home list was added
+
+- (TA2k) Google Home list was added
### 0.5.0 (2019-06-29)
-* (bluefox) tried to add yandex Alisa
+
+- (bluefox) tried to add yandex Alisa
### 0.4.3 (2019-04-14)
-* (Apollon77) Change enable/disable of Amazon Alexa and of Google Home from configuration to be really "active if selected".
+
+- (Apollon77) Change enable/disable of Amazon Alexa and of Google Home from configuration to be really "active if selected".
### 0.4.2 (2019-03-10)
-* (bluefox) Allowed the enablement and disable of Amazon Alexa and of Google Home from configuration.
+
+- (bluefox) Allowed the enablement and disable of Amazon Alexa and of Google Home from configuration.
### 0.4.1 (2019-02-19)
-* (bluefox) Add version check to google home
+
+- (bluefox) Add version check to google home
### 0.3.1 (2019-01-13)
-* (bluefox) Blockly was fixed
+
+- (bluefox) Blockly was fixed
### 0.3.0 (2018-12-30)
-* (bluefox) Detection of google devices was fixed
+
+- (bluefox) Detection of google devices was fixed
### 0.2.2 (2018-12-21)
-* (bluefox) Generation of new URL key was added
+
+- (bluefox) Generation of new URL key was added
### 0.2.0 (2018-12-18)
-* (bluefox) Change the name of adapter
+
+- (bluefox) Change the name of adapter
### 0.1.8 (2018-10-21)
-* (bluefox) Added extended diagnostics
+
+- (bluefox) Added extended diagnostics
### 0.1.7 (2018-10-14)
-* (bluefox) The configuration dialog was corrected
-* (bluefox) The possibility to create the answer with script for the custom skill was implemented.
+
+- (bluefox) The configuration dialog was corrected
+- (bluefox) The possibility to create the answer with script for the custom skill was implemented.
### 0.1.4 (2018-09-26)
-* (bluefox) Initial commit
+
+- (bluefox) Initial commit
## License
+
The MIT License (MIT)
Copyright (c) 2018-2024 bluefox
diff --git a/docs/ru/adapterref/iobroker.jarvis/README.md b/docs/ru/adapterref/iobroker.jarvis/README.md
index 69856fb67..a8bc8f672 100644
--- a/docs/ru/adapterref/iobroker.jarvis/README.md
+++ b/docs/ru/adapterref/iobroker.jarvis/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.jarvis/README.md
title: ioBroker.jarvis
-hash: KSvW8ve4ZT7Jk52w78rJmlfhmgzdUxEPaSPja/wZZsA=
+hash: 7dGnIcESzpt2hq2CRF8X0hdehc4Sx3hFqFZfOmFh0Ic=
---
![Логотип](../../../en/adapterref/iobroker.jarvis/admin/jarvis.png)
@@ -17,7 +17,7 @@ hash: KSvW8ve4ZT7Jk52w78rJmlfhmgzdUxEPaSPja/wZZsA=
![в стадии тестирования или ожидания обратной связи](https://img.shields.io/github/issues-search/Zefau/ioBroker.jarvis?query=is%3Aissue%20is%3Aopen%20label%3A%22%23status%3A%20ready-to-test%20%3Aheavy_check_mark%3A%22%2C%22%23status%3A%20waiting-for-feedback%20%3Ahourglass%3A%22%20&label=in%20testing%20or%20waiting%20for%20feedback&color=green)
# IoBroker.jarvis jarvis - просто еще один замечательный vis
-[![npm публикация](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/publish-npm.yml/badge.svg)](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/publish-npm.yml)
+[![Тестирование и выпуск](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/Zefau/ioBroker.jarvis/actions/workflows/test-and-release.yml)
## Anleitung / Установка / Hilfe
Сиехе [Коллекция ссылок в Wiki](https://github.com/Zefau/ioBroker.jarvis/wiki).
diff --git a/docs/ru/adapterref/iobroker.kisshome-research/README.md b/docs/ru/adapterref/iobroker.kisshome-research/README.md
index b48968753..23527fe95 100644
--- a/docs/ru/adapterref/iobroker.kisshome-research/README.md
+++ b/docs/ru/adapterref/iobroker.kisshome-research/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.kisshome-research/README.md
title: ioBroker KISSHome исследование
-hash: fAGv4G+hivk/fDF9RiPUhvcTaET15Nf61udWouped1E=
+hash: 1XWos8WsmSfOwyeFOimaVrYdFl5uCky6s/FppPchK7Q=
---
![Логотип](../../../en/adapterref/iobroker.kisshome-research/admin/kisshome-research.png)
@@ -26,72 +26,101 @@ hash: fAGv4G+hivk/fDF9RiPUhvcTaET15Nf61udWouped1E=
- Маршрутизатор Fritz!Box. Без `Fritz!Box` адаптер работать не будет.
- iobroker должен работать на Debian/Raspbian (или, по крайней мере, на Linux, где доступны следующие команды: `which`, `rsync`)
-## То, что нужно сделать
-Определить IP-адреса из:
+## Деинсталляция
+Открытый ключ, необходимый для связи, хранится в `0_userdata.0.kisshomeResearchPublicKey`.
+После удаления адаптера ключ необходимо удалить вручную.
-- [ ] хоумконнект,
+Это было необходимо для того, чтобы можно было без проблем удалить и установить адаптер снова.
## Changelog
+### 1.2.4 (2024-11-19)
+
+- Empty MAC addresses will be ignored
+
+### 1.2.3 (2024-11-15)
+
+- (@GermanBluefox) Do not start recording if no one MAC address was provided
+- (@GermanBluefox) The keys are stored in `0_userdata.0.kisshomeResearchPublicKey` to make it possible to uninstall and install the adapter again without any problems
+- (@GermanBluefox) Corrected problem with PCAP files without the META-description
+
+### 1.1.2 (2024-11-12)
+
+- (@GermanBluefox) Corrected the input of IP addresses in the configuration
+
+### 1.1.1 (2024-10-30)
+
+- (@GermanBluefox) Removed unused code
+- (@GermanBluefox) Creation of META file if not exists
+- (@GermanBluefox) Description for address must be longer than three characters
+- (@GermanBluefox) Added adapter version to the meta file name
+
+### 1.0.13 (2024-10-17)
+
+- (gsenkowski) Used actual IP and TCP header length for the PCAP file
+
### 1.0.11 (2024-09-26)
-- (bluefox) Trying to fix CI
-- (bluefox) Do not allow the traffic recording of FritzBox
-- (bluefox) Do not allow recording the traffic if no any MAC provided
-- (bluefox) Corrected links to web page
+
+- (@GermanBluefox) Trying to fix CI
+- (@GermanBluefox) Do not allow the traffic recording of FritzBox
+- (@GermanBluefox) Do not allow recording the traffic if no any MAC provided
+- (@GermanBluefox) Corrected links to web page
### 1.0.7 (2024-09-21)
-- (bluefox) Corrected the error if MAC address cannot be determined
+
+- (@GermanBluefox) Corrected the error if MAC address cannot be determined
### 1.0.6 (2024-09-21)
+
- (ChrisDietrich) Corrected the link in readme.md
-- (bluefox) Corrected the Big-Endian PCAP format
-- (bluefox) the Fixed build pipeline
+- (@GermanBluefox) Corrected the Big-Endian PCAP format
+- (@GermanBluefox) the Fixed build pipeline
### 1.0.4 (2024-09-19)
-- (bluefox) Corrected GUI
-- (bluefox) Filter out not used interfaces
-- (bluefox) Added notification to admin if public key not accepted
-- (bluefox) Try to detect zero bytes interfaces
+- (@GermanBluefox) Corrected GUI
+- (@GermanBluefox) Filter out not used interfaces
+- (@GermanBluefox) Added notification to admin if public key not accepted
+- (@GermanBluefox) Try to detect zero bytes interfaces
### 1.0.2 (2024-09-15)
-- (bluefox) Added error logging
+- (@GermanBluefox) Added error logging
### 1.0.1 (2024-09-14)
-- (bluefox) Implemented the support for the big endian format of a PCAP file
+- (@GermanBluefox) Implemented the support for the big endian format of a PCAP file
### 1.0.0 (2024-09-06)
-- (bluefox) Corrected configuration page
+- (@GermanBluefox) Corrected configuration page
### 0.3.1 (2024-08-31)
-- (bluefox) Added detection of some IPs
+- (@GermanBluefox) Added detection of some IPs
### 0.2.1 (2024-08-28)
-- (bluefox) used valid URL address
+- (@GermanBluefox) used valid URL address
### 0.1.1 (2024-08-20)
-- (bluefox) Used MD5 for the file consistency check
+- (@GermanBluefox) Used MD5 for the file consistency check
### 0.1.0 (2024-08-19)
-- (bluefox) File upload was implemented
+- (@GermanBluefox) File upload was implemented
### 0.0.3 (2024-08-14)
-- (bluefox) Added the recording enabled option
+- (@GermanBluefox) Added the recording enabled option
### 0.0.2 (2024-07-22)
-- (bluefox) Initial commit
+- (@GermanBluefox) Initial commit
## License
diff --git a/docs/ru/adapterref/iobroker.libre/README.md b/docs/ru/adapterref/iobroker.libre/README.md
index 7ba8f109b..866a9326d 100644
--- a/docs/ru/adapterref/iobroker.libre/README.md
+++ b/docs/ru/adapterref/iobroker.libre/README.md
@@ -1,45 +1,55 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.libre/README.md
title: ioBroker.libre
-hash: QtphTuSjYnDaRYvGnj0sSh4zJGwX4OdPanA4RN5P9cs=
+hash: 04ToZkj7gRRYLr77st19b2kTTOVGNspsAhOwI2zrLe0=
---
![Логотип](../../../en/adapterref/iobroker.libre/admin/libre.png)
-![версия NPM](https://img.shields.io/npm/v/iobroker.libre.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.libre.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.libre.svg)
-![Количество установок (последние)](https://iobroker.live/badges/libre-installed.svg)
+![Количество установок (последнее)](https://iobroker.live/badges/libre-installed.svg)
![Количество установок (стабильно)](https://iobroker.live/badges/libre-stable.svg)
![Статус зависимости](https://img.shields.io/david/TA2k/iobroker.libre.svg)
![НПМ](https://nodei.co/npm/iobroker.libre.png?downloads=true)
# IoBroker.libre
-**Тесты:** ![Тестируйте и выпускайте](https://github.com/TA2k/ioBroker.libre/workflows/Test%20and%20Release/badge.svg)
+**Тесты:** ![Тест и выпуск](https://github.com/TA2k/ioBroker.libre/workflows/Test%20and%20Release/badge.svg)
-## Бесплатный адаптер для ioBroker
+## Свободный адаптер для ioBroker
Адаптер для Libre через LibreLinkUp
-## Войти
-Für LibreLinkUp добавлен. В Freestyle Libre App с LibreLinkUp добавлена и установлена LibreLinkUp Zugangsdaten в собственном адаптере.
+## Логинаблауф
+Для перехода к бесплатной ссылке. В бесплатном приложении Freestyle с LibreLinkUp используется и LibreLinkUp устанавливается в адаптер.
-## Штойерн и Верте
-Актуальный Бесплатный.0.id.graph.connection.GlucoseMeasurement.Value Graph Бесплатный.0.id.graph.graphData01.Value
+## Штейерн и Верте
+Aktueller Wert libre.0.id.graph.connection. глюкозыMeasurement.Value Graph Werte libre.0.id.graph.graphData01.Value
-libre.0.vin.remote.refresh вручную Обновить
+libre.0.vin.remote.refresh мануал Обновить
-## Обсуждение и обсуждение
+## Обсуждение и Фрагменты
## Changelog
+### 0.1.3 (2024-11-15)
+
+- login fixed
+
+### 0.0.3
+
+- (TA2k) fix login
+
### 0.0.2
-* (TA2k) initial release
+
+- (TA2k) initial release
## License
+
MIT License
-Copyright (c) 2022 TA2k
+Copyright (c) 2022-2030 TA2k
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -57,4 +67,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.libre/admin/libre.png b/docs/ru/adapterref/iobroker.libre/admin/libre.png
new file mode 100644
index 000000000..45358a500
Binary files /dev/null and b/docs/ru/adapterref/iobroker.libre/admin/libre.png differ
diff --git a/docs/ru/adapterref/iobroker.mytime/README.md b/docs/ru/adapterref/iobroker.mytime/README.md
index f6aefb584..5bf1151a2 100644
--- a/docs/ru/adapterref/iobroker.mytime/README.md
+++ b/docs/ru/adapterref/iobroker.mytime/README.md
@@ -1,371 +1,509 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.mytime/README.md
title: ioBroker.mytime
-hash: xMMKU/tNSgObOEGe6ERoprb7/chSmR7eBPmGaK7+758=
+hash: ax4tDlfs/QvLWwcZZJKewqLbZCoPQo+iQVspBBHpW18=
---
![Логотип](../../../en/adapterref/iobroker.mytime/admin/mytime.png)
-![версия NPM](http://img.shields.io/npm/v/iobroker.mytime.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.mytime.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.mytime.svg)
-![Количество установок (последние)](http://iobroker.live/badges/mytime-installed.svg)
-![Количество установок (стабильно)](http://iobroker.live/badges/mytime-stable.svg)
-![Статус зависимости](https://img.shields.io/david/oweitman/iobroker.mytime.svg)
-![Известные уязвимости](https://snyk.io/test/github/oweitman/ioBroker.mytime/badge.svg)
-![Трэвис-CI](http://img.shields.io/travis/oweitman/ioBroker.mytime/master.svg)
+![Количество установок](https://iobroker.live/badges/mytime-installed.svg)
+![Текущая версия в стабильном репозитории](https://iobroker.live/badges/mytime-stable.svg)
+![НПМ](https://nodei.co/npm/iobroker.mytime.png?downloads=true)
# IoBroker.mytime
+**Тесты:** ![Тест и выпуск](https://github.com/oweitman/ioBroker.mytime/workflows/Test%20and%20Release/badge.svg)
+
## ВАЖНЫЙ
-Действительна только документация на английском языке, так как автоматический перевод переводит области, которые не должны переводиться.
+Действительна только документация на английском языке, поскольку автоматический перевод переводит те разделы, которые не следует переводить.
-## Адаптер mytime для ioBroker
-Этот адаптер обрабатывает время (например, обратный отсчет и т. д.).
-Функция обратного отсчета предоставляет точки данных, которые можно использовать для управления обратным отсчетом (например, в сценарии). Адаптер также включает в себя несколько виджетов для визуализации этих обратных отсчетов.
-Временные ряды можно использовать для создания сложных временных рядов, в которых запускаются точки данных.
+## Mytime адаптер для ioBroker
+Этот адаптер обрабатывает время (например, обратный отсчет и т. д.). Функциональность обратного отсчета предоставляет точки данных, которые можно использовать для управления обратным отсчетом (например, в скрипте). Адаптер также включает несколько виджетов для визуализации этих обратных отсчетов. Временные ряды можно использовать для создания сложных временных рядов, в которых запускаются точки данных.
### Конфигурация
#### Обратный отсчет
-В диалоговом окне конфигурации на вкладке «Обратный отсчет» вы можете создать новый обратный отсчет, например, «тест», установить таймер на 10 секунд и импортировать следующие виджеты.
-Точки данных предварительно настроены для обратного отсчета под названием test.
+В диалоговом окне конфигурации на вкладке «Обратный отсчет» вы можете создать новый обратный отсчет, например «тест», установить таймер на 10 секунд и импортировать следующие виджеты.
+Точки данных предварительно настроены для обратного отсчета с именем тест.
+
+##### Остановить таймер поведения
+После того, как обратный отсчет останавливается сигналом, отсчет сбрасывается до времени, установленного таймером.
-##### Останов таймера поведения
-После того, как обратный отсчет получает сигнал остановки, обратный отсчет сбрасывается до времени, установленного таймером.
+##### Остановить поведение ноль
+После того, как обратный отсчет останавливается сигналом, обратный отсчет остается на 0.
-##### Нулевой режим остановки После того, как обратный отсчет получает сигнал остановки, обратный отсчет остается равным 0.
#### Временные ряды
-В диалоговом окне конфигурации на вкладке «Временные ряды» вы можете создать новый временной ряд с одним или несколькими временными правилами. Для каждого временного правила вы можете определить разные параметры. Каждая временная серия создает отдельную точку данных, которая срабатывает в расчетных временных событиях.
-Временные события рассчитываются в режиме реального времени. Однако используемая библиотека правил еще не идеальна для всех комбинаций параметров.
+В диалоговом окне конфигурации на вкладке «Временные ряды» можно создать новый временной ряд с одним или несколькими временными правилами. Для каждого временного правила можно определить различные параметры. Каждый временной ряд создает отдельную точку данных, которая срабатывает при вычисленных временных событиях.
+Временные события вычисляются в реальном времени. Однако используемая библиотека правил еще не идеальна во всех комбинациях параметров.
Это показывает, что при некоторых комбинациях страница переходит в бесконечный цикл.
-Демонстрационную страницу http://jakubroztocil.github.io/rrule/ также можно использовать для экспериментов.
-Кроме того, чтобы добавить правило времени, вы можете добавить правило времени для исключения временных событий, добавления одиночных событий времени, а также для исключения одиночных событий времени.
+Демонстрационная страница также может использоваться для экспериментов.
+Помимо добавления временного правила, вы можете добавить временное правило для исключения временных событий, для добавления отдельных временных событий, а также для исключения отдельных временных событий.
### Использование
-#### Временные ряды
-##### Доступные точки данных
-После настройки новой временной серии адаптер создает следующие точки данных:
+#### Использование временных рядов
+##### Доступные точки данных временной серии
+После настройки нового временного ряда адаптер создает следующие точки данных:
| точка данных | описание |
-|-----------|---------------------------------------------------------------------------|
-| действие | фактическое состояние таймсерии. возможные значения стоп, запуск |
-| команда | нет функции банкомата |
+| --------- | ------------------------------------------------------------ |
+| действие | фактическое состояние временной серии. Возможные значения: остановить, запустить |
+| cmd | нет функции atm |
##### Доступные состояния действия
| действие | описание |
-|-----------|-------------------------------------------------------------------------------------------------------|
-| остановка | в данный момент не активно событие времени |
-| бежать | произошло событие времени. по истечении настроенного времени продолжительность точка данных меняется на стоп |
+| ------ | --------------------------------------------------------------------------------------------- |
+| остановить | в данный момент нет активного временного события |
+| запустить | произошло событие времени. по истечении заданного времени точка данных изменяется на остановку |
-#### Обратный отсчет
-##### Доступные точки данных
+#### Использование обратного отсчета
+##### Доступные точки данных обратного отсчета
После настройки нового обратного отсчета адаптер создает следующие точки данных:
| точка данных | описание |
-|-----------|---------------------------------------------------------------------------|
-| действие | фактическое состояние обратного отсчета. возможные значения: стоп, запуск, пауза, конец |
-| команда | точка данных для команд. возможные команды описаны ниже |
-| начать | точка данных для времени начала в миллисекундах |
+| --------- | ---------------------------------------------------------------------- |
+| действие | фактическое состояние обратного отсчета. Возможные значения: стоп, запуск, пауза, конец |
+| cmd | datapoint для команд. Возможные команды описаны ниже |
+| начало | точка данных для времени начала в миллисекундах |
| конец | точка данных для конечного времени в миллисекундах |
-| таймер | точка данных для общего времени, установленного в миллисекундах |
+| таймер | точка данных для общего времени, заданного в миллисекундах |
-##### Доступные состояния действий
+##### Доступные состояния действия обратного отсчета
| действие | описание |
-|-----------|-------------------------------------------------------------------------------------------------------|
-| остановка | обратный отсчет остановлен, время начала и окончания установлено на 0 |
-| бежать | обратный отсчет идет. если обратный отсчет достигает конечного времени. действие переключается на конец |
-| пауза | обратный отсчет находится в режиме паузы. время окончания было установлено на время паузы |
-| конец | обратный отсчет окончен. это состояние можно использовать как триггер для дальнейших действий (звук, всплывающие окна и т.д.) | |
+| ------ | ----------------------------------------------------------------------------------------------------- |
+| остановить | обратный отсчет остановлен, время начала и окончания установлено на 0 |
+| запустить | обратный отсчет запущен. если обратный отсчет достигает времени окончания. действие переключается на завершение |
+| пауза | обратный отсчет находится в режиме паузы. конечное время установлено на время паузы |
+| конец | обратный отсчет завершен. это состояние можно использовать как триггер для дальнейших действий (звук, всплывающие окна и т. д.) |
##### Доступные команды для точки данных cmd
| команда | пример | описание |
-|---------------|----------------------|----------------------------------------------------------------------------------------------|
+| ------------- | --------------------- | --------------------------------------------------------------------------------------------- |
| +значение | +1:10 | добавляет время к настройке обратного отсчета. настройка будет учтена при следующем запуске |
+| +!value | +!1:10 | как оператор + и продлевает работающий таймер |
| -значение | -1:2:3 | вычитает время из обратного отсчета. настройка будет учтена при следующем запуске |
-| =значение | =5:00 | установите таймер обратного отсчета на это время. |
-| #ISO-Дата | #2020-01-01T10:00:00 | установите таймер обратного отсчета на целевое время. Время должно быть отформатировано как ISO-Datestring |
-| $Время | $20:15 | установите таймер обратного отсчета на целевое время. Если время предшествует текущему времени. установлен следующий день.|
-| начать | начать | начинает обратный отсчет |
-| остановка | остановка | останавливает обратный отсчет. время обратного отсчета сбрасывается на настройку |
-| пауза | пауза | приостанавливает обратный отсчет |
-| конец | конец | останавливает обратный отсчет. обратный отсчет установлен на 0 |
+| -!value | -!1:2:3 | как оператор - и уменьшите запущенный таймер |
+| =значение | =5:00 | установить таймер обратного отсчета на это время. |
+| =!value | =!5:00 | как оператор = и установить работающий таймер на указанное время |
+| #ISO-Date | #2025-01-01T10:00:00 | установите таймер обратного отсчета на целевое время. Время должно быть отформатировано как ISO-Datestring |
+| #!ISO-Date | #!2025-01-01T10:00:00 | как оператор # и установка работающего таймера на заданное целевое время |
+| $Time | $20:15 | установить таймер обратного отсчета на целевое время. Если Time опережает текущее время, то устанавливается следующий день. |
+| $!Время | $!20:15 | как оператор $ и установка работающего таймера на заданное целевое время |
+| старт | старт | начинает обратный отсчет |
+| остановить | остановить | останавливает обратный отсчет. время обратного отсчета сбрасывается до установленного значения |
+| пауза | пауза | приостанавливает обратный отсчёт |
+| конец | конец | останавливает обратный отсчет. обратный отсчет устанавливается на 0 |
+| сброс | сброс | сброс таймера в состояние конфигурации |
| setstop2timer | setstop2timer | установить конфигурацию поведения остановки на таймер |
-| setstop2zero | setstop2zero | установить нулевое значение для конфигурации поведения при остановке |
+| setstop2zero | setstop2zero | установить конфигурацию поведения остановки на нули |
| сохранить | сохранить | сохранить конфигурацию, определенную в точках данных, в конфигурацию iobroker |
| | | iobroker автоматически перезапускает адаптер после сохранения |
##### Формат значения для установки таймера обратного отсчета
-Вы можете установить обратный отсчет на неограниченное время.
-обозначение значения: [дни:[часы:[минуты:[секунды]]]] дни, часы и минуты не являются обязательными.
-если вы хотите установить таймер на один день, вы должны установить часы, минуты и секунды, а также вам не нужно соблюдать нормальные диапазоны значений (например, часы 0-24). Вы также можете установить 48 часов.
-если вы хотите, вы можете установить нерегулярные обозначения времени. время суммируется отдельно
+вы можете установить обратный отсчет на неограниченное время.
+обозначение значения - [дни:[часы:[минуты:[секунды]]]] дней, часы и минуты необязательны.
+если вы хотите установить таймер на один день, вам нужно установить часы, минуты и секунды, вам не обязательно соблюдать обычные диапазоны значений (например, часы 0-24).
+Вы также можете установить 48 часов.
+Если хотите, вы можете установить нерегулярные обозначения времени. время суммируется отдельно
-**Примеры**
+**Примеры:**
| настройка | описание |
-|-----------|---------------------------------------------|
-| 1:0:0:0 | установить/добавить/вычесть 1 день к таймеру |
-| 2:0:0 | установить/прибавить/вычесть 2 часа к таймеру |
-| 3:0 | установить/прибавить/вычесть 3 минуты к таймеру |
-| 120 | установить/прибавить/вычесть 120 секунд к таймеру |
-| 48:0:0 | установить/прибавить/вычесть 48 часов к таймеру |
-| 48:75:120 | установить/добавить/вычесть таймер |
+| --------- | ------------------------------------------- |
+| 1:0:0:0 | устанавливает/добавляет/вычитает 1 день к таймеру |
+| 2:0:0 | устанавливает/добавляет/вычитает 2 часа к таймеру |
+| 3:0 | устанавливает/добавляет/вычитает 3 минуты к таймеру |
+| 120 | устанавливает/добавляет/вычитает 120 секунд к таймеру |
+| 48:0:0 | устанавливает/добавляет/вычитает 48 часов к таймеру |
+| 48:75:120 | устанавливает/прибавляет/вычитает таймер |
##### Формат шаблона для форматирования вывода обратного отсчета в виджете
Доступны следующие заполнители:
| заполнитель | описание |
-|-------------|-----------------------------------------------------------------|
-| д | дней без ведущих нулей |
-| дд | дней с ведущими нулями |
-| Н | часы без ведущих нулей |
+| ----------- | --------------------------------------------------------------- |
+| d | дни без начальных нулей |
+| дд | дни с ведущими нулями |
+| H | часы без начальных нулей |
| ЧЧ | часы с ведущими нулями |
-| м | минут без ведущих нулей |
-| мм | минут с ведущими нулями |
-| с | секунды без ведущих нулей |
+| м | минуты без начальных нулей |
+| мм | минуты с ведущими нулями |
+| с | секунды без начальных нулей |
| сс | секунды с ведущими нулями |
-| \ | Экранирующий символ, если вы хотите использовать заполнитель в выводе |
+| \ | Экранирующий символ, если вы хотите использовать заполнитель в выходных данных |
-**Примеры**
+**Примеры:**
-Все следующие примеры с таймером обратного отсчета 1:2:3:4
+Все последующие примеры с таймером обратного отсчета 1:2:3:4
| шаблон | пример | результат |
-|-----------------------|-------------------|--------------------------------------------------|
-| д\д Чч м\м с\с | 1д 2ч 3м 4с | с escape-символами и без начальных нулей |
-| дд\д ЧЧч мм\м сс\с | 01д 02ч 03м 04с | с escape-символами и ведущими нулями |
-| сс\с | 93784с | только секунды |
+| ------------------ | --------------- | ------------------------------------------------ |
+| d\d Hh m\m s\s | 1d 2h 3m 4s | с экранированными символами и без начальных нулей |
+| dd\d HHh mm\m ss\s | 01d 02h 03m 04s | с escape-символами и ведущими нулями |
+| ss\s | 93784s | только секунды |
| дд\д ЧЧ\ч | 01д 02ч | только дни и часы |
| ЧЧ\ч мм\м | 26ч 03м | только часы и минуты |
### Виджеты
-#### Простой виджет обратного отсчета
+Начиная с версии 1.2.0 виджеты должны быть совместимы с vis1 и vis2.
+
+#### Виджет Обратный отсчет простой
Виджет обратного отсчета для простого текстового вывода
##### Свойства виджета
-###### Oid Точка данных таймера точки данных обратного отсчета.
-###### Format Форматирует вывод таймера. по умолчанию мм:сс. подробности см. в шаблоне формата главы
+###### Оид
+Точка данных таймера точки данных обратного отсчета.
+
+###### Формат
+Форматирует вывод таймера. По умолчанию — мм:сс. Подробности см. в шаблоне формата главы.
+
##### Пример кода виджета
-виджеты предварительно настроены для обратного отсчета под названием test.
+Виджеты предварительно настроены для обратного отсчета с именем test.
+Есть 2 отдельные версии для vis1 и vis2
-```
-[{"tpl":"tplMyTimeCountdownPlain","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"countdown_oid":"mytime.0.Countdown.test.timer","format":"d H m s"},"style":{"left":"771px","top":"143px","width":"151px","height":"16px"},"widgetSet":"mytime"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"+10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"+10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"-10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"-10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"=10","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"=10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"start","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"start","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"pause","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"pause","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"stop","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"stop","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"}]
-```
+**ВИС1:**
-##### Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор класса CSS.
-```
+Подробности [{"tpl":"tplMyTimeCountdownPlain","data":{"g_fixed":false,"g_visibility":false,"g_css_font_text":false,"g_css_background":false,"g_css_shadow_padding":false,"g_css_border":false,"g_gestures":false,"g_signals":false,"g_last_change":false,"visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"countdown_oid":"mytime.0.Countdown.test.timer","format":"d H ms"},"style":{"left":"771px","top":"143px","width":"151px","height":"16px"},"widgetSet":"mytime"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"+10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"+10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"-10s","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"-10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"=10","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"=10","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"111px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"start","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"start","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"742px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"pause","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"pause","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"801px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"},{"tpl":"tplJquiButtonState","data":{"oid":"mytime.0.Countdown.test.cmd","g_fixed":true,"g_visibility":false,"g_css_font_text":true,"g_css_background":true,"g_css_shadow_padding":true,"g_css_border":true,"g_gestures":false,"g_signals":false,"g_last_change":false,"buttontext":"stop","signals-cond-0":"==","signals-val-0":true,"signals-icon-0":"/vis/signals/lowbattery.png","signals-icon-size-0":0,"signals-blink-0":false,"signals-horz-0":0,"signals-vert-0":0,"signals-hide-edit-0":false,"signals-cond-1":"==","signals-val-1":true,"signals-icon-1":"/vis/signals/lowbattery.png","signals-icon-size-1":0,"signals-blink-1":false,"signals-horz-1":0,"signals-vert-1":0,"signals-hide-edit-1":false,"signals-cond-2":"==","signals-val-2":true,"signals-icon-2":"/vis/signals/lowbattery.png","signals-icon-size-2":0,"signals-blink-2":false,"signals-horz-2":0,"signals-vert-2":0,"signals-hide-edit-2":false,"lc-type":"last-change","lc-is-interval":true,"lc-is-moment":false,"lc-format":"","lc-position-vert":"top","lc-position-horz":"right","lc-offset-vert":0,"lc-offset-horz":0,"lc-font-size":"12px","lc-font-family":"","lc-font-style":"","lc-bkg-color":"","lc-color":"","lc-border-width":"0","lc-border-style":"","lc-border-color":"","lc-border-radius":10,"lc-zindex":0,"value":"stop","visibility-cond":"==","visibility-val":1,"visibility-groups-action":"hide","class":"mytime"},"style":{"left":"864px","top":"163px","color":"white","font-weight":"lighter","font-size":"x-small","background":"","border-width":"2px","border-style":"solid","border-color":"white","border-radius":"10px","background-color":"#303030 !important","box-shadow":"2px 2px 3px rgba(20, 20, 20, 50)","width":"55px"},"widgetSet":"jqui"}]
+
+**ВИС2:**
+
+Подробности [{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"pause","value":"pause"},"style":{"bindings":[],"left":"423.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000001"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"start","value":"start"},"style":{"bindings":[],"left":"361.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000002"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"stop","value":"stop"},"style":{"bindings":[],"left":"485.0000305175781px","top":"402.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000003"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"+10","value":"+10"},"style":{"bindings":[],"left":"423.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000004"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"=100","value":"=100"},"style":{"bindings":[],"left":"361.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000005"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"-10","value":"-10"},"style":{"bindings":[],"left":"485.0000305175781px","top":"349.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000006"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"+!10","value":"+!10"},"style":{"bindings":[],"left":"423.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000007"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"=!100","value":"=!100"},"style":{"bindings":[],"left":"361.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000008"},{"tpl":"tplIconState","data":{"bindings":[],"oid":"mytime.0.Countdowns.test.cmd","type":"value","g_common":true,"step":1,"minmax":1,"repeat_delay":800,"repeat_interval":300,"min":0,"max":100,"variant":"contained","g_style":true,"text":"-!10","value":"-!10"},"style":{"bindings":[],"left":"485.0000305175781px","top":"320.00001525878906px","width":"59px","height":"26px"},"widgetSet":"jqui","_id":"i000009"},{"tpl":"tplMyTimeCountdownPlain","data":{"bindings":[],"countdown_format":"dd\\d HH\\h mm\\m ss\\s","g_common":true,"g_css_border":true,"countdown_oid":"mytime.0.Countdowns.test.timer","g_css_font_text":true},"style":{"bindings":[],"left":"361.0000305175781px","top":"375.00001525878906px","width":"182px","height":"24px","border-width":"0","border-style":"solid","border-color":"rgba(237,235,243,1)","text-align":"center"},"widgetSet":"mytime","_id":"i000010"}]
+
+**Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор CSS-класса:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
-#### Виджет обратного обратного отсчета
-Виджет, который показывает прошедшее время с заданного момента времени
-
-##### Свойства виджета
-###### datetime Строка DateTime времени начала.
-Выражение должно интерпретироваться функцией javascript new Date(expression).
-См. также https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse.
-Пример: 2022-01-10 23:12 2022-01-104T23:12:00.000Z
-
-###### Формат
-Форматирует вывод таймера. по умолчанию мм:сс. подробности см. в шаблоне формата главы
+#### Виджет Обратный отсчет простой
+Виджет, показывающий прошедшее время с заданного момента времени.
-###### HTML-дополнение
-Этот текст или html добавляется к выводу виджета.
+##### Свойства виджета обратного отсчета
+| Точка данных | Описание |
+| ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| datetime | Строка DateTime начального времени. Выражение должно интерпретироваться функцией javascript new Date(expression). См. также Пример: 2022-01-10 23:12 или 2022-01-104T23:12:00.000Z |
+| Формат | Форматирует вывод таймера. По умолчанию — мм:сс. Подробнее см. Шаблон формата главы |
+| HTML-Prepend | Этот текст или HTML добавляется в начало вывода виджета |
+| HTML-Append | Этот текст или HTML добавляется к выводу виджета |
-###### HTML-Append Этот текст или html добавляется к выходным данным виджета
-#### Круг обратного отсчета виджета
+#### Виджет Круг обратного отсчета
Виджет обратного отсчета в виде кольца/круга.
-##### Свойства виджета
-###### Oid Точка данных таймера точки данных обратного отсчета.
-###### Notimetext Отключает отображение времени над полярными часами.
-###### Format Форматирует вывод таймера. по умолчанию мм:сс. подробности см. в шаблоне формата главы
-###### Настройка реверса для увеличения или уменьшения кольца/окружности
-###### Ширина Ширина кольца или круга.
-###### Кольцевой зазор Зазор в пикселях между кольцами
-###### Заглушки Установка концов кольца/окружности: круглая или прямая
-###### BackgroundЦвет фона кольца/круга
-###### Передний план Цвет переднего плана кольца/круга
-###### Showsec Показать кольцо секунд
-###### Showmin Показать кольцо минут
-###### Showhrs Показать кольцо минут
-###### Showday Показать кольцо дней
-##### Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор класса CSS.
-```
+##### Свойства виджета круга обратного отсчета
+| Точка данных | Описание |
+| ---------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
+| oid | Точка данных таймера точки данных обратного отсчета. |
+| notimetext | Отключает текст времени поверх полярных часов |
+| Формат | Форматирует выходные данные таймера. По умолчанию — мм:сс. Подробнее см. в шаблоне формата главы. ReversevSetting для увеличения или уменьшения кольца/круга |
+| Ширина | Ширина кольца или круга. |
+| Зазор между кольцами | Зазор в пикселях между кольцами |
+| Колпачки | Оправа для концов кольца/круга: круглая или прямая |
+| фон | Цвет фона кольца/круга |
+| передний план | Цвет переднего плана кольца/круга |
+| showsec | Показать кольцо секунд |
+| showmin | Показать кольцо минут |
+| showhrs | Показать кольцо минут |
+| showday | Показать кольцо дней |
+
+**Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор CSS-класса:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
#### Виджет обратного отсчета FlipClock
-Виджет обратного отсчета в стиле флип-борда в аэропорту
+Виджет обратного отсчета в стиле табло аэропорта
-##### Свойства виджета
-###### Oid Точка данных таймера точки данных обратного отсчета.
-###### Countdown_showsec Показывает секунды. между двумя блоками не должно быть зазора.
-###### Countdown_showmin Показывает минутную часть. между двумя блоками не должно быть зазора.
-###### Countdown_showhrs Показывает часовую часть. между двумя блоками не должно быть зазора.
-###### Countdown_showday Показывает часть дня. между двумя блоками не должно быть зазора.
-###### Countdown_color Цвет таймера обратного отсчета
-###### Countdown_background_color Цвет фона таймера обратного отсчета
-###### Countdown_dot_color Цвет точек таймера обратного отсчета
-##### Советы
-Если вы хотите настроить размер обратного отсчета, в настройках css в vis вы можете ввести половинный размер: Group CSS-Common/transform "scale(0.5)"
-
-##### Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор класса CSS.
-```
+##### Свойства виджета Countdown FlipClock
+| Точка данных | Описание |
+| -------------------------- | --------------------------------------------------------------- |
+| oid | Точка данных таймера точки данных обратного отсчета. |
+| countdown_showsec | Показывает секунды. Между двумя единицами не должно быть промежутка. |
+| countdown_showmin | Показывает минутную часть. Между двумя единицами не должно быть промежутка. |
+| countdown_showhrs | Показывает часть часов. Между двумя единицами не должно быть разрыва. |
+| countdown_showday | Показывает часть суток. Между двумя единицами не должно быть разрыва. |
+| countdown_color | Цвет таймера обратного отсчета |
+| countdown_background_color | Цвет фона таймера обратного отсчета |
+| countdown_dot_color | Цвет точек таймера обратного отсчета |
+
+**Советы:**
+
+Если вы хотите изменить размер обратного отсчета флип-часов, в настройках CSS в vis вы можете ввести для половинного размера: Group CSS-Common / transform "scale(0.5)"
+
+**Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор CSS-класса:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
#### Виджет обратного отсчета NixieClock
Виджет обратного отсчета в стиле Nixie-Tube/LED
-##### Свойства виджета
-###### Оид
-Точка данных таймера точки данных обратного отсчета.
+##### Свойства виджета обратного отсчета NixieClock
+| Точка данных | Описание |
+| -------------------------- | --------------------------------------------------------------- |
+| oid | Точка данных таймера точки данных обратного отсчета. |
+| countdown_showsec | Показывает секунды. Между двумя единицами не должно быть промежутка. |
+| countdown_showmin | Показывает минутную часть. Между двумя единицами не должно быть промежутка. |
+| countdown_showhrs | Показывает часть часов. Между двумя единицами не должно быть разрыва. |
+| countdown_showday | Показывает часть суток. Между двумя единицами не должно быть разрыва. |
+| countdown_color_active | Цвет таймера обратного отсчета |
+| countdown_color_inactive | Цвет неактивных цифр |
+| countdown_opacity_inactive | Непрозрачность цвета неактивных цифр |
+| countdown_glowcolor | Цвет свечения вокруг цифр Nixie |
-###### Countdown_showsec Показывает секунды. между двумя блоками не должно быть зазора.
-###### Countdown_showmin Показывает минутную часть. между двумя блоками не должно быть зазора.
-###### Countdown_showhrs Показывает часовую часть. между двумя блоками не должно быть зазора.
-###### Countdown_showday Показывает часть дня. между двумя блоками не должно быть зазора.
-###### Countdown_color_active Цвет таймера обратного отсчета
-###### Countdown_color_inactive Цвет неактивных цифр
-###### Countdown_opacity_inactive Непрозрачность цвета неактивных цифр
-###### Countdown_glowcolor Цвет свечения вокруг Nixie-цифр
#### Виджет Wordclock
Виджет для отображения часов с множеством опций
-##### Свойства виджета
-###### Язык
-Доступны несколько разных языков для WordClock.
-
-###### LetterActivated Цвет для выделенных слов
-###### LetterDeactivated Цвет для обычных букв
-###### WordclockMargin Зазор между wordclock и светодиодами
-###### WithMinutes Показать индикаторы минут в углу часов
-###### MinuteSize Размер индикаторов Minute в пикселях
-###### MinuteColor цвет индикатора минут
-###### WithSeconds Отображение секундных индикаторов WordClock
-###### SecondSize Размер светодиодов секунд в пикселях
-###### SecondColor цвет индикатора секунд
-###### Timezone Отображается время выбранного часового пояса
-##### Советы
-Если вы хотите настроить размер nixieclock обратного отсчета, в настройках css в vis вы можете ввести половинный размер: Group CSS-Common/transform "scale(0.5)"
-
-##### Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор класса CSS.
-```
+##### Свойства виджета Wordclock
+| Точка данных | Описание |
+| ----------------- | -------------------------------------------------------- |
+| язык | Доступны несколько разных языков для wordclock |
+| letterActivated | Цвет выделенных слов |
+| letterDeactivated | Цвет для обычных букв |
+| wordclockMargin | Разрыв между wordclock и светодиодами |
+| withMinutes | Показать светодиоды минут в углу wordclock |
+| minuteSize | Размер в пикселях светодиодов Minute |
+| minuteColor | цвет светодиода минут |
+| withSeconds | Показать светодиоды секунд на wordclock |
+| secondSize | Размер в пикселях светодиодов секунд |
+| secondColor | цвет светодиода секунд |
+| часовой пояс | Отображается время выбранного часового пояса |
+
+**Советы:**
+
+Если вы хотите изменить размер обратного отсчета nixieclock, в настройках css в vis вы можете ввести для половинного размера: Group CSS-Common / transform "scale(0.5)"
+
+**Фактическое состояние действия (cdstop,cdrun,cdpause,cdend) обратного отсчета доступно как селектор CSS-класса:**
+
+```css
#w00000 .timer.cdend {
- color:red;
+ color: red;
}
#w00000 .timer.cdrun {
- color:green;
+ color: green;
}
```
-## Сделать
-* 7-сегментный дисплей
-* скользящие числа
-* настраиваемые шрифты
-* ts: временные рамки для исключения (временной диапазон, отдельные даты)
-* ~~добавить часовой пояс для wordclock~~
-* ~~таймер WordClock~~
-* ~~ планировщик по времени: планируйте одну дату/время и повторяющиеся события, такие как Outlook~~
-* ~~Никси-стиль~~
-* ~~откидной дисплей (дисплей в аэропорту)~~
-* ~~новая команда для установки только целевого времени без даты~~
-* ~~ виджет круга обратного отсчета с возможностью отключения текста обратного отсчета
-* ~~Групповой разделитель '.' в имени~~
-* ~~Полярные часы~~
-* ~~круг в обратном порядке~~
-* ~~круг с круглыми заглавными буквами~~
+## То, что нужно сделать
+- 7-сегментный дисплей
+- скользящие числа
+- настраиваемые шрифты
+- ts: временные правила для исключения (диапазон времени, отдельные даты)
+- ~~добавить часовой пояс для wordclock~~
+- ~~таймер Wordclock~~
+- ~~планировщик по времени: планирование отдельных дат/времени и повторяющихся событий, как в Outlook~~
+- ~~Стиль Никси~~
+- ~~дисплей с перекидной доской (дисплей аэропорта)~~
+- ~~новая команда для установки только целевого времени без даты~~
+- ~~виджет круга обратного отсчета с возможностью отключения текста обратного отсчета
+- ~~Разделитель групп '.' в имени~~
+- ~~Полярные часы~~
+- ~~круг обратный~~
+- ~~круг с круглыми крышками~~
## Changelog
+
+
+### 1.2.2 (2024-11-18)
+
+- improve readme
+- improve widget js
+- remove word test from widgets html, sorry
+
+### 1.2.1 (2024-11-17)
+
+- interprete all commands in lowercase
+
+### 1.2.0 (2024-11-15)
+
+- widgets are now compatible with vis2
+
+### 1.1.1 (2024-11-13)
+
+- fix problem with start of vis2, exclude widgets for vis2
+
+### 1.1.0 (2024-11-12)
+
+- IMPORTANT: Changed Datapoint names and datastructure for the configuration,
+ no migration you have to enter all configurations again
+- add some new commands to restart the countdown time in place
+- repair save command
+- removed vis dependency from io-package.json
+
+### 1.0.15 (2024-11-11)
+
+- repair issues from repochecker
+
+### 1.0.14 (2024-11-11)
+
+- improve test and release process
+- update github workflow
+- remove eslint command from package.json
+- switch back to node 18 for testing due to airbnb error
+- more repair
+- add package-lock.json to git
+- remove unused library
+- add lint and lint
+- remove iobroker eslint
+- general revision
+- updating the configuration dialogs for countdown and timeseries
+ in jsonConfig and custom react
+
### 0.7.12
-* add html_prepend and html_append properties to the widget reverse countdown
+
+- add html_prepend and html_append properties to the widget reverse countdown
+
### 0.7.10
-* add widget reverse countdown
+
+- add widget reverse countdown
+
### 0.7.9
-* add more wordclock tests
-* fix wordclock matrix swiss
+
+- add more wordclock tests
+- fix wordclock matrix swiss
+
### 0.7.8
-* add timezone for wordclock
+
+- add timezone for wordclock
+
### 0.7.7
-* add timezone for wordclock
+
+- add timezone for wordclock
+
### 0.7.6
-* add tests for wordclock * remove admin tab
+
+- add tests for wordclock \* remove admin tab
+
### 0.7.5
-* Remove comments in io-package
+
+- Remove comments in io-package
+
### 0.7.4
-* fix spanish language pack
+
+- fix spanish language pack
+
### 0.7.3
-* * add turkish language for wordclock
+
+- add turkish language for wordclock
+
### 0.7.2
-* * add russian and espaniol language for wordclock
+
+- add russian and espaniol language for wordclock
+
### 0.7.1
-* add margin property for wordclock * add italiano and francais for wordclock * wordclock remove border
+
+- add margin property for wordclock
+- add italiano and francais for wordclock
+- wordclock remove border
+
### 0.7.0
-* New widget wordclock
+
+- New widget wordclock
+
### 0.6.1
-* remove beta tag from widgets * m,assive reengeneering of the react classes, add functions für exclusion rules, adding single time events and exclude single time events
+
+- remove beta tag from widgets \* m,assive reengeneering of the react classes,
+ add functions für exclusion rules, adding single time events
+ and exclude single time events
+
### 0.6.0
-* Introduction of new functionality timeseries
+
+- Introduction of new functionality timeseries
+
### 0.5.2
-* fix an issue and introduce a new command save to save the configuration defined in datapoints to the iobroker configuration data
+
+- fix an issue and introduce a new command save to save the configuration
+ defined in datapoints to the iobroker configuration data
+
### 0.5.1
-* Migration of old counters
+
+- Migration of old counters
+
### 0.5.0
-* Change settings dialog to react
+
+- Change settings dialog to react
+
### 0.4.2
-* performance optimization. mytime now checks the data from internal and did not read the data allways from datapoints | update dependencies
+
+- performance optimization. mytime now checks the data from internal
+ and did not read the data allways from datapoints | update dependencies
+
### 0.4.1
-* widget cd flipclock: remove dot labels
+
+- widget cd flipclock: remove dot labels
+
### 0.4.0
-* New widget NixieClock
+
+- New widget NixieClock
+
### 0.3.1
-* remove mytime tile in iobroker overview
-* set initial visual countdown value to 0
-* prefix css classes, due css artefacts from other adapters (eg kodi and css class stop)
+
+- remove mytime tile in iobroker overview
+- set initial visual countdown value to 0
+- prefix css classes, due css artefacts from other adapters
+ (eg kodi and css class stop)
+
### 0.3.0
-* new command to set only target time without date
-* countdown circle widget now with option to disable countdown text
-* timers are now groupable in subdirectories. you can now enter dots (.) as a groupseperater in the name of a timer
+
+- new command to set only target time without date
+- countdown circle widget now with option to disable countdown text
+- timers are now groupable in subdirectories.
+ you can now enter dots (.) as a groupseperater in the name of a timer
+
### 0.2.1
-* fix timer display in configuration dialog
-* fix default template of countdown plain
-* add icons for countdonw plain and countdown circle widgets
-* fix startangle calculation for countdown circle if time values are 0
-* remove timer intervals in editmode due to interfer with the configuration dialog and didnt save the ne values
+
+- fix timer display in configuration dialog
+- fix default template of countdown plain
+- add icons for countdonw plain and countdown circle widgets
+- fix startangle calculation for countdown circle if time values are 0
+- remove timer intervals in editmode due to interfer with
+ the configuration dialog and didnt save the ne values
+
### 0.2.0
-* extend the countdown circle with more rings for days, hours and minutes
+
+- extend the countdown circle with more rings for days, hours and minutes
+
### 0.1.2
-* Setting for growing or shrinking the ring/circle
-* Setting for the ends of the ring/circle: round or straight
-* Extend special char filtering with umlauts
-* Fix state request issue in widget countdown circle
+
+- Setting for growing or shrinking the ring/circle
+- Setting for the ends of the ring/circle: round or straight
+- Extend special char filtering with umlauts
+- Fix state request issue in widget countdown circle
+
### 0.1.1
-* Add a countdown name datapoint
-### 0.1.0
-* Forum release
+
+- Add a countdown name datapoint
+
### 0.1.0
-* initial release
+
+- Forum release
+- initial release
## License
+
MIT License
-Copyright (c) 2020 oweitman
+Copyright (c) 2024 oweitman
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -383,4 +521,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.nibeuplink/README.md b/docs/ru/adapterref/iobroker.nibeuplink/README.md
index 11ad088aa..266590aaa 100644
--- a/docs/ru/adapterref/iobroker.nibeuplink/README.md
+++ b/docs/ru/adapterref/iobroker.nibeuplink/README.md
@@ -1,58 +1,75 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.nibeuplink/README.md
title: ioBroker.nibeuplink
-hash: 6kBlzH6zxfy578l1FZq6McfUTKvGCnx0zZu0mOuGsNA=
+hash: bFO4J2oEmtx4GO7FlT9xZuyTC9CdV29rY+k1Hy8OIqQ=
---
# IoBroker.nibeuplink
-![версия NPM](https://img.shields.io/npm/v/iobroker.nibeuplink.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.nibeuplink.svg)
![Текущая версия в стабильном репозитории](https://iobroker.live/badges/nibeuplink-stable.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.nibeuplink.svg)
![Количество установок](https://iobroker.live/badges/nibeuplink-installed.svg)
![НПМ](https://nodei.co/npm/iobroker.nibeuplink.png?downloads=true)
-[![Статус сборки] (https://github.com/sebilm/ioBroker.nibeuplink/workflows/Test%20and%20Release/badge.svg)](https://github.com/sebilm/ioBroker.nibeuplink/actions/workflows/test-and-release.yml)
+[![Статус сборки](https://github.com/sebilm/ioBroker.nibeuplink/workflows/Test%20and%20Release/badge.svg)](https://github.com/sebilm/ioBroker.nibeuplink/actions/workflows/test-and-release.yml)
## Адаптер nibeuplink для ioBroker
-Этот адаптер ioBroker получает данные от теплового насоса Nibe от Nibe Uplink.
+**API nibeuplink официально прекращено! По этой причине этот адаптер ioBroker больше не будет разрабатываться! Пожалуйста, используйте адаптер myUplink!**
+
+Этот адаптер ioBroker получает данные от теплового насоса Nibe через Nibe Uplink.
Этот адаптер НЕ работает с Nibe myUplink! Поэтому он НЕ работает с тепловыми насосами серии S, такими как Nibe VVM S320.
## Использование этого адаптера
1. Вам нужен тепловой насос Nibe — купите его, если у вас его нет ;-)
-2. Вам нужна учетная запись на Nibe Uplink: https://www.nibeuplink.com/
-3. После входа в систему у вас есть URL-адрес в следующем виде: https://www.nibeuplink.com/System/XXXXX/Status/Overview.
-4. Вместо ХХХХХ стоит число. Это ваш идентификатор системы. Нам нужен этот идентификатор.
-5. Перейдите в Nibe Uplink Api: https://api.nibeuplink.com/Account/LogIn и войдите в систему.
-6. Нажмите «МОИ ПРИЛОЖЕНИЯ», а затем «Создать приложение».
-7. Заполните: Имя и Описание могут быть любыми, например. ioBroker
-8. URL-адрес обратного вызова важен. Вы можете использовать https://sebilm.github.io/ioBroker.nibeuplink/nibe.html
-9. Примите Соглашение об услугах NIBE Uplink API и нажмите «Создать приложение».
-10. Далее вы получаете Идентификатор и Секрет - они нам нужны
+2. Вам нужна учетная запись в Nibe Uplink: https://www.nibeuplink.com/
+3. После входа в систему у вас будет URL-адрес в следующем виде: https://www.nibeuplink.com/System/XXXXX/Status/Overview
+4. Вместо XXXXX стоит цифра. Это ваш системный ID. Нам нужен этот ID.
+5. Перейдите в Nibe Uplink API: https://api.nibeuplink.com/Account/LogIn и войдите в систему.
+6. Нажмите «МОИ ЗАЯВКИ», а затем «Создать заявку».
+7. Заполните: Имя и Описание могут быть любыми, например, ioBroker
+8. URL обратного вызова важен. Вы можете использовать https://sebilm.github.io/ioBroker.nibeuplink/nibe.html
+9. Примите Соглашение об услугах API Uplink NIBE и нажмите «Создать заявку».
+10. Затем вы получаете Идентификатор и Секрет — они нам нужны.
11. Установите этот адаптер в ioBroker
-12. На странице настройки адаптера заполните Идентификатор и Секрет.
-13. Щелкните ссылку «Щелкните здесь, чтобы сгенерировать код авторизации на восходящем канале NIBE».
+12. На странице настроек адаптера заполните Идентификатор и Секрет.
+13. Щелкните ссылку «Щелкните здесь, чтобы сгенерировать код аутентификации на NIBE Uplink».
14. Следуйте инструкциям. В конце вы получите свой код nibe-fetcher
-15. Скопируйте этот код и вставьте его в настройках адаптера в «Код авторизации».
-16. Введите свой системный идентификатор из URL-адреса Nibe Uplink.
-17. Выберите свой язык.
-18. Нажмите «Сохранить и закрыть».
+15. Скопируйте этот код и вставьте его в настройки адаптера в поле «Код авторизации».
+16. Введите идентификатор вашей системы из URL-адреса Nibe Uplink.
+17. Выберите язык.
+18. Нажмите «Сохранить» и «Закрыть».
-Если вы (позже) получите в журнале ошибку «400 неверный запрос», вы должны получить новый код авторизации — так же, как и номера с 13 по 15 и 18.
+Если (позже) в журнале появится сообщение об ошибке «400 bad request», вам необходимо будет получить новый код аутентификации — то же самое касается пунктов с 13 по 15 и 18.
-## Управление/Написать поддержку
-Кажется, вы можете изменить список параметров только на следующей веб-странице:
+## Поддержка управления/записи
+Похоже, изменить список параметров можно только на следующей веб-странице:
https://api.nibeuplink.com/docs/v1/Parameters (раздел настроек)
-Параметр «hot_water_boost» — это параметр ID 48132.
+Параметр «hot_water_boost» имеет идентификатор 48132.
-Вы можете читать другие значения, но я думаю, что вы не можете писать другие значения. Здесь перечислены другие значения:
+Вы можете читать другие значения, но я думаю, что вы не можете записывать другие значения. Другие значения перечислены здесь:
https://github.com/sebilm/ioBroker.nibeuplink/blob/master/nibe-fetcher.js#L41
## Changelog
+### 1.3.2 (2024-11-10)
+- The nibeuplink API has been officially discontinued! For this reason, this ioBroker adapter will not be developed any further! Please use the myUplink adapter!
+- Dependencies have been updated
+
+### 1.3.1 (2023-12-23)
+- Bump dependencies
+
+### 1.3.0 (2023-08-27)
+- Remove NodeJS 14 support
+- Support strings as parameters in the management #241
+- Bump dependencies
+
+### 1.2.2 (2023-04-07)
+- Bump dependencies
+
### 1.2.1 (2022-10-03)
- Fix getting data directory
@@ -170,7 +187,7 @@ https://github.com/sebilm/ioBroker.nibeuplink/blob/master/nibe-fetcher.js#L41
MIT License
-Copyright (c) 2022 Sebastian Häßelbarth
+Copyright (c) 2024 Sebastian Häßelbarth
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -188,4 +205,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.remeha-home/README.md b/docs/ru/adapterref/iobroker.remeha-home/README.md
index 592463c12..e096814bf 100644
--- a/docs/ru/adapterref/iobroker.remeha-home/README.md
+++ b/docs/ru/adapterref/iobroker.remeha-home/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.remeha-home/README.md
title: ioBroker.remeha-home
-hash: +tjDsVcl86WlfF4DROO9e5GUtL207JhERDKPShWou9g=
+hash: uRi77+bePrsWGCD5xccnBWjbelxfrurWjfa1VJBWsxM=
---
![Логотип](../../../en/adapterref/iobroker.remeha-home/admin/remeha-home.png)
@@ -49,10 +49,13 @@ hash: +tjDsVcl86WlfF4DROO9e5GUtL207JhERDKPShWou9g=
---
-### **РАБОТА В ХОДЕ**
-* (simatec) Зависимости обновлены
-
## Changelog
+### **WORK IN PROGRESS**
+* (simatec) Dependencies updated
+* (simatec) Fix jsonConfig
+* (simatec) Issue Action added
+* (simatec) eslint-config added
+
### 0.2.4 (2024-09-28)
* (simatec) Fix request error
* (simatec) Dependencies updated
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/README.md b/docs/ru/adapterref/iobroker.schedule-switcher/README.md
new file mode 100644
index 000000000..ae393ed0f
--- /dev/null
+++ b/docs/ru/adapterref/iobroker.schedule-switcher/README.md
@@ -0,0 +1,817 @@
+---
+BADGE-NPM version: https://img.shields.io/npm/v/iobroker.schedule-switcher.svg
+BADGE-Downloads: https://img.shields.io/npm/dm/iobroker.schedule-switcher.svg
+BADGE-Number of Installations: https://iobroker.live/badges/schedule-switcher-installed.svg
+BADGE-Current version in stable repository: https://iobroker.live/badges/schedule-switcher-stable.svg
+BADGE-NPM: https://nodei.co/npm/iobroker.schedule-switcher.png?downloads=true
+translatedFrom: de
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
+editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.schedule-switcher/README.md
+title: Переключатель ioBroker.schedule
+hash: fi6Uhp2cse08EWXr9Kaa/dBSRb+eH/2zLtWX0NRl0zA=
+---
+![логотип](../../../de/admin/schedule-switcher.png)
+
+# IoBroker.schedule-switcher
+[Вернуться к README](/README.md)
+
+# Введение
+Этот адаптер позволяет пользователю включать/выключать устройства по расписанию или 100/0.
+Расписания полностью настраиваются с помощью виджета Vis или Vis 2.
+Расписание изменяет одно или несколько состояний ioBroker и состоит из одного или нескольких триггеров, которые определяют, когда и как следует изменить состояние.
+Можно настроить, в какое время и в какие дни недели должен срабатывать триггер. Также можно создать астро-триггеры или обратный отсчет.
+
+# Краткое содержание
+- [Настройки экземпляра](#instance-setting-schedule-switcher)
+- [Объекты](#состояния)
+- [Пример триггерных событий в формате JSON](#example-triggerevents-json)
+- [Пример триггера в формате JSON](#example-trigger-json)
+- [Пример sendTo запускает только экспертов](#example-trigger-with-sendto-create-or-edit-experts)
+- [Пример виджета в формате JSON](#example-widgets-json)
+- [Пример истории в формате JSON](#example-history-json)
+- [Создать виджет](#создать виджет)
+- [изменить имя](#changename)
+- [Добавить условия](#condition-add)
+- [заменить текст](#текст-заменить)
+- [Настройки CSS](#css-apply-description-see-css)
+- [Создать триггер](#trigger)
+- [Создать астротриггер](#astro-trigger)
+- [Создать одноразовый триггер](#one-time-trigger)
+- [Настройка HTML](#html-for-vis-and-vis-2)
+- [Функция HTML ТОЛЬКО VIS-2](#function-only-for-vis-2)
+- [CSS](#css)
+
+### Настройка экземпляра переключателя расписания
+[Краткое содержание](#zusammenfassung)
+
+- `+ знак`: добавить новое расписание.
+- `Идентификатор схематических данных`: созданные объекты.
+- `Имя`: название виджета.
+- `Количество триггеров`: количество триггеров.
+- «Активный»: Активный
+- `Удалить`: удалить расписание.
+- `Задержка между двумя процессами переключения в мс`: предотвращает одновременную установку состояний.
+- `Переключение истории в формате JSON (макс. 100/0 для выключения)` Макс. хранение истории.
+- `Создать HTML для VIS и VIS-2 (VIS-2 см. описание)` Обзор HTML активации
+
+![экземпляр_settings.png](img/instance_settings.png) ![экземпляр_settings_1.png](../../../de/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png)
+
+###Государства
+[Краткое содержание](#zusammenfassung)
+
+- вкл выкл
+- `schedule-switcher.0.onoff.6.data` Все триггеры в формате JSON.
+- `schedule-switcher.0.onoff.6.enabled` Активен или Неактивен
+- `schedule-switcher.0.onoff.6.views` Где виджеты были созданы для объектов
+- Статус
+- `schedule-switcher.0.counterTrigger` количество триггеров (активных и неактивных)
+- `schedule-switcher.0.history` История схем
+- `schedule-switcher.0.nextEvents` Следующие события переключения в виде таблицы JSON.
+- `schedule-switcher.0.sendto` В VIS-2 изменения передаются адаптеру через этот объект.
+
+![101_remote.png](../../../de/adapterref/iobroker.schedule-switcher/img/view_states.png)
+
+# Пример триггерных событий JSON
+[Краткое содержание](#zusammenfassung)
+
+```json
+[
+ {
+ "type": "TimeTrigger", // TimeTrigger, AstroTrigger oder OneTimeTrigger
+ "name": "Rollloade Wohn", // Name
+ "triggerid": 0, // Trigger ID
+ "action": "OnOffStateAction", // OnOffStateAction oder Condition
+ "states": ["0_userdata.0.test", "0_userdata.0.test5"], // States
+ "active": true, // enabled true oder false
+ "hour": 16, // Stunde
+ "minute": 22, // Minute
+ "day": 9, // Tag
+ "dateISO": "2024-11-09T15:22:00.000Z", // Zeit ohne Zeitzone
+ "timestamp": 1731165720000, // Timestamp ohne Zeitzone
+ "objectId": 1 // ObejektId schedule-switcher.0.onoff..data
+ }
+]
+```
+
+# Пример триггера JSON
+[Краткое содержание](#zusammenfassung)
+
+```json
+{
+ "type": "OnOffSchedule",
+ "name": "Rolllade Wohn", // Name vom letzten erstellte Widget
+ "onAction": {
+ // Action für On
+ "type": "OnOffStateAction",
+ "valueType": "number",
+ "onValue": 0,
+ "offValue": 100,
+ "booleanValue": true,
+ "idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
+ },
+ "offAction": {
+ // Action für Off
+ "type": "OnOffStateAction",
+ "valueType": "number",
+ "onValue": 0,
+ "offValue": 100,
+ "booleanValue": false,
+ "idsOfStatesToSet": ["0_userdata.0.test4"] // States max. 10
+ },
+ "triggers": [
+ {
+ "type": "AstroTrigger", // Trigger - AstroTrigger - OneTimeTrigger
+ "astroTime": "sunrise",
+ "shiftInMinutes": 0,
+ "weekdays": [1, 2, 3, 4, 5, 6],
+ "id": "0",
+ "action": {
+ "type": "ConditionAction",
+ "condition": {
+ "type": "StringStateAndConstantCondition",
+ "constant": "true",
+ "stateId": "0_userdata.0.test",
+ "sign": "=="
+ },
+ "action": {
+ "type": "OnOffStateAction",
+ "name": "On"
+ }
+ }
+ }
+ ]
+}
+```
+
+# Пример виджетов JSON
+[Краткое содержание](#zusammenfassung)
+
+```json
+{
+ "vis-2.0": {
+ // Welche VIS Version
+ "main": {
+ // Projekt
+ "w000005": {
+ // Widget ID
+ "prefix": "main", // Projekt
+ "namespace": "vis-2.0", // Welche VIS Version
+ "view": "Rollladen", // Welche View
+ "widgetId": "w000005", // Widget ID
+ "newId": "schedule-switcher.0.onoff.6.data", // Neues Objekt
+ "oldId": "timer-switch.0.onoff.1.data", // Altes Objekt
+ "enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
+ "stateCount": 1, // Counter Zustände
+ "state": [
+ // Zustände
+ {
+ "oid-stateId1": "0_userdata.0.test5"
+ }
+ ],
+ "conditionCount": 1, // Counter Bedingung
+ "condition": [
+ // Zustände Bedingungen
+ {
+ "oid-conditionStateId1": "0_userdata.0.test"
+ }
+ ]
+ },
+ "w000006": {
+ // Widget ID
+ "prefix": "main", // Projekt
+ "namespace": "vis-2.0", // Welche VIS Version
+ "view": "Test", // Welche View
+ "widgetId": "w000006", // Widget ID
+ "newId": "schedule-switcher.0.onoff.6.data", // Neues Objekt
+ "oldId": "timer-switch.0.onoff.1.data", // Altes Objekt
+ "enabled": "schedule-switcher.0.onoff.6.enabled", // Enabled Objekt
+ "stateCount": 1, // Counter Zustände
+ "state": [
+ // Zustände
+ {
+ "oid-stateId1": "0_userdata.0.test4"
+ }
+ ],
+ "conditionCount": 1, // Counter Bedingung
+ "condition": [] // Zustände Bedingungen
+ }
+ }
+ }
+}
+```
+
+# Пример создания или редактирования триггеров с помощью sendTo (эксперты)
+[Краткое содержание](#zusammenfassung)
+
+```JSON
+sendTo("schedule-switcher.0", "add-trigger", { // Neuen Auslöser anlegen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerType":"TimeTrigger",
+ "actionType":"OnOffStateAction"
+});
+
+sendTo("schedule-switcher.0", "update-trigger", { // Aktion für den neuen Auslöser festlegen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":{
+ "type":"TimeTrigger",
+ "hour":12,
+ "minute":32,
+ "weekdays":[1,2,3,4,5],
+ "id":"0", // ID abgleichen
+ "action":{
+ "type":"OnOffStateAction",
+ "name":"On"
+ }
+ }
+});
+
+sendTo("schedule-switcher.0", "add-trigger", { // Neuen Astrotrigger anlegen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerType":"AstroTrigger",
+ "actionType":"OnOffStateAction"
+});
+
+sendTo("schedule-switcher.0", "update-trigger", { // Aktion für den neuen Auslöser festlegen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":{
+ "type":"AstroTrigger",
+ "astroTime":"sunrise", // sunrise, sunset or solarNoon
+ "shiftInMinutes":0,
+ "weekdays":[1,2,3,4,5],
+ "id":"0", // ID abgleichen
+ "action":{
+ "type":"OnOffStateAction",
+ "name":"On"
+ }
+ }
+});
+
+sendTo("schedule-switcher.0", "disable-schedule", { // Auslöser deaktivieren
+ "dataId":"schedule-switcher.0.onoff.6.data"
+});
+
+sendTo("schedule-switcher.0", "enable-schedule", { // Auslöser aktivieren
+ "dataId":"schedule-switcher.0.onoff.6.data"
+});
+
+sendTo("schedule-switcher.0", "add-one-time-trigger", { // Einmalauslöser anlegen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "trigger":"{\"type\":\"OneTimeTrigger\",\"date\":\"2024-10-17T06:14:22.660Z\",\"timedate\":false,\"action\":{\"type\":\"OnOffStateAction\",\"name\":\"On\"}}"
+});
+
+sendTo("schedule-switcher.0", "delete-trigger", { // Auslöser mit bekannter ID löschen
+ "dataId":"schedule-switcher.0.onoff.6.data",
+ "triggerId":"0"
+});
+```
+
+# Пример истории в формате JSON
+[Краткое содержание](#zusammenfassung)
+
+```JSON
+[
+ {
+ "setObjectId": "0_userdata.0.test4",
+ "objectId": 0,
+ "value": "true",
+ "object": "0_userdata.0.test4",
+ "trigger": "TimeTrigger",
+ "astroTime": "unknown",
+ "shift": 0,
+ "date": 0,
+ "hour": 20,
+ "minute": 48,
+ "weekdays": [
+ [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 0
+ ]
+ ],
+ "time": 1729622880040
+ },
+ {
+ "setObjectId": "0_userdata.0.test4",
+ "objectId": 0,
+ "value": "true",
+ "object": "0_userdata.0.test4",
+ "astroTime": "unknown",
+ "shift": 0,
+ "date": 0,
+ "hour": 20,
+ "minute": 47,
+ "weekdays": [
+ [
+ 1,
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 0
+ ]
+ ],
+ "time": 1729622820071
+ }
+]
+```
+
+# Пример представления виджета в формате JSON
+[Краткое содержание](#zusammenfassung)
+
+```json
+{
+ "vis-2.0": {
+ "main": {
+ "w000004": {
+ "prefix": "main", // Projekt
+ "namespace": "vis-2.0", // VIS
+ "view": "default", // View
+ "widgetId": "w000004", // Widget ID
+ "newId": "schedule-switcher.0.onoff.3.data" // Objekt ID
+ }
+ }
+ },
+ "vis.0": {
+ "main": {
+ "w00001": {
+ "prefix": "main",
+ "namespace": "vis.0",
+ "view": "Rollo",
+ "widgetId": "w00001",
+ "newId": "schedule-switcher.0.onoff.3.data"
+ }
+ }
+ }
+}
+```
+
+### Создать виджет
+[Краткое содержание](#zusammenfassung)
+
+- Вставить виджет в представление
+
+![create_widget.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget.png)
+
+- Выберите идентификатор для схематических данных.
+- Выберите идентификатор активации расписания.
+- Выберите идентификатор переключаемого состояния (максимум 10)
+
+![create_widget_stateid.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png)
+
+- Определить тип значения и значения, которые следует установить
+
+![create_widget_stateid_1.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png)
+
+- Теперь создадим принципиальную схему.
+
+![create_widget_select.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select.png)
+
+### Изменить имя
+[Краткое содержание](#zusammenfassung)
+
+- Изменить имя - Также принято в объектах
+
+![create_widget_name.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_name.png)
+
+### Добавить условие
+[Краткое содержание](#zusammenfassung)
+
+- Установите условие.
+
+![create_widget_select_condition.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png)
+
+### Заменить текст
+[Краткое содержание](#zusammenfassung)
+
+- Изменение текста вкл/выкл и все вкл/выкл
+
+![create_widget_rename_1.png](img/create_widget_rename_1.png) ![create_widget_rename_2.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png)
+
+### Применить CSS [Описание см. css](#css)
+[Краткое содержание](#zusammenfassung)
+
+– Используйте «Включить CSS», чтобы настроить стиль.
+
+![create_widget_css.png](img/create_widget_css.png) ![create_widget_css_1.png](img/create_widget_css_1.png) ![create_widget_css_2.png](img/create_widget_css_2.png) ![create_widget_css_3.png](img/create_widget_css_3.png) ![widget_switched.png](img/widget_switched.png) ![widget_manual.png](img/widget_manual.png) ![widget_astro_icon.png](img/widget_astro_icon.pngg) ![widget_condition_1.png](img/widget_condition_1.png) ![widget_condition_2.png](../../../de/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png)
+
+### Триггеры
+[Краткое содержание](#zusammenfassung)
+
+- Нажмите на ручку, чтобы ввести время, или нажмите на мусорную корзину, чтобы удалить триггер.
+
+![create_widget_select_time.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png)
+
+- Выберите состояние переключения
+- Выберите условие (необязательно)
+- Введите время (чч:мм)
+
+```:warning:
+ ⚠ Zeigt in Firefox kein Uhrzeit-Feld an!
+```
+
+![create_widget_select_time_add_1.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png)
+
+- Выберите день недели
+- Нажмите «Сохранить» вверху справа.
+
+![create_widget_select_time_add_2.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png)
+
+- Полный
+
+![create_widget_select_time_done.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png)
+
+### Астротриггеры
+[Краткое содержание](#zusammenfassung)
+
+- Нажмите на ручку, чтобы выбрать астрономическое время, или нажмите на мусорную корзину, чтобы удалить триггер.
+
+![create_widget_select_astro.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png)
+
+- Выберите состояние переключения
+- Выберите условие (необязательно)
+- Выберите астрономическое время (восход солнца, закат или полдень)
+
+![create_widget_select_astro_add_1.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png)
+
+- Введите смещение в минутах (необязательно)
+- Выберите день недели
+- Нажмите «Сохранить» вверху справа.
+
+![create_widget_select_astro_add_2.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png)
+
+- Полный
+
+![create_widget_select_astro_done.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png)
+
+### Одноразовый триггер
+[Краткое содержание](#zusammenfassung)
+
+- Выберите состояние переключения
+- Выберите условие (необязательно)
+- Введите время (чч:мм:сс)
+- Нажмите «Сохранить» вверху справа.
+
+![create_widget_select_onetime.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png)
+
+- Полный
+
+![create_widget_select_onetime_done.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png)
+
+- Выберите состояние переключения
+- Выберите условие (необязательно)
+- Введите/выберите время (дд.мм.гггг чч:мм:сс)
+- Нажмите «Сохранить» вверху справа.
+
+```:warning:
+ ⚠ Zeigt in Firefox kein Uhrzeit-Feld an!
+```
+
+![create_widget_select_onetime_date.png](img/create_widget_select_onetime_date.png) ![create_widget_select_onetime_date_calendar.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png)
+
+- Полный
+
+![create_widget_select_onetime_date_done.png](../../../de/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png)
+
+### HTML для VIS и VIS-2
+[Краткое содержание](#zusammenfassung)
+
+- `html.background_color_body` Цвет фона тела. В комплекте с ВИС и только виджет с ВИС-2 - стандарт #000000
+- `html.background_color_even` четное число триггера цвета фона – по умолчанию #1E1E1E
+- `html.background_color_odd` триггер цвета фона с нечетным номером - по умолчанию #18171C
+- Объект триггера цвета фона `html.background_color_trigger` — по умолчанию #000000
+- Цвет фона `html.background_color_weekdays_hover` при наведении курсора на дни недели – нажмите, чтобы активировать/деактивировать – по умолчанию синий
+- `html.column_align_01` Столбец выравнивания текста заголовка 1 – по центру по умолчанию.
+- `html.column_align_02` Столбец выравнивания текста заголовка 2 — по центру по умолчанию.
+- `html.column_align_03` Столбец выравнивания текста заголовка 3 – по центру по умолчанию.
+- `html.column_align_04` Столбец выравнивания текста заголовка 4 – по центру по умолчанию.
+- `html.column_align_05` Столбец выравнивания текста заголовка 5 – по центру по умолчанию.
+- `html.column_align_06` Столбец выравнивания текста заголовка 6 – по центру по умолчанию.
+- `html.column_align_07` Столбец выравнивания текста заголовка 7 – по центру по умолчанию.
+- `html.column_align_08` Столбец выравнивания текста заголовка 8 – по центру по умолчанию.
+- `html.column_align_09` Столбец выравнивания текста заголовка 9 – по центру по умолчанию.
+- `html.column_align_10` Столбец выравнивания текста заголовка 10 – по центру по умолчанию.
+- `html.column_text_01` Столбец текста заголовка 1 – стандартное расписание.
+- `html.column_text_02` Столбец текста заголовка 2 — Стандартные устройства
+- `html.column_text_03` текстовый столбец заголовка 3 - стандартный переключатель
+- `html.column_text_04` текстовый столбец заголовка 4 - по умолчанию Пн.
+- `html.column_text_05` текстовый столбец заголовка 5 - по умолчанию Tu
+- `html.column_text_06` Столбец текста заголовка 6 – по умолчанию We
+- `html.column_text_07` Столбец текста заголовка 7 – значение по умолчанию
+- `html.column_text_08` Столбец текста заголовка 8 – по умолчанию, пятница.
+- `html.column_text_09` текстовый столбец заголовка 9 - стандартный суббота
+- `html.column_text_10` Столбец текста заголовка 10 – по умолчанию Su
+- `html.column_width_01` ширина столбца 1 – по умолчанию автоматически
+- `html.column_width_02` ширина столбца 2 – по умолчанию автоматически
+- `html.column_width_03` ширина столбца 3 – по умолчанию автоматически
+- `html.column_width_04` ширина столбца 4 – по умолчанию автоматически
+- `html.column_width_05` ширина столбца 5 – по умолчанию автоматически
+- `html.column_width_06` ширина столбца 6 – по умолчанию автоматически
+- `html.column_width_07` ширина столбца 7 – по умолчанию автоматически
+- `html.column_width_08` ширина столбца 8 – по умолчанию автоматически
+- `html.column_width_09` ширина столбца 9 – по умолчанию автоматически
+- `html.column_width_70` ширина столбца 10 – по умолчанию автоматически
+- `html.font_color_text_disabled` Цвет текста отключенного объекта — по умолчанию красный.
+- `html.font_color_text_enabled` Цвет текста активированного объекта – желтый по умолчанию.
+- `html.font_color_weekdays_disabled` Цвет текста отключенных дней недели — красный по умолчанию.
+- `html.font_color_weekdays_enabled` Цвет текста включенных дней недели — желтый по умолчанию
+- поле заголовка `html.header_border` в пикселях – по умолчанию 2
+- `html.header_font_family` Семейство шрифтов заголовка – стандартный Helvetica
+- Размер шрифта заголовка `html.header_font_size` — по умолчанию 15
+- `html.header_linear_color_1` фоновое изображение головы: линейный градиент 1 — по умолчанию #BDBDBD
+- `html.header_linear_color_2` фоновое изображение головы: линейный градиент 2 — по умолчанию #BDBDBD
+- `html.header_tag_border_color` HTML-тег заголовка` ` Цвет границы — по умолчанию #424242.
+- ТЕГ заголовка `html.header_width` ` Стандартный размер авто
+- `html.column_align_row_01` Выравнивание текста строк в столбце 1 – по умолчанию слева
+- `html.column_align_row_02` Выравнивание текста строк в столбце 2 — по умолчанию слева
+- `html.column_align_row_03` Выравнивание текста строк в столбце 3 – по умолчанию по левому краю.
+- `html.column_align_row_04` Выравнивание текста строк в столбце 4 — по умолчанию слева
+- `html.column_align_row_05` Выравнивание текста строк в столбце 5 – по умолчанию слева
+- `html.column_align_row_06` Выравнивание текста строк в столбце 6 – по умолчанию по левому краю.
+- `html.column_align_row_07` Выравнивание текста строк в столбце 7 – по умолчанию по левому краю.
+- `html.column_align_row_08` Выравнивание текста строк в столбце 8 — по умолчанию слева
+- `html.column_align_row_09` Выравнивание текста строк в столбце 9 — по умолчанию слева
+- `html.column_align_row_10` Выравнивание текста строк в столбце 10 — по умолчанию слева
+- Цвет шрифта заголовка `html.headline_color` (расписание, устройство...) - по умолчанию #ffffff
+- Размер шрифта заголовка `html.headline_font_size` в пикселях – по умолчанию 16
+- Высота строки заголовка `html.headline_height` в пикселях – по умолчанию 35
+- `html.headline_underlined` нижнее поле заголовка в пикселях – по умолчанию 3
+- `html.headline_underlined_color` цвет нижней границы заголовка - по умолчанию #ffffff
+- толщина шрифта заголовка `html.headline_weight` — по умолчанию нормальная
+- `html.html_code` HTML-код для VIS, VIS-2, Jarvis, IQontrol и т. д.
+- `html.icon_false` Состояние отключения значка - стандарт ⚪
+- `html.icon_switch_symbol` Переключатель значков для активации/деактивации таймера – по умолчанию ⏱
+- `html.icon_true` Состояние включения значка - стандартное 🟡
+- `html.jarvis` Совместим с Jarvis - по умолчанию false
+- `html.p_tag_text_algin` HTML ` ` Выравнивание текста (последнее обновление и нижний колонтитул) — по умолчанию по центру
+- `html.table_tag_border_color` Цвет границы из TAG ` ` - № по умолчанию 424242
+- `html.table_tag_cell` Ограничить расстояние от TAG ` ` в пикселях — по умолчанию 6
+- `html.table_tag_text_align` Выравнивание текста по TAG ` ` - Центр по умолчанию
+- `html.table_tag_width` Размер тега ` ` - Авто по умолчанию
+- `html.td_tag_border_bottom` Нижняя граница TAG ` ` в пикселях — по умолчанию 1
+- `html.td_tag_border_color` Цвет нижней границы TAG ` | ` - № по умолчанию 424242
+- `html.td_tag_border_right` Граница справа от TAG ` | ` в пикселях — по умолчанию 1
+- `html.td_tag_cell` пространство вокруг текста TAG ` | `в пикселях (отступы) — по умолчанию 6
+- Семейство шрифтов верхнего и нижнего колонтитула `html.top_font_family` — стандартный Helvetica
+- размер шрифта верхнего и нижнего колонтитула `html.top_font_size` в пикселях – по умолчанию 20
+- `html.top_font_weight` толщина шрифта верхнего и нижнего колонтитула - по умолчанию нормальная"
+- `html.top_text` Собственный текст для заголовка. Ваш текст по умолчанию.
+- Цвет шрифта верхнего и нижнего колонтитула `html.top_text_color` — по умолчанию #ffffff.
+- `html.update` Запуск обновления вручную.
+
+![vis_object_1.png](../../../de/adapterref/iobroker.schedule-switcher/img/vis_object_1.png)
+
+- Нажмите на текст «Последнее обновление», чтобы выполнить обновление вручную.
+- Нажмите на иконку, чтобы активировать/деактивировать виджет
+- Чтобы удалить триггер, сначала необходимо отметить его галочкой, а затем нажать кнопку «Удалить».
+- Измените время/Астрономию и нажмите кнопку «Сохранить», чтобы применить изменения.
+- Нажмите на день недели, чтобы активировать/деактивировать его.
+
+![vis_view_1.png](img/vis_view_1.png) ![vis_view_2.png](../../../de/adapterref/iobroker.schedule-switcher/img/vis_view_2.png)
+
+### Функция ТОЛЬКО для ВИС-2!!!
+[Краткое содержание](#zusammenfassung)
+
+К сожалению, ТОЛЬКО с VIS-2 перечисленные ниже функции необходимо вставлять вручную (см. рисунки).
+
+![vis2_object.png](img/vis2_object.png) ![vis2_script.png](../../../de/adapterref/iobroker.schedule-switcher/img/vis2_script.png)
+
+```java
+function deleteTrigger(stateId, command, id, dataid, count) {
+ var check = document.getElementById('delete' + count).checked;
+ if (ckeck) {
+ var data = {
+ "command": command,
+ "message": {
+ "triggerid": id,
+ "dataId": dataid,
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+ }
+}
+function changeweekdays(stateId, command, dataid, id, changeid, type) {
+ if (type === "OneTimeTrigger") return;
+ var data = {
+ "command": command,
+ "message": {
+ "changeid": changeid,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function updateTrigger(stateId) {
+ vis.conn.setState(stateId + '.html.update', { val: true, ack: false });
+}
+function setState(stateId, value) {
+ vis.conn.setState(stateId, { val: value == 'false' ? false : true, ack: false });
+}
+function sendToAstro(stateId, command, dataid, id, count) {
+ var timeselect = document.getElementById('timeselect' + count).value;
+ var shift = document.getElementById('shift' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "astrotime": timeselect,
+ "shift": shift,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToDateTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('datetime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+function sendToTime(stateId, command, id, dataid, count) {
+ var value = document.getElementById('nexttime' + count).value;
+ var data = {
+ "command": command,
+ "message": {
+ "time": value,
+ "triggerid": id,
+ "dataid": dataid
+ }
+ };
+ vis.conn.setState(stateId + '.sendto', { val: JSON.stringify(data), ack: false });
+}
+```
+
+### CSS
+[Краткое содержание](#zusammenfassung)
+
+```
+app-on-off-schedules-widget {
+ /* Primary color (button background, toggle switch color) */
+ --ts-widget-primary-color: #337ab7;
+
+ /* Background color of the widget */
+ --ts-widget-bg-color: #424242;
+ /* Background color of the triggers */
+ --ts-widget-trigger-bg-color: #272727;
+
+ /* Foreground color (font color and scrollbar color) */
+ --ts-widget-fg-color: white;
+ /* Font color of the switched states id */
+ --ts-widget-oid-fg-color: #a5a5a5;
+ /* Font color in buttons */
+ --ts-widget-btn-fg-color: white;
+ /* Font color of a disabled weekday */
+ --ts-widget-weekdays-disabled-fg-color: #5D5D5D;
+ /* Font color of an enabled weekday */
+ --ts-widget-weekdays-enabled-fg-color: white;
+ /* Font color of the name of the widget (defaults to --ts-widget-fg-color) */
+ --ts-widget-name-fg-color: white;
+ /* Font color of switched time (defaults to --ts-widget-fg-color) */
+ --ts-widget-switched-time-fg-color: white;
+ /* Font color of switched value (defaults to --ts-widget-fg-color)*/
+ --ts-widget-switched-value-fg-color: white;
+ /* Font color of the astro time (defaults to --ts-widget-fg-color) */
+ --ts-widget-astro-time-fg-color: black;
+ /* Font color of the astro time's shift */
+ --ts-widget-astro-shift-fg-color: #5d5d5d;
+ /* Font color of condition (defaults to --ts-widget-fg-color) */
+ --ts-widget-condition-fg-color: white;
+ /* Font color of toogle button off */
+ --ts-widget-off-color: #c0c0c0;
+ /* Color background toogle button off */
+ --ts-widget-off-color-container: #808080;
+ /* Color of next astro switching time */
+ --ts-widget-astro-next-fg-color: white;
+
+ /* Font family used in the whole widget */
+ --ts-widget-font-family: 'Roboto', 'Segoe UI', BlinkMacSystemFont, system-ui, -apple-system;
+ /* Font size of the name of the widget */
+ --ts-widget-name-font-size: 2em;
+ /* Font size of the switched oid */
+ --ts-widget-oid-font-size: 30px;
+ /* Font size of switch text */
+ --ts-widget-state-action-width: 65px;
+ /* Font size of next astro switching time */
+ --ts-widget-astro-next-font-size: 2em;
+ /* Width of date time input */
+ --ts-widget-datetime-width: 230px;
+
+ /* Display of edit name button. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-edit-name-button-display: block;
+ /* Display of condition. Use 'none' to hide the condition and 'block' to show it
+ -ts-widget-condition-display: block;
+ /* Display of time icon. Use 'none' to hide the button and 'block' to show it
+ --ts-widget-time-icon-display: none;
+
+ /* Applies a filter to icons used in buttons (safe, edit, remove, cancel), for
+ white use invert(1) and for black invert(0) */
+ --ts-widget-img-btn-filter: invert(1);
+
+ /* Add trigger dropdown background color */
+ --ts-widget-add-trigger-dropdown-bg-color: #f1f1f1;
+ /* Add trigger dropdown font color */
+ --ts-widget-add-trigger-dropdown-fg-color: black;
+ /* Add trigger dropdown hover background color */
+ --ts-widget-add-trigger-dropdown-hover-bg-color: #ddd;
+
+ /* ! Changing these may break the layout, change at your own risk */
+
+ /* Font size of weekdays */
+ --ts-widget-weekdays-font-size: 23px;
+ /* Font size of switched value (on/off) */
+ --ts-widget-switched-value-font-size: 2em;
+ /* Font size of switched time */
+ --ts-widget-switched-time-font-size: 2em;
+ /* Font size of the astro time (e.g. Sunrise, ...) */
+ --ts-widget-astro-time-font-size: 1.5em;
+ /* Font size of the astro time's shift */
+ --ts-widget-astro-shift-font-size: 1em;
+ /* Font size of condition */
+ --ts-widget-condition-font-size: 1em;
+}
+```
+
+## Changelog
+
+
+
+### **WORK IN PROGRESS**
+
+- (Lucky_ESA) HTML overview added
+
+### 0.0.6 (2024-11-16)
+
+- (Lucky_ESA) Put value of state correctly
+- (Lucky_ESA) Added next triggers as JSON
+- (Lucky_ESA) Added counter trigger
+- (Lucky_ESA) Updating astro time fixed
+
+### 0.0.5 (2024-11-06)
+
+- (Lucky_ESA) Crash when updating astro time fixed
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.4 (2024-11-04)
+
+- (Lucky_ESA) Temporary function removed
+- (Lucky_ESA) Creation of objects adjusted
+- (Lucky_ESA) Validation check of the states
+- (Lucky_ESA) Validation check for 2 widgets with one object
+
+### 0.0.3 (2024-10-30)
+
+- (Lucky_ESA) Fixed VIS translate
+- (Lucky_ESA) Added astro time in trigger
+- (Lucky_ESA) Fixed OneTimeTrigger
+- (Lucky_ESA) Added date for OneTimeTrigger
+- (Lucky_ESA) Fixed some bugs
+
+### 0.0.2 (2024-10-22)
+
+- (Lucky_ESA) Fix translate
+- (Lucky_ESA) Fix background color disable Weekdays
+- (Lucky_ESA) Fix sendTo
+- (Lucky_ESA) Added jsonConfig
+- (Lucky_ESA) Added history
+
+### 0.0.1 (2024-10-19)
+
+- (Lucky_ESA) initial release
+
+## License
+
+MIT License
+
+Copyright (c) 2024 Lucky_ESA
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget.png
new file mode 100644
index 000000000..683df95ab
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css.png
new file mode 100644
index 000000000..cbf9e389b
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png
new file mode 100644
index 000000000..a66472e6d
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png
new file mode 100644
index 000000000..54434121c
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png
new file mode 100644
index 000000000..7b9aed0aa
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_css_3.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_name.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_name.png
new file mode 100644
index 000000000..dee6aa541
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_name.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png
new file mode 100644
index 000000000..e24ba601d
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png
new file mode 100644
index 000000000..2538094fa
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_rename_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select.png
new file mode 100644
index 000000000..584c68497
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png
new file mode 100644
index 000000000..431cd0db2
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png
new file mode 100644
index 000000000..9540979de
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png
new file mode 100644
index 000000000..6c6e70372
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_add_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png
new file mode 100644
index 000000000..431cd0db2
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_astro_done.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png
new file mode 100644
index 000000000..d5ba2e9e4
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_condition.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png
new file mode 100644
index 000000000..55ff75d02
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png
new file mode 100644
index 000000000..3ae7cf574
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png
new file mode 100644
index 000000000..e679423d2
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_calendar.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png
new file mode 100644
index 000000000..3b759b64a
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_date_done.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png
new file mode 100644
index 000000000..8b6b72864
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_onetime_done.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png
new file mode 100644
index 000000000..05e33f441
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png
new file mode 100644
index 000000000..e5c1dcf0f
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png
new file mode 100644
index 000000000..1e1459b97
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_add_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png
new file mode 100644
index 000000000..89a5fc1c1
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_select_time_done.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png
new file mode 100644
index 000000000..2f2d7f0fe
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png
new file mode 100644
index 000000000..7a2b24454
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/create_widget_stateid_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings.png
new file mode 100644
index 000000000..e8bffec8e
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png
new file mode 100644
index 000000000..0f084262e
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/instance_settings_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/view_states.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/view_states.png
new file mode 100644
index 000000000..39adcfeba
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/view_states.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_object.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_object.png
new file mode 100644
index 000000000..c2c36580b
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_object.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_script.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_script.png
new file mode 100644
index 000000000..e62188328
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis2_script.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_object_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_object_1.png
new file mode 100644
index 000000000..5b4f19602
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_object_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_1.png
new file mode 100644
index 000000000..06cadb480
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_2.png
new file mode 100644
index 000000000..6354d1701
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/vis_view_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png
new file mode 100644
index 000000000..45e96ebfc
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_1.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png
new file mode 100644
index 000000000..05dd5e792
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_condition_2.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_manual.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_manual.png
new file mode 100644
index 000000000..0a18f14d2
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_manual.png differ
diff --git a/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_switched.png b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_switched.png
new file mode 100644
index 000000000..07e7fe21f
Binary files /dev/null and b/docs/ru/adapterref/iobroker.schedule-switcher/img/widget_switched.png differ
diff --git a/docs/ru/adapterref/iobroker.semp/README.md b/docs/ru/adapterref/iobroker.semp/README.md
index 7cb13201d..479aa1981 100644
--- a/docs/ru/adapterref/iobroker.semp/README.md
+++ b/docs/ru/adapterref/iobroker.semp/README.md
@@ -1,56 +1,56 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.semp/README.md
-title: ioBroker.samp
-hash: dC7K359kH1AF9pJs23+dFLjAfoVtQD6sxsg/LNj7xgY=
+title: ioBroker.semp
+hash: 3eKCgekKBWAZFRi0xTm5M+gZjWwArpIfn2sr5r8I5gY=
---
![Логотип](../../../en/adapterref/iobroker.semp/admin/semp.png)
![Количество установок](http://iobroker.live/badges/semp-stable.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.semp.svg)
-![НПМ-версия](http://img.shields.io/npm/v/iobroker.semp.svg)
+![версия НПМ](http://img.shields.io/npm/v/iobroker.semp.svg)
![Известные уязвимости](https://snyk.io/test/github/rg-engineering/ioBroker.semp/badge.svg)
![НПМ](https://nodei.co/npm/iobroker.semp.png?downloads=true)
![узел-lts](https://img.shields.io/node/v-lts/iobroker.semp?style=flat-square)
![Статус зависимости Libraries.io для последней версии](https://img.shields.io/librariesio/release/npm/iobroker.semp?label=npm%20dependencies&style=flat-square)
![GitHub](https://img.shields.io/github/license/rg-engineering/ioBroker.semp?style=flat-square)
![Размер репозитория GitHub](https://img.shields.io/github/repo-size/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
-![Действия по фиксации GitHub](https://img.shields.io/github/commit-activity/m/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
+![Активность коммита GitHub](https://img.shields.io/github/commit-activity/m/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
![Последний коммит GitHub](https://img.shields.io/github/last-commit/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
![Проблемы с GitHub](https://img.shields.io/github/issues/rg-engineering/ioBroker.semp?logo=github&style=flat-square)
-# IoBroker.samp
+# IoBroker.semp
![Действия GitHub](https://github.com/rg-engineering/ioBroker.semp/workflows/Test%20and%20Release/badge.svg)
-**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Для получения более подробной информации и информации о том, как отключить отчеты об ошибках, см. [Документация плагина Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются начиная с js-controller 3.0.
+**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Более подробную информацию и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
-**Если вам это нравится, пожалуйста, рассмотрите возможность пожертвования:**
+**Если вам понравилось, пожалуйста, рассмотрите возможность пожертвования:**
-[![PayPal](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=34ESBMJ932QZC)
+[![paypal](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=34ESBMJ932QZC)
## Адаптер SMA SEMP для ioBroker
Интерфейс к SMA SunnyPortal через SunnyHomeManager и SEMP
Добавьте свои устройства из ioBroker в SunnyPortal.
-SunnyPortal сможет лучше оценить ваше энергопотребление и, таким образом, сделать более точные прогнозы и рекомендации. Но вы также можете управлять своими устройствами с помощью SunnyPortal. Если солнечной энергии достаточно, SunnyPortal может включить ваши устройства, а если солнечной энергии недостаточно, выключить их снова. Таким образом, вы оптимизируете собственное потребление, но не зависите от нескольких устройств, поддерживаемых SunnyPortal. С помощью адаптера любое устройство от ioBroker можно интегрировать в SunnyPortal.
-Даже не обязательно измерять потребление одного устройства. Даже оценочных значений достаточно.
+SunnyPortal может лучше оценить ваше потребление энергии и, таким образом, сделать более точные прогнозы и рекомендации. Но вы также можете управлять своими устройствами с помощью SunnyPortal. Если солнечной энергии достаточно, SunnyPortal может включить ваши устройства или, если ее недостаточно, снова выключить их. Таким образом, вы оптимизируете свое собственное потребление, но вы не зависите от нескольких устройств, поддерживаемых в SunnyPortal. С адаптером любое устройство из ioBroker может быть интегрировано в SunnyPortal.
+Даже не обязательно измерять потребление одного устройства. Достаточно даже оценочных значений.
## Пользовательская документация
-см. [документ](docu/docu_en.md)
+см. [документ](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/docu_en.md)
-Подробную информацию о протоколе и использовании см. в [Документ SMA](docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
+Подробную информацию о протоколе и его использовании см. в разделе [SMA документ](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SEMP-11ZE3315-Specification-1.0.6.pdf).
-Описание общего использования запросов на энергию см. [Документ SMA](docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf). (только немецкий)
+Описание общего использования энергетических запросов см. в [SMA документ](https://github.com/rg-engineering/ioBroker.semp/blob/master/docu/SMA/SSH_KANN-Zeitfenster-TI-de-10.pdf). (только на немецком языке)
## Функции
-* добавлять устройства из ioBroker в SunnyPortal через SMA SEMP
-* сообщает SunnyPortal о текущем потреблении
-* позвольте SunnyPortal управлять этими устройствами (включать, когда солнечной энергии достаточно, и выключать, когда солнечной энергии недостаточно)
+* добавить устройства из ioBroker в SunnyPortal через SMA SEMP
+* информирует SunnyPortal о текущем потреблении
+* позвольте SunnyPortal управлять этими устройствами (включать, когда достаточно мощности фотоэлектрических систем, и выключать, когда солнечной энергии недостаточно)
## Требования
-## Известные вопросы
-* создавайте проблемы на [github](https://github.com/rg-engineering/ioBroker.semp/issues), если вы обнаружите ошибки или вам нужны новые функции.
+## Известные проблемы
+* пожалуйста, создавайте проблемы на [github](https://github.com/rg-engineering/ioBroker.semp/issues), если вы нашли ошибки или хотите новые функции
## Changelog
@@ -58,6 +58,46 @@ SunnyPortal сможет лучше оценить ваше энергопотр
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.4.8 (2024-11-20)
+* (René) update dependencies
+* (René) issue #317: test with nodejs@22
+* (René) issue #329: links to docu updated
+
+### 1.4.7 (2024-09-13)
+* (René) see issue #314: bug fix to use express@5.0.0
+
+### 1.4.6 (2024-08-24)
+* (René) update dependencies
+* (René) bug fixes based on adapter checker recommendation
+
+### 1.4.5 (2024-05-29)
+* (René) see issue #250: no Power to be send for devices without measurement in off-status
+
+### 1.4.4 (2024-05-28)
+* (René) change of dependencies
+* (René) wallbox: check and log wrong value for Wallbox3phaseSwitchDelay only if enabled
+
+### 1.4.3 (2024-02-20)
+* (René) wallbox: unnecessary warn messages deactivated
+* (René) dependencies updated
+
+### 1.4.2 (2024-02-16)
+* (René) bug fix in create timeframes
+
+### 1.4.1 (2024-02-12)
+* (René) minor bug fix
+
+### 1.4.0 (2024-02-12)
+* (René) bug fix: see issue #206 - wallbox OID's selectable
+* (René) bug fix: see issue #207 - wallbox maximum charge time adjustable
+* (René) see issue #208: timeframe can be disabled by user (optionally)
+
+### 1.3.15 (2024-02-03)
+* (René) bug fix: wallbox counter and status are not handled
+
+### 1.3.14 (2024-01-12)
+* (René) dependencies updated
+
### 1.3.13 (2023-11-19)
* (René) dependencies updated
* (René) fix exceptions reported by sentry
@@ -167,7 +207,7 @@ SunnyPortal сможет лучше оценить ваше энергопотр
## License
MIT License
-Copyright (c) 2022-2023 rg-engineering info@rg-engineering.eu
+Copyright (c) 2022-2024 René G.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -185,4 +225,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.slideshow/README.md b/docs/ru/adapterref/iobroker.slideshow/README.md
index a2c3cdaf1..7c134f17d 100644
--- a/docs/ru/adapterref/iobroker.slideshow/README.md
+++ b/docs/ru/adapterref/iobroker.slideshow/README.md
@@ -1,186 +1,181 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.slideshow/README.md
-title: ioBroker.слайд-шоу
-hash: 0567hUtbU7xUZRXy7s5faV7yRsbM5uJboFkUTFKLxTQ=
+title: ioBroker.слайдшоу
+hash: JzFpziqmjAlUpvoVt6P6xVMXV1nenar3ljFNKgEY15M=
---
![Логотип](../../../en/adapterref/iobroker.slideshow/admin/slideshow.png)
-![версия NPM](http://img.shields.io/npm/v/iobroker.slideshow.svg)
+![версия НПМ](http://img.shields.io/npm/v/iobroker.slideshow.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.slideshow.svg)
-![Количество установок (последние)](https://iobroker.live/badges/slideshow-installed.svg)
+![Количество установок (последнее)](https://iobroker.live/badges/slideshow-installed.svg)
![Количество установок (стабильно)](https://iobroker.live/badges/slideshow-stable.svg)
![НПМ](https://nodei.co/npm/iobroker.slideshow.png?downloads=true)
-# IoBroker.слайд-шоу
-![Тестируйте и выпускайте](https://github.com/gaudes/ioBroker.slideshow/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/slideshow/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
+# IoBroker.слайдшоу
+![Тест и выпуск](https://github.com/gaudes/ioBroker.slideshow/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/slideshow/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
[Deutsche Beschreibung](#deutsch)
-[английское описание](#english)
+[Описание на английском языке](#english)
![Демо](../../../en/adapterref/iobroker.slideshow/docs/img/demo.gif)
## Адаптер Diashow для ioBroker
-Адаптер Dieser для ioBroker stellt eine Diashow почти как Bildschirmschoner für VIS zur Verfügung.
+Адаптер для ioBroker может использоваться как Diashow, так и для Bildschirmschoner для VIS для Verfügung.
Folgende Quellen stehen aktuell zur Verfügung:
* Die letzten acht täglichen Bilder von Bing.com
* Через VIS-Dateimanager hochgeladene Bilder
-* Bilder aus beliebigem Pfad im Dateisystem
+* Изображение из достоверной информации Pfad im Dateisystem
* Фотографии Synology PhotoStation и Synology Photo
-Zur Darstellung в VIS Stellt der Adapter ein Widget zur Verfügung.
+Для просмотра в VIS используется адаптер и виджет для настройки.
Dieses bietet auch Funktionen für Effekt beim Bildwechsel, beispielsweise sanftes Ein- und Ausblenden.
-Zusätzlich kann ein Timeout eingestellt werden. Sofern auf anderen View im Projekt keine Aktion für das eingestellte Timeout erfolgt ist, wird zur View mit der Diashow gewechselt. Durck Klicken des Bilds wird entweder zurück zur letzten Ansicht oder zu einer eingestellten Ansicht gewechselt.
+Время ожидания может быть изменено. В других случаях просмотр проекта должен выполняться в течение заданного времени ожидания, поэтому вы можете просмотреть его с помощью диалогового окна. Нажмите кнопку «Bilds», чтобы получить возможность получить доступ к информации или получить дополнительную информацию.
-Neben dem Bild selbst as Pfad oder Base64-kodiertes Objekt werden weitere Objekte mit Informationen zum Bild in ioBroker erstellt.
-Diese sind abhängig von der Ausgewählten Quelle:
+Не используйте Bild в качестве Pfad или Base64-kodiertes Objekt weitere Objekte mit Informationen zum Bild в ioBroker.
+Diese sind abhängig von der ausgewählten Quelle:
-| Объект | Бинг | Локальная система и система дат | Синология | ----------- | ----------- | ----------- | ----------- | информация1 | Название | Название (EXIF-информация) | Название | информация2 | Информация | Betreff (EXIF-информация) | Информация | информация3 | Информация об авторских правах | Комментарии (EXIF-информация) | Дата | дата | Datum der Anzeige auf Bing-Seite | Aufnahmedatum (EXIF-информация) | Ауфнамедатум
+| Объект | Бинг | Местные и датовые системы | Синология | ----------- | ----------- | ----------- | ----------- | информация1 | Название | Название (EXIF-информация) | Название | информация2 | Бесшрайбунг | Бетрефф (EXIF-информация) | Бесшрайбунг | информация3 | Информация об авторских правах | Комментарий (EXIF-информация) | Дата имя | дата | Datum der Anzeige на Bing-Seite | Aufnahmedatum (EXIF-информация) | Ауфнахмедатум
-Der Button "updatepicturelist" как объект в ioBroker находится в Bilder aus den configurierten Quellen neu ein, z.B. nach Hinzufügen oder Löschen von Bildern. Die Bilder aus allen Quellen mit Ausnahme Bing werden sonst nur beim Start des Adapters eingelesen. Bing-Bilder werden stündlich Automaticisch aktualisiert.
+Кнопка «updatepicturelist» также является объектом в ioBroker, который позволяет создавать изображения в новых конфигурациях, z.B. nach Hinzufügen или Löschen von Bildern. Die Bilder aus allen Quellen mit Ausnahme Bing werden sonst nur beim Start des Adapters eingelesen. Bing-Bilder автоматически актуализируется.
-**Адаптер для Sentry Bibliotheken с автоматическим абстракцией и программным обеспечением и интеграцией для übermitteln.** Weitere Details und für Informationen zur Deaktivierung der Fehlerberichterstattung in der [Sentry-плагин Документация](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting поддерживается JS-контроллером 3.0.
+**Адаптер позволяет использовать Sentry Bibliotheken в автоматическом режиме и программировать и Entwickler zu übermitteln.** Подробные сведения и информация о деактивации Fehlerberichterstattung в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Sentry Reporting работает с JS-Controller 3.0.
### Конфигурация
-In den Einstellungen des Adapters wird die Quelle der Bilder ausgewählt, außerdem das Intervall für den Wechsel der Bilder, beispielsweise 10 Sekunden.
-Außerdem kann eingestellt werden, wie часто умирают Liste der Bilder aktualisiert werden soll. Die Einstellung erfolgt in Stunden, bei 0 ist dieAutotische Aktualisierung deaktiviert.
+При установке адаптеров будет установлен интервал в 10 секунд.
+Außerdem kann eingestellt werden, wie часто умирает Liste der Bilder actualisiert werden soll. Когда Einstellung erfolgt in Stunden, bei 0 ist die autotische Aktualisierung deaktiviert.
-Bei Auswahl der Quelle "Dateisystem" kann dann noch der Pfad im Dateisystem ausgewählt werden, außerdem das Format (Hochoder Querformat) der anzuzeigenden Bilder sowie die Reihenfolge.
+При выборе «Dateisystem» можно, чтобы Pfad в Dateisystem ausgewählt был установлен, ausserdem das Format (Hoch- oder Querformat) der anzuzeigenden Bilder sowie die Reihenfolge.
-Будьте уверены в том, что "Synology PhotoStation" должна иметь DSM-версию, IP-адрес или имя хоста, а также измененное имя пользователя и пароль. Загрузить изображения с изображением изображений в фотоснимках с PhotoStation, которые активны.
+При выборе «Synology PhotoStation» необходимо указать версию DSM, IP-адрес или имя хоста, имя пользователя и пароль. Загрузите фон Bildern durch Benutzer muss и активируйте его в режиме PhotoStation.
-### VIS-виджет
-Das Widget ist в дер Kategorie "слайд-шоу" волнует.
+### VIS-Виджет
+Этот виджет входит в категорию «слайд-шоу».
-Das Widget один в один прекрасный вид полностью интегрированы. Hierdurch lässt sich der Automaticische Start der Diashow nutzen.
+Этот виджет будет доступен в вашем собственном режиме просмотра. Hierdurch lässt sich der autotische Start der Diashow nutzen.
Folgende Einstellungen sind möglich:
-* Абшнит "Allgemein"
-* Object-ID: Hier muss der vom Adapter erzeugte Datenpunkt ausgewählt werden, beispielsweise "slideshow.0.picture"
-* Виджет с полным изображением
-* True (Стандарт) = Bild füllt das Widget, der Bildrand ist möglicherweise abgeschnitten
-* False = Das vollständige Bild wird angezeigt, das Widget kann jedoch leere Zonen haben
-* Абшнит "Эффект"
-* SlideshowEffect: Als Effekt kann zwischen folgenden gewählt werden:
+* Абсчнитт "Allgemein"
+ * Идентификатор объекта: Hier muss der vom Adaptor erzeugte Datenpunkt ausgewählt werden, beispielsweise "slideshow.0.picture"
+* Виджет с заполненным изображением
+ * True (Standard) = Bild füllt das Widget, der Bildrand ist möglicherweise abgeschnitten
+ * False = Das vollständige Bild wird angezeigt, das Widget kann jedoch leere Zonen haben
+* Абсчент "Эффект"
+ * SlideshowEffect: Другие эффекты могут быть изменены:
* "Кейн"
-* "Fade": Einfaches Verblassen und Erscheinen
-* «Переход»: Überblenden
-* "jQuery-Effekt": Разнообразный jQuery-Effekte, beispielsweise Rolladen
-* Übergangsphase: Zeit in Millisekunden für den Effekt, gute Werte sind 500 или 1000 мс
-* Стиль перехода: Стиль «Переход» и «Эффект jQuery».
-* jQuery-Эффект: Gewünschter jQuery-Эффект
-* Abschnitt "Automatischer Diashow-Start"
-* Активация автоматических пусков
-* Тайм-аут: Nach welcher Zeit ohne Aktion auf die Diashow-View gewechselt wird
-* Ziel beim Klicken:
-* Zuletzt verwendete Ansicht
-* Konfigurierte Ansicht (siehe nächster Einstellung)
-* Кейн, падает beispielsweise ein eigener Button integriert werden soll
-* Zielansicht: Aufzurufende Ansicht beim Verlassen der Diashow
-
-### ВОПРОСЫ-ОТВЕТЫ
+ * «Fade»: Einfaches Verblassen und Erscheinen.
+ * «Переход»: Убербленден
+ * «Эффект jQuery»: разнообразные эффекты jQuery, дополнительные возможности.
+ * Фаза перехода: время в миллисекундах для эффекта, время ожидания составляет 500 или 1000 мс.
+ * Стиль перехода: стиль «переход» и «эффект jQuery».
+ * jQuery-Effekt: Gewünschter jQuery-Effekt
+* Abschnitt "Автоматическое Диашоу-Старт"
+ * Активация автоматического запуска
+ * Тайм-аут: Nach welcher Zeit ohne Action auf die Diashow-View Gewechselt Wird
+* Цели кликов:
+ * Zuletzt verwendete Ansicht
+ * Настройка конфигурации (siehe nächster Einstellung)
+ * Kein, Falls beispielsweise ein eigener Button integriert werden soll
+ * Zielansicht: Aufzurufende Ansicht beim Verlassen der Diashow
+
+### ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
**Quelle Dateisystem**
Können Netzlaufwerke eingebunden werden?
-Ja, aber nicht direkt durch den Adapter. ioBroker unterstützt mittlerweile sehr viele Betriebssysteme. Der Zugriff und das Verbinden von Netzwerkfreigaben ist je nach Betriebssystem komplett unterschiedlich. Teilweise werden auch weitere Komponenten wie z.B. Самба в Linux выгодна. Das Verbinden des Netzlaufwerks (Mappen bzw. Mount) kann aber direkt über das Betriebssystem durchgeführt werden. Unter Linux erfolgt der Mount in ein angegebenes Verzeichnis, z.B. /мнт/картинки. Dieses Verzeichnis kann dann in der Adapter-Konfiguration verwendet werden.
+Да, это не лучше, чем адаптер. ioBroker unterstützt mittlerweile sehr viele Betriebssysteme. Der Zugriff und das Verbinden von Netzwerkfreigaben ist je nach Betriebssystem komplett unterschiedlich. Teilweise werden auch weitere KomComponenten wie z.B. Samba для Linux полезна. Das Verbinden des Netzlaufwerks (Mappen bzw. Mount) может быть напрямую подключен к системе Betriebs system во время работы. В Linux используется монтирование в другом месте Verzeichnis, z.B. /мнт/картинки. Эта информация может быть изменена в конфигурации адаптера.
**Синология**
-Контент для Synology PhotoStation weitere Einstellungen wie z.B. Auswahl des Albums integriert werden?
+Информация для Synology PhotoStation weitere Einstellungen wie z.B. Целостны ли альбомы?
-Der Zugriff auf bestimmte Fotoalben bzw. Заказать kann jedoch in der aktuellen Version от PhotoStation einfach realisiert werden. Hierzu unter DSM einen Benutzer für Slideshow anlegen und diesem Benutzer в дер PhotoStation nur Berechtigungen auf die gewünschten Fotoalben bzw. Заказ гебен.
+Der Zugriff auf bestimmte Fotoalben bzw. Вы можете использовать актуальную версию PhotoStation, которая действительно доступна. Hierzu unter DSM einen Benutzer for Slideshow anlegen und diesem Benutzer in der PhotoStation nur Berechtigungen auf die gewünschten Fotoalben bzw. Орднер гебен.
## Адаптер слайд-шоу для ioBroker
-Этот адаптер для ioBroker обеспечивает слайд-шоу для VIS, например заставку.
+Этот адаптер для ioBroker обеспечивает слайд-шоу для VIS, похожее на заставку.
Фактически могут быть использованы следующие источники:
-* Последние восемь ежедневных изображений с Bing.com
-* Изображения, загруженные VIS-File-Manager
-* Картинки из пути к файловой системе
-* Изображения с Synology PhotoStation или Synology Photo
+* Последние восемь ежедневных фотографий с Bing.com
+* Фотографии загружены с помощью VIS-File-Manager
+* Фотографии из пути файловой системы
+* Фотографии с Synology PhotoStation или Synology Photo
-Адаптер предоставляет виджет для презентации в VIS, который предлагает эффекты изменения изображения, например, плавное исчезновение и появление.
-Дополнительно можно настроить тайм-аут. Когда в других представлениях того же проекта VIS не происходит никаких действий в течение заданного времени ожидания, будет запущено представление со Слайд-шоу. Щелчком по картинке она возвращается к последнему виду или к предварительно определенному виду.
+Адаптер предоставляет виджет для презентации в VIS, который предлагает эффекты для изменения изображения, например, плавное исчезновение и появление.
+Кроме того, можно настроить тайм-аут. Если в других представлениях в том же проекте VIS не происходит никаких действий в течение определенного тайм-аута, будет запущено представление со слайд-шоу. При щелчке по изображению оно возвращается к последнему представлению или к предопределенному представлению.
-Помимо изображения в виде пути или объекта, закодированного в Base64, есть еще объекты с информацией об изображении, созданные в ioBroker.
-Они зависят от выбранного источника:
+Помимо изображения в виде пути или объекта, закодированного в Base64, в ioBroker созданы дополнительные объекты с информацией об изображении. Они зависят от выбранного источника:
-| Объект | Бинг | Локальная и файловая система | Синология | ----------- | ----------- | ----------- | ----------- | информация1 | Название | Заголовок (информация EXIF) | Название | информация2 | Описание | Тема (информация EXIF) | Описание | информация3 | Авторское право | Комментарий (информация EXIF) | Дата | дата | Дата отображается на странице Bing | Дата записи (данные EXIF) | Дата записи
+| Объект | Bing | Локальный и файловая система | Synology | ----------- | ----------- | ----------- | ----------- | info1 | Заголовок | Заголовок (информация EXIF) | Заголовок | info2 | Описание | Тема (информация EXIF) | Описание | info3 | Авторские права | Комментарий (информация EXIF) | Dateiname | дата | Дата, отображаемая на странице Bing | Дата записи (информация EXIF) | Дата записи
-Кнопка «updatepicturelist» как объект в ioBroker перечитывает картинки из настроенного источника, полезная, например, после добавления или удаления картинок из источника. Картинки со всех источников, кроме Bing, обычно загружаются при запуске Адаптера. Изображения Bing автоматически обновляются ежечасно.
+Кнопка "updatepicturelist" как objekt в ioBroker перечитывает изображения из настроенного источника, полезно, например, после добавления или удаления изображений из источника. Изображения из всех источников, кроме Bing, обычно загружаются при запуске адаптера. Изображения Bing автоматически обновляются ежечасно.
-**Этот адаптер использует библиотеки Sentry для автоматического сообщения об исключениях и ошибках кода разработчикам.** Дополнительные сведения и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
+**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Более подробную информацию и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
### Конфигурация
-В настройках адаптера можно выбрать источник изображения. Хотя интервал смены картинки.
-Также можно настроить частоту обновления списка изображений. Настройка производится в часах, 0 отключает автоматическое обновление.
+В настройках адаптера можно выбрать источник изображения. Хотя интервал смены изображения.
+Также можно настроить, как часто должен обновляться список изображений. Настройка выполняется в часах, 0 отключает автоматическое обновление.
-Когда выбран источник «Файловая система», можно ввести путь и формат (альбомный или портретный) отображаемых изображений. Также порядок можно настроить.
+При выборе источника "Файловая система" можно ввести путь и формат (альбомный или портретный) отображаемых изображений. Также можно настроить порядок.
-Если выбран источник «Synology PhotoStation», необходимо настроить версию Synology DSM, IP-адрес или имя хоста и имя пользователя с паролем. Загрузка изображений должна быть включена в настройках PhotoStation.
+Если выбран источник «Synology PhotoStation», необходимо настроить версию Synology DSM, IP-адрес или имя хоста, а также имя пользователя с паролем.
-Внимание: После изменений (Добавление или Удаление) требуется перезагрузка адаптера.
+Внимание: После внесения изменений (добавления или удаления) требуется перезагрузка адаптера.
-### VIS-виджет
+### VIS-Виджет
Виджет можно найти в категории «слайд-шоу».
Виджет должен быть интегрирован в собственное представление, чтобы можно было использовать автоматический запуск слайд-шоу.
-Существуют следующие параметры конфигурации:
+Существуют следующие варианты конфигурации:
-* Категория "Общие"
-* Object-ID: Должен быть предоставлен объект ioBroker, созданный адаптером, например "slideshow.0.picture"
+* Категория "Общее"
+* Object-ID: необходимо указать объект ioBroker, созданный адаптером, например «slideshow.0.picture»
* Заполнить виджет картинкой
-* True (по умолчанию) = Виджет заполняется изображением, граница изображения может быть обрезана
-* False = отображается полное изображение, но виджет может иметь пустые зоны
+* True (по умолчанию) = Картинка заполняет виджет, граница картинки может быть обрезана
+* Ложь = Отображается полное изображение, но виджет может иметь пустые зоны
* Категория "Эффект"
* Эффект слайд-шоу: доступны следующие параметры:
-* "Никто"
-* «Fade»: простое постепенное исчезновение и постепенное появление
-* "Переход": затухание
-* "jQuery-Effekt": Различные эффекты jQuery, например "слепой"
-* Переходный период: время в миллисекундах для эффекта, рекомендуемые значения 500 или 1000.
-* Стиль перехода: стиль для «перехода» и «эффекта jQuery».
-* jQuery-эффект: желаемый эффект
-* Категория "Автоматический запуск слайд-шоу"
+ * "Никто"
+* "Fade": простое затухание и нарастание звука.
+* «Переход»: плавное наложение
+* "jQuery-Effekt": Различные эффекты jQuery, например "blind"
+* Период перехода: время в миллисекундах для эффекта, рекомендуемые значения — 500 или 1000.
+* Стиль перехода: Стиль для «Transistion» и «jQuery-Effect»
+* jQuery-Effect: Желаемый эффект
+* Категория «Автоматический запуск слайд-шоу»
* Включить автоматический запуск
-* Тайм-аут: по истечении которого в секундах бездействия в других представлениях будет запущено слайд-шоу.
-* Таргетинг по клику:
+* Тайм-аут: по истечении указанного времени в секундах бездействия в других представлениях будет запущено слайд-шоу.
+* Цель по клику:
* Последний использованный вид
* Настроенный вид (см. следующую настройку)
* Нет, например, при интеграции другого виджета, поэтому
-* Целевой вид: вид для отображения при выходе из слайд-шоу
+* Целевой вид: Вид, который будет отображаться при выходе из слайд-шоу
-### ВОПРОСЫ-ОТВЕТЫ
+### ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ
**Исходная файловая система**
Можно ли интегрировать сетевые диски?
-Да, но не напрямую через переходник. ioBroker теперь поддерживает большое количество операционных систем. Доступ к общим сетевым ресурсам и их подключение полностью различаются в зависимости от операционной системы. В некоторых случаях также требуются дополнительные компоненты, такие как Samba для Linux. Подключение сетевого диска (сопоставление или монтирование) может выполняться непосредственно операционной системой. В Linux монтирование происходит в указанный каталог, например. /мнт/картинки. Затем этот каталог можно использовать в конфигурации адаптера.
-
-**Источник Synology**
-
-Можно ли интегрировать в Synology PhotoStation дополнительные настройки, такие как выбор альбома? Поддерживается ли DSM 7 (Synology Photos)?
-
-Synology PhotoStation закончится с DSM 6. Преемник, Synology Photos, появится с DSM 7. DSM 7 в настоящее время все еще находится в стадии бета-тестирования, финальная версия, вероятно, появится летом 2021 года. Предположительно изменится и интерфейс разработчика. Поэтому я больше не буду вкладывать усилия в предыдущую версию. Как только DSM 7 выйдет официально, проверю интеграцию. К сожалению, официальной документации Synology для предыдущей версии не было.
-Однако доступ к определенным фотоальбомам или папкам можно легко реализовать в текущей версии PhotoStation. Для этого создайте пользователя для слайд-шоу в DSM и предоставьте этому пользователю разрешения только на нужные фотоальбомы или папки в PhotoStation.
+Да, но не напрямую через адаптер. ioBroker теперь поддерживает большое количество операционных систем. Доступ к сетевым ресурсам и их подключение полностью различаются в зависимости от операционной системы. В некоторых случаях также требуются дополнительные компоненты, такие как Samba для Linux. Подключение сетевого диска (отображение или монтирование) может быть выполнено непосредственно операционной системой. В Linux монтирование происходит в указанном каталоге, например, /mnt/pictures. Этот каталог затем можно использовать в конфигурации адаптера.
## Changelog
+### 0.2.1 (2024-11-18)
+* (Gaudes) Update in package.json for VIS
-### __WORK IN PROGRESS__
+### 0.2.0 (2024-11-13)
* (Gaudes) Include support for Synology DSM 7
-* (Gaudes) Remove support for Node 10
+* (Gaudes) Add controls for start/stop
+* (Gaudes) Remove support for older Node versions
* (Gaudes) Update to newest Adapter creator for internal dependencies
* (Gaudes) Include adapter-dev
* (Gaudes) Include Dependabot updates
@@ -241,7 +236,7 @@ Synology PhotoStation закончится с DSM 6. Преемник, Synology
## License
MIT License
-Copyright (c) 2022 Gaudes
+Copyright (c) 2024 Gaudes
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -259,4 +254,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.trashschedule/providers.md b/docs/ru/adapterref/iobroker.trashschedule/providers.md
index 7339c6245..adc34a306 100644
--- a/docs/ru/adapterref/iobroker.trashschedule/providers.md
+++ b/docs/ru/adapterref/iobroker.trashschedule/providers.md
@@ -1,119 +1,169 @@
---
chapters: {"pages":{"de/adapterref/iobroker.trashschedule/README.md":{"title":{"de":"ioBroker.trashschedule"},"content":"de/adapterref/iobroker.trashschedule/README.md"},"de/adapterref/iobroker.trashschedule/providers.md":{"title":{"de":"ioBroker.trashschedule"},"content":"de/adapterref/iobroker.trashschedule/providers.md"},"de/adapterref/iobroker.trashschedule/blockly.md":{"title":{"de":"ioBroker.trashschedule"},"content":"de/adapterref/iobroker.trashschedule/blockly.md"},"de/adapterref/iobroker.trashschedule/faq.md":{"title":{"de":"ioBroker.trashschedule"},"content":"de/adapterref/iobroker.trashschedule/faq.md"},"de/adapterref/iobroker.trashschedule/javascript.md":{"title":{"de":"ioBroker.trashschedule"},"content":"de/adapterref/iobroker.trashschedule/javascript.md"}}}
translatedFrom: de
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.trashschedule/providers.md
title: ioBroker.trashschedule
-hash: Exw8fgwbMcEwHHASjLOnv2YgXMeg9UBwx7yiAqBjgLo=
+hash: 2aS/qFb4J0rFteB7GOwR7fSv0anwRr2und+xTYzq1ME=
---
![логотип](../../../de/admin/trashschedule.png)
# IoBroker.trashschedule
-## Джумоминд (MyMüll)
+## Джумомайнд (MyMüll)
- Дармштадт-Дибург (ZAW)
-- Дармштадт-Дибург (ZAW)
-- Альтёттинг (ЛК)
+ - Дармштадт-Дибург (ZAW)
- Альтёттинг (ЛК)
+ - Альтёттинг (ЛК)
- Аурих (MKW)
-- Аурих (MKW)
+ - Аурих (MKW)
- Бад-Гомбург vdH
-- Бад-Гомбург vdH
--Барним
+ - Бад-Гомбург vdH
-Барним
+ -Барним
- Хаттерсхайм-на-Майне
-- Хаттерсхайм-на-Майне
+ - Хаттерсхайм-на-Майне
- Ингольштадт
-- Ингольштадт
-- Люббекке
+ - Ингольштадт
- Люббекке
+ - Люббекке
- Минден
-- Минден
+ - Минден
- Реклингхаузен
-- Реклингхаузен
-- Рейн-Хунсрюк
+ - Реклингхаузен
- Рейн-Хунсрюк
+ - Рейн-Хунсрюк
- Укермарк
-- Укермарк
+ - Укермарк
- Мой мусор (приложение)
-- Ашаффенбург
-- Бад-Арользен
-- Беверунген
-- Дармштадт
-- Эссенс
-- Фленсбург
-- Гроскроценбург
-- Хайнбург
-- Холтгаст
-- Камп Линтфорт
-- Церковная деревня
-- Район Ашаффенбург
-- Биберахский район
-- Район Айхштетт
-- Район Фрисландия
-- Леерский район
-- Район Меттманн
-- Район Падерборн
-- Район Витмунд
-- Район Витмунд
-- Район Майн-Кинциг
-- Мюльхайм-на-Майне
-- Ненндорф
-- Ноймюнстер
-- Зальцгиттер
-- Шмиттен-им-Таунус
-- Шёнек
-- Зелигенштадт
-- Ульм
-- Усинген
-- Фолькмарсен
-- Фёринген
-- Вегберг
-- Вестерхольт
-- Вильгельмсхафен
-- Нойштадт-ан-дер-Вайнштрассе
+ - Ашаффенбург
+ - Бад-Арользен
+ - Беверунген
+ - Дармштадт
+ - Эссенс
+ - Фленсбург
+ - Гроскроценбург
+ - Хайнбург
+ - Холтгаст
+ - Камп Линтфорт
+ - Церковная деревня
+ - Район Ашаффенбург
+ - Биберахский район
+ - Район Айхштетт
+ - Район Фрисландия
+ - Леерский район
+ - Район Меттманн
+ - Район Падерборн
+ - Район Витмунд
+ - Район Витмунд
+ - Район Майн-Кинциг
+ - Мюльхайм-на-Майне
+ - Ненндорф
+ - Ноймюнстер
+ - Зальцгиттер
+ - Шмиттен-им-Таунус
+ - Шёнек
+ - Зелигенштадт
+ - Ульм
+ - Усинген
+ - Фолькмарсен
+ - Фёринген
+ - Вегберг
+ - Вестерхольт
+ - Вильгельмсхафен
- Нойштадт-ан-дер-Вайнштрассе
+ - Нойштадт-ан-дер-Вайнштрассе
- Остгольштейн
-- Остгольштейн
+ - Остгольштейн
- Целле
-- Целле
-- Графство Графство
+ - Целле
- Графство Графство
+ - Графство Графство
- Район Гарц
-- Район Гарц
-- Хекстер
+ - Район Гарц
- Хекстер
-- Длинный
-- Длинный
-- Росбах Фор Дер Хёэ
+ - Хекстер
+- Ланген
+ - Ланген
- Росбах Фор Дер Хёэ
+ - Росбах Фор Дер Хёэ
- Главный район Кинциг
-- Главный район Кинциг
+ - Главный район Кинциг
## Отходы.io
- Управление отходами в районе Бёблинген
-- Айдлинген
-- Альтдорф
-- Бёблинген
-- Бондорф
-- Потолочный столб
-- Энинген
-- Гертринген
-- Гауфельден
-- Графенау
-- Херренберг
-- Хильдрицхаузен
-- Хольцгерлинген
-- Йеттинген
--Леонберг
--Магштадт
-- Мётцинген
-- Нуфринген
-- Реннинген
-- Рутесхайм
-- Шёнайх
-- Зиндельфинген
-- Штайненбронн
-- Книга Уолдена
-- Из-за города
-- Потому что в Шенбухе
-- Вайссах
+ - Айдлинген
+ - Альтдорф
+ - Бёблинген
+ - Бондорф
+ - Потолочный столб
+ - Энинген
+ - Гертринген
+ - Гауфельден
+ - Графенау
+ - Херренберг
+ - Хильдрицхаузен
+ - Хольцгерлинген
+ - Йеттинген
+ -Леонберг
+ - Магштадт
+ - Мётцинген
+ - Нуфринген
+ - Реннинген
+ - Рутесхайм
+ - Шёнайх
+ - Зиндельфинген
+ - Штайненбронн
+ - Книга Уолдена
+ - Из-за города
+ - Потому что в Шёнбухе
+ - Вайссах
+
+## Авидо.де
+- Л.К. Айхах Фридберг
+- ЛК Альтенкирхен
+- ЛК Ансбах
+- ЛК Ашаффенбург
+- ЛК Бад-Дюркгейм
+- ЛК Бад Тельц - Вольфратсхаузен
+- ЛК Берхтесгаден Земля
+-Бурбах
+- ЛК Кобург
+- ЛК Дахау
+- Л.К. Эрдинг
+-Фульда
+- ЛК Фульда
+- ЛК Фюрстенфельдбрук
+- Л. К. Гиссен
+- ЛК Гота
+- ЛК Гюнцбург
+- ЛК Хасберге
+- Л.К. Херсфельд Ротенбург
+- Кауфбойрен
+- Л. К. Кельхайм
+- Л.К. Кульмбах
+- Л.К. Кронах
+- Л. К. Лан Дилл
+- Мемминген
+- ЛК Мюльдорф-ам-Инн
+- Мюнхен юго-восток
+- ЛК Нойбург Шробенхаузен
+- ЛК Нойштадт а.д. Вальднааб
+- Северная Швабия
+- Пуллах
+- Регенсбург
+- ЛК Регенсбург
+- ЛК Ремс-Мурр Аёр
+- Л.К. Розенхайм
+- Л.К. Рот
+- LK Rottal-Inn и Дингольфинг-Ландау
+- ЛК Заале-Орла и Заальфельд-Рудольштадт
+- ЛК Швайнфурт
+- Южный винный маршрут LK
+- ЛК Тиршенройт
+- ЛК Тюбинген
+- Унтерхахинг
+- Унтершлайсхайм
+- Allmannshofen [Нет мусора]
+- Херетсрид [Нет мусора]
+- Братская школа таэквондо Хёнсил [Нет мусора]
+- Ассоциация округа Среднего Рейна VDI [Нет мусора]
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.tvprogram/README.md b/docs/ru/adapterref/iobroker.tvprogram/README.md
index 0b61d5676..99f34662c 100644
--- a/docs/ru/adapterref/iobroker.tvprogram/README.md
+++ b/docs/ru/adapterref/iobroker.tvprogram/README.md
@@ -1,366 +1,382 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.tvprogram/README.md
title: ioBroker.tvпрограмма
-hash: bh7exE/7l1zvVL/9jArdjpqy6TDsyLcE4vuJkJzH3gE=
+hash: D6PEjRUhQ+htZHtYMcpl5ZpppPpnCvz/5zs4H8lC7dc=
---
![Логотип](../../../en/adapterref/iobroker.tvprogram/admin/tvprogram.png)
-![НПМ-версия](https://img.shields.io/npm/v/iobroker.tvprogram1.svg)
-![Загрузки](https://img.shields.io/npm/dm/iobroker.tvprogram1.svg)
-![Количество установок](https://iobroker.live/badges/tvprogram1-installed.svg)
-![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/tvprogram1-stable.svg)
-![НПМ](https://nodei.co/npm/iobroker.tvprogram1.png?downloads=true)
-![Трэвис-CI](http://img.shields.io/travis/oweitman/ioBroker.tvprogram/master.svg)
-![Статус сборки AppVeyor](https://img.shields.io/appveyor/ci/oweitman/iobroker-tvprogram.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.tvprogram.svg)
+![Загрузки](https://img.shields.io/npm/dm/iobroker.tvprogram.svg)
+![Количество установок](https://iobroker.live/badges/tvprogram-installed.svg)
+![Текущая версия в стабильном репозитории](https://iobroker.live/badges/tvprogram-stable.svg)
+![НПМ](https://nodei.co/npm/iobroker.tvprogram.png?downloads=true)
# IoBroker.tvprogram
-**Тесты:** ![Тестирование и выпуск](https://github.com/oweitman/ioBroker.tvprogram1/workflows/Test%20and%20Release/badge.svg)
+**Тесты:** ![Тест и выпуск](https://github.com/oweitman/ioBroker.tvprogram/workflows/Test%20and%20Release/badge.svg)
-**Тесты:**
+## `tvprogram` адаптер для ioBroker
+Этот адаптер опрашивает информацию о телевизионной программе через регулярные промежутки времени. Данные могут отображаться в различных виджетах.
-## Адаптер tvprogram для ioBroker
-Этот адаптер регулярно запрашивает информацию о телевизионной программе.
-Данные могут отображаться в различных виджетах.
-
-Для его настройки адаптер должен уже получить доступ и заполнить необходимые данные.
+Для его настройки адаптер должен уже получить доступ к необходимым данным и заполнить их.
Из-за своего размера данные хранятся не в точках данных, а в файлах (путь Linux: /opt/iobroker/data-files/tvprogram) и в памяти адаптера.
-В конфигурации виджет должен быть заполнен только любой точкой данных адаптера (например, cmd).
+В конфигурации виджету нужно только заполнить любую точку данных адаптера (например, cmd).
Виджет автоматически ищет все оставшиеся точки данных.
-## Монтаж
-Адаптер можно установить через стабильную версию или для тестирования через репозиторий beta/latest.
+## Установка
+Адаптер можно установить через стабильную версию или для тестирования через бета-/последнюю версию репозитория.
### Конфигурация адаптера
-Вы можете настроить, сколько разных телевизоров или хотя бы разных конфигураций у вас будет.
-
-### Предупреждения в журнале iobroker-log
-Предупреждения типа
-
-«Состояние «tvprogram.0.tv1.cmd» только для чтения записано без флага подтверждения со значением «new|program|2021-01-01»
-
-по своей конструкции это нормально, благодаря внутреннему механизму сигнализации между адаптером и виджетами, которые сначала устанавливаются без флага подтверждения, а через некоторое время сбрасываются с флагом подтверждения.
+Вы можете настроить, сколько разных телевизоров или, по крайней мере, разных конфигураций у вас будет.
### Виджеты
Виджеты поддерживаются только в современных браузерах (Google Chrome, Mozilla Firefox, Opera, Safari).
-Не поддерживается Internet Explorer или Microsoft Edge без Chromium (версия <79).
+Не поддерживаются Internet Explorer или Microsoft Edge без Chromium (версия <79).
#### Время
Этот виджет показывает текущую телепрограмму на временной шкале по телеканалам.
Если текст за логотипами каналов просвечивает, в виджете необходимо выбрать цвет фона.
-Как правило, хорошим подходом является выбор явного цвета переднего плана и фона для представления или, по крайней мере, для виджета.
+Обычно хорошим подходом является выбор явного цвета переднего плана и фона для представления или, по крайней мере, для виджета.
Положение маркера обновляется каждые 15 секунд.
Если после установки что-то пошло не так и виджет отображается неправильно, попробуйте выполнить следующую команду из оболочки:
iobroker загрузить все
-Следующие атрибуты доступны для настройки в vis. Минимальная конфигурация — установить точку данных в cmd-datapoint.
+Для настройки в vis доступны следующие атрибуты. Минимальная настройка — установить точку данных в cmd-datapoint.
| Атрибут | Пример | Описание |
-| --------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
-| tvprogram_oid | tvprogram.0.tv1.cmd | Точка данных экземпляра адаптера телепрограммы. |
-| ширинаItem | 120 | Стандартная ширина в пикселях для 30-минутного сегмента |
-| высотаСтрока | 35 | Высота каждой отображаемой строки |
-| показатькартинки | х | Показывать изображения на временной шкале, если они доступны |
-| заголовокшрифтпроцент | 125 | Размер символов в процентах для заголовка (время) |
-| трансляцияфонтпроцент | 75 | Размер символов в процентах для трансляций |
-| цвет выделения | желтый | цвет для избранных |
-| маркерпозицияпроцент | 25 | Положение Маркера в процентах от ширины виджета |
-| ширина диалогапроцент | 90 | размер диалогов в процентах от виджета |
-| диалоговая высотапроцент | 90 | размер диалогов в процентах от виджета |
+| ----------------------- | --------------------- | ----------------------------------------------------- |
+| `tvprogram_oid` | `tvprogram.0.tv1.cmd` | Точка данных экземпляра адаптера `tvprogram`. |
+| `heightRow` | 35 | Высота для каждой отображаемой строки |
+| `showpictures` | x | Показывать изображения на временной шкале, если они доступны |
+| `headerfontpercent` | 125 | Размер символа в процентах для заголовка (время) |
+| `broadcastfontpercent` | 75 | Размер символа в процентах для трансляций |
+| `highlightcolor` | желтый | цвет для избранных |
+| `markerpositionpercent` | 25 | Положение маркера в процентах от ширины виджета |
+| `dialogwidthpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
##### CSS-классы
-Пожалуйста, измените w00001 на идентификатор вашего виджета.
+Пожалуйста, измените `w00001` на ваш идентификатор виджета
Чтобы изменить форматирование диалогов
```css
#w00001channeldlg {
- background-color: red !important;
+ background-color: red !important;
}
```
```css
#w00001broadcastdlg {
- background-color: red !important;
+ background-color: red !important;
}
```
-Если вы используете некоторые дополнительные диалоги с другими настройками z-индекса, вы можете установить более высокий z-индекс для диалогов телепрограмм.
-Возможно, вам придется установить большее число, чем 300. Это зависит от настроек в других диалоговых окнах, которые перекрывают или скрывают диалоговые окна телепрограммы (информация о трансляции и выбор канала).
+Если вы используете некоторые дополнительные диалоги с другими настройками z-index, вы можете установить более высокий z-index для диалогов телепрограмм.
+Возможно, вам придется установить большее число, чем 300. Это зависит от настроек в других диалогах, которые перекрывают или скрывают диалоги телепрограмм (информация о трансляции и выбор канала)
```css
.ui-dialog.w00001 {
- z-index:300 !important;
+ z-index: 300 !important;
}
```
-Изменить форматирование чередующихся цветов фона трансляций
+Чтобы изменить форматирование чередующихся фоновых цветов трансляций
```css
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(odd),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+#w00001 .scrollcontainer ul.tv-row:nth-child(odd) > li.broadcast:nth-child(odd),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.65);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(odd)> li.broadcast:nth-child(even),#w00001 ul.tv-row:nth-child(odd)> li.time:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(odd)
+ > li.broadcast:nth-child(even),
+#w00001 ul.tv-row:nth-child(odd) > li.time:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.55);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.45);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(odd) {
+ background-color: rgba(128, 128, 128, 0.45);
}
-#w00001 .scrollcontainer ul.tv-row:nth-child(even)> li.broadcast:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.35);
+#w00001
+ .scrollcontainer
+ ul.tv-row:nth-child(even)
+ > li.broadcast:nth-child(even) {
+ background-color: rgba(128, 128, 128, 0.35);
}
-
```
#### Избранное
-Этот виджет показывает список выбранных избранных, отсортированный по дате и времени.
+Этот виджет отображает список избранного, отсортированный по дате и времени.
-Следующие атрибуты доступны для настройки в vis. Минимальная конфигурация — установить точку данных в cmd-datapoint.
+Для настройки в vis доступны следующие атрибуты. Минимальная настройка — установить точку данных в cmd-datapoint.
| Атрибут | Пример | Описание |
-| -------------- | -------------------- | --------------------------------------------------- |
-| оид | tvprogram.0.tv 1.cmd | Точка данных экземпляра адаптера телепрограммы. |
-| название канала | нет | Показать логотип (выключено) или название канала |
-| шоу-будний день | да | Шоу Будний день |
-| максфавориты | 10 | Макс. фаворитов |
-| цвет выделения | желтый | цвет для избранных |
+| ---------------- | ---------------------- | ----------------------------------------------------- |
+| `oid` | `tvprogram.0.tv 1.cmd` | Точка данных экземпляра адаптера `tvprogram`. |
+| `showweekday` | `yes` | Показать будний день |
+| `maxfavorites` | 10 | Максимальное количество избранных для показа |
+| `highlightcolor` | `yellow` | цвет для избранного |
+| `highlightcolor` | `yellow` | цвет для избранного |
#### Контроль
Этот виджет показывает все актуальные трансляции. Вы можете нажать на логотип канала, чтобы переключить канал.
Вы можете нажать на трансляцию, чтобы получить подробную информацию о ней.
-Следующие атрибуты доступны для настройки в vis. Минимальная конфигурация — установить точку данных в cmd-datapoint.
+Для настройки в vis доступны следующие атрибуты. Минимальная настройка — установить точку данных в cmd-datapoint.
| Атрибут | Пример | Описание |
-| --------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
-| оид | tvprogram.0.tv1.cmd | Точка данных экземпляра адаптера телепрограммы. |
-| время | | Если пусто, то будут показаны фактические трансляции |
-| время | 20:15 | если бы показывалось время только трансляция в это время 120 минут, то показывается следующий день |
-| время | 20:15/200 | если время с длительностью, то трансляция в это время показывалась бы 200 минут |
-| время | 2021-02-15T20:15:00.000Z | Если строка даты действительна, то трансляция в это время будет показана. Помните часовые пояса |
-| высотаСтрока | 35 | Высота каждой отображаемой строки |
-| показатькартинки | х | Покажите фотографии, если они есть |
-| трансляцияфонтпроцент | 75 | Размер символов в процентах для трансляций |
-| цвет выделения | желтый | цвет для избранных |
-| ширина диалогапроцент | 90 | размер диалогов в процентах от виджета |
-| диалоговая высотапроцент | 90 | размер диалогов в процентах от виджета |
+| ---------------------- | ------------------------ | -------------------------------------------------------------------------------------------------- |
+| `oid` | `tvprogram.0.tv1.cmd` | Точка данных экземпляра адаптера `tvprogram`. |
+| `time` | 20:15 | если бы время только трансляция в это время показывалась в течение 120 минут, то показывался бы следующий день |
+| `time` | 20:15/200 | если время с продолжительностью, то трансляция в это время будет показана в течение 200 минут |
+| `time` | 2021-02-15T20:15:00.000Z | Если допустимая Datestring, то будет показана трансляция в это время. Запомните часовые пояса |
+| `heightRow` | 35 | Высота для каждой отображаемой строки |
+| `showpictures` | x | Показать фотографии, если они есть |
+| `broadcastfontpercent` | 75 | Размер символа в процентах для трансляций |
+| `highlightcolor` | `yellow` | цвет для избранного |
+| `dialogwidthpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
##### CSS-классы
-Пожалуйста, измените w00001 на идентификатор вашего виджета.
+Пожалуйста, измените `w00001` на ваш идентификатор виджета
-Изменить форматирование чередующихся цветов фона трансляций
+Чтобы изменить форматирование чередующихся фоновых цветов трансляций
```css
#w00001 .tv-control .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-control .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
#### Поиск
С помощью этого виджета вы можете искать трансляцию по названию, описанию, дате начала и типу трансляции.
-Поле ввода «От» предварительно заполняется фактической датой. если это поле не изменено, поиск начинается с фактического времени.
-если вы измените это поле на будущую или прошлую дату, поиск начнется в 00:00 этой даты.
-Одно или оба поля ввода: текст поиска и категория должны быть заполнены/выбраны.
+Поле ввода «От» предварительно заполнено фактической датой. Если это поле не изменено, поиск начинается с фактического времени.
+Если вы измените это поле на будущую или прошедшую дату, поиск начнется с 00:00 этой даты.
+Одно или оба поля ввода searchtext и category должны быть заполнены/выбраны.
-Следующие атрибуты доступны для настройки в vis. Минимальная конфигурация — установить точку данных в cmd-datapoint.
+Для настройки в vis доступны следующие атрибуты. Минимальная настройка — установить точку данных в cmd-datapoint.
| Атрибут | Пример | Описание |
-| --------------------- | ------------------- | ---------------------------------------------------- |
-| Идентификатор объекта | tvprogram.0.tv1.cmd | Точка данных экземпляра адаптера телепрограммы. |
-| показатькартинки | х | Покажите фотографии, если они есть |
-| Максрезультат | 10 | максимальное количество результатов в списке |
-| высотаСтрока | 35 | Высота каждой отображаемой строки |
-| трансляцияфонтпроцент | 75 | Размер символов в процентах для трансляций |
-| цвет выделения | желтый | цвет для избранных |
-| ширина диалогапроцент | 90 | размер диалогов в процентах от виджета |
-| диалоговая высотапроцент | 90 | размер диалогов в процентах от виджета |
+| ---------------------- | --------------------- | ----------------------------------------------------- |
+| `Object ID` | `tvprogram.0.tv1.cmd` | Точка данных экземпляра адаптера `tvprogram`. |
+| `maxresults` | 10 | макс. результатов в списке |
+| `heightRow` | 35 | Высота для каждой отображаемой строки |
+| `broadcastfontpercent` | 75 | Размер символа в процентах для трансляций |
+| `highlightcolor` | `yellow` | цвет для избранного |
+| `dialogwidthpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
+| `dialogheightpercent` | 90 | размер диалогов в процентах от виджета |
##### CSS-классы
-Пожалуйста, измените w00001 на идентификатор вашего виджета.
+Пожалуйста, измените `w00001` на ваш идентификатор виджета
-Изменить форматирование чередующихся цветов фона трансляций
+Чтобы изменить форматирование чередующихся фоновых цветов трансляций
```css
#w00001 .tv-search .tv-row:nth-child(odd) {
- background-color: rgba(128, 128, 128, 0.65);
+ background-color: rgba(128, 128, 128, 0.65);
}
#w00001 .tv-search .tv-row:nth-child(even) {
- background-color: rgba(128, 128, 128, 0.55);
+ background-color: rgba(128, 128, 128, 0.55);
}
-
```
### Предоставленные точки данных
-Следующий набор данных существует для каждого созданного телевизора.
+Следующий набор точек данных существует для каждого созданного телевизора
-####фильтр каналов
-эта точка данных содержит каналы, показанные в виджете в виде массива JSON.
+#### `channelfilter`
+эта точка данных содержит каналы, отображаемые в виджете в виде JSON-массива
-#### Командная строка
+#### `cmd`
эта точка данных используется для внутренней связи между виджетами и адаптером
-#### Избранное
-эта точка данных содержит выбранные избранные в виде JSON-массива
+#### `favorites`
+эта точка данных содержит выбранные избранные элементы в виде JSON-массива
-#### Записывать
+#### `record`
Эта точка данных устанавливается, если пользователь нажимает кнопку записи в подробном представлении трансляции.
Предоставленные данные
| поле | Пример | Описание |
-| ----------- | -------------------------- | ---------------------- |
-| время начала | 2021-01-01T00:10:00+01:00 | Время начала |
-| время окончания | 2021-01-01T00:10:30+01:00 | Время окончания |
-| титул | Название передачи | название передачи |
-| канал | 7 | Уникальный номер канала |
-| идентификатор канала | здф | Уникальный идентификатор канала |
-| название канала | ЗДФ | Читабельное название канала |
-| событие | 12345678 | Уникальный идентификатор трансляции |
-
-#### Выбор канала
+| ------------- | ------------------------- | ---------------------- |
+| `startTime` | 2021-01-01T00:10:00+01:00 | Время начала |
+| `title` | Название трансляции | название трансляции |
+| `channel` | 7 | Уникальный номер канала |
+| `channelid` | `zdf` | Уникальный идентификатор канала |
+| `channelname` | `ZDF` | Читаемое название канала |
+| `eventid` | 12345678 | Уникальный идентификатор трансляции |
+| `eventid` | 12345678 | Уникальный идентификатор трансляции |
+
+#### `selectchannel`
Эта точка данных используется для распознавания команды переключения канала при щелчке по логотипу канала или значку переключателя в подробном представлении.
-#### Показывать
-эта точка данных содержит статус того, должно ли отображаться только избранное или все в виджете tvprogram
+#### `show`
+эта точка данных содержит статус того, следует ли отображать в виджете tvprogram только избранное или все
-#### Конфигурация
-эта точка данных устарела и будет удалена в следующих версиях.
+#### `config`
+эта точка данных устарела и будет удалена в следующих версиях
-### Предоставленные команды отправки
-Все данные можно запросить у адаптера с помощью sendto-команд. это можно использовать для разработки отдельных функций
+### Предоставленные `Sendto`-Команды
+Все данные можно запросить у адаптера с помощью команд sendto. Это можно использовать для разработки индивидуальных функций.
-#### GetServerData
+#### `getServerData`
Запросить базовые данные у адаптера.
##### Допустимые параметры:
-* категории
-* жанры
-* каналы
+- `категории`
+- `жанры`
+- `каналы`
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerData","categories",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerData", "categories", (data) =>
+ console.log(data),
+);
```
-#### GetServerTVProgram
+#### `getServerTVProgram`
Запросить данные программы у адаптера.
##### Допустимые параметры:
-строка даты в следующем формате: гггг-мм-дд
+строка даты в следующем формате: `yyyy-mm-dd`
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerTVProgram","2021-02-10",(data)=>console.log(data));
+sendTo("tvprogram.0", "getServerTVProgram", "2021-02-10", (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcast
+#### `getServerBroadcast`
Запросите подробные данные трансляции.
##### Допустимые параметры:
-объект, который содержит дату просмотра в следующем формате гггг-мм-дд — идентификатор события трансляции
+объект, содержащий дату просмотра в следующем формате гггг-мм-дд, идентификатор события трансляции
**Возвраты:**
-Объект
+`Object`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerBroadcast",{viewdate:"2021-02-10",eventid:"10659522"},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcast",
+ { viewdate: "2021-02-10", eventid: "10659522" },
+ (data) => console.log(data),
+);
```
-#### GetFavoritesDatax
-Запросите все любимые трансляции с этого момента и до конца сохраненных данных.
+#### `getFavoritesData`
+Запросить все избранные трансляции с текущего момента до окончания сохраненных данных.
##### Допустимые параметры:
-Массив избранного
+`Array` избранного
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getFavoritesDatax",['heute','Tagesschau'],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getFavoritesData", ["heute", "Tagesschau"], (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcastNow
-Запрашивает все трансляции, которые в данный момент идут.
+#### `getServerBroadcastNow`
+Запрашивает все трансляции, которые в данный момент идут
##### Допустимые параметры:
-Массив идентификаторов ваших любимых каналов.
+Массив идентификаторов ваших любимых каналов
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastNow",[1,6,22,7],(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerBroadcastNow", [1, 6, 22, 7], (data) =>
+ console.log(data),
+);
```
-#### GetServerBroadcastDate
-Запрашивает все трансляции, которые выполняются в определенное время.
+#### `getServerBroadcastDate`
+Запрашивает все трансляции, запущенные в указанную дату и время
##### Допустимые параметры:
Массив идентификаторов каналов ваших любимых каналов datetime
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastDate",{channelfilter:[1,6,22,7],date:"2021-02-10T20:15:00.000Z"},(data)=>console.log(data));
-
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastDate",
+ { channelfilter: [1, 6, 22, 7], date: "2021-02-10T20:15:00.000Z" },
+ (data) => console.log(data),
+);
```
-#### GetServerBroadcastFind
-Поиск трансляций за разное время и по категориям (по желанию).
+#### `getServerBroadcastFind`
+Поиск трансляций в определенном диапазоне времени и по желанию с категориями
##### Допустимые параметры:
-Channelfilter: массив идентификаторов каналов ваших любимых каналов. Categoryfilter: необязательно. Массив идентификаторов категорий. datetimefrom: datetime от datetimetill: datetime до textfilter: необязательный заголовок или часть заголовка для поиска максимального количества результатов: необязательно максимальное количество результатов. Значение по умолчанию — 10.
+`channelfilter`: Массив идентификаторов каналов ваших любимых каналов `categoryfilter`: Необязательный массив идентификаторов категорий `datetimefrom`: дата и время от `datetimetill`: дата и время до `textfilter`: Необязательный заголовок или часть заголовка для поиска `maxresults`: Необязательное максимальное количество результатов. Значение по умолчанию — 10
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerBroadcastFind",{
- channelfilter:[1,6,22,7],
- categoryfilter:[],
- datefrom:"2021-02-10T10:00:00.000Z",
- datetill:"2021-02-10T23:00:00.000Z",
- textfilter:"",
- maxresults:10
-},(data)=>console.log(data));
+sendTo(
+ "tvprogram.0",
+ "getServerBroadcastFind",
+ {
+ channelfilter: [1, 6, 22, 7],
+ categoryfilter: [],
+ datefrom: "2021-02-10T10:00:00.000Z",
+ datetill: "2021-02-10T23:00:00.000Z",
+ textfilter: "",
+ maxresults: 10,
+ },
+ (data) => console.log(data),
+);
```
-#### GetServerInfo
+#### `getServerInfo`
Запросить доступные даты трансляции в памяти адаптера
##### Допустимые параметры:
@@ -368,18 +384,17 @@ sendTo("tvprogram.0","getServerBroadcastFind",{
**Возвраты:**
-Множество
+`Array`
**Пример:**
```javascript
-sendTo("tvprogram.0","getServerInfo","{}",(data)=>console.log(data));
-
+sendTo("tvprogram.0", "getServerInfo", "{}", (data) => console.log(data));
```
-### Сообщество предоставляет виджеты и скрипты
-#### Гармония и MagentaTV
-Скрипт предоставляет пиксель. После щелчка по логотипу канала скрипт устанавливает сопоставленный идентификатор канала в точку данных гармонии.
+### Сообщество предоставляет виджеты/скрипты
+#### `Harmony` и `MagentaTV`
+Скрипт предоставлен pix После нажатия на логотип канала скрипт устанавливает сопоставленный идентификатор канала в harmonity-datapoint
```javascript
/* TV Programm Adapter
@@ -396,135 +411,146 @@ Adapter von 1/2021 von oweitmann https://github.com/oweitman/ioBroker.tvprogram
const logging = true;
const idKanalWahl = "tvprogram.0.tv1.selectchannel"; // Dateingabe aus VIS
const fbdelay = 1000; // delay zwischen Tastendrücken der IR_Fernbedienung in ms
-const channelList = { // Ausgabe vom Adapter : Kanalnummer im Receiver
- "ard" : 1,
- "zdf" : 2,
- "rtl" : 3,
- "sat1": 4,
- "pro7": 5,
- "vox" : 6,
- "kaka":7,
- "rtl2":8,
- "superrtl":9,
- "kika":10,
- /* nickelodeon 11 */
- "3sat":12,
- "welt":13,
- "ntv":14,
- "phoenix":15,
- "tele5":16,
- "zdfneo":17,
- /* #dabeiTV 18 */
- /* disneyplus 19 */
- /* lokalTV 20 */
- "bayern3":21,
- "hessen3":25,
- "mdr":27,
- "nord3":29,
- /* "bremen":30, */
- /* "rbb berlin":31, */
- /* "sr":36, */
- "sw3":37, // bw
- /* "sw3":38, // rp */
- "west3":39,
- /* "eurosport1":50, */
- "sport1":51,
- /* sky sport news 52 */
- "arte":55,
- "one":56,
- /* anixe 60 */
- "dmax":64,
- "pro7maxx":69,
- "nitro":70,
- /* sat1 gold 73 */
- "sixx":75,
- /* ard alpha 80 */
- /* DW 85 */
- /* euronews */
- /* Kabel Eins Doku 89 */
- /* N24 Doku 90 */
- "tagesschau24":91,
- /* Welt der Wunder 92 */
- /* zdfinfo 93 */
- "mtv":99,
+const channelList = {
+ // Ausgabe vom Adapter : Kanalnummer im Receiver
+ ard: 1,
+ zdf: 2,
+ rtl: 3,
+ sat1: 4,
+ pro7: 5,
+ vox: 6,
+ kaka: 7,
+ rtl2: 8,
+ superrtl: 9,
+ kika: 10,
+ /* nickelodeon 11 */
+ "3sat": 12,
+ welt: 13,
+ ntv: 14,
+ phoenix: 15,
+ tele5: 16,
+ zdfneo: 17,
+ /* #dabeiTV 18 */
+ /* disneyplus 19 */
+ /* lokalTV 20 */
+ bayern3: 21,
+ hessen3: 25,
+ mdr: 27,
+ nord3: 29,
+ /* "bremen":30, */
+ /* "rbb berlin":31, */
+ /* "sr":36, */
+ sw3: 37, // bw
+ /* "sw3":38, // rp */
+ west3: 39,
+ /* "eurosport1":50, */
+ sport1: 51,
+ /* sky sport news 52 */
+ arte: 55,
+ one: 56,
+ /* anixe 60 */
+ dmax: 64,
+ pro7maxx: 69,
+ nitro: 70,
+ /* sat1 gold 73 */
+ sixx: 75,
+ /* ard alpha 80 */
+ /* DW 85 */
+ /* euronews */
+ /* Kabel Eins Doku 89 */
+ /* N24 Doku 90 */
+ tagesschau24: 91,
+ /* Welt der Wunder 92 */
+ /* zdfinfo 93 */
+ mtv: 99,
};
-function selectChannel (chNo) {
- // Zerlegen mehrstelliger Zahlen
- let ch_arr = new Array();
- ch_arr = [];
- if (logging) log("Kanalnummer gewählt: " + chNo);
- while (chNo > 0) { // rückwärts
- if (logging) log("erkannte Ziffer: " + chNo % 10 );
- ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
- chNo = chNo / 10;
- chNo = parseInt(chNo);
- }
- // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
- ch_arr.reverse();
- if (logging) log ("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
- for (let i = 0; i < ch_arr.length; i++) {
- // passende OID füllen
- setStateDelayed("harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i], 1, fbdelay, function() {
- if (logging) log ((i+1) + ". Taste: " + ch_arr[i] + " gedrückt");
- });
- }
+function selectChannel(chNo) {
+ // Zerlegen mehrstelliger Zahlen
+ let ch_arr = new Array();
+ ch_arr = [];
+ if (logging) log("Kanalnummer gewählt: " + chNo);
+ while (chNo > 0) {
+ // rückwärts
+ if (logging) log("erkannte Ziffer: " + (chNo % 10));
+ ch_arr.push(chNo % 10); // letzte Ziffer hinten dran hängen
+ chNo = chNo / 10;
+ chNo = parseInt(chNo);
+ }
+ // array umdrehen und wieder auslesen und Taste(n) der HARMONY+Fernbedienung drücken
+ ch_arr.reverse();
+ if (logging) log("Senderplatz hat " + ch_arr.length + " Ziffern" + ch_arr);
+ for (let i = 0; i < ch_arr.length; i++) {
+ // passende OID füllen
+ setStateDelayed(
+ "harmony.0.Harmony_Hub.Telekom-DVR.Number" + ch_arr[i],
+ 1,
+ fbdelay,
+ function () {
+ if (logging) log(i + 1 + ". Taste: " + ch_arr[i] + " gedrückt");
+ },
+ );
+ }
}
on(idKanalWahl, function (obj) {
- log("Neues TV Programm: " + obj.state.val + " auf Kanal " + channelList[obj.state.val] + " gewählt");
- selectChannel(channelList[obj.state.val]);
+ log(
+ "Neues TV Programm: " +
+ obj.state.val +
+ " auf Kanal " +
+ channelList[obj.state.val] +
+ " gewählt",
+ );
+ selectChannel(channelList[obj.state.val]);
});
-
```
-### Функции не реализованы в адаптере, но предоставляются в виде скриптов для javascript-адаптера
-#### Список записей
+### Функции не реализованы в адаптере, но предоставляются в виде скриптов для javascript-adapter
+#### `Recordlist`
Список всех текущих времен записи, записанных точкой данных записи и обновляемых каждую минуту.
-Вам необходимо настроить имя точки данных вашего RecorderList и имя точки данных, которую нужно наблюдать.
-Как только сценарий добавляет запись в список, точка данных записи очищается.
+Вам необходимо настроить имя точки данных вашего RecorderList и имя точки данных, которую нужно отслеживать.
+Как только скрипт добавит запись в список, точка данных записи будет очищена.
```javascript
// datapoint where the List should be saved
var recorderListDP = "0_userdata.0.tvprogram.RecorderList";
// datapoint who should be monitored of new data
-var recorderDP ="tvprogram.0.tv1.record";
+var recorderDP = "tvprogram.0.tv1.record";
on(recorderDP, function (obj) {
- var recorderList;
- var index;
- console.log(obj.state.val);
- try {
- var recObj = JSON.parse(obj.state.val);
- } catch {
- return;
- }
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- index = recorderList.findIndex(function(el) {
- return JSON.stringify(el)==JSON.stringify(recObj);
- });
- if (index>-1) {
- recorderList.splice(index,1);
- }
- recorderList.push(recObj);
- setState(recorderListDP,JSON.stringify(recorderList));
- setState(recorderDP,"");
-
+ var recorderList;
+ var index;
+ console.log(obj.state.val);
+ try {
+ var recObj = JSON.parse(obj.state.val);
+ } catch {
+ return;
+ }
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ index = recorderList.findIndex(function (el) {
+ return JSON.stringify(el) == JSON.stringify(recObj);
+ });
+ if (index > -1) {
+ recorderList.splice(index, 1);
+ }
+ recorderList.push(recObj);
+ setState(recorderListDP, JSON.stringify(recorderList));
+ setState(recorderDP, "");
});
-var timer = setInterval(function() {
- var recorderList;
- var s = getState(recorderListDP).val;
- s = (s=="") ? s="[]":s;
- recorderList = JSON.parse(s) || [];
- recorderList=recorderList.filter( (el) => new Date(el.endTime)>new Date());
- setState(recorderListDP,JSON.stringify(recorderList));
-},1000*60);
- ```
-
-Визуализировать эти данные поможет JSON-шаблон виджета из адаптера myTime со следующим шаблоном.
-Введите в качестве json_oid точку данных со списком записей и в качестве json_template следующий код:
+var timer = setInterval(function () {
+ var recorderList;
+ var s = getState(recorderListDP).val;
+ s = s == "" ? (s = "[]") : s;
+ recorderList = JSON.parse(s) || [];
+ recorderList = recorderList.filter((el) => new Date(el.endTime) > new Date());
+ setState(recorderListDP, JSON.stringify(recorderList));
+}, 1000 * 60);
+```
+
+Для визуализации этих данных шаблон виджета JSON из адаптера myTime может помочь со следующим шаблоном.
+Введите как json_oid точку данных с `recordlist` и как json_template следующий код:
```javascript
<% data.sort((a,b)=>new Date(a.startTime) - new Date(b.startTime)) %>
@@ -546,7 +572,7 @@ var timer = setInterval(function() {
```
-####Любимая трансляция на данный момент
+#### Любимая трансляция на данный момент
Следующий скрипт раз в минуту определяет, запущена ли в данный момент любимая программа.
```javascript
@@ -555,24 +581,26 @@ var favoritesDP = "tvprogram.0.tv1.favorites";
// channelfilter datapoint of your tv
var channelfilterDP = "tvprogram.0.tv1.channelfilter";
// datapoint where the result should be saved
-var favoritesBool ="0_userdata.0.tvprogram.favoriteNow";
-
-var timer = setInterval(function() {
- var favorites = JSON.parse(getState(favoritesDP).val);
- var channelfilter = JSON.parse(getState(channelfilterDP).val);
- sendTo("tvprogram.0","getServerBroadcastNow",channelfilter,(data)=>{
- setState(favoritesBool,data.some((el) => favorites.includes(el.events[0].title)))
- });
-},1000*60);
-
+var favoritesBool = "0_userdata.0.tvprogram.favoriteNow";
+
+var timer = setInterval(function () {
+ var favorites = JSON.parse(getState(favoritesDP).val);
+ var channelfilter = JSON.parse(getState(channelfilterDP).val);
+ sendTo("tvprogram.0", "getServerBroadcastNow", channelfilter, (data) => {
+ setState(
+ favoritesBool,
+ data.some((el) => favorites.includes(el.events[0].title)),
+ );
+ });
+}, 1000 * 60);
```
-#### Раскраска программ, которые расположены в точке данных списка записей в виджете tvprogram
-Следующий шаблон предназначен для шаблона JSON виджета из адаптера rssfeed.
-этот шаблон не генерирует никаких видимых результатов, но генерирует инструкции CSS, которые раскрашивают текущие программы.
+#### Раскрашивание программ, которые находятся в точке данных `recordlist` в виджете tvprogram
+следующий шаблон предназначен для шаблона виджета JSON из адаптера rssfeed.
+этот шаблон не генерирует видимый вывод, но генерирует инструкции css, которые окрашивают текущие программы.
он также окрашивает кнопку записи в подробном представлении.
-Чтобы использовать этот шаблон, выберите точку данных списка записей в свойствах виджета json_oid и вставьте следующий шаблон в json_template.
+Чтобы использовать этот шаблон, выберите точку данных recordlist в свойствах виджета json_oid и вставьте следующий шаблон в json_template
```javascript
<%
@@ -597,64 +625,79 @@ var timer = setInterval(function() {
```
### Функции
-* показывать телевизионные данные на временной шкале по телеканалам
-* показать подробную информацию о телетрансляции, если она доступна
-* показывать маркер фактического положения с автоматической прокруткой
-* настроить и упорядочить отображаемые телеканалы, изменение порядка возможно с помощью перетаскивания.
-* команда переключения через точку данных после нажатия на логотип
-* увеличение/уменьшение масштаба
-* навигация на следующий и предыдущий дни
-* кнопка воспроизведения для переключения точки данных канала
-* центральное увеличение в ближайшие дни
-* вернуться в сегодняшний день
-* сбросить масштаб
-* любимые передачи
-* скопировать текст из Detailview
-* положение маркера настраивается
-* ширина и высота диалога настраивается
-* Запись Datenpunkt, которую нужно выпить с Knopf mit Aufnahmedaten gefüllt wird
-* Виджет для избранного
-* скрыть неизбранное
-
-### Делать
-виджет телепрограммы:
-
-* возможно, виджет основных трансляций
-* Адаптер данных для других источников (Интернет, оборудование типа Enigma, VU-Box). В настоящее время рассмотрение этого вопроса приостановлено из-за низкого спроса.
-* ~~улучшение документации по настройке виджетов~~
-* ~~транслировать изображения, если они доступны на главном экране виджета времени~~
-* ~~ищите по всему тексту, чтобы найти режиссёров и актёров~~
-* ~~подсказки для кнопок виджета времени~~
-* ~~Идеи дальнейших виджетов на основе существующего сценария телепрограммы~~
-* ~~Проблема: бесконечная прокрутка в Firefox~~
-* ~~обсуждается: Datenpunkt, mit allen Aufnahmedaten, должен быть реализован на адаптере видеомагнитофона или в отдельном скрипте~~
-* ~~адаптивный дизайн для детального просмотра->нет возможности адаптивного дизайна для диалогового окна jquery, найдено другое решение с фиксированными макетами для высоты>ширины~~
-* ~~Проблема: небольшой сбой пикселей, если панель прокрутки слева заполнена~~
+- показывать данные ТВ на временной шкале по ТВ каналу
+- показать подробности о телетрансляции, если они доступны
+- показывать маркер фактического положения с автоматической прокруткой
+- настроить отображаемые телеканалы и порядок, изменение порядка возможно с помощью dragNdrop.
+- команда переключения через точку данных после нажатия на логотип
+- увеличить/уменьшить масштаб
+- навигация по следующим и предыдущим дням
+- кнопка воспроизведения для переключения точки данных канала
+- центральный зум в ближайшие дни
+- вернуться к сегодняшнему дню
+- сбросить масштаб
+- любимые трансляции
+- скопировать текст из Detailview
+- положение маркера настраивается
+- ширина и высота диалогового окна настраиваются
+- Datenpunkt Record, der nach druck auf Knopf mit Aufnahmedaten gefüllt wird.
+- Виджет для избранного
+- скрыть неизбранное
+
+### То, что нужно сделать
+виджет твпрограмма:
+
+- возможно, виджет трансляций лучших моментов
+- Адаптер данных для других источников (Интернет, оборудование, такое как Enigma, VU-Box). Рассмотрение этого вопроса в настоящее время приостановлено из-за низкого спроса
+- ~~улучшить документацию по настройке виджетов~~
+- ~~транслировать изображения, если они доступны в главном окне виджета времени~~
+- ~~исследуйте весь текст, чтобы также найти режиссеров и актеров~~
+- ~~подсказки для кнопок в виджете времени~~
+- ~~Идеи для дальнейших виджетов на основе существующего сценария телепрограммы~~
+- ~~Проблема: бесконечная прокрутка в Firefox~~
+- ~~на обсуждение: Datenpunkt, mit allen Aufnahmedaten, должен быть реализован на адаптере видеомагнитофона или в отдельном скрипте~~
+- ~~адаптивный дизайн для подробного представления->адаптивный дизайн для диалогового окна jquery невозможен, нашел другое решение с фиксированными макетами для высоты>ширины~~
+- ~~Проблема: небольшая ошибка пикселей, если панель прокрутки полностью прокручена с левой стороны~~
## Changelog
+
-### 1.1.3-alpha.1 (2024-06-04)
-* fix lint errors
+### **WORK IN PROGRESS**
+
+- Change sento command from getFavoritesDatax to getFavoritesData
+
+### 2.0.2 (2024-11-17)
+
+- fix jsonconfig
+- add node 22 to testing
+
+### 2.0.1 (2024-11-16)
+
+- fix lint errors
-### 1.1.3-alpha.0 (2024-06-04)
+### 2.0.0 (2024-11-16)
-* align structures and files
+- fix lint errors
+- align structures and files
+- switch to jsonconfig
+- config translations
+- make vis2 compatible (maybe some glitches included, please report)
### 1.1.1 (2021-08-10)
-* remove dead code / extend doku about the warnings in the iobroker log * change the method of setting for configuration data from widget to datapoint
+- remove dead code / extend doku about the warnings in the iobroker log \* change the method of setting for configuration data from widget to datapoint
### 1.1.0 (2021-05-06)
-* tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
+- tooltips for the buttons in the time widget / search through the whole text to also find directors and actors / add showpictures option in time,control and search widget / improve documentation
### 1.0.0
-* (oweitman) stable version
+- (oweitman) stable version
## License
@@ -678,4 +721,4 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-Copyright (c) 2024 oweitman
+Copyright (c) 2024 oweitman
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
index 0d176cf9a..f221f3980 100644
--- a/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
+++ b/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md
title: Специальные виджеты Jaeger Design для ioBroker.vis 2.0
-hash: 5lVnGUkghKSehN1aDAMXEmrP6XnAxenBvUzyN+8W8ko=
+hash: KRfOLZ4R4Szd49jBaBhDpNY2gI8fC0T5/XIDnd5MNn0=
---
![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/admin/vis-2-widgets-jaeger-design.png)
@@ -28,7 +28,7 @@ Das Video wie man die Widgets benutzt kann man [здесь](https://youtu.be/Rpl
Для использования этого виджета вам необходимо создать небольшой скрипт в адаптере Javascript:
-```
+```js
const axios = require('axios');
function readRss() {
@@ -49,6 +49,9 @@ createState('javascript.0.rss', {type: 'string'}, () => {
### **РАБОТА В ХОДЕ** -->
## Changelog
+### 1.3.2 (2024-11-22)
+* (bluefox) Corrected "close on click" option for shutter and dimmer
+
### 1.3.1 (2024-09-23)
* (bluefox) Removed gulp from a build process
* (bluefox) Added the possibility to select camera from the "cameras" adapter
diff --git a/docs/ru/adapterref/iobroker.vis-2-widgets-material/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-material/README.md
index 593cad5f6..35562699c 100644
--- a/docs/ru/adapterref/iobroker.vis-2-widgets-material/README.md
+++ b/docs/ru/adapterref/iobroker.vis-2-widgets-material/README.md
@@ -1,18 +1,18 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2-widgets-material/README.md
-title: Виджеты материалов для ioBroker.vis 2.0
-hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
+title: Материальные виджеты для ioBroker.vis 2.0
+hash: A/LUw2OF9kxJI2ckvXSi8c0DcJINowASCGR9R9TSL98=
---
![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-material/admin/vis-2-widgets-material.png)
![Количество установок](http://iobroker.live/badges/vis-2-widgets-material-stable.svg)
-![НПМ-версия](http://img.shields.io/npm/v/iobroker.vis-2-widgets-material.svg)
+![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2-widgets-material.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-material.svg)
![НПМ](https://nodei.co/npm/iobroker.vis-2-widgets-material.png?downloads=true)
-# Виджеты материалов для ioBroker.vis 2.0
+# Материальные виджеты для ioBroker.vis 2.0
## Виджеты
### Кнопки и переключатели
![Переключатели](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-switches.png)
@@ -26,11 +26,11 @@ hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
![Аналоговые часы](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-analog-1.png)
-- Аналоговый вариант
+- Аналоговая вариация
![Аналоговые часы 2](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-analog-2.png)
-- Цифровой
+- Цифровой
![Цифровой](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-digital-1.png)
@@ -39,32 +39,32 @@ hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
![Цифровой2](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-clock-digital-2.png)
### Простое состояние
-С помощью этого виджета вы сможете управлять одним устройством. Логическое значение или число.
+С помощью этого виджета вы можете управлять одним устройством. Логическое значение или число.
-- Число
+- Число
![Простое состояние](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-simple-state-1.png)
-- Контроль
+- Контроль
![Простое состояние](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-simple-state-2.png)
### Посмотреть в виджете
![Посмотреть в виджете](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-view-in-widget-1.png)
-Не как кнопка: представление может отображаться в полном размере, и вы можете управлять отображаемыми элементами.
+Не как кнопка: Вид может отображаться в полном размере, и вы можете управлять элементами в виде.
-![Посмотреть в виджете - кнопка](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-view-in-widget-2.png)
+![Просмотреть в виджете - кнопка](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-view-in-widget-2.png)
-Кнопка «Как»: вы можете показать небольшую миниатюру изображения, а нажав на нее, она отобразится в полном размере.
+В виде кнопки: Вы можете отобразить небольшую миниатюру вида, а нажав на нее, вы увидите ее в полном размере.
### Термостат
![Термостат](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-thermostat-1.png)
-Кроме того, он может отображать историю, если вы его активировали.
+Кроме того, он может отображать историю, если вы ее активировали.
### Фактическое значение с диаграммой
-![Реальная стоимость](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-1.png)
+![Фактическое значение](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-1.png)
![Фактическое значение с диаграммой](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-actual-value-2.png)
@@ -75,7 +75,7 @@ hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
Вы можете определить задержку в секундах.
-При активации определенный идентификатор будет записан с указанием количества секунд задержки, а после окончания задержки определенный идентификатор будет установлен на 0, а идентификатор сигнала тревоги будет установлен на истинное значение.
+При активации определенный идентификатор будет записан с числом секунд задержки, а после окончания задержки определенный идентификатор будет установлен на 0, а идентификатор тревоги будет установлен на значение true.
![Контроль безопасности](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-security-2.png)
@@ -85,7 +85,7 @@ hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
### Карта
![Игрок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-map-1.png)
-Позиция может быть определена как объединенное состояние, например `9.2344;41.374652` - (долгота;широта), или как два отдельных состояния.
+Положение может быть определено как комбинированное состояние, например `9.2344;41.374652` - (долгота;широта) или как два отдельных состояния.
### Камера
![Игрок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-camera-1.png)
@@ -93,8 +93,8 @@ hash: NbZzVpDRzjaniHO/LzukDm6Up4OwVLs7vxfalnkaoR8=
### HTML-шаблон
![Игрок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-html-1.png)
-HTML-шаблон можно использовать для отображения любого HTML-кода.
-Кроме того, с помощью этого виджета вы также можете отображать изображения или iframe.
+Шаблон Html можно использовать для отображения любого кода HTML.
+Кроме того, с помощью этого виджета можно отображать изображение или iframe.
### Жалюзи
![Жалюзи](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-blinds-1.png)
@@ -102,168 +102,249 @@ HTML-шаблон можно использовать для отображен
![Игрок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-blinds-2.png)
### Цветная лампа
-С помощью виджета RGB-лампы вы можете управлять различными типами RGB-ламп. Вот некоторые примеры:
+С помощью виджета RGB-лампы вы можете управлять различными типами RGB-ламп. Вот несколько примеров:
-- Цвета RGB установлены в одном состоянии, например «#RRGGBB».
-- Цвета R/G/B установлены в разных состояниях от 0 до 255.
+- Цвета RGB устанавливаются в одном состоянии, например, «#RRGGBB»
+- Цвета R/G/B устанавливаются в различных состояниях от 0 до 255
- RGBW как одна переменная, например '#RRGGBBWW'
-- Цвета R/G/B/W установлены в разных состояниях от 0 до 255.
-- оттенок/спутник/яркость в 3 разных состояниях
+- Цвета R/G/B/W устанавливаются в различных состояниях от 0 до 255
+- оттенок/насыщенность/яркость как 3 различных состояния
- цветовая температура как одно состояние от 2700 до 6500 или определяется мин/макс объекта
-- Состояние белого режима можно использовать для переключения между RGB и белым режимом через специальное состояние.
+- Состояние белого режима можно использовать для переключения между режимами RGB и белого через специальное состояние.
![RGB-лампа 1](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-rgb-1.png)
![RGB-лампа 2](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-rgb-2.png)
-### Замок
-![Замок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-lock.png)
+### Дверной замок
+![Дверной замок](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-lock.png)
### Пылесос
-Этот виджет является основным для пылесоса Xiaomi. Но его можно использовать и для любого другого пылесоса.
+Этот виджет в первую очередь предназначен для пылесоса Xiaomi. Но его можно использовать и для любого другого пылесоса.
-Разница лишь в том, что Xiaomi поддерживает уборку помещений.
+Единственное отличие в том, что Xiaomi поддерживает уборку помещения.
![Пылесос](../../../en/adapterref/iobroker.vis-2-widgets-material/img/material-vacuum.png)
### Выбор времени
-## Делать
-- Выдвижные жалюзи со ставнями
+## То, что нужно сделать
+- Раздвижные жалюзи со шторой
-
+### **РАБОТА В ХОДЕ** -->
## Changelog
+
+### **WORK IN PROGRESS**
+
+- (bluefox) Corrected thermostat slider
+
+### 1.4.10 (2024-08-09)
+
+- (Steiger04) Corrected recursive icon search on a channel, device, instance and adapter.
+
+### 1.4.9 (2024-08-03)
+
+- (bluefox) Corrected blinds dialog
+- (bluefox) Added the invert option for blinds
+
+### 1.4.8 (2024-07-12)
+
+- (bluefox) Small changes for SweetHome3D
+
+### 1.4.7 (2024-07-11)
+
+- (bluefox) Corrected thermostat chart button
+
+### 1.4.6 (2024-07-10)
+
+- (bluefox) Better detection of modes for thermostat
+- (bluefox) Round temperature in charts
+
+### 1.4.1 (2024-07-07)
+
+- (bluefox) removed withStyles package
+- (bluefox) Better thermostat visualization by narrow height
+
+### 1.3.33 (2024-06-10)
+
+- (bluefox) Wait for data before the map is shown
+- (bluefox) Round of value is possible now in the actual value widget (with chart)
+
+### 1.3.32 (2024-05-14)
+
+- (bluefox) Corrected error with multi-language names
+
### 1.3.31 (2024-04-26)
-* (bluefox) Improved wizard layout
+
+- (bluefox) Improved wizard layout
### 1.3.28 (2024-04-19)
-* (bluefox) Improved resolving of icons
+
+- (bluefox) Improved resolving of icons
### 1.3.27 (2024-04-09)
-* (bluefox) Updated packages
-* (bluefox) improved RGB widget
+
+- (bluefox) Updated packages
+- (bluefox) improved RGB widget
### 1.3.25 (2024-03-07)
-* (bluefox) Corrected filter property in the widget settings
+
+- (bluefox) Corrected filter property in the widget settings
### 1.3.23 (2024-03-05)
-* (bluefox) Added possibility to change the icon size in simple widget
+
+- (bluefox) Added possibility to change the icon size in simple widget
### 1.3.21 (2024-02-22)
-* (bluefox) Corrected small input fields
+
+- (bluefox) Corrected small input fields
### 1.3.18 (2024-01-16)
-* (bluefox) Corrected long click for RGB widget on touch devices
-* (bluefox) Corrected dimmer widget
+
+- (bluefox) Corrected long click for RGB widget on touch devices
+- (bluefox) Corrected dimmer widget
### 1.3.17 (2023-12-19)
-* (bluefox) Added option to hide the line in switches widget
+
+- (bluefox) Added option to hide the line in switches widget
### 1.3.15 (2023-12-17)
-* (foxriver76) Added option to rotate video
+
+- (foxriver76) Added option to rotate video
### 1.3.14 (2023-12-05)
-* (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
-* (bluefox) Added class names to ON/OFF widgets to allow styling
+
+- (bluefox) Allowed with on click on the widget toggling the ON/OFF state of RGB widget
+- (bluefox) Added class names to ON/OFF widgets to allow styling
### 1.3.11 (2023-11-17)
-* (bluefox) Allowed opening/closing dialogs of some widgets by command
+
+- (bluefox) Allowed opening/closing dialogs of some widgets by command
### 1.3.9 (2023-11-10)
-* (bluefox) updated packages
+
+- (bluefox) updated packages
### 1.3.8 (2023-11-08)
-* (bluefox) Corrected RGB widget if minimal is equal with maximal
+
+- (bluefox) Corrected RGB widget if minimal is equal with maximal
### 1.3.5 (2023-11-06)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added option for RGB widget to hide brightness control
-* (bluefox) Added option for white mode in RGB widget
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added option for RGB widget to hide brightness control
+- (bluefox) Added option for white mode in RGB widget
### 1.3.3 (2023-10-26)
-* (bluefox) Corrected layout of RGB widget
-* (bluefox) Added color settings to actual
-* (bluefox) Vacuum settings were hidden
+
+- (bluefox) Corrected layout of RGB widget
+- (bluefox) Added color settings to actual
+- (bluefox) Vacuum settings were hidden
### 1.3.2 (2023-10-14)
-* (bluefox) Small improvements done
+
+- (bluefox) Small improvements done
### 1.3.1 (2023-10-13)
-* (bluefox) Added the vacuum cleaner widget
+
+- (bluefox) Added the vacuum cleaner widget
### 1.2.1 (2023-09-18)
-* (bluefox) Added door lock, rgb and thermostat to switches widget
+
+- (bluefox) Added door lock, rgb and thermostat to switches widget
### 1.1.3 (2023-09-10)
-* (bluefox) Door lock improved
+
+- (bluefox) Door lock improved
### 1.1.0 (2023-09-08)
-* (bluefox) Added door lock
+
+- (bluefox) Added door lock
### 1.0.0 (2023-08-21)
-* (bluefox) Added RGB widget
+
+- (bluefox) Added RGB widget
### 0.8.5 (2023-08-11)
-* (bluefox) Improvement of the widget loading
+
+- (bluefox) Improvement of the widget loading
### 0.8.4 (2023-08-10)
-* (bluefox) Improvement of wizard
+
+- (bluefox) Improvement of wizard
### 0.8.3 (2023-07-30)
-* (bluefox) Font styles are applied to all buttons
+
+- (bluefox) Font styles are applied to all buttons
### 0.8.2 (2023-07-19)
-* (bluefox) Corrected small layout problems
+
+- (bluefox) Corrected small layout problems
### 0.8.0 (2023-07-18)
-* (bluefox) Added wizard for widgets
+
+- (bluefox) Added wizard for widgets
### 0.7.1 (2023-07-02)
-* (bluefox) Added washer widget
+
+- (bluefox) Added washer widget
### 0.6.2 (2023-06-29)
-* (bluefox) Allowed usage without a frame for all widgets
+
+- (bluefox) Allowed usage without a frame for all widgets
### 0.6.0 (2023-06-28)
-* (bluefox) Added blinds to switches widget
-* (bluefox) Allowed to place widgets in widgets
+
+- (bluefox) Added blinds to switches widget
+- (bluefox) Allowed to place widgets in widgets
### 0.5.3 (2023-06-21)
-* (bluefox) Corrected errors with view in widget
+
+- (bluefox) Corrected errors with view in widget
### 0.5.1 (2023-06-20)
-* (bluefox) Added widget to switch the theme
-* (bluefox) Improved HTML widget to show iframe and image
+
+- (bluefox) Added widget to switch the theme
+- (bluefox) Improved HTML widget to show iframe and image
### 0.4.0 (2023-06-16)
-* (bluefox) Added button texts for switches widget
-* (bluefox) Removed static widget, as it was replaced by switches widget
+
+- (bluefox) Added button texts for switches widget
+- (bluefox) Removed static widget, as it was replaced by switches widget
### 0.3.1 (2023-06-14)
-* (bluefox) Improved buttons widget
+
+- (bluefox) Improved buttons widget
### 0.2.13 (2023-03-22)
-* (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
-* (bluefox) update packages
+
+- (bluefox) BREAKING CHANGE: The names of widgets must be entered anew
+- (bluefox) update packages
### 0.2.9 (2023-02-27)
-* (bluefox) Made this adapter singleton
+
+- (bluefox) Made this adapter singleton
### 0.2.2 (2023-02-22)
-* (bluefox) Update packages
+
+- (bluefox) Update packages
### 0.2.1 (2022-11-26)
-* (bluefox) Implemented the blinds widget
+
+- (bluefox) Implemented the blinds widget
### 0.1.5 (2022-10-27)
-* (bluefox) First beta version
+
+- (bluefox) First beta version
### 0.1.2 (2022-10-21)
-* (bluefox) initial commit
+
+- (bluefox) initial commit
## License
+
The MIT License (MIT)
Copyright (c) 2022-2024 Denis Haev
@@ -284,4 +365,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
+THE SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.ws/README.md b/docs/ru/adapterref/iobroker.ws/README.md
index adeff7f77..d458071d4 100644
--- a/docs/ru/adapterref/iobroker.ws/README.md
+++ b/docs/ru/adapterref/iobroker.ws/README.md
@@ -1,45 +1,45 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.ws/README.md
title: ioBroker.ws
-hash: zKTgZVeQJsBGilNqWUYw/aKgx+wN0bIVIdvX7ciePq0=
+hash: nTPtVkzKPbkqwG4ZqyA5Utge6xM5EauqFIYXv23k87Q=
---
![Логотип](../../../en/adapterref/iobroker.ws/admin/ws.png)
![Количество установок](http://iobroker.live/badges/ws-stable.svg)
-![НПМ-версия](http://img.shields.io/npm/v/iobroker.ws.svg)
+![версия НПМ](http://img.shields.io/npm/v/iobroker.ws.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.ws.svg)
![НПМ](https://nodei.co/npm/iobroker.ws.png?downloads=true)
# IoBroker.ws
-Этот адаптер используется WEB-приложениями и адаптерами для связи с ioBroker с помощью веб-сокетов.
+Этот адаптер используется веб-приложениями и адаптерами для связи с ioBroker с помощью веб-сокетов.
-Он почти такой же, как `ioBroker.socketio`, но не использует библиотеку Socket.io, а только имитирует ее.
+Он почти такой же, как `ioBroker.socketio`, но не использует библиотеку socket.io, а только имитирует ее.
-**Важное примечание: начиная с версии 4.0 этого адаптера используются исключительно чистые веб-сокеты! Socket.io больше не реализуется библиотекой Socket.io, а моделируется с помощью чистых WebSockets!**
+**Важное примечание: начиная с версии 4.0 этого адаптера используются исключительно чистые WebSockets! Socket.io больше не реализуется библиотекой socket.io, а моделируется через чистые WebSockets!**
Пользователи могут использовать этот адаптер для подключения своих продуктов к ioBroker через веб-сокеты.
На самом деле, этот адаптер может использоваться echarts, vis и многими другими адаптерами для извлечения данных из ioBroker.
В примере [каталог](https://github.com/ioBroker/ioBroker.ws/tree/master/example) вы можете найти простое приложение, которое использует этот интерфейс для отображения некоторых данных.
-Используя интерфейс Socket.io, пользователь должен понимать [основы и концепция](https://github.com/ioBroker/ioBroker) системы.
+Используя интерфейс socket.io, пользователь должен понимать [основы и концепция](https://github.com/ioBroker/ioBroker) системы.
-Полезно также прочитать о [структура объектов](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md).
+Полезно также почитать о [структура объектов](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md).
-**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Для получения более подробной информации и информации о том, как отключить отчеты об ошибках, см. [Документация плагина Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются начиная с js-controller 3.0.
+**Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках кода.** Более подробную информацию и информацию о том, как отключить отчеты об ошибках, см. в [Документация по плагину Sentry](https://github.com/ioBroker/plugin-sentry#plugin-sentry)! Отчеты Sentry используются, начиная с js-controller 3.0.
## Краткое описание концепции
### Объект
-Объект — это описание точки или группы данных. Группа может содержать другие точки данных, в данном случае она называется каналом. Если группа состоит из других каналов, в этом случае она называется устройством.
+Объект — это описание точки данных или группы. Группа может содержать другие точки данных, в этом случае она называется каналом. Если группа состоит из других каналов, в этом случае она называется устройством.
-Объект — это метаинформация, которая описывает точку данных и может содержать: максимальное/минимальное значение, единицу измерения, имя, значение по умолчанию, тип значения, информацию для адаптера для связи (например, IP-адрес) и т. д.
+Объект — это метаинформация, которая описывает точку данных и может содержать: максимальное/минимальное значение, единицу измерения, имя, значение по умолчанию, тип значения, информацию об адаптере для связи (например, IP-адрес) и т. д.
### Состояние
Состояние — это фактическое значение точки данных, представленное объектом JavaScript:
-```
+```js
{
val: VALUE,
ack: ACKNOWLEDGED,
@@ -50,34 +50,46 @@ hash: zKTgZVeQJsBGilNqWUYw/aKgx+wN0bIVIdvX7ciePq0=
}
```
-Состояния изменяются очень часто по сравнению с объектами. (Обычно объекты должны быть изменены один раз при создании и все)
+Состояния изменяются очень часто по сравнению с объектами. (Обычно объекты должны быть изменены один раз при создании и это все)
### Подтверждение
Каждое состояние имеет атрибут `ack`. Он показывает направление команды.
-- Если ack=false, это означает, что какой-то другой адаптер хочет управлять (записывать) эту переменную, чтобы команда была выполнена (например, включился свет).
-- Если ack=true, это означает, что устройство сообщает о новом значении. (например, свет был включен вручную или обнаружено движение)
+- Если ack=false, это означает, что какой-то другой адаптер хочет управлять (записывать) эту переменную, поэтому команда будет выполнена (например, включится свет).
+- Если ack=true, это означает, что устройство сообщает о новом значении. (например, свет был включен вручную или было обнаружено движение)
**Пример**: у нас есть адаптер домашней автоматизации (HAA), к которому подключена одна лампа по адресу `haa.0.lamp1`.
-- Лампу можно включить вручную физическим выключателем или через Wi-Fi с помощью HAA.
+- Лампу можно включить вручную с помощью физического выключателя или через Wi-Fi с помощью HAA.
- Если vis хочет включить лампу через Wi-Fi, он должен установить новое значение с помощью `{value: true, ack: false}`.
- Когда лампа включается, она обычно информирует HAA о новом состоянии, и значение должно быть немедленно перезаписано на `{value: true, ack: true}`.
-- Если лампа выключается вручную с помощью физического переключателя, она информирует HAA о новом состоянии с помощью `{value: false, ack: true}`.
+- Если лампа выключена вручную с помощью физического переключателя, она информирует HAA о новом состоянии с помощью `{value: false, ack: true}`.
### Качество
Каждая точка данных имеет атрибут `q` - *качество*.
## Использование
-Вы можете найти описание каждого поддерживаемого метода [здесь](https://github.com/ioBroker/ioBroker.socket-classes#web-methods).
+Описание каждого поддерживаемого метода можно найти [здесь](https://github.com/ioBroker/ioBroker.socket-classes#web-methods).
Для связи предлагается использовать [класс сокета](https://github.com/ioBroker/socket-client).
-
+### **РАБОТА В ХОДЕ** -->
## Changelog
+### 2.7.0 (2024-11-17)
+* (bluefox) Update ws-server library
+
+### 2.6.2 (2024-06-26)
+* (bluefox) Corrected call of getObjectView with null parameter
+
+### 2.6.1 (2024-04-22)
+* (foxriver76) fixed require of webserver
+
+### 2.6.0 (2024-04-21)
+* (foxriver76) use `@iobroker/webserver`
+
### 2.5.11 (2024-02-22)
* (bluefox) Some packages were updated
@@ -126,4 +138,4 @@ hash: zKTgZVeQJsBGilNqWUYw/aKgx+wN0bIVIdvX7ciePq0=
## License
The MIT License (MIT)
-Copyright (c) 2014-2024 bluefox
+Copyright (c) 2014-2024 bluefox
\ No newline at end of file
diff --git a/docs/ru/adapterref/iobroker.zendure-solarflow/README.md b/docs/ru/adapterref/iobroker.zendure-solarflow/README.md
index 76a969050..6f2f0ce3f 100644
--- a/docs/ru/adapterref/iobroker.zendure-solarflow/README.md
+++ b/docs/ru/adapterref/iobroker.zendure-solarflow/README.md
@@ -1,49 +1,178 @@
---
translatedFrom: en
-translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен
+translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.zendure-solarflow/README.md
-title: ioBroker.zendure-солнечный поток
-hash: NVvuNG/1GXEw/ohtnb5LWEtYsvkNdkchQH2aE8Wxjp8=
+title: ioBroker.zendure-solarflow
+hash: AVn5YzHd9CTBo8vIgT61hMQK4ryROLtKMXW09AeSWz4=
---
![Логотип](../../../en/adapterref/iobroker.zendure-solarflow/admin/zendure-solarflow.png)
-![НПМ-версия](https://img.shields.io/npm/v/iobroker.zendure-solarflow.svg)
+![версия НПМ](https://img.shields.io/npm/v/iobroker.zendure-solarflow.svg)
![Загрузки](https://img.shields.io/npm/dm/iobroker.zendure-solarflow.svg)
![Количество установок](https://iobroker.live/badges/zendure-solarflow-installed.svg)
-![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/zendure-solarflow-stable.svg)
+![Текущая версия в стабильном репозитории](https://iobroker.live/badges/zendure-solarflow-stable.svg)
![НПМ](https://nodei.co/npm/iobroker.zendure-solarflow.png?downloads=true)
![Пожертвовать](https://img.shields.io/badge/PayPal-00457C?style=for-the-badge&logo=paypal&logoColor=white)
# IoBroker.zendure-solarflow
-**Тесты:** ![Тестирование и выпуск](https://github.com/nograx/ioBroker.zendure-solarflow/workflows/Test%20and%20Release/badge.svg)
+**Тесты:** ![Тест и выпуск](https://github.com/nograx/ioBroker.zendure-solarflow/workflows/Test%20and%20Release/badge.svg)
## Адаптер Zendure Solarflow для ioBroker
-Этот проект представляет собой адаптер ioBroker для чтения данных из Zendure Solarflow Cloud API. Он использует официальный API, предоставленный Zendure.
-Подробнее об API можно прочитать здесь: https://github.com/Zendure/developer-device-data-report.
+Этот проект представляет собой адаптер ioBroker для чтения данных из API Zendure Solarflow Cloud. Он использует официальный API, предоставленный Zendure.
+Подробнее об API можно прочитать здесь: https://github.com/Zendure/developer-device-data-report
## Функции
-- Получите все данные телеметрии с ваших устройств Solarflow, в том числе те, которые не отображаются в официальном приложении, например напряжение батареи.
-- Управляйте своим Solarflow HUB, как в официальном приложении. Доступна большая часть настроек.
-- Контролируйте предел выходной мощности — вы не ограничены в использовании Shelly Pro EM для реализации нулевой подачи. Вы также можете разрабатывать более сложные сценарии с помощью скрипта или блочно в ioBroker.
-- Прекратите подачу питания, если напряжение одной батареи упадет до низкого напряжения (защита батареи). Работает только при установке лимита вывода через адаптер
-- Управляйте более чем одним Solarflow одновременно!
+- Получайте все телеметрические данные с ваших устройств Solarflow, включая те, которые не отображаются в официальном приложении, например, напряжение батареи.
+- Управляйте Solarflow HUB как в официальном приложении. Большинство настроек доступны.
+- Управляйте пределом выхода - вы не ограничены использованием Shelly Pro EM для реализации нулевой подачи. Вы также можете разрабатывать более сложные сценарии через скрипт или блок в ioBroker.
+- Остановка входа, если напряжение одной батареи падает до низкого уровня (защита батареи). Работает только при установке выходного предела через адаптер
+- Управляйте несколькими Solarflow одновременно!
- Получите более точные расчеты!
-- Работает со всеми устройствами Zendure SolarFlow: HUB1200 (проверено), HUB2000 и AIO (оба не тестировались)!
+- Работает со всеми устройствами Zendure SolarFlow: HUB1200, Hyper2000, HUB2000 и AIO! Я могу протестировать только на HUB1200, так как у меня нет других устройств...
## Примечания
-1. Пожалуйста, деактивируйте/снимите флажки со всех режимов в приложении Zendure, иначе невозможно будет установить предел вывода!
+1. Пожалуйста, деактивируйте/снимите флажки со всех режимов в приложении Zendure, в противном случае невозможно будет установить предел выходной мощности!
![Окно настроек Solarflow](https://raw.github.com/nograx/ioBroker.zendure-solarflow/master/Screenshots/ZendureSolarflowSettings.png)
-2. После входа в систему с помощью адаптера ioBroker вы выйдете из официального приложения iOS или Android. Это нормальное поведение. В качестве обходного пути вы можете создать вторую учетную запись Zendure с другим адресом электронной почты и предоставить этой учетной записи доступ к вашему Solarflow HUB. Затем используйте вторую учетную запись для ioBroker/адаптера Zendure Solarflow.
+2. Вы выйдете из официального приложения iOS или Android после входа с помощью адаптера ioBroker. Это нормальное поведение. В качестве обходного пути вы можете создать вторую учетную запись Zendure с другим адресом электронной почты и предоставить доступ к Solarflow HUB этой учетной записи. Затем используйте вторую учетную запись для ioBroker / адаптера Zendure Solarflow.
+
+3. Адаптер покажет использование +10 Вт от батареи, если нет солнечного входа и устройство находится в сети. Это будет отражать «резервное» использование устройства.
## Кредиты
-Благодарность передается по адресу https://github.com/reinhard-brandstaedter/solarflow, который очень помог мне получить знания о сервере MQTT от Zendure! Спасибо!
+Благодарность за это выражается https://github.com/reinhard-brandstaedter/solarflow, который очень помог со знаниями о сервере MQTT от Zendure! Спасибо!
## Пожертвовать
-Если вы считаете адаптер полезным для себя и хотите поддержать мою работу, сделайте пожертвование через Paypal. Спасибо! (это персональная ссылка для пожертвований для Nograx, не имеющая отношения к проекту ioBroker!)
+Если вы найдете этот адаптер полезным для себя и захотите поддержать мою работу, не стесняйтесь сделать пожертвование через Paypal. Спасибо! (это персональная ссылка для пожертвований для Nograx, не имеющая никакого отношения к проекту ioBroker!)
## Changelog
+### 1.9.3 (2024-11-22)
+
+- Fix for Low Voltage Block not deactivated.
+
+### 1.9.2 (2024-11-21)
+
+- Fix some state definitions
+
+### 1.9.1 (2024-11-21)
+
+- Improvement for 'Low Voltage Block'.
+- Changed the state "hubState" a an option value.
+
+### 1.9.0 (2024-11-20)
+
+- New option to force Solarflow device to go offline when "Low Voltage Block"-option is used.
+
+### 1.8.8 (2024-09-20)
+
+- Improve connection retry, expand the time with every retry attempt.
+- Start "restart adapter job" regardless of connection.
+- Fix Hyper setInputLimit with step
+
+### 1.8.7 (2024-09-09)
+
+- Fix missing control states for AIO
+
+### 1.8.6 (2024-09-06)
+
+- Change login method: Added a retry loop for connecting to Zendure Cloud, if the Cloud Service "hangs" or is not available it will retry the connection 3 times.
+
+### 1.8.5 (2024-08-26)
+
+- Fix missing states for new HUB Firmware when connected to ACE
+- Fix correct max value for AIO
+
+### 1.8.4 (2024-08-16)
+
+- Add support for Smart Plug, but only Power is available at the moment - unstable as often data is not updated by MQTT
+- Some code improvements
+
+### 1.8.3 (2024-08-12)
+
+- Fix SOC and energyWhMax Value (counted by type of attached batteries)
+- Add Calculation for Grid Input (only for Ace 1500 and Hyper 2000)
+- Fix suggestions by ioBroker repository checker
+
+### 1.7.7 (2024-08-02)
+
+- Fix Input and Output limit for Hyper 2000
+
+### 1.7.6 (2024-08-01)
+
+- Fix support for 'Hyper_Test' devices
+- Improved code for state creation
+
+### 1.7.5 (2024-07-31)
+
+- Fix controlling AC mode for Hyper 2000 (set acMode to 1: Charge by AC, 2: Output to AC)
+- Show product name in channel name
+- Show battery type as state in packData
+- Show Hyper Temperature in States
+
+### 1.7.4 (2024-07-31)
+
+- Set max value and step for setInputLimit
+
+### 1.7.3 (2024-07-30)
+
+- Fix AC input value for Hyper to max. 1200W
+- Fix dcSwitch and acSwitch value
+
+### 1.7.2 (2024-07-29)
+
+- Fix acSwitch for ACE and Hyper
+
+### 1.7.1 (2024-07-29)
+
+- Fix missing ACE 1500 when connected with HUB1200 / HUB2000
+- Fix some missing states
+
+### 1.7.0 (2024-07-26)
+
+- Add support for Hyper 2000 and ACE 1500. Maybe not all states and control parameter are available. Still need to do some investigation.
+- Some minor bugfixes.
+
+### 1.6.7 (2024-06-23)
+
+- Fix reconnect again. Adapter will now restart every 3 hours to cleanup fully.
+
+### 1.6.6 (2024-06-21)
+
+- Tweaked recurring refresh of access token.
+
+### 1.6.5 (2024-06-20)
+
+- Fix reconnect issue. Adapter will now restart if connection semms to be broken.
+
+### 1.6.4 (2024-06-03)
+
+- Fix services
+
+### 1.6.3 (2024-06-03)
+
+- Fixed reconnect when connection seems to be dead.
+
+### 1.6.2 (2024-05-21)
+
+- Changed standby usage to 10W
+
+### 1.6.1 (2024-05-13)
+
+- Fix issue that sometime data is not updated
+- Add standby usage of HUB (20W) when solarinput is low
+
+### 1.5.3 (2024-04-19)
+
+- Fix autoRecover datatype issue
+
+### 1.5.2 (2024-04-17)
+
+- Minor bugfixes and improvements
+
+### 1.5.0 (2024-04-12)
+
+- Add the possibility to connect to the 'Fallback' MQTT server known as 'Developer MQTT'. This server is read-only - so no control is possible!
+
### 1.4.0 (2024-04-03)
- Add calculation states for solar input 1 & 2
@@ -179,7 +308,7 @@ hash: NVvuNG/1GXEw/ohtnb5LWEtYsvkNdkchQH2aE8Wxjp8=
### 1.0.1 (2023-11-03)
- Fix translationscd so
-- Use 'extendObjectAsync' instead of 'setObjectNotExistsAsync'
+- Use 'extendObject' instead of 'setObjectNotExistsAsync'
- First official release version
### 0.1.0-alpha.2 (2023-10-27)
@@ -225,4 +354,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.
+SOFTWARE.
\ No newline at end of file
diff --git a/docs/ru/dev/adapterjsonconfig.md b/docs/ru/dev/adapterjsonconfig.md
index 1e0584ea8..ffb0b0db2 100644
--- a/docs/ru/dev/adapterjsonconfig.md
+++ b/docs/ru/dev/adapterjsonconfig.md
@@ -2,40 +2,194 @@
translatedFrom: en
translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/dev/adapterjsonconfig.md
-title: Конфигурация JSON ioBroker
-hash: selFI/h/82dTNnFQIjRwfWcPY1bQ/0yfhIDXpb/O0sY=
+title: Конфигурация ioBroker JSON: руководство для начинающих
+hash: 0+vcILNwunjmaoGO6kZVRE4N3k4LfLysxnL3sxxjB/Y=
---
-# Конфигурация JSON ioBroker
-Admin (начиная с версии 6) поддерживает конфигурацию JSON для адаптеров.
-Можно определить конфигурацию в файле JSON, а затем использовать ее в Admin.
+# Конфигурация JSON ioBroker: руководство для начинающих
+В этом руководстве объясняется, как определить параметры конфигурации для вашего адаптера ioBroker с помощью JSON. Этот подход предлагает более удобный и гибкий способ управления настройками адаптера в интерфейсе администратора ioBroker.
-Пример файла `jsonConfig.json` с несколькими вкладками можно найти здесь: https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5, а пример с одной панелью — здесь: https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json
+## Что вам понадобится
+- ioBroker Admin версии 6 (или новее)
+- Базовое понимание синтаксиса JSON
-Вы можете определить настройки в формате JSON или JSON5. JSON5 более удобен для восприятия человеком и поддерживает комментарии.
+## Преимущества конфигурации JSON
+- Улучшен пользовательский интерфейс для настройки адаптеров
+- Более простая интеграция сложных вариантов конфигурации
+- Четкое разделение между кодом адаптера и конфигурацией
-Кроме того, в файле JSON необходимо определить в части `io-package.json` в `common`:
+## Начиная
+1. **Определите файл конфигурации:**
+
+- Создайте файл с именем `jsonConfig.json` или `jsonConfig.json5` в административном каталоге вашего адаптера.
+- JSON5 — это надмножество JSON, которое позволяет добавлять комментарии, что делает файл конфигурации более читабельным.
+
+2. **Включить конфигурацию JSON:**
+
+- В файле `io-package.json` вашего адаптера добавьте следующую строку в раздел `common`:
```json
-{
- "common": {
- "adminUI": {
- "config": "json"
- }
+"common": {
+ "adminUI": {
+ "config": "json"
}
}
```
-сказать, что адаптер поддерживает конфигурацию JSON.
+3. **Структура файла конфигурации:**
+
+Файл конфигурации определяет иерархическую структуру вкладок, панелей и элементов управления. \ Каждый элемент имеет определенные атрибуты, которые определяют его поведение и внешний вид в интерфейсе администратора.
-Вы можете увидеть почти все компоненты в действии, если протестируете этот адаптер: https://github.com/mcm4iob/ioBroker.jsonconfig-demo.
-Вы можете установить его через значок GitHub в админке, введя `iobroker.jsonconfig-demo` на вкладке npm.
+jsonConfig автоматически обеспечивает запись собранных данных в качестве данных конфигурации адаптера и их внутреннее хранение для возможности их извлечения и дальнейшей обработки в адаптере.
-Схема для файла конфигурации JSON определена здесь: https://github.com/ioBroker/adapter-react-v5/blob/main/schemas/jsonConfig.json
+В следующем примере будет создан следующий объект конфигурации:
-Все метки, тексты, тексты справки могут быть многоязычными или просто строками.
+```json5
+{
+ options1: {
+ myPort: 1234,
+ options: {
+ myType: 1,
+ },
+ myBool: false,
+ },
+}
+```
_Если имя атрибута начинается с «\_», оно не будет сохранено в объекте._
+## Пример jsonConfig с несколькими вкладками
+```json5
+{
+ "type": "tabs",
+ "items": {
+ "options1": {
+ "type": "panel",
+ "label": "Tab1",
+ "icon": "base64 svg", // optional
+ "items": {
+ myPort: {
+ "type": "number",
+ "min": 1,
+ "max": 65565,
+ "label": "Number",
+ "sm": 6, // 1 - 12
+ "validator": "!!data.name", // else error
+ "hidden": "data.myType === 1", // hidden if myType is 1
+ "disabled": "data.myType === 2" // disabled if myType is 2
+ },
+ "options.myType": { // name could support more than one level
+ "newLine": true, // must start from new row
+ "type": "select",
+ "label": "Type",
+ "sm": 6, // 1 - 12
+ "options": [
+ {"label": "option 1", "value": 1},
+ {"label": "option 2", "value": 2}
+ ]
+ },
+ "myBool": {
+ "type": "checkbox",
+ "label": "My checkbox",
+ },
+ "_notSaved":"abc"
+ }
+ },
+ "tab2": {
+ "label": "Tab2",
+ "type": "panel",
+ "disabled": "data.myType === 1",
+ "hidden": "data.myType === 2",
+ }
+ },
+}
+```
+
+Дополнительные примеры можно найти во многих других адаптерах на GitHub в соответствующем административном каталоге.
+
+## Поддержка инструментов разработки
+### VS Код
+Чтобы включить проверку jsonConfig в VS code, необходимо добавить следующий раздел в файл «.vscode/settings.json».
+
+```json5
+ "json.schemas": [
+ {
+ "fileMatch": ["admin/jsonConfig.json", "admin/jsonCustom.json", "admin/jsonTab.json"],
+ "url": "https://raw.githubusercontent.com/ioBroker/adapter-react-v5/main/schemas/jsonConfig.json"
+ }
+ ]
+```
+
+## Общие элементы управления
+jsonConfig состоит из нескольких элементов, которые структурированы иерархически. \ Каждый из элементов может быть одного из следующих типов.\ Некоторые элементы могут содержать дополнительные дочерние элементы.
+
+Вы можете увидеть почти все компоненты в действии, если протестируете этот адаптер: [jsonconfig-демо](https://github.com/mcm4iob/ioBroker.jsonconfig-demo).\ Вы можете установить его с помощью значка GitHub в панели администратора, введя `iobroker.jsonconfig-demo` на вкладке npm.
+
+- [**`accordion`:**](#accordion) Элемент аккордеона для сворачиваемого содержимого (Admin 6.6.0 или новее)
+- [**`alive`:**](#alive) Отображает, запущен ли экземпляр (только для чтения)
+- [**`autocomplete`:**](#autocomplete) Поле ввода с предложениями автозаполнения
+- [**`autocompleteSendTo`:**](#autocompletesendto) Элемент управления автозаполнением со значениями экземпляров для отправки данных
+- [**`certificate`:**](#certificate) Управляет сертификатами для безопасных соединений.
+- [**`certificateCollection`:**](#certificatecollection) Выбирает коллекцию для сертификатов Let's Encrypt
+- [**`certificates`:**](#certificates) Универсальный тип для управления различными типами сертификатов (начиная с Admin 6.4.0)
+- [**`checkbox`:**](#checkbox) Флажок для логических значений
+- [**`checkLicense`:**](#checklicense) Очень специальный компонент для проверки лицензии онлайн
+- [**`chips`:**](#chips) Пользователь может вводить слова, которые добавляются в массив
+- [**`color`:**](#color) Выбор цвета
+- [**`cron`:**](#cron) Настраивает выражения cron для планирования задач
+- [**`custom`:**](#custom) Интегрирует пользовательские компоненты для определенных функций (только Admin 6)
+- [**`datePicker`:**](#datepicker) Позволяет пользователям выбирать дату
+- [**`deviceManager`:**](#devicemanager) показать диспетчер устройств
+- [**`divider`:**](#divider) Создает горизонтальную линию-разделитель
+- [**`file`:**](#file) Поле ввода с выбором файла и дополнительными возможностями загрузки/выгрузки (только Admin 6)
+- [**`fileSelector`:**](#fileselector) Позволяет пользователям выбирать файлы из системы (только Admin6)
+- [**`func`:**](#func) Выбирает функцию из списка enum.func (только Admin 6)
+- [**`header`:**](#header) Создает заголовок с разными размерами (h1-h5)
+- [**`image`:**](#image) Загружает или отображает изображение
+- [**`imageSendTo`:**](#imagesendto) Отображает изображение, полученное от бэкэнда, и отправляет данные на основе команды.
+- [**`instance`:**](#instance) Выбирает экземпляр адаптера
+- [**`interface`:**](#interface) Выбирает интерфейс хоста, на котором запущен экземпляр
+- [**`ip`:**](#ip) Поле ввода IP-адресов с расширенными параметрами
+- [**`jsonEditor`:**](#jsoneditor) Редактор JSON для сложных данных конфигурации
+- [**`language`:**](#language) Выбор языка пользовательского интерфейса
+- [**`license`:**](#license) показывает информацию о лицензии, если она еще не принята.
+- [**`number`:**](#number) Числовое поле ввода с минимальными/максимальными значениями и размером шага
+- [**`objectId`:**](#objectid) Выбирает идентификатор объекта с именем, цветом и значком
+- [**`panel`:**](#panel) Вкладка с элементами
+- [**`password`:**](#password) Поле ввода пароля
+- [**`pattern`:**](#pattern) Поле только для чтения, показывающее шаблон (например, URL)
+- [**`port`:**](#port) Специальный ввод для портов
+- [**`qrCode`:**](#qrcode) Отображает данные в виде QR-кода (Admin 7.0.18 или новее)
+- [**`room`:**](#room) Выбирает комнату из списка `enum.room` (только Admin 6)
+- [**`select`:**](#select) Выпадающее меню с предопределенными параметрами
+- [**`selectSendTo`:**](#selectsendto) Раскрывающееся меню со значениями экземпляров для отправки данных
+- [**`sendTo`:**](#sendto) Кнопка, которая отправляет запрос экземпляру
+- [**`setState`:**](#setstate) Кнопка, которая устанавливает состояние экземпляра
+- [**`slider`:**](#slider) Ползунок для выбора значения в диапазоне (только Admin 6)
+- [**`state`:**](#state) Показать элемент управления или информацию из состояния (admin >= 7.1.0)
+- [**`staticImage`:**](#staticimage) Отображает статическое изображение
+- [**`staticInfo`:**](#staticinfo) Показывает статическую информацию в предварительно отформатированном виде, например «Заголовок: единица измерения» (admin >= 7.3.3)
+- [**`staticLink`:**](#staticlink) Создает статическую ссылку
+- [**`staticText`:**](#statictext) Отображает статический текст (например, описание)
+- [**`coordinates`:**](#coordinates) Определяет текущее местоположение и использует координаты `system.config`, если это невозможно в формате "широта,долгота"
+- [**`table`:**](#table) Таблица со строками, которые можно добавлять, удалять или переупорядочивать
+- [**`tabs`:**](#tabs) Вкладки с элементами
+- [**`text`:**](#text) Одно- или многострочное поле ввода текста
+- [**`textSendTo`:**](#textsendto) Показывает элемент управления только для чтения с указанными в экземпляре значениями.
+- [**`timePicker`:**](#timepicker) Позволяет пользователям выбирать время
+- [**`user`:**](#user) Выбирает пользователя из списка `system.user`
+- [**`uuid`:**](#uuid) Показать UUID iobroker
+
+Используя конфигурацию JSON, вы можете создать удобную и адаптируемую среду настройки для вашего адаптера ioBroker.
+
+## Примеры проектов
+| Тип | Ссылка |
+|-------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Несколько вкладок: | [`ioBroker.admin`](https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5) |
+| Пользовательский компонент: | [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) или в [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin) |
+| Пользовательский компонент: | [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) или в [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin) |
+| Проверка: | |
+
+## Разделение больших конфигураций
## Включает
Требуется администратор 6.17.1 или более поздняя версия.
@@ -44,101 +198,268 @@ _Если имя атрибута начинается с «\_», оно не б
```json5
{
- tabs: {
- tab1: {
- type: 'panel', // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
- '#include': 'tab1.json',
- },
+ tabs: {
+ tab1: {
+ type: "panel", // data will be combined with the content of "tab1.json". If the same attribute is defined in both files, the value from the included file will be used.
+ "#include": "tab1.json",
},
+ },
}
```
-## Возможные типы управления
-Возможные типы:
-
-- `tabs` - Вкладки с элементами
-- `items` - Объект с панелями `{"tab1": {}, "tab2": {}...}`
-- `iconPosition` - `bottom`, `end`, `start` или `top`. Только для панелей с атрибутом `icon`. По умолчанию: `start`
-- `tabsStyle` - стили CSS в формате React (`marginLeft`, а не `margin-left`) для компонента Mui-Tabs
-
-- `panel` - Вкладка с элементами
-- `icon` - вкладка может содержать значок (base64, например `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчиваются на `.png`)
-- `label` - Метка вкладки
-- `items` - Объект `{"attr1": {}, "attr2": {}}...`
-- `collapsable` - возможно только как часть вкладок[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json)
-- `color` - цвет сворачиваемого заголовка `primary` или `secondary` или ничего
-- `innerStyle` - CSS-стили для внутреннего div в формате React (`marginLeft`, а не `margin-left`) для компонента Panel. Не используется для сворачиваемых панелей.
-
-- `text` - Текстовый компонент
-- `maxLength` - максимальная длина текста в поле
-- `readOnly` - поле только для чтения
-- `trim` - по умолчанию true. Установите этот атрибут на `false`, если обрезка нежелательна.
-- `minRows` - по умолчанию 1. Установите для этого атрибута значение `2` или больше, если вы хотите иметь текстовую область с более чем одной строкой.
-- `maxRows` - максимальное количество строк текстовой области. Используется только если `minRows` > 1.
-- `noClearButton` - если true, кнопка очистки не будет отображаться (admin >= 6.17.13)
-- `validateJson` - если true, текст будет проверен как JSON
-- `allowEmpty` - если true, JSON будет проверен только в том случае, если значение не пустое
-- `time` - значение - время в мс или строка. Используется только с флагом readOnly
-
-- `число`
-- `min` - минимальное значение
-- `max` - максимальное значение
-- `шаг` - шаг
-
-- `color` - выбор цвета
-- `noClearButton` - если true, кнопка очистки не будет отображаться (admin >= 6.17.13)
-
-- `checkbox` - показать флажок
-
-- `slider` - показать слайдер (только Admin6)
-- `min` - (по умолчанию 0)
-- `макс` - (по умолчанию 100)
-- `шаг` - (по умолчанию `(макс - мин) / 100`)
-- `unit` - Единица измерения ползунка
-
-- `qrCode` - показывать данные в QR-коде (admin >= 7.0.18)
-- `data` - данные, которые будут закодированы в QR-коде
-- `size` - размер QR-кода
-- `fgColor` - Цвет переднего плана
-- `bgColor` - Цвет фона
-- `level` - уровень QR-кода (`L` `M` `Q` `H`)
-
-- `ip` - адрес привязки
-- `listenOnAllPorts` - добавьте 0.0.0.0 к опции
-- `onlyIp4` - показывать только адреса IP4
-- `onlyIp6` - показывать только адреса IP6
-- `noInternal` - не показывать внутренние IP-адреса
-
-- `user` - Выбор пользователя из system.user. (С цветом и значком)
-- `short` - нет системного пользователя.
-
-- `room` - Выбрать комнату из `enum.room` (с цветом и значком) - (только Admin6)
-- `short` - нет `enum.rooms.`
-- `allowDeactivate` - разрешить оставлять комнату пустой
-
-- `func` - Выбор функции из `enum.func` (с цветом и значком) - (только Admin6)
-- `short` - нет `enum.func.`
-- `allowDeactivate` - разрешить оставить функциональность пустой
-
-- `выбрать`
-- `options` - `[{label: {en: "option 1"}, value: 1}, ...]` или
-
-`[{"items": [{"label": "Val1", "value": 1}, {"label": "Val2", value: "2}], "name": "group1"}, {"items": [{"label": "Val3", "value": 3}, {"label": "Val4", value: "4}], "name": "group2"}, {"label": "Val5", "value": 5}]`
-
-- `автозаполнение`
-- `options` - `["value1", "value2", ...]` или `[{"value": "value", "label": "Value1"}, "value2", ...]` (ключи должны быть уникальными)
-- `freeSolo` - Установите `freeSolo` в `true`, чтобы текстовое поле могло содержать любое произвольное значение.
-
-- `image` - сохраняет изображение как файл объекта `adapter.X` или как base64 в атрибуте
-- `filename` - имя файла - это имя структуры. В примере ниже `login-bg.png` - это имя файла для `writeFile("myAdapter.INSTANCE", "login-bg.png")`
-- `accept` - атрибут принятия HTML, например `{ 'image/**': [], 'application/pdf': ['.pdf'] }`, по умолчанию `{ 'image/*': [] }`
-- `maxSize` - максимальный размер файла для загрузки
-- `base64` - если true, изображение будет сохранено как data-url в атрибуте, в противном случае как двоичный файл в файловом хранилище
-- `crop` - если true, разрешить пользователю обрезать изображение
-- `!максШирина`
-- `!maxHeight`
-- `!square` - ширина должна быть равна высоте, или обрезка должна допускать только квадратную форму
+## I18n - Интернационализация
+Есть несколько вариантов предоставления переводов. Только первый из них совместим с нашим инструментом перевода сообщества Weblate, поэтому его следует предпочесть другим!
+
+Чтобы включить функцию перевода, необходимо предоставить и включить свойство i18n на верхнем уровне объекта конфигурации JSON.
+```json5
+{
+ i18n: true,
+}
+```
+
+### Перевод в отдельных файлах: совместимо с weblate
+По умолчанию файлы должны располагаться в следующих каталогах:
+
+```text
+admin/i18n/de/translations.json
+admin/i18n/en/translations.json
+```
+
+или
+
+```text
+admin/i18n/de.json
+admin/i18n/en.json
+```
+
+Кроме того, пользователь может указать путь к файлам `i18n`, `i18n`: `customI18n` и указать файлы в админке:
+
+```json5
+ i18n: "customI18n",
+```
+
+```text
+admin/customI18n/de/translations.json
+admin/customI18n/en/translations.json
+```
+
+или
+
+```text
+admin/customI18n/de.json
+admin/customI18n/en.json
+```
+
+Структура файла соответствует следующей структуре
+
+**en.json:**
+
+```json5
+{
+ i18nText1: "Open",
+ i18nText2: "Close",
+ "This is a Text": "This is a Text",
+}
+```
+
+**de.json:**
+
+```json5
+{
+ i18nText1: "Öffnen",
+ i18nText2: "Schließen",
+ "This is a Text": "Dies ist ein Text",
+}
+```
+
+При поиске перевода информация в определенном поле используется для поиска свойства с текстом в файлах. Если свойство не найдено, информация из поля остается. Рекомендуется вводить текст на английском языке.
+
+### Предоставляйте перевод прямо в полях
+Переводы могут быть указаны во всех полях, которые могут содержать текст. Примерами полей являются метка, заголовок, подсказка, текст и т. д.
+
+```json5
+ "type": "text",
+ "label: {
+ "en": "house",
+ "de": "Haus"
+ }
+}
+```
+
+### Предоставляйте перевод прямо в i18n
+Переводы также могут быть предоставлены непосредственно как объект в атрибуте `i18n` на верхнем уровне объекта `jsonConfig`.
+
+При поиске перевода информация в определенном поле используется для поиска свойства с текстом в объекте i18n.
+Если свойство не найдено, информация из поля остается.
+Рекомендуется вводить текст на английском языке.
+
+## Типы элементов
+Каждый элемент может иметь [общие атрибуты](#common-attributes-of-controls) и специальные атрибуты, принадлежащие соответствующему типу, как указано ниже.
+
+### `tabs`
+Вкладки с элементами
+
+| Недвижимость | Описание |
+|-----------------|------------------------------------------------------------------------------------------------|
+| `items` | Объект с панелями `{"tab1": {}, "tab2": {}...}` |
+| `tabsStyle` | Стили CSS в формате React (`marginLeft`, а не `margin-left`) для компонента Mui-Tabs |
+| `tabsStyle` | Стили CSS в формате React (`marginLeft`, а не `margin-left`) для компонента Mui-Tabs |
+
+### `panel`
+Вкладка с элементами
+
+| Недвижимость | Описание |
+|---------------|-----------------------------------------------------------------------------------------------------------------------------------------|
+| `icon` | вкладка может иметь значок (base64, например, `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчивается на `.png`) |
+| `items` | Объект `{"attr1": {}, "attr2": {}}...` |
+| `collapsable` | возможно только как часть вкладок[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) |
+| `color` | цвет сворачиваемого заголовка `primary` или `secondary` или ничего |
+| `innerStyle` | CSS-стили для внутреннего div в формате React (`marginLeft`, а не `margin-left`) для компонента Panel. Не используется для сворачиваемых панелей. |
+| `innerStyle` | CSS-стили для внутреннего div в формате React (`marginLeft`, а не `margin-left`) для компонента Panel. Не используется для сворачиваемых панелей. |
+
+### `text`
+Текстовый компонент
+
+| Недвижимость | Описание |
+|-------------------|--------------------------------------------------------------------------------------------------------|
+| `maxLength` | максимальная длина текста в поле |
+| `copyToClipboard` | показать кнопку копирования в буфер обмена, но только если отключено или доступно только для чтения |
+| `trim` | по умолчанию true. Установите этот атрибут на `false`, если обрезка не требуется. |
+| `minRows` | по умолчанию 1. Установите этот атрибут на `2` или больше, если вы хотите иметь текстовую область с более чем одной строкой. |
+| `maxRows` | максимальное количество строк текстовой области. Используется только если `minRows` > 1. |
+| `noClearButton` | если true, кнопка очистки не будет отображаться (admin >= 6.17.13) |
+| `validateJson` | если true, текст будет проверен как JSON |
+| `allowEmpty` | если true, JSON будет проверен только в том случае, если значение не пустое |
+| `time` | значение — время в мс или строка. Используется только с флагом readOnly |
+| `time` | значение — время в мс или строка. Используется только с флагом readOnly |
+
+### `number`
+| Недвижимость | Описание |
+|----------|---------------|
+| `min` | минимальное значение |
+| `step` | шаг |
+| `шаг` | шаг |
+
+### `color`
+выбор цвета
+
+| Недвижимость | Описание |
+|-----------------|----------------------------------------------------------------|
+| `noClearButton` | если true, кнопка очистки не будет отображаться (admin >= 6.17.13) |
+
+### `checkbox`
+показать флажок
+
+### `slider`
+показать слайдер (только Admin6)
+
+| Недвижимость | Описание |
+| -------- | ----------------------------- |
+| `min` | (по умолчанию 0) |
+| `step` | (по умолчанию `(max - min) / 100`) |
+| `unit` | Единица ползунка |
+| `unit` | Единица измерения ползунка |
+
+### `qrCode`
+показать данные в QR-коде (admin >= 7.0.18)
+
+| Недвижимость | Описание |
+| --------- | ------------------------------------- |
+| `data` | данные, которые будут закодированы в QR-коде |
+| `fgColor` | Цвет переднего плана |
+| `bgColor` | Цвет фона |
+| `level` | Уровень QR-кода (`L` `M` `Q` `H`) |
+| `уровень` | Уровень QR-кода (`L` `M` `Q` `H`) |
+
+### `ip`
+привязать адрес
+
+| Недвижимость | Описание |
+|--------------------|-----------------------------------|
+| `listenOnAllPorts` | добавить 0.0.0.0 к опции |
+| `onlyIp6` | показать только адреса IP6 |
+| `noInternal` | не показывать внутренние IP-адреса |
+| `noInternal` | не показывать внутренние IP-адреса |
+
+### `user`
+выбрать пользователя из system.user. (С цветом и значком)
+
+| Недвижимость | Описание |
+|----------|-----------------|
+| `short` | нет системного.пользователя. |
+
+### `room`
+Выберите комнату из `enum.room` (с цветом и значком) - (только Admin6)
+
+| Недвижимость | Описание |
+|-------------------|--------------------------|
+| `short` | нет `enum.rooms.` |
+| `allowDeactivate` | разрешить оставлять комнату пустой |
+
+### `func`
+Выберите функцию из `enum.func` (с цветом и значком) - (только Admin6)
+
+| Недвижимость | Описание |
+|-------------------|-----------------------------------|
+| `short` | нет `enum.func.` |
+| `allowDeactivate` | разрешить оставить функциональность пустой |
+
+### `select`
+| Недвижимость | Описание |
+|-----------|-------------------------------------------------------------------------|
+| `options` | объект с метками, необязательными переводами, необязательной группировкой и значениями |
+
+#### Пример для `select options`
+```json
+[
+ {"label": {"en": "option 1"}, "value": 1}, ...
+]
+```
+
+или
+
+```json
+[
+ {
+ "items": [
+ {"label": "Val1", "value": 1},
+ {"label": "Val2", "value": 2}
+ ],
+ "name": "group1"
+ },
+ {
+ "items": [
+ {"label": "Val3", "value": 3},
+ {"label": "Val4", "value": 4}
+ ],
+ "name": "group2"
+ },
+ {"label": "Val5", "value": 5}
+]
+```
+
+### `autocomplete`
+| Недвижимость | Описание |
+|------------|---------------------------------------------------------------------------------------------------------------|
+| `options` | `["value1", "value2", ...]` или `[{"value": "value", "label": "Value1"}, "value2", ...]` (ключи должны быть уникальными) |
+| `freeSolo` | Установите `freeSolo` в `true`, чтобы текстовое поле могло содержать любое произвольное значение. |
+
+### `image`
+сохраняет изображение как файл объекта `adapter.X` или как base64 в атрибуте
+
+| Недвижимость | Описание |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------|
+| `filename` | имя файла — это имя структуры. В приведенном ниже примере `login-bg.png` — это имя файла для `writeFile("myAdapter.INSTANCE", "login-bg.png")` |
+| `maxSize` | максимальный размер файла для загрузки |
+| `base64` | если true, изображение будет сохранено как data-url в атрибуте, в противном случае как двоичный файл в файловом хранилище |
+| `crop` | если true, разрешить пользователю обрезать изображение |
+| `!maxWidth` | |
+| `!maxHeight` | |
+| `!square` | ширина должна быть равна высоте, или обрезка должна допускать только квадратную форму |
+| `!square` | ширина должна быть равна высоте, или обрезка должна допускать только квадратную форму |
+
+#### Пример для `image`
```json
"login-bg.png": {
"type": "image",
@@ -160,380 +481,574 @@ _Если имя атрибута начинается с «\_», оно не б
}
```
-- `objectId` - идентификатор объекта: показать его с именем, цветом и значком
-- `types` - Желаемый тип: `channel`, `device`, ... (по умолчанию имеет только `state`). Множественное число, потому что `type` уже занято.
-- `root` - [необязательно] Показывать только этот корневой объект и его дочерние объекты
-- `customFilter` - [необязательно] Нельзя использовать вместе с настройками `type`. Это объект, а не строка JSON. Примеры
-- `{common: {custom: true}}` - показывать только объекты с некоторыми пользовательскими настройками
-- `{common: {custom: 'sql.0'}}` - показывать только объекты с пользовательскими настройками sql.0 (только определенного экземпляра)
-- `{common: {custom: '_dataSources'}}` - показывать только объекты адаптеров `influxdb` или `sql` или `history`
-- `{common: {custom: 'adapterName.'}}` - показывать только объекты пользовательских настроек определенного адаптера (все экземпляры)
-- `{type: 'channel'}` - показать только каналы
-- `{type: ['channel', 'device']}` - показывать только каналы и устройства
-- `{common: {type: 'number'}` - показывать только состояния типа 'number'
-- `{common: {type: ['number', 'string']}` - показывать только состояния типа 'number' и 'string'
-- `{common: {role: 'switch'}` - показывать только состояния с ролями, начинающимися с switch
-- `{common: {role: ['switch', 'button']}` - показывать только состояния с ролями, начинающимися с `switch` и `button`
-- `filterFunc` - [необязательно] Нельзя использовать вместе с настройками `type`. Это функция, которая будет вызываться для каждого объекта и должна возвращать true или false. Пример: `obj.common.type === 'number'`
-
-- `password` - поле пароля
-
-Этот тип поля просто влияет на пользовательский интерфейс.
-Пароли и другие конфиденциальные данные должны храниться в зашифрованном виде! Для этого ключ должен быть указан в io-package.json в [роднойЗашифрованный](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields).
-Кроме того, вы можете защитить это свойство от обслуживания другими адаптерами, кроме `admin` и `cloud`, добавив его в `protectedNative` в файле `io-package.json`.
+### `objectId`
+ID объекта: показать его с именем, цветом и значком
+
+| Недвижимость | Описание |
+|----------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `types` | Желаемый тип: `channel`, `device`, ... (по умолчанию есть только `state`). Это множественное число, потому что `type` уже занято. |
+| `customFilter` | [необязательно] Нельзя использовать вместе с настройками `type`. Это объект, а не строка JSON. |
+| `filterFunc` | [необязательно] Нельзя использовать вместе с настройками `type`. Это функция, которая будет вызываться для каждого объекта и должна возвращать значение true или false. Пример: `obj.common.type === 'number'` |
+| `filterFunc` | [необязательно] Нельзя использовать вместе с настройками `type`. Это функция, которая будет вызываться для каждого объекта и должна возвращать true или false. Пример: `obj.common.type === 'number'` |
+
+#### Примеры для `customFilter`
+##### Показывать только объекты с некоторыми пользовательскими настройками
+`{common: {custom: true}}`
+
+##### Показывать только объекты с пользовательскими настройками sql.0 (только определенного экземпляра)
+`{common: {custom: 'sql.0'}}`
-- `repeat` - повторный пароль необходимо сравнить с паролем
-- `visible` - true, если разрешено просматривать пароль путем переключения кнопки просмотра (только для нового пароля при вводе)
-- `readOnly` - флаг только для чтения. Visible автоматически становится истинным, если readOnly является истинным
-- `maxLength` - максимальная длина текста в поле
+##### Показать только объекты адаптеров `influxdb` или `sql` или `history`
+`{common: {custom: '_dataSources'}}`
-- `экземпляр`
-- `adapter` - имя адаптера. С помощью специального имени `_dataSources` можно получить все адаптеры с флагом `common.getHistory`.
-- `adapters` - необязательный список адаптеров, которые должны быть показаны. Если не определено, будут показаны все адаптеры. Активно только если атрибут `adapter` не определен.
-- `allowDeactivate` - если true. Показывается дополнительная опция "deactivate"
-- `onlyEnabled` - если true. Будут показаны только включенные экземпляры
-- `long` - значение будет выглядеть как `system.adapter.ADAPTER.0`, а не `ADAPTER.0`
-- `short` - значение будет выглядеть как `0`, а не `ADAPTER.0`
-- `all` - Добавить к параметрам параметр «all» со значением `*`
+##### Показывать только объекты пользовательских настроек для определенного адаптера (все экземпляры)
+`{common: {custom: 'adapterName.'}}`
-- `chips` - пользователь может ввести слово, и оно будет добавлено (см. облако => сервисы => Белый список). Вывод - массив, если `delimiter` не определен.
-- `delimiter` - если он определен, то опция будет сохранена как строка с разделителем, а не как массив. Например, с помощью `delimiter=;` вы получите `a;b;c` вместо `['a', 'b', 'c']`
+##### Показывать только каналы
+`{type: 'channel'}`
-- `alive` - просто указание, активен ли экземпляр, и его можно использовать в состояниях «скрытый» и «отключенный» (не будет сохранено в конфигурации)
+##### Показывать только каналы и устройства
+`{type: ['channel', 'device']}`
+
+##### Показывать только состояния типа «число»
+`{common: {type: 'number'}`
+
+##### Показать только состояния типа «число» и «строка»
+`{common: {type: ['number', 'string']}`
+
+##### Показать только состояния с ролями, начинающимися с switch
+`{common: {role: 'switch'}`
+
+##### Показать только состояния с ролями, начинающимися с `switch` и `button`
+`{common: {role: ['switch', 'button']}`
+
+### `password`
+Этот тип поля влияет только на пользовательский интерфейс.
+Пароли и другие конфиденциальные данные должны храниться в зашифрованном виде! Для этого ключ должен быть указан в io-package.json в [роднойЗашифрованный](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields).
+Кроме того, вы можете защитить это свойство от передачи другим адаптерам, кроме `admin` и `cloud`, добавив его в `protectedNative` в файле `io-package.json`.
+
+| Недвижимость | Описание |
+|-------------|---------------------------------------------------------------------------------------------------------|
+| `repeat` | повторите пароль, его необходимо сравнить с паролем |
+| `readOnly` | флаг только для чтения. Visible автоматически становится истинным, если readOnly является истинным |
+| `maxLength` | максимальная длина текста в поле |
+| `maxLength` | максимальная длина текста в поле |
+
+### `instance`
+| Недвижимость | Описание |
+|-------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `adapter` | имя адаптера. Со специальным именем `_dataSources` вы можете получить все адаптеры с флагом `common.getHistory`. |
+| `allowDeactivate` | если true. Отображается дополнительная опция «деактивировать» |
+| `onlyEnabled` | если true. Будут показаны только включенные экземпляры |
+| `long` | значение будет выглядеть как `system.adapter.ADAPTER.0`, а не `ADAPTER.0` |
+| `short` | значение будет выглядеть как `0`, а не `ADAPTER.0` |
+| `all` | Добавить к параметрам параметр «все» со значением `*` |
+| `all` | Добавить к параметрам параметр «all» со значением `*` |
+
+### `chips`
+Пользователь может ввести слово, и оно будет добавлено (см. облако => сервисы => Белый список). Вывод — массив, если не определено `delimiter`.
+
+| Недвижимость | Описание |
+|-------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `delimiter` | если он определен, то опция будет сохранена как строка с разделителем, а не как массив. Например, по `delimiter=;` вы получите `a;b;c` вместо `['a', 'b', 'c']` |
+
+### `alive`
+просто указание, активен ли экземпляр, и его можно использовать в состоянии «скрытый» или «отключенный» (не будет сохранено в конфигурации)
Просто текст: Экземпляр запущен, Экземпляр не запущен
-- `instance` - проверка, активен ли экземпляр. Если не определен, будет использован текущий экземпляр. В тексте можно использовать шаблон `${data.number}`.
-- `textAlive` - текст по умолчанию `Экземпляр %s жив`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n
-- `textNotAlive` - текст по умолчанию `Экземпляр %s не жив`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n
-
-- `pattern` - поле только для чтения с шаблоном типа 'https://${data.ip}:${data.port}' (не будет сохранено в конфигурации)
-
-Ввод текста с флагом «только для чтения», отображающим шаблон.
-
-- `copyToClipboard` - если true - показать кнопку
-- `pattern` - мой шаблон
-
-- `sendto` - кнопка, которая отправляет запрос экземпляру (https://github.com/iobroker-community-adapters/ioBroker.email/blob/master/admin/index_m.html#L128)
-- `команда` - (по умолчанию `отправить`)
-- `jsonData` - string - `"{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\"}}"`. Вы можете использовать специальные переменные `data._origin` и `data._originIp` для отправки экземпляру URL-адреса вызывающего объекта, например `http://127.0.0.1:8081/admin`.
-- `data` - object - `{"subject1": 1, "data": "static"}`. Можно указать jsonData или data, но не оба.
- - `result` - `{result1: {en: 'A'}, result2: {en: 'B'}}`
- - `error` - `{error1: {en: 'E'}, error2: {en: 'E2'}}`
-- `вариант` - `содержащийся`, `очерченный` или ничего
-- `openUrl` - если true - открыть URL в новой вкладке, если ответ содержит атрибут `openUrl`, например `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. Если `saveConfig` - true, пользователю будет предложено сохранить конфигурацию.
-- `reloadBrowser` - если true - перезагрузить текущее окно браузера, если ответ содержит атрибут `reloadBrowser`, например `{"reloadBrowser": true}`.
-- `window` - если `openUrl` имеет значение true, это имя нового окна. Может быть перезаписано, если ответ содержит атрибут `window`.
-
-`this.props.socket.sendTo(adapterName.instance, command || 'send', data, result => {});`
-
-- `icon` - если значок должен быть показан: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. Вы можете использовать значки `base64` (например, `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчиваются на `.png`). (Запросите через issue, если вам нужно больше значков)
-- `useNative` - если адаптер возвращает результат с атрибутом `native`, он будет использован для конфигурации. Если `saveConfig` имеет значение true, пользователю будет предложено сохранить конфигурацию.
-- `showProcess` - Показывать счетчик во время выполнения запроса
-- `timeout` - таймаут для запроса в мс. По умолчанию: нет.
-- `onLoaded` - выполнить логику кнопки один раз изначально
-
-- `setState` - кнопка, устанавливающая состояние экземпляра
-- `id` - `system.adapter.myAdapter.%INSTANCE%.test`, вы можете использовать заполнитель `%INSTANCE%`, чтобы заменить его на имя текущего экземпляра
-- `ack` - false (по умолчанию false)
-- `val` - '${data.myText}\_test' или число. Тип будет определен автоматически из типа состояния и преобразование также выполнено
-- `okText` - Оповещение, которое будет показано при нажатии кнопки
-- `вариант` - `содержащийся`, `очерченный`, ''
-
-- `staticText` - статический текст, как описание
-- `label` - многоязычный текст
-- `текст` - то же, что и метка
-
-- `staticLink` - статическая ссылка
-- `label` - многоязычный текст
-- `href` - ссылка. Ссылка может быть динамической, например `#tab-objects/customs/${data.parentId}`
-- `target` - `_blank` или `_self` или имя окна
-- `close` - если true, GUI будет закрыт (используется не для JsonConfig в админке, а для динамического GUI)
-- `button` - показать ссылку как кнопку
-- `вариант` - тип кнопки (`контурная`, `содержащая`, `текстовая`)
-- `color` - цвет кнопки (например, `primary`)
-- `icon` - если значок должен быть показан: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Вы можете использовать значки `base64` (они начинаются с `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчиваются на `.png`). (Запрос через issue, если вам нужно больше значков)
-
-- `staticImage` - статическое изображение
-- `href` - необязательная HTTP-ссылка
-- `src` - имя картинки (из каталога администратора)
-
-- `table` - таблица с элементами, которые можно удалять, добавлять, перемещать вверх, перемещать вниз
-- `items` - `[{"type": см. выше, "width": px или %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]`
-- `noDelete` - логическое значение, если удаление или добавление отключены. Если `noDelete` равно false, то должны работать добавление, удаление и перемещение вверх/вниз.
-- `objKeyName` - (устаревшая настройка, не использовать!) - имя ключа в `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}`
-- `objValueName` - (устаревшая настройка, не использовать!) - имя значения в `{"192.168.1.1": "value1", "192.168.1.2": "value2"}`
-- `allowAddByFilter` - если добавление разрешено, даже если установлен фильтр
-- `showSecondAddAt` - Количество строк, начиная с которых будет отображаться вторая кнопка добавления внизу таблицы. По умолчанию 5
-- `showFirstAddOnTop` - Показывать первую кнопку «плюс» вверху первого столбца, а не слева.
-- `clone` - [необязательно] - если кнопка клонирования должна быть показана. Если true, кнопка клонирования будет показана. Если имя атрибута, это имя будет уникальным.
-- `export` - [необязательно] - если кнопка экспорта должна быть отображена. Экспортировать как файл csv.
-- `import` - [необязательно] - если кнопка импорта должна быть отображена. Импорт из файла csv.
-- `uniqueColumns` - [необязательно] - укажите массив столбцов, которые должны иметь уникальные записи
-- `encryptedAttributes` - [необязательно] - укажите массив столбцов, которые следует зашифровать
-- `compact` - [необязательно] - если true, таблица будет отображаться в компактном режиме
-
-- `accordion` - аккордеон с элементами, которые можно удалять, добавлять, перемещать вверх, перемещать вниз (Admin 6.6.0 и новее)
-- `items` - `[{"type": см. выше, "attr": "name", "default": ""}]` - элементы можно размещать как на `panel` (xs, sm, md, lg и newLine)
-- `titleAttr` - ключ списка элементов, который следует использовать в качестве имени
-- `noDelete` - логическое значение, если удаление или добавление отключены. Если `noDelete` равно false, то должны работать добавление, удаление и перемещение вверх/вниз.
-- `clone` - [необязательно] - если кнопка клонирования должна быть показана. Если true, кнопка клонирования будет показана. Если имя атрибута, это имя будет уникальным.
-
-- `jsonEditor` - редактор json
-- `validateJson` - если false, текст не будет проверен как JSON
-- `allowEmpty` - если true, JSON будет проверен только в том случае, если значение не пустое
-
-- `язык` - выбрать язык
-- `system` - разрешить использование системного языка из `system.config` по умолчанию (при выборе будет иметь пустое строковое значение)
-
-- `сертификат`
-- `certType` - из: `public`, `private`, `chained`. Но с версии 6.4.0 можно использовать тип `certificates`.
-
-- `certificates` - это универсальный тип, который управляет атрибутами `certPublic`, `certPrivate`, `certChained` и `leCollection`.
-
- Пример:
+| Недвижимость | Описание |
+|----------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `instance` | проверить, активен ли экземпляр. Если не определено, будет использоваться текущий экземпляр. Вы можете использовать шаблон `${data.number}` в тексте. |
+| `textNotAlive` | текст по умолчанию `Instance %s is not alive`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n |
+| `textNotAlive` | текст по умолчанию `Экземпляр %s не жив`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n |
+
+### `pattern`
+Поле только для чтения с шаблоном типа «https://${data.ip}:${data.port}» (не будет сохранено в конфигурации) Текстовый ввод с флагом только для чтения, который отображает шаблон.
+
+| Недвижимость | Описание |
+|-------------------|-----------------------|
+| `copyToClipboard` | если true - показать кнопку |
+| `pattern` | мой шаблон |
+
+### `sendTo`
+кнопка, которая отправляет запрос экземпляру ()
+
+| Недвижимость | Описание |
+|-----------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | (По умолчанию `send`) |
+| `data` | объект - `{"subject1": 1, "data": "static"}`. Можно указать jsonData или data, но не оба. |
+| `result` | `{result1: {en: 'A'}, result2: {en: 'B'}}` |
+| `error` | `{error1: {en: 'E'}, error2: {en: 'E2'}}` |
+| `variant` | `contained`, `outlined` или ничего |
+| `openUrl` | если true - открыть URL в новой вкладке, если ответ содержит атрибут `openUrl`, например `{"openUrl": "http://1.2.3.4:80/aaa", "window": "_blank", "saveConfig": true}`. Если `saveConfig` имеет значение true, пользователю будет предложено сохранить конфигурацию. |
+| `reloadBrowser` | если true - перезагрузить текущее окно браузера, если ответ содержит атрибут `reloadBrowser`, например `{"reloadBrowser": true}`. |
+| `window` | если `openUrl` истинно, это имя нового окна. Может быть перезаписано, если ответ состоит из атрибута `window`. `this.props.socket.sendTo(adapterName.instance, command \|\| 'send', data, result => {});` |
+| `icon` | если значок должен быть показан: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`. Вы можете использовать значки `base64` (например, `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчиваются на `.png`). (Запрос через issue, если вам нужно больше значков) |
+| `useNative` | если адаптер возвращает результат с атрибутом `native`, он будет использован для конфигурации. Если `saveConfig` имеет значение true, пользователю будет предложено сохранить конфигурацию. |
+| `showProcess` | Показывать счетчик во время выполнения запроса |
+| `timeout` | время ожидания запроса в мс. По умолчанию: нет. |
+| `onLoaded` | выполнить логику кнопки один раз изначально |
+| `onLoaded` | выполнить логику кнопки один раз изначально |
+
+### `setState`
+кнопка, которая устанавливает состояние экземпляра
+
+| Недвижимость | Описание |
+|-----------|-----------------------------------------------------------------------------------------------------------------------------------|
+| `id` | `system.adapter.myAdapter.%INSTANCE%.test`, вы можете использовать заполнитель `%INSTANCE%`, чтобы заменить его на имя текущего экземпляра |
+| `val` | `${data.myText}\_test` или число. Тип будет определен автоматически из типа состояния и преобразование также выполнено |
+| `okText` | Оповещение, которое будет показано при нажатии кнопки |
+| `variant` | `contained`, `outlined`, '' |
+| `вариант` | `содержался`, `очерчен`, '' |
+
+### `staticText`
+статический текст, как описание
+
+| Недвижимость | Описание |
+|----------|---------------------|
+| `label` | многоязычный текст |
+| `текст` | то же, что и метка |
+
+### `staticLink`
+| Недвижимость | Описание |
+|-----------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `label` | многоязычный текст |
+| `target` | `_blank` или `_self` или имя окна |
+| `close` | если true, GUI будет закрыт (используется не для JsonConfig в админке, а для динамического GUI) |
+| `button` | показать ссылку как кнопку |
+| `variant` | тип кнопки (`outlined`, `contained`, `text`) |
+| `color` | цвет кнопки (например, `primary`) |
+| `icon` | если значок должен быть показан: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Вы можете использовать значки `base64` (они начинаются с `data:image/svg+xml;base64,...`) или изображения `jpg/png` (они заканчиваются на `.png`). (Запросите через issue, если вам нужно больше значков) |
+| `icon` | если значок должен быть показан: `auth`, `send`, `web`, `warning`, `error`, `info`, `search`, `book`, `help`, `upload`. Вы можете использовать значки `base64` (они начинаются с `data:image/svg+xml;base64,...`) или изображения `jpg/png` (заканчиваются на `.png`). (Запрос через issue, если вам нужно больше значков) |
+
+### `staticImage`
+| Недвижимость | Описание |
+|----------|----------------------------------------|
+| `href` | необязательная ссылка HTTP |
+| `src` | имя изображения (из каталога администратора) |
+
+### `table`
+таблица с элементами, которые можно удалять, добавлять, перемещать вверх, перемещать вниз
+
+| Недвижимость | Описание |
+|-----------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "width": px or %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]` |
+| `objKeyName` | (устаревшая настройка, не использовать!) - имя ключа в `{"192.168.1.1": {delay: 1000, enabled: true}, "192.168.1.2": {delay: 2000, enabled: false}}` |
+| `objValueName` | (устаревшая настройка, не использовать!) - имя значения в `{"192.168.1.1": "value1", "192.168.1.2": "value2"}` |
+| `allowAddByFilter` | если добавление разрешено, даже если установлен фильтр |
+| `showSecondAddAt` | Количество строк, с которых будет отображаться вторая кнопка добавления внизу таблицы. По умолчанию 5 |
+| `showFirstAddOnTop` | Показывать первую кнопку «плюс» вверху первого столбца, а не слева. |
+| `clone` | [необязательно] - если кнопка клонирования должна быть показана. Если true, кнопка клонирования будет показана. Если имя атрибута, это имя будет уникальным. |
+| `export` | [необязательно] - если кнопка экспорта должна быть показана. Экспортировать как файл csv. |
+| `import` | [необязательно] - если кнопка импорта должна быть показана. Импорт из файла csv. |
+| `uniqueColumns` | [необязательно] - укажите массив столбцов, которые должны иметь уникальные записи |
+| `encryptedAttributes` | [необязательно] - указать массив столбцов, которые следует зашифровать |
+| `compact` | [необязательно] - если true, таблица будет показана в компактном режиме |
+| `compact` | [необязательно] - если true, таблица будет показана в компактном режиме |
+
+### `accordion`
+аккордеон с элементами, которые можно удалять, добавлять, перемещать вверх, перемещать вниз (Admin 6.6.0 и новее)
+
+| Недвижимость | Описание |
+|-------------|-------------------------------------------------------------------------------------------------------------------------------------|
+| `items` | `[{"type": see above, "attr": "name", "default": ""}]` элементы можно размещать как на `panel` (xs, sm, md, lg и newLine) |
+| `noDelete` | логическое значение, если удаление или добавление отключены. Если `noDelete` имеет значение false, то добавление, удаление и перемещение вверх/вниз должны работать |
+| `clone` | [необязательно] - если кнопка клонирования должна быть показана. Если true, кнопка клонирования будет показана. Если имя атрибута, это имя будет уникальным. |
+| `clone` | [необязательно] - если кнопка клонирования должна быть показана. Если true, кнопка клонирования будет показана. Если имя атрибута, это имя будет уникальным. |
+
+### `jsonEditor`
+| Недвижимость | Описание |
+|----------------|--------------------------------------------------------------------|
+| `validateJson` | если false, текст не будет проверен как JSON |
+| `allowEmpty` | если true, JSON будет проверен только в том случае, если значение не пустое |
+
+### `language`
+выберите язык
+
+| Недвижимость | Описание |
+|----------|----------------------------------------------------------------------------------------------------------------------|
+| `system` | разрешить использование системного языка из `system.config` по умолчанию (при выборе будет иметь пустое строковое значение) |
+
+### `certificate`
+| Недвижимость | Описание |
+|------------|----------------------------------------------------------------------------------------|
+| `certType` | из: `public`, `private`, `chained`. Но с версии 6.4.0 можно использовать тип `certificates`. |
+
+### `certificates`
+это универсальный тип, который управляет атрибутами `certPublic`, `certPrivate`, `certChained` и `leCollection` для вас.
+Пример:
```json
{
- "_certs": {
- "type": "certificates",
- "newLine": true,
- "hidden": "!data.secure",
- "sm": 12
- }
+ "_certs": {
+ "type": "certificates",
+ "newLine": true,
+ "hidden": "!data.secure",
+ "sm": 12
+ }
}
```
-- `certCollection` - выберите коллекцию сертификатов или просто используйте все коллекции или вообще не используйте Let's Encrypt.
-- `leCollectionName` - имя коллекции сертификатов
+### `certificateCollection`
+выберите коллекцию сертификатов или просто используйте все коллекции или вообще не используйте Let's Encrypt.
+
+| Недвижимость | Описание |
+|--------------------|------------------------------------|
+| `leCollectionName` | название коллекции сертификатов |
+
+### `custom`
+только Админ6
-- `пользовательский` (только Admin6)
-- `name` — имя компонента, которое будет предоставлено через свойства, например ComponentInstancesEditor
-- `url` - Расположение компонента
+| Недвижимость | Описание |
+|----------|--------------------------------------------------------------------------------------------------------------------------------|
+| `name` | Имя компонента, которое будет предоставлено через свойства, например `ComponentInstancesEditor` |
+| `i18n` | true, если файлы `i18n/xx.json` расположены в том же каталоге, что и компонент или объект перевода `{"text1": {"en": Text1"}}` |
+| `i18n` | true, если файлы `i18n/xx.json` расположены в том же каталоге, что и компонент или объект перевода `{"text1": {"en": Text1"}}` |
+
+#### Пример URL-адреса
- `custom/customComponents.js`: в этом случае файлы будут загружены из `/adapter/ADAPTER_NAME/custom/customComponents.js`
- `https://URL/myComponent`: напрямую из URL
- `./adapter/ADAPTER_NAME/custom/customComponent.js`: в этом случае файлы будут загружены из `/adapter/ADAPTER_NAME/custom/customComponents.js`
-- `i18n` - true, если файлы `i18n/xx.json` расположены в том же каталоге, что и компонент или объект перевода `{"text1": {"en": Text1"}}`
-
-- `datePicker` - позволяет пользователю выбирать дату, формат ввода пользовательского интерфейса берется из настроенного `dateFormat` в установке пользователя.
-
-компонент возвращает анализируемую строку даты.
-
-- `timePicker` - позволяет пользователю выбрать дату, возвращаемая строка представляет собой анализируемую строку даты или имеет формат `ЧЧ:мм:сс`
-- `format` - формат, передаваемый в средство выбора даты, по умолчанию равен `HH:mm:ss`
-- `views` - Настройте, какие представления должны быть показаны пользователям. По умолчанию `['hours', 'minutes', 'seconds']`
-- `timeSteps` - Представляет доступные временные шаги для каждого представления. По умолчанию `{ часы: 1, минуты: 5, секунды: 5 }`
-- `returnFormat` - `fullDate` или `HH:mm:ss`. По умолчанию используется полная дата для обратной совместимости.
-
-- `разделитель` - горизонтальная линия
-- `height` - необязательная высота
-- `color` - необязательный цвет разделителя или `primary`, `secondary`
-
-- `заголовок`
-- `текст`
-- `размер` - 1-5 => h1-h5
-
-- `cron`
-- `complex` - показывать CRON с "минутами", "секундами" и т. д.
-- `simple` - показать простые настройки CRON
-
-- `fileSelector` (только Admin6)
-- `pattern` - Шаблон расширения файла. Разрешено `**/*.ext` для показа всех файлов из подпапок, `*.ext` для показа из корневой папки или `folderName/*.ext` для показа всех файлов в подпапке `folderName`. По умолчанию `**/*.*`.
-- `fileTypes` - [необязательно] тип файлов: `audio`, `image`, `text`
-- `objectID` - Идентификатор объекта типа `meta`. Вы можете использовать специальный заполнитель `%INSTANCE%`: например `myAdapter.%INSTANCE%.files`
-- `upload` - путь, где будут храниться загруженные файлы. Например, `folderName`. Если не определено, поле загрузки не будет показано. Чтобы загрузить в корень, установите это поле в `/`.
-- `refresh` - Показывать кнопку обновления рядом с выбором.
-- `maxSize` - максимальный размер файла (по умолчанию 2 МБ)
-- `withFolder` - показывать имя папки, даже если все файлы находятся в одной папке
-- `delete` - Разрешить удаление файлов
-- `noNone` - Не показывать опцию `none`
-- `noSize` - Не показывать размер файлов
-
-- `file` - (только Admin6) Поле ввода с выбором файла
-- `disableEdit` - если пользователь может вручную ввести имя файла, а не только через диалог выбора
-- `limitPath` - ограничить выборку одним конкретным объектом типа `meta` и следующим путем (не обязательно)
-- `filterFiles` - например `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']`
-- `allowUpload` - разрешена загрузка файлов
-- `allowDownload` - разрешено скачивание файлов (по умолчанию true)
-- `allowCreateFolder` - разрешено создание папок
-- `allowView` - разрешен просмотр плиток (по умолчанию true)
-- `showToolbar` - показать панель инструментов (по умолчанию true)
-- `selectOnlyFolders` - пользователь может выбрать только папки (например, для пути загрузки)
-- `trim` - обрезать имя файла
-
-- `imageSendTo` - показывает изображение, полученное от бэкэнда в виде строки base64
-- `width` - ширина QR-кода в пикселях
-- `height` - высота QR-кода в пикселях
-- `команда` - команда sendTo
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд
-- `data` - object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен.
-
-Пример кода в бэкэнде:
-```
-adapter.on('message', obj => {
- if (obj.command === 'send') {
- const QRCode = require('qrcode');
- QRCode.toDataURL('3ca4234a-fd81-fdb8-5584-08c732f70e4d', (err, url) =>
- obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback));
- }
+### `datePicker`
+позволяют пользователю выбирать дату ввода, формат пользовательского интерфейса берется из настроенного
+
+### `timePicker`
+разрешить пользователю выбрать дату ввода возвращаемая строка является анализируемой строкой даты или имеет формат `HH:mm:ss`
+
+| Недвижимость | Описание |
+|----------------|------------------------------------------------------------------------------------------------------|
+| `format` | формат, переданный в средство выбора даты, по умолчанию равен `HH:mm:ss` |
+| `timeSteps` | Представляет доступные временные шаги для каждого представления. По умолчанию `{ hours: 1, minutes: 5, seconds: 5 }` |
+| `returnFormat` | `fullDate` или `HH:mm:ss`. По умолчанию используется полная дата для обратной совместимости. |
+| `returnFormat` | `fullDate` или `HH:mm:ss`. По умолчанию используется полная дата для обратной совместимости. |
+
+### `divider`
+горизонтальная линия
+
+| Недвижимость | Описание |
+|----------|--------------------------------------------------|
+| `height` | необязательная высота |
+| `цвет` | необязательный цвет разделителя или `первичный`, `вторичный` |
+
+### `header`
+| Недвижимость | Описание |
+|----------|--------------|
+| `text` | |
+| `размер` | 1-5 => h1-h5 |
+
+### `cron`
+| Недвижимость | Описание |
+|-----------|-----------------------------------------------|
+| `complex` | показать CRON с «минутами», «секундами» и т. д. |
+| `simple` | показать простые настройки CRON |
+
+### `fileSelector`
+только Админ6
+
+| Недвижимость | Описание |
+|--------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `pattern` | Шаблон расширения файла. Разрешено `**/*.ext` для отображения всех файлов из подпапок, `*.ext` для отображения из корневой папки или `folderName/*.ext` для отображения всех файлов в подпапке `folderName`. По умолчанию `**/*.*`. |
+| `objectID` | Идентификатор объекта типа `meta`. Вы можете использовать специальный заполнитель `%INSTANCE%`: например `myAdapter.%INSTANCE%.files` |
+| `upload` | путь, где будут храниться загруженные файлы. Например, `folderName`. Если не определено, поле загрузки не будет показано. Чтобы загрузить в корень, установите это поле в `/`. |
+| `refresh` | Показывать кнопку обновления рядом с выбором. |
+| `maxSize` | максимальный размер файла (по умолчанию 2 МБ) |
+| `withFolder` | показывать имя папки, даже если все файлы в одной папке |
+| `delete` | Разрешить удаление файлов |
+| `noNone` | Не показывать параметр `none` |
+| `noSize` | Не показывать размер файлов |
+| `noSize` | Не показывать размер файлов |
+
+### `file`
+только Admin6.
+Поле ввода с селектором файлов
+
+| Недвижимость | Описание |
+|---------------------|------------------------------------------------------------------------------------------|
+| `disableEdit` | если пользователь может вручную ввести имя файла, а не только через диалоговое окно выбора |
+| `filterFiles` | нравится `['png', 'svg', 'bmp', 'jpg', 'jpeg', 'gif']` |
+| `allowUpload` | разрешена загрузка файлов |
+| `allowDownload` | разрешено скачивание файлов (по умолчанию true) |
+| `allowCreateFolder` | разрешено создание папок |
+| `allowView` | разрешенный вид плитки (по умолчанию true) |
+| `showToolbar` | показать панель инструментов (по умолчанию true) |
+| `selectOnlyFolders` | пользователь может выбрать только папки (например, для пути загрузки) |
+| `trim` | обрезать имя файла |
+| `trim` | обрезать имя файла |
+
+### `imageSendTo`
+показывает изображение, полученное от бэкэнда в виде строки base64
+
+| Недвижимость | Описание |
+|------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `width` | ширина QR-кода в пикселях |
+| `command` | команда sendTo |
+| `jsonData` | строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Можно указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
+
+#### Пример кода в бэкэнде для `imageSendTo`
+```js
+adapter.on("message", (obj) => {
+ if (obj.command === "send") {
+ const QRCode = require("qrcode");
+ QRCode.toDataURL(
+ "3ca4234a-fd81-fdb8-5584-08c732f70e4d",
+ (err, url) =>
+ obj.callback && adapter.sendTo(obj.from, obj.command, url, obj.callback)
+ );
+ }
});
```
-- `selectSendTo` - Показывает раскрывающееся меню с указанными значениями экземпляра.
-- `команда` - команда sendTo
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд
-- `data` - object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен.
-- `manual` - разрешить ручное редактирование. Без выпадающего меню (если экземпляр находится в автономном режиме). По умолчанию `true`.
-- `multiple` - выбор множественного выбора
-- `showAllValues` - показать элемент, даже если для него не найдено ни одной метки (по нескольким), по умолчанию=`true`
-- `noTranslation` - не переводить метки выбора
-
-Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должен быть массив в форме `[{"value": 1, "label": "one"}, ...]`
-
-- `alsoDependsOn` - при изменении каких атрибутов команда должна быть отправлена повторно
-
+### `selectSendTo`
+Показывает раскрывающееся меню с указанными значениями экземпляра.
+
+| Недвижимость | Описание |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | команда sendTo |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
+| `manual` | разрешить ручное редактирование. Без раскрывающегося меню (если экземпляр находится в автономном режиме). По умолчанию `true`. |
+| `multiple` | Выбор множественного выбора |
+| `showAllValues` | показать элемент, даже если для него не найдено ни одной метки (по нескольким), по умолчанию=`true` |
+| `noTranslation` | не переводить метку select. Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений. Результатом команды должен быть массив в форме `[{"value": 1, "label": "one"}, ...]` |
+| `alsoDependsOn` | при изменении каких атрибутов команда должна быть отправлена повторно |
+| `alsoDependsOn` | при изменении каких атрибутов команда должна быть отправлена повторно |
+
+#### Пример кода в бэкэнде для `selectSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- if (obj.callback) {
- try {
- const { SerialPort } = require('serialport');
- if (SerialPort) {
- // read all found serial ports
- SerialPort.list()
- .then(ports => {
- adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
- adapter.sendTo(obj.from, obj.command, ports.map(item => ({label: item.path, value: item.path})), obj.callback);
- })
- .catch(e => {
- adapter.sendTo(obj.from, obj.command, [], obj.callback);
- adapter.log.error(e)
- });
- } else {
- adapter.log.warn('Module serialport is not available');
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- } catch (e) {
- adapter.sendTo(obj.from, obj.command, [{label: 'Not available', value: ''}], obj.callback);
- }
- }
-
- break;
- }
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ if (obj.callback) {
+ try {
+ const { SerialPort } = require("serialport");
+ if (SerialPort) {
+ // read all found serial ports
+ SerialPort.list()
+ .then((ports) => {
+ adapter.log.info(`List of port: ${JSON.stringify(ports)}`);
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ ports.map((item) => ({
+ label: item.path,
+ value: item.path,
+ })),
+ obj.callback
+ );
+ })
+ .catch((e) => {
+ adapter.sendTo(obj.from, obj.command, [], obj.callback);
+ adapter.log.error(e);
+ });
+ } else {
+ adapter.log.warn("Module serialport is not available");
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ } catch (e) {
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ [{ label: "Not available", value: "" }],
+ obj.callback
+ );
+ }
+ }
+
+ break;
+ }
+ }
});
```
-- `autocompleteSendTo`
-
+### `autocompleteSendTo`
Показывает элемент управления автозаполнением с указанными в экземпляре значениями.
-- `команда` - команда sendTo
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд
-- `data` - object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен.
-- `freeSolo` - Установите `freeSolo` в `true`, чтобы текстовое поле могло содержать любое произвольное значение.
-- `alsoDependsOn` - при изменении каких атрибутов команда должна быть отправлена повторно
-- `maxLength` - максимальная длина текста в поле
+| Недвижимость | Описание |
+|-----------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `command` | команда sendTo |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
+| `freeSolo` | Установите `freeSolo` на `true`, чтобы текстовое поле могло содержать любое произвольное значение. |
+| `alsoDependsOn` | при изменении каких атрибутов команда должна быть отправлена повторно |
+| `maxLength` | максимальная длина текста в поле |
+| `maxLength` | максимальная длина текста в поле |
-Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должен быть массив в форме `["value1", {"value": "value2", "label": "Value2"}, ...]` (ключи должны быть уникальными) Пример обработчика см. в `selectSendTo`
+Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений:
-- `textSendTo`
+Результатом команды должен быть массив в форме `["value1", {"value": "value2", "label": "Value2"}, ...]` (ключи должны быть уникальными). Пример обработчика см. в `selectSendTo`.
+### `textSendTo`
Показывает элемент управления только для чтения с указанными в экземпляре значениями.
-- `container` - div, текст, html
-- `copyToClipboard` - если true - показать кнопку
-- `alsoDependsOn` - при изменении каких атрибутов команда должна быть отправлена повторно
-- `команда` - команда sendTo
-- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд
-- `data` - object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен.
+| Недвижимость | Описание |
+|-------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `container` | div, текст, html |
+| `alsoDependsOn` | при изменении каких атрибутов команда должна быть отправлена повторно |
+| `command` | команда sendTo |
+| `jsonData` | строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
+| `data` | object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба одновременно. Эти данные будут отправлены на бэкэнд, если jsonData не определен. |
Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должна быть строка или объект со следующими параметрами:
```json5
{
- text: 'text to show', // mandatory
- style: { color: 'red' }, // optional
- icon: 'search', // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
- // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, puase, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
- iconStyle: {width: 30} // optional
+ text: "text to show", // mandatory
+ style: { color: "red" }, // optional
+ icon: "search", // optional. It could be base64 or link to image in the same folder as jsonConfig.json file
+ // possible predefined names: edit, rename, delete, refresh, add, search, unpair, pair, identify, play, stop, pause, forward, backward, next, previous, lamp, backlight, dimmer, socket, settings, group, user, qrcode, connection, no-connection, visible
+ iconStyle: { width: 30 }, // optional
}
```
-Пример:
-
+#### Пример для `textSendTo`
```js
-adapter.on('message', obj => {
- if (obj) {
- switch (obj.command) {
- case 'command':
- obj.callback && adapter.sendTo(obj.from, obj.command, 'Received ' + JSON.stringify(obj.message), obj.callback);
- // or with style
- obj.callback && adapter.sendTo(obj.from, obj.command, { text: 'Received ' + JSON.stringify(obj.message), style: { color: 'red' }, icon: 'search', iconStyle: { width: 30 }}, obj.callback);
- // or as html
- obj.callback && adapter.sendTo(obj.from, obj.command, `${JSON.stringify(obj.message)} `, obj.callback);
- break;
- }
+adapter.on("message", (obj) => {
+ if (obj) {
+ switch (obj.command) {
+ case "command":
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ "Received " + JSON.stringify(obj.message),
+ obj.callback
+ );
+ // or with style
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ {
+ text: "Received " + JSON.stringify(obj.message),
+ style: { color: "red" },
+ icon: "search",
+ iconStyle: { width: 30 },
+ },
+ obj.callback
+ );
+ // or as html
+ obj.callback &&
+ adapter.sendTo(
+ obj.from,
+ obj.command,
+ `${JSON.stringify(obj.message)} `,
+ obj.callback
+ );
+ break;
}
+ }
});
```
-- `координаты`
-
+### `coordinates`
Определяет текущее местоположение и использует координаты `system.config`, если это невозможно в формате «широта,долгота»
-- `divider` - разделитель между широтой и долготой. По умолчанию "," (используется, если longitudeName и latitudeName не определены)
-- `autoInit` - инициализация поля текущими координатами, если оно пустое
-- `longitudeName` - если определено, долгота будет сохранена в этом атрибуте, разделитель будет проигнорирован
-- `latitudeName` - если определено, широта будет сохранена в этом атрибуте, разделитель будет проигнорирован
-- `useSystemName` - если определено, будет показан флажок «Использовать системные настройки», а широта и долгота будут считаны из `system.config`, логическое значение будет сохранено под указанным именем
-
-- `интерфейс`
+| Недвижимость | Описание |
+|-----------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `divider` | разделитель между широтой и долготой. По умолчанию "," (используется, если longitudeName и latitudeName не определены) |
+| `longitudeName` | если определено, долгота будет сохранена в этом атрибуте, разделитель будет проигнорирован |
+| `latitudeName` | если определено, широта будет сохранена в этом атрибуте, разделитель будет проигнорирован |
+| `useSystemName` | если определено, будет показан флажок «Использовать системные настройки», а широта и долгота будут считаны из `system.config`, логическое значение будет сохранено под указанным именем |
+| `useSystemName` | если определено, будет показан флажок «Использовать системные настройки», а широта и долгота будут считаны из `system.config`, логическое значение будет сохранено под указанным именем |
+### `interface`
Выбирает интерфейс хоста, на котором запущен экземпляр
-- `ignoreLoopback` - не показывать интерфейс обратной связи (127.0.0.1)
-- `ignoreInternal` - не показывать внутренние интерфейсы (обычно это тоже 127.0.0.1)
-
-- `license` - показывает информацию о лицензии, если она еще не принята. Один из атрибутов `texts` или `licenseUrl` должен быть определен. Когда лицензия принята, определенный атрибут конфигурации будет установлен в `true`.
-- `texts` - массив абзацев с текстами, которые будут показаны каждый как отдельный абзац
-- `licenseUrl` - URL-адрес файла лицензии (например, https://raw.githubusercontent.com/ioBroker/ioBroker.docs/master/LICENSE)
-- `title` - Заголовок диалогового окна лицензии
-- `agreeText` - Текст кнопки согласия
-- `checkBox` - Если определено, будет показан флажок с указанным именем. Если отмечено, будет включена кнопка согласования.
-
-- `checkLicense` - Очень специальный компонент для проверки лицензии онлайн. Требуются именно свойства `license` и `useLicenseManager` в нативном коде.
-- `uuid` - Проверка UUID
-- `версия` - Проверить версию
-
-- `uuid` - Показать UUID iobroker
-
-- `port` - Специальный ввод для портов. Он автоматически проверяет, используется ли порт другими экземплярами, и выводит предупреждение
-- `min` - минимально допустимый номер порта. Может быть 0. И если значение равно нулю, то проверка на занятость порта не произойдет.
-
-- `state` - (admin >= 7.1.0) Показать элемент управления или информацию из состояния
-- `oid` - Какой идентификатор объекта следует взять для управления. Идентификатор не имеет префикса "adapter.X."
-- `system` - Если true, состояние будет взято из system.adapter.XX.I., а не из XX.I.
-- `control` - Как должно отображаться значение состояния: `text`, `html`, `input`, `slider`, `select`, `button`, `switch`, `number`
-- `controlled` - Если true, состояние будет отображаться как переключатель, выбор, кнопка, ползунок или ввод текста. Используется только если не определено свойство управления
-- `unit` - Добавить единицу измерения к значению
-- `trueText` - этот текст будет показан, если значение равно true
-- `trueTextStyle` - Стиль текста, если значение равно true
-- `falseText` - этот текст будет показан, если значение равно false или если элемент управления является «кнопкой»
-- `falseTextStyle` - Стиль текста, если значение равно false или если элемент управления является «кнопкой»
-- `trueImage` - Это изображение будет показано, если значение равно true
-- `falseImage` - Это изображение будет показано, если значение равно false или если элемент управления является «кнопкой».
-- `min` - Минимальное значение для типа элемента управления: ползунок или число
-- `max` - Максимальное значение для типа элемента управления: ползунок или число
-- `step` - Значение шага для типа элемента управления: ползунок или число
-- `controlDelay` - задержка в мс для ползунка или числа
-- `variant` - Вариант кнопки: `contained`, `outlined`, `text`
-- `readOnly` - Определяет, доступен ли элемент управления только для чтения.
-
-- `deviceManager` - показать диспетчер устройств. Для этого адаптер должен поддерживать протокол диспетчера устройств. См. iobroker/dm-utils.
+| Недвижимость | Описание |
+|------------------|----------------------------------------------------------------|
+| `ignoreLoopback` | не показывать интерфейс обратной связи (127.0.0.1) |
+| `ignoreInternal` | не показывать внутренние интерфейсы (обычно это тоже 127.0.0.1) |
+
+### `license`
+показывает информацию о лицензии, если она еще не принята. Один из атрибутов `texts` или `licenseUrl` должен быть определен. Когда лицензия принята, определенный атрибут конфигурации будет установлен на `true`.
+
+| Недвижимость | Описание |
+|--------------|------------------------------------------------------------------------------------------------------------|
+| `texts` | массив абзацев с текстами, которые будут показаны каждый как отдельный абзац |
+| `title` | Заголовок диалогового окна лицензии |
+| `agreeText` | Текст согласованной кнопки |
+| `checkBox` | Если определено, будет показан флажок с указанным именем. Если отмечено, будет включена кнопка «Согласовано». |
+| `checkBox` | Если определено, будет показан флажок с указанным именем. Если отмечено, будет включена кнопка согласования. |
+
+### `checkLicense`
+Очень специальный компонент для проверки лицензии онлайн. Требуются именно свойства `license` и `useLicenseManager` в нативном.
+
+| Недвижимость | Описание |
+|-----------|---------------|
+| `uuid` | Проверить UUID |
+| `версия` | Проверить версию |
+
+### `uuid`
+Показать UUID iobroker
+
+### `port`
+Специальный ввод для портов. Он автоматически проверяет, используется ли порт другими экземплярами, и выводит предупреждение
+
+| Недвижимость | Описание |
+|----------|-------------------------------------------------------------------------------------------------------------------------------|
+| `min` | минимально допустимый номер порта. Это может быть 0. И если значение равно нулю, то проверка на занятость порта не будет выполнена. |
+
+### `state`
+(admin >= 7.1.0) Показать элемент управления или информацию из штата
+
+| Недвижимость | Описание |
+|------------------|--------------------------------------------------------------------------------------------------------------------------------------|
+| `oid` | Какой идентификатор объекта следует взять для управления. Идентификатор без префикса `adapter.X.` |
+| `foreign` | `oid` является абсолютным и нет необходимости добавлять `adapter.X` или `system.adapter.X.` к oid |
+| `control` | Как следует отображать значение состояния: `text`, `html`, `input`, `slider`, `select`, `button`, `switch`, `number` |
+| `controlled` | Если true, состояние будет отображаться как переключатель, выбор, кнопка, ползунок или ввод текста. Используется только если не определено свойство элемента управления |
+| `unit` | Добавить единицу к значению |
+| `trueText` | этот текст будет показан, если значение истинно |
+| `trueTextStyle` | Стиль текста, если значение true |
+| `falseText` | этот текст будет показан, если значение равно false или если элемент управления является «кнопкой» |
+| `falseTextStyle` | Стиль текста, если значение равно false или если элемент управления является «кнопкой» |
+| `trueImage` | Это изображение будет показано, если значение равно true |
+| `falseImage` | Это изображение будет показано, если значение равно false или если элемент управления является «кнопкой» |
+| `min` | Минимальное значение для ползунка или числа типа элемента управления |
+| `max` | Максимальное значение для ползунка или числа типа элемента управления |
+| `step` | Значение шага для типа управления ползунком или числом |
+| `controlDelay` | задержка в мс для ползунка или числа |
+| `variant` | Вариант кнопки: `contained`, `outlined`, `text` |
+| `readOnly` | Определяет, доступен ли элемент управления только для чтения |
+| `narrow` | Обычно заголовок и значение отображаются слева и справа от строки. С этим флагом значение будет отображаться сразу после метки |
+| `blinkOnUpdate` | Значение должно мигать при обновлении (true или color) |
+| `size` | Размер шрифта: маленький, нормальный, большой или число |
+| `addColon` | Добавьте к метке двоеточие в конце, если его нет в метке |
+| `labelIcon` | Значок Base64 для метки |
+| `labelIcon` | Значок Base64 для метки |
+
+### `staticInfo`
+(admin >= 7.3.3) Показывает статическую информацию в предварительно отформатированном виде, например «Заголовок: единица измерения». Этот элемент управления в основном используется в динамических формах.
+
+| Недвижимость | Описание |
+|---------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|
+| `data` | Значение, которое будет показано |
+| `unit` | (необязательно) единица (может быть многоязычной) |
+| `narrow` | (необязательно) Обычно заголовок и значение отображаются слева и справа от строки. С этим флагом значение будет отображаться сразу после метки |
+| `addColon` | (необязательно) Добавьте к метке двоеточие в конце, если его нет в метке |
+| `blinkOnUpdate` | (необязательно) Значение должно мигать при обновлении (true или color) |
+| `blink` | (необязательно) Значение должно мигать непрерывно (true или color) |
+| `styleLabel` | (необязательно) CSS-стили React |
+| `styleValue` | (необязательно) CSS-стили React |
+| `styleUnit` | (необязательно) CSS-стили React |
+| `copyToClipboard` | (необязательно) Показать кнопку «Копировать в буфер обмена» для значения |
+| `labelIcon` | (необязательно) значок base64 для метки |
+| `size` | (необязательно) размер шрифта: маленький, нормальный, большой или число |
+| `highlight` | (необязательно) Выделение строки при наведении курсора мыши |
+| `booleanAsCheckbox` | (необязательно) Показывать логические значения как флажок |
+| `booleanAsCheckbox` | (необязательно) Показывать логические значения как флажки |
+
+### `deviceManager`
+show device manager. Для этого адаптер должен поддерживать протокол device manager. См. iobroker/dm-utils.
Вот пример того, как отобразить диспетчер устройств на вкладке:
@@ -566,29 +1081,76 @@ adapter.on('message', obj => {
```
## Общие атрибуты элементов управления
-Все типы могут иметь:
-
-- `xl` - ширина в 1/12 экрана на очень больших экранах (1536 пикселей < ширина)
-- `lg` - ширина в 1/12 экрана на больших экранах (1200px <= ширина < 1536px)
-- `md` - ширина в 1/12 экрана на средних экранах (900px <= ширина < 1200px)
-- `sm` - ширина в 1/12 экрана на маленьком экране (600px <= ширина < 900px)
-- `xs` - ширина в 1/12 экрана на маленьких экранах (ширина < 600 пикселей)
-- `newLine` - следует отображать с новой строки
-- `label` - Строка или объект типа {en: 'Name', ru: 'Имя'}
-- `hidden` - функция JS, которая может использовать `native.attribute` для вычислений
-- `hideOnlyControl` - если скрыто, то место будет показано, но без управления
-- `disabled` - функция JS, которая может использовать `native.attribute` для вычислений
-- `help` - текст справки (многоязычный)
-- `helpLink` - href для справки (может использоваться только вместе с `help`)
-- `style` - стиль CSS в нотации ReactJS: `radiusBorder`, а не `radius-border`.
-- `darkStyle` - стиль CSS для темного режима
-- `validator` - функция JS: true - нет ошибки, false - ошибка
-- `validatorErrorText` - Текст, отображаемый в случае сбоя валидатора
-- `validatorNoSaveOnError` - отключить кнопку сохранения в случае ошибки
-- `tooltip` - необязательная подсказка
-- `default` - значение по умолчанию
-- `defaultFunc` - функция JS для вычисления значения по умолчанию
-- `defaultSendTo` - команда для запроса начального значения у запущенного экземпляра, пример: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
+### Параметры макета `xl`,`lg`,`md`,`sm`,`xs`
+Эти параметры используются для определения ширины элементов на экранах разных размеров, обеспечивая адаптивную и адаптируемую компоновку на различных устройствах.
+
+Допустимые числа: от 1 до 12.
+
+Если указать число, например 6, то ширина элемента составит 6/12 (50%) ширины экрана или например 3, то ширина элемента составит 3/12 (25%) ширины экрана.
+Назначьте числа различным вариантам макета, укажите ширину элемента для различных размеров экрана.
+
+| вариант | описание |
+|--------|------------------------------------------|
+| `xl` | очень большие экраны (1536 пикселей >= ширина) |
+| `md` | средние экраны (900 пикселей <= ширина < 1200 пикселей) |
+| `sm` | маленький экран (600 пикселей <= ширина < 900 пикселей) |
+| `xs` | маленькие экраны (ширина < 600 пикселей) |
+| `xs` | маленькие экраны (ширина < 600 пикселей) |
+
+Следующие параметры являются рекомендуемыми предустановками, подходящими для большинства случаев.
+
+```json
+"xs": 12,
+"sm": 12,
+"md": 6,
+"lg": 4,
+"xl": 4,
+```
+
+#### Рекомендуется проверить макет
+Соответствующую компоновку следует проверить для каждого адаптера, чтобы увидеть, может ли она отображаться и использоваться во всех разрешениях.
+
+Это можно проверить, например, с помощью инструментов веб-разработчика, встроенных в каждый браузер на базе Chromium.
+
+Шаг 1: Откройте инструменты веб-разработчика с помощью F12.
+
+Шаг 2: Откройте панель инструментов устройства (1)
+
+Шаг 3: Выберите разные устройства (2)
+
+![изображение](../../en/dev/img/webdevtools.png)
+
+В настройках инструментов веб-разработчика вы можете создать собственные устройства с точной шириной, если захотите.
+
+### Дополнительные возможности
+| вариант | описание |
+|--------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| `type` | Если у элемента нет атрибута `type`, предположим, что у него тип по умолчанию 'panel'. Тип элемента. Для текущих доступных опций см. [Общие элементы управления:](#common-control-elements) |
+| `label` | Строка или объект типа {en: 'Name', ru: 'Имя'} |
+| `hidden` | Функция JS, которая может использовать `native.attribute` для расчета |
+| `hideOnlyControl` | если скрыто, место будет показано, но управление не будет |
+| `disabled` | Функция JS, которая может использовать `native.attribute` для расчета |
+| `help` | текст справки (многоязычный) |
+| `helpLink` | href для справки (можно использовать только вместе с `help`) |
+| `style` | Стиль CSS в нотации ReactJS: `radiusBorder`, а не `radius-border`. |
+| `darkStyle` | Стиль CSS для темного режима |
+| `validator` | Функция JS: true — ошибки нет, false — ошибка |
+| `validatorErrorText` | Текст, отображаемый в случае сбоя валидатора |
+| `validatorNoSaveOnError` | отключить кнопку сохранения при ошибке |
+| `tooltip` | необязательная подсказка |
+| `default` | значение по умолчанию |
+| `defaultFunc` | Функция JS для расчета значения по умолчанию |
+| `placeholder` | заполнитель (для управления текстом) |
+| `noTranslation` | не переводить выборки или другие параметры (не для справки, метки или заполнителя) |
+| `onChange` | Структура в форме `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}` |
+| `doNotSave` | Не сохраняйте этот атрибут, так как он используется только для внутренних расчетов |
+| `noMultiEdit` | если этот флаг установлен в значение true, это поле не будет отображаться, если пользователь выбрал более одного объекта для редактирования. |
+| `noMultiEdit` | если этот флаг установлен в значение true, это поле не будет отображаться, если пользователь выбрал более одного объекта для редактирования. |
+
+### Варианты с подробной конфигурацией
+#### `defaultSendTo`
+команда для запроса начального значения у работающего экземпляра, пример: `"myInstance": {"type": "text", "defaultSendTo": "fill"}`
+
- `data` - статические данные
- `jsonData` - статические данные
- если не определены `data` и `jsonData`, будет отправлена следующая информация `{"attr": "<имя атрибута>", "value": "<текущее значение>"}`
@@ -596,70 +1158,23 @@ adapter.on('message', obj => {
- `buttonTooltip` - Подсказка кнопки (по умолчанию: `Запросить данные по экземпляру`)
- `buttonTooltipNoTranslation` - Не переводить подсказку кнопки
- `allowSaveWithError` - Разрешить сохранение конфигурации, даже если экземпляр находится в автономном режиме
-- `placeholder` - заполнитель (для управления текстом)
-- `noTranslation` - не переводить выбранные или другие параметры (не для справки, метки или заполнителя)
-- `onChange` - Структура в форме `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}`
-- `doNotSave` - Не сохранять этот атрибут, так как он используется только для внутренних расчетов.
-- `noMultiEdit` — если этот флаг установлен в значение true, это поле не будет отображаться, если пользователь выбрал более одного объекта для редактирования.
-- `подтвердить`
+
+#### `confirm`
- `condition` - функция JS: true показать диалог подтверждения
-- `text` - текст диалога подтверждения
+- `text` - текст диалогового окна подтверждения
- `title` - заголовок диалога подтверждения
- `ok` - Текст для кнопки ОК
- `cancel` - Текст для кнопки «Отмена»
- `type` - Один из: `info`, `warning`, `error`, `none`
- `alsoDependsOn` - массив с атрибутами, для проверки условия и по этим атрибутам
-```json5
-{
- "type": "tabs",
- "items": {
- "options1": {
- "type": "panel",
- "label": "Tab1",
- "icon": "base64 svg", // optional
- "items": {
- myPort: {
- "type": "number",
- "min": 1,
- "max": 65565,
- "label": "Number",
- "sm": 6, // 1 - 12
- "validator": "'"!!data.name"'", // else error
- "hidden": "data.myType === 1", // hidden if myType is 1
- "disabled": "data.myType === 2" // disabled if myType is 2
- },
- "options.myType": { // name could support more than one levelhelperText
- "newLine": true, // must start from new row
- "type": "select",
- "label": "Type",
- "sm": 6, // 1 - 12
- "options": [
- {"label": "option 1", "value": 1},
- {"label": "option 2", "value": 2}
- ]
- },
- "myBool": {
- "type": "checkbox",
- "label": "My checkbox",
- }
- }
- },
- "tab2": {
- "label": "Tab2",
- "disabled": "data.myType === 1",
- "hidden": "data.myType === 2",
- }
- },
-}
-```
-
+## Автозаполнение
`Number`, `text`, `checkbox`, `select` поддерживают автозаполнение, чтобы разрешить выбор параметров при использовании в качестве пользовательских настроек.
В этом случае значение будет предоставлено как массив всех возможных значений.
Пример:
-```json
+```json5
// ...
"timeout": {
"type": "number",
@@ -675,17 +1190,21 @@ data: {
В этом случае ввод должен быть текстовым, где показано `__different__`, с возможностью автозаполнения трех возможных значений.
Пользователи могут выбрать из раскрывающегося списка 1000, 2000 или 3000 или ввести собственное новое значение, например, 500.
-Булевое значение должно поддерживать неопределенность, если значение равно [false, true]
+Булево значение должно поддерживать неопределенность, если значение равно [false, true]
Для неизмененного `__different__` должно быть возвращено другое значение:
-```
-Input:
+Вход:
+
+```json
data: {
timeout: [1000, 2000, 3000]
}
+```
-Output if timeout was not changed:
+Вывод, если тайм-аут не был изменен:
+
+```json
newData: {
timeout: "__different__"
}
@@ -716,89 +1235,8 @@ newData: {
- имя `port` => номер, мин=1, макс=0xFFFF
- имя `timeout` => число, help="ms"
-Если элемент не имеет атрибута `type`, предполагается, что он имеет тип по умолчанию «панель».
-
-## Стиль панели
-Вы также можете задать стиль для панелей. Вот пример с фоном панели:
-
-```json
-{
- "i18n": true,
- "type": "panel",
- "style": {
- "backgroundImage": "url(adapter/mpd/background.png)",
- "backgroundPosition": "top",
- "backgroundRepeat": "no-repeat",
- "backgroundSize": "cover"
- },
- "items": {
- "...": {}
- }
-}
-```
-
-## Интернациональный
-Существует несколько вариантов предоставления переводов.
-Только первый вариант совместим с нашим инструментом перевода сообщества Weblate, поэтому его следует предпочесть другим!
-
-1. Пользователи могут предоставлять тексты из файлов.
-
-На верхнем уровне структуры установите `i18n: true` и предоставьте файлы в администраторе:
-
-- `admin/i18n/de/translations.json`
-- `admin/i18n/en/translations.json`
-- ...
-
-или
-
-- `admin/i18n/de.json`
-- `admin/i18n/en.json`
-- ...
-
-Кроме того, пользователь может указать путь к файлам i18n, `i18n: "customI18n"`и указать файлы в админке:
-
-- `admin/customI18n/de/translations.json`
-- `admin/customI18n/en/translations.json`
-- ...
-
-или
-
-- `admin/customI18n/de.json`
-- `admin/customI18n/en.json`
-- ...
-
-2. Пользователь может предоставить переводы непосредственно в метке, например:
-
-```json
-{
- "type": "text",
- "label: {
- "en": "Label",
- "de": "Taxt"
- }
-}
-```
-
-3. Пользователь может предоставить переводы в атрибуте i18n:
-
-```json
-{
- "18n": {
- "My Text: {
- "en": "My Text",
- "de": "Mein Text"
- },
- "My Text2: {
- "en": "My Text2",
- "de": "Mein Text2"
- },
- },
- "type": "panel",
- ...
-}
-```
-
-Мы рекомендуем по возможности использовать вариант 1, так как в этом случае тексты можно будет обрабатывать с помощью Weblate.
+## То, что нужно сделать
+Следующие главы взяты из оригинальной SCHEMA.MD. Я не понял содержание подробно, и bluefox должен был его улучшить.
## Функции JS
### Диалоговое окно конфигурации
@@ -818,11 +1256,10 @@ const func = new Function(
'_instance', // instance number
'arrayIndex', // filled only by table and represents the row index
'globalData', // filled only by table and represents the obj.native or obj.common.custom['adapter.X'] object
- '_changed' // indicator if some data was changed and must be saved
+ '_changed', // indicator if some data was changed and must be saved
myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
const isValid = func(data, systemConfig.common, instanceAlive, adapter.common, this.props.socket);
-
```
Если статус `alive` изменится, все поля должны быть обновлены, проверены, отключены, скрыты заново.
@@ -842,19 +1279,28 @@ const isValid = func(data, systemConfig.common, instanceAlive, adapter.common, t
Функция JS:
```js
-const myValidator = "customObj.common.type === 'boolean' && data.options.myType == 2";
+const myValidator =
+ "customObj.common.type === 'boolean' && data.options.myType == 2";
const func = new Function(
- 'data',
- 'originalData',
- '_system',
- 'instanceObj',
- 'customObj',
- '_socket',
+ "data",
+ "originalData",
+ "_system",
+ "instanceObj",
+ "customObj",
+ "_socket",
arrayIndex,
- myValidator.includes('return') ? myValidator : 'return ' + myValidator); // e.g. "_alive === true"
-
-const isValid = func(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket);
+ myValidator.includes("return") ? myValidator : "return " + myValidator
+); // e.g. "_alive === true"
+
+const isValid = func(
+ data || this.props.data,
+ this.props.originalData,
+ this.props.systemConfig,
+ instanceObj,
+ customObj,
+ this.props.socket
+);
```
В пользовательских настройках функции JS доступны следующие переменные:
@@ -871,7 +1317,7 @@ const isValid = func(data || this.props.data, this.props.originalData, this.prop
## Пользовательский компонент
```jsx
.json` 或 `.` 状态。
+## 在脚本中的使用
+您可以处理/修改脚本中的`.json` 或`.` 状态。
此外,如果您在适配器配置中启用了 `raw.received` 和 `raw.send` 状态,则可以使用它们。
-它们保存消息数据的字符串化 JSON 数据,并可用于独立于配置的消息处理每个接收或发送的消息。
-通过将 JSON 数据写入 `raw.send` 状态,您可以发送包含您喜欢的任何数据的 CAN 消息。
+它们保存消息数据的字符串化 JSON 数据,可用于处理与配置的消息无关的每条接收或发送消息。
+通过将 JSON 数据写入 `raw.send` 状态,您可以发送包含任何您喜欢的数据的 CAN 消息。
### 原始消息对象示例
```js
@@ -141,75 +149,44 @@ buffer.writeInt16BE(value, 5);
}
```
-`ext`和`rtr`是可选的,默认为`false`。
+`ext` 和 `rtr` 是可选的,默认为 `false`。
## Changelog
-### 1.3.0 (2022-02-07)
-* (crycode-de) Added `sharedData` object in custom parsers
+
+### 2.1.1 (2024-11-04)
-### 1.2.3 (2021-10-17)
-* (crycode-de) Added missing `autoSet...` parser options to csv export/import
-* (crycode-de) Fixed `TypeError: Method Promise.prototype.then called on incompatible receiver [object Object]` triggered by a bug in an old `vm2` version
-* (crycode-de) Updated dependencies
+* (crycode-de) Fixed get/set functions in custom parser scripts
-### 1.2.2 (2021-08-22)
-* (crycode-de) Fixed text colors in dark theme of admin 5
-* (crycode-de) Updated dependencies
+### 2.1.0 (2024-11-03)
-### 1.2.1 (2021-06-22)
-* (crycode-de) Added option to automatically set a certain value in a given interval for each parser
-* (crycode-de) Added checks for duplicate parser IDs
-* (VeSler) Russian translation updates
-* (crycode-de) Use inline sourcemaps for the adapter build files to make remote debugging work
-* (crycode-de) Updated dependencies
+* (crycode-de) Allow `setStateAsync` and `setForeignStateAsync` in custom parser scripts
+* (crycode-de) Allow `setTimeout` and `clearTimeout` in custom parser scripts (using the adapters setTimeout implementation)
+* (crycode-de) Added `wait` function to custom parser scripts
-### 1.1.4 (2021-04-30)
-* (crycode-de) Added license information to import of well-known configurations
-* (crycode-de) Fixed "Parser returned wrong data type undefined" log message
-* (crycode-de) Updated dependencies
+### 2.0.0 (2024-11-02)
-### 1.1.3 (2021-04-12)
-* (crycode-de) Added definition of possible state values in admin
-* (crycode-de) Added selection of the state role for each parser in admin
-* (crycode-de) Fixed display bug of floating action buttons in admin
-* (crycode-de) Export uses defaults if some config parts are not defined (e.g. if the config is from an older version)
-* (crycode-de) Fixed wrong validation if a message/parser was deleted
-
-### 1.1.2 (2021-04-06)
-* (crycode-de) Added copy/paste function for message and parser configurations in admin
-
-### 1.1.1 (2021-04-02)
-* (crycode-de) Import bugfixes
-* (crycode-de) Prevent wrong log warning if a parser returned undefined
-* (crycode-de) Added react errorboundary for better clientside error handling
-
-### 1.1.0 (2021-04-01)
-* (crycode-de) Added import/export feature for messages in json or csv format
-* (crycode-de) Added import of well known configurations from GitHub
-* (crycode-de) Fixed config import in admin
-* (crycode-de) Added ioBroker state data type option for custom parsers
-
-### 1.0.2 (2021-03-26)
-* (crycode-de) Fixed issue where missing state prevented custom parser write
-* (DutchmanNL) Dutch translation updates
-* (UncleSamSwiss) French translation updates
-* (VeSler) Russian translation updates
-
-### 1.0.1 (2021-03-12)
-* (crycode-de) Use a queue to process _parser_ and _send_ state changes in the correct order
-* (crycode-de) Fixed some spelling issues
+* (crycode-de) Node.js >= 18, Admin >= 6.17, js-contoller >= 5.0.19 are required
+* (crycode-de) Changed how custom parser scripts are interpreted. Most custom parser scripts should work as before but they have a limited scope now.
+* (crycode-de) Custom parser scripts now support `getStateAsync`, `getForeignStateAsync`, `getObjectAsync` and `getForeignObjectAsync`. If you have used `getStateAsync`/`getObjectAsync` before you need to change them to `getForeignStateAsync`/`getForeignObjectAsync` or update the IDs if you get data from the same adapter instance.
+* (crycode-de) Custom write parser scripts an now return false to cancel the write
* (crycode-de) Updated dependencies
-### 1.0.0 (2021-02-23)
-* (crycode-de) Sort messages in admin
-* (VeSler) Russian admin translations
+### 1.3.1 (2022-04-19)
+
+* (crycode-de) Fixed `autoSetValue` defaults for parsers
+* (crycode-de) Fixed sentry admin integration
* (crycode-de) Updated dependencies
-Older changelog is in CHANGELOG_OLD.md
+### 1.3.0 (2022-02-07)
+
+* (crycode-de) Added `sharedData` object in custom parsers
## License
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
-Copyright (c) 2020-2022 Peter Müller (https://crycode.de/)
\ No newline at end of file
+Copyright (c) 2020-2024 Peter Müller ()
\ No newline at end of file
diff --git a/docs/zh-cn/adapterref/iobroker.chargemaster/README.md b/docs/zh-cn/adapterref/iobroker.chargemaster/README.md
index 421831117..5e66dac82 100644
--- a/docs/zh-cn/adapterref/iobroker.chargemaster/README.md
+++ b/docs/zh-cn/adapterref/iobroker.chargemaster/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.chargemaster/README.md
title: ioBroker.chargemaster
-hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
+hash: 2EbVwumyVSdhYHp9OXAmESj0vVZpYWXZ3072v6R8Lt4=
---
![标识](../../../en/adapterref/iobroker.chargemaster/admin/chargemaster.png)
@@ -34,7 +34,7 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
适配器利用光伏剩余能量来管理一个或多个电动汽车充电器(壁挂箱)。
## 设置
-要连接到壁挂式安装盒,请在配置中输入需要数据的状态。
+要连接到壁挂式安装盒,请在配置中输入所需数据的状态。
哨兵
此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。有关如何禁用错误报告的更多详细信息和信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!Sentry 报告从 js-controller 3.0 开始启动。
@@ -49,9 +49,35 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
! Note that missing version entries are typically dependency updates for improved security.
+### 0.12.3 (2024-11-18)
+
+- (HombachC) fix bug in state subscription
+- (HombachC) harmonize project tools
+- (HombachC) bump dependencies
+
+### 0.12.2 (2024-10-27)
+
+- (HombachC) migrate eslint to >9.x
+- (HombachC) bumped dependencies
+
+### 0.12.1 (2024-10-22)
+
+- (HombachC) fix error in jsonConfig.json
+
+### 0.12.0 (2024-10-22)
+
+- (HombachC) BREAKING: dropped support for admin < 7 (#544)
+- (HombachC) optimized responsive design (#544)
+- (HombachC) optimized translation handling
+
+### 0.11.1 (2024-09-16)
+
+- (HombachC) add node.js 22 to the adapter testing matrix (#523)
+- (HombachC) Bump @iobroker/testing to 5.0.0
+
### 0.11.0 (2024-08-29)
-- (HombachC) implement variable wallbox amount
+- (HombachC) implement variable wallbox amount
- (HombachC) fix errors in wallbox control
- (HombachC) complete rework of configuration screen
- (HombachC) move utils to extra class
@@ -117,11 +143,11 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
### 0.7.2 (2023-06-19)
-- (HombachC) Removed Travis
+- (HombachC) Removed Travis
### 0.7.1 (2023-06-13)
-- (HombachC) Fixed typo in docu, added translations
+- (HombachC) Fixed typo in docu, added translations
### 0.7.0 (2023-06-11)
@@ -132,6 +158,7 @@ hash: bTuT2dMq1fYAl56LTKtWGcR+jaXJU2IaMDUOJQ5p+oI=
### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md)
## License
+
MIT License
Copyright (c) 2021-2024 Christian Hombach
diff --git a/docs/zh-cn/adapterref/iobroker.energiefluss-erweitert/README.md b/docs/zh-cn/adapterref/iobroker.energiefluss-erweitert/README.md
index 3e4c07d4a..493d78b75 100644
--- a/docs/zh-cn/adapterref/iobroker.energiefluss-erweitert/README.md
+++ b/docs/zh-cn/adapterref/iobroker.energiefluss-erweitert/README.md
@@ -2,8 +2,8 @@
translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.energiefluss-erweitert/README.md
-title: ioBroker.energiefluss 扩展
-hash: vsARQbYdgcw/lJBEm2U3w2stnXawxezk2ZEksje8PLY=
+title: ioBroker.energiefluss-erweitert
+hash: fEb4Hijmvjno9IO29UgyE9kVIKTHHbm3FlOvAUnvN7Y=
---
![标识](../../../en/adapterref/iobroker.energiefluss-erweitert/admin/energiefluss-erweitert.png)
@@ -17,32 +17,124 @@ hash: vsARQbYdgcw/lJBEm2U3w2stnXawxezk2ZEksje8PLY=
![GitHub 问题](https://img.shields.io/github/issues/SKB-CGN/iobroker.energiefluss-erweitert?logo=github&style=flat-square)
![新平台](https://nodei.co/npm/iobroker.energiefluss-erweitert.png?downloads=true)
-# IoBroker.energiefluss 扩展
+# IoBroker.energiefluss-erweitert
![测试与发布](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/workflows/Test%20and%20Release/badge.svg)
-## 为 ioBroker 提供能量扩展适配器
+## IoBroker 的 energiefluss-erweitert 适配器
它为您添加的所有元素提供动画能量流。这些元素可能是:光伏、电池、房屋消耗、电网馈入(电网消耗)、汽车充电等。
-文档
-* [论坛主题](https://forum.iobroker.net/topic/64734/test-adapter-energiefluss-erweitert-v0-0-x-github-latest)
+## 文档
+* [论坛帖子](https://forum.iobroker.net/topic/64734/test-adapter-energiefluss-erweitert-v0-0-x-github-latest)
* [英文说明](./docs/en/README.md)
* [德语说明](./docs/de/README.md)
-* [观点展示](https://forum.iobroker.net/topic/74890/energiefluss-erweitert-ansichten/)
+* [视图展示](https://forum.iobroker.net/topic/74890/energiefluss-erweitert-ansichten/)
+* [维基](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki)
## Changelog
+### 0.5.1-alpha.11 (2024-11-12)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly applied (#272)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Timestamp of the last change was timestamp of the last update (#279)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Font-size could not be changed
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved UI
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Information Icon on the live-view, to inform the user about any errors that have occured
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Responsive Design for Adapter-Admin area added to meet new requirements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Added: last change timestamp to datasource elements. Corresponds to fix (#279)
+
+### 0.5.1-alpha.10 (2024-10-24)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Applied fill color of element could not be removed or set to transparent
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Own Styles could not be modified, if they were empty or not set
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If width or height of a rect or circle is changed, the corresponding line-connection was not updated correctly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Less power mode was not working correctly, if line animation should be reversed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Shadow on a line was not saved (#264)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Line can be hidden, if no animation is active (#263)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved Less power mode. It now uses much less resources
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Text and Datasource-Elements can be rotated continuously up to 360 degrees
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Option to make the configbar transparent, while changing settings (This is useful to see the changes on mobile devices, where the configbar could hide the element)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Update properties only if they have changed - ignore ioBroker timestamp updates on states as well
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Smoothly animate filling of of rect or circle
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Option to animate line drawing during loading live-view
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Browser-Frames can now have user defined height and width
+
+### 0.5.1-alpha.9 (2024-09-23)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Wording for some boxes updated and general improvements of help functions
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for Apple Devices including correct placement of texts and applying shadows to elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Error handling for 'Browser Frame' inside iFrame overlay - if the URL can not be loaded in 5 seconds, the overlay will be closed
+
+### 0.5.1-alpha.8 (2024-09-18)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some basic values were not saved properly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Skipping version check while in display-mode (reduces loading time and bandwidth)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New option "Auto detect" for "Show source as". The source and unit (if present and not entered before) will be automatically detected
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: UI improvements
+
+### 0.5.1-alpha.7 (2024-09-16)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Backup routine reworked to improve storage (sending/receiving data reduced)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements, which have addition or subtraction in use, now create states with their values and can be re-used by the user
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language and explanation improvements, some routines updated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Optimized contextmenu for touch-devices
+
+### 0.5.1-alpha.6 (2024-08-29)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Show element coordinates when selecting and while dragging (can be deactivated inside settings)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Workspace can not be less height and width than the coordinates of the placed elements
+
+### 0.5.1-alpha.5 (2024-08-27)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Configbar was not opening when another element was moved before (#232)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Adapter was crashing, if a static picture from the gallery has had an associated datasource (#233)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Rounded corners inside rect were not correctly set
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If workspace is completely empty, the first new added element could not be edited
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly applied, if source value was converted to number and should be a string instead
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Access key inside live-view was not working
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Rightclick contextmenu for quick access to some functions
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Global Undo&Redo functionality for moving, adding, removing and connecting elements (does not affect configuration dialog)
+
+### 0.5.1-alpha.4 (2024-08-07)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Alignments for elements refactored (Better detection if they run out of the workspace)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New element "ForeignObject" added. This allows normal HTML content inside the workspace.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Images can now have a shadow
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Keyboard copy, paste and delete functions added (Strg/cmd + c and Strg/cmd + v, Entf/del)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Double-Click on element or Connection-Line opens the 'extended'-tab and single click opens 'basic'-tab inside the configbar
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The liveview can now be displayed in fullscreen via doubleclick oder double-tap
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better handling of images through datasources (image will be hidden, if datasource is empty)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Connection-Lines can now have frame options for opening URLs
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Object-Browser scrolls the first clicked parent folder to the top
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Element with linebreak was not able to be moved after applying linebreak
+
+### 0.5.1-alpha.3 (2024-07-18)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Rewritten Upload engine (Using Web-POST instead of sockets)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Behaviour of the lines can be changed in the connection area. This includes the radius length (smaller and bigger) and the start of the curves (earlier and later)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Several functions are optimized
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Warn message in Web-Adapter was missleading (removed)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Message, that adapter is not configured was handling a different exception (solved)
+
+### 0.5.1-alpha.2 (2024-07-09)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for https via Web-Adapter (own certificates necessary)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icon-Proxy is removed from the adapter settings and runs on the extension of the Web-Adapter (If you use it or not - no changes are required)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: 2 new override parameter "pos_x" and "pos_y" are available, to position text and datasource elements depending on their value
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Energiefluss-erweitert is now available through the welcome screen of the Web-Adapter
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Energiefluss-erweitert is now reachable via iobroker.net through the ioBroker-cloud adapter (No pro license required)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: If the Web-Adapter is configured to use valid certificates, the view of Energiefluss-erweitert can be installed as PWA (progressive Web App) on Android and iOS [Explained here](https://www.google.de/search?q=what+is+a+pwa)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Sometimes, the object-browser could not load states and crashed
+
+### 0.5.1-alpha.1 (2024-07-04)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The image gallery has now a filter function which helps you to find the images more easily
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The datasource object-browser has now a filter function which helps you to find the datasource more easily
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Added some crash-handler, which might throw an error, when the associated state is not found
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Linebreak was not working correctly (Delimiter was ignored)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances a datasource could not be modified
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Text prepend was not working correctly if source is displayed as text
+
### 0.5.1-alpha.0 (2024-06-28)
-- FIX: The coordinates and size of an added icon could not be changed
-- FIX: Cursor as Pointer (hand) did not appear on elements with action
-- FIX: NPM dependency for gallery was not fetched properly
-- FIX: Newly added Text didnt save text (was empty instead)
-- FIX: Under some circumstances an element could not be deleted (Error: Existing connection!)
-- Added: Text-Elements can now be used as date and time element
-- Added: Icons can now be rotated and flipped (even when using overrides for them)
-- Added: New overrides parameter 'icon' available to change icons (Explained in [Wiki](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki/Custom-Overrides-for-elements#for-icons))
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: The coordinates and size of an added icon could not be changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Cursor as Pointer (hand) did not appear on elements with action
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: NPM dependency for gallery was not fetched properly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Newly added Text didnt save text (was empty instead)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances an element could not be deleted (Error: Existing connection!)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Text-Elements can now be used as date and time element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icons can now be rotated and flipped (even when using overrides for them)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New overrides parameter 'icon' available to change icons (Explained in [Wiki](https://github.com/SKB-CGN/ioBroker.energiefluss-erweitert/wiki/Custom-Overrides-for-elements#for-icons))
### 0.5.0-alpha.0 (2024-06-24)
**!!! Please note, this currently an Alpha-Version, because many things are changed and needed to be tested!!!**
@@ -53,252 +145,252 @@ Note: save content of the state 'configuration' inside the instance as text on y
After downloading the BETA Version, please manually proceed with uploading the adapter (this has to be done, after adapters are installed via Github)
described here: https://www.iobroker.net/#de/documentation/tutorial/adapter.md?#uploadvonadapterdateien
-- Added: Support for Websockets is now integrated. Adapter uses the faster Websockets if available. If not, the connection falls back to socket polling
-- Added: Better Darkmode Support (including Log, Overrides and CSS Styles layout)
-- Added: New option "Manual value change" for click options of datasources. With this you can directly modify the associated state inside ioBroker. Also predefined value(s) for quick accesses are possible.
-- Added: Automatic line-break after x characters for datasources, which provide longer text (e.g. weather forecasts)
-- Added: Define one Datasource as display and choose an other one to control (e.g. display the energy of a wallsocket, but switch it on or off with a different state via click-option)
-- Added: Language and dependencies are updated
-- Added: Better support for iOS devices as the values are not calculated via the objects itself anymore (should work for thickness and alignments)
-- Added: Autocomplete when adding or modifying sources inside datasources (if active)
-- Added: Import and Exports elements (e.g. for sharing a nice designed element with others)
-- Added: Preview elements (circle and rect) with their fill or outline layout
-- Added: Image gallery and query via web implementation of ioBroker
-- Added: Select datasources which contain image paths for images (e.g. WeatherAdapter)
-- Added: Improved workspace (better adding of elements, when scrolled, many design and element improvements etc.)
-- FIX: Some bugs or routines where not working as they should
-- FIX: Battery-Discharge was wrongly calculated, if the DoD should discharge till 0%
-- FIX: Removed kW settings in calculation tab as they are already set as factor inside the datasource area
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for Websockets is now integrated. Adapter uses the faster Websockets if available. If not, the connection falls back to socket polling
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better Darkmode Support (including Log, Overrides and CSS Styles layout)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New option "Manual value change" for click options of datasources. With this you can directly modify the associated state inside ioBroker. Also predefined value(s) for quick accesses are possible.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Automatic line-break after x characters for datasources, which provide longer text (e.g. weather forecasts)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Define one Datasource as display and choose an other one to control (e.g. display the energy of a wallsocket, but switch it on or off with a different state via click-option)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language and dependencies are updated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better support for iOS devices as the values are not calculated via the objects itself anymore (should work for thickness and alignments)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Autocomplete when adding or modifying sources inside datasources (if active)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Import and Exports elements (e.g. for sharing a nice designed element with others)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Preview elements (circle and rect) with their fill or outline layout
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Image gallery and query via web implementation of ioBroker
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Select datasources which contain image paths for images (e.g. WeatherAdapter)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved workspace (better adding of elements, when scrolled, many design and element improvements etc.)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some bugs or routines where not working as they should
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Battery-Discharge was wrongly calculated, if the DoD should discharge till 0%
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Removed kW settings in calculation tab as they are already set as factor inside the datasource area
### 0.4.1 (2024-04-18)
- Hotfix: After uprading the Adapter, it could happen, that the first datasource was not updated properly
### 0.4.0 (2024-04-15)
-- Added: The adapter provides 3 new states. charging_grid (battery charged via grid), charging_solar (battery charged via solar) and production (overall production) (#173, #152, #148)
-- Added: Datasources for the battery calculation now need to be provided via the datasources tab and selected in the calculation tab (**!!! Important: !!! This is a major change**)
-- Added: A Milliseconds Timestamp for Values can be selected (This can be used for custom overrides, to display what ever the user likes)
-- Added: Object browser now provides the names of channels and devices and is more responsive
-- Added: Better support inside configuration area for smaller devices like mobilephones and tablets
-- Added: A new override property (img_url) has been added, to change pictures addresses for picture elements
-- Added: Overrides can now contain states from iobroker, to directly read and for example calculate a value with an additional state. Please provide the name in curly braces.
-- FIX: Wrong alignment of rectangle with border-fill if height and width are different (#172)
-- FIX: The adapter could crash if the data source inside calculation was missing or deleted (#178)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: The adapter provides 3 new states. charging_grid (battery charged via grid), charging_solar (battery charged via solar) and production (overall production) (#173, #152, #148)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Datasources for the battery calculation now need to be provided via the datasources tab and selected in the calculation tab (**!!! Important: !!! This is a major change**)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A Milliseconds Timestamp for Values can be selected (This can be used for custom overrides, to display what ever the user likes)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Object browser now provides the names of channels and devices and is more responsive
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better support inside configuration area for smaller devices like mobilephones and tablets
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A new override property (img_url) has been added, to change pictures addresses for picture elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Overrides can now contain states from iobroker, to directly read and for example calculate a value with an additional state. Please provide the name in curly braces.
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Wrong alignment of rectangle with border-fill if height and width are different (#172)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: The adapter could crash if the data source inside calculation was missing or deleted (#178)
### 0.3.0 (2024-03-12)
-- Added: Up to 50% faster performance on saving data to the "data" datapoint due to removing unnecessary stuff
-- Added: Support for light and dark theme manual selection with URL parameter "theme=dark" or "theme=light" for overwriting the system darkmode (if applicable)
-- Added: Code optimization during start-up and releasing memory cause of not using start-up stuff during runtime anymore
-- Added: When duplicating an element, the override properties are also duplicated
-- Added: Elements can now be selected while holding ctrl key
-- Added: New override features for all elements added. The override features are explained inside the Wiki of the adapter (#153)
-- FIX: Datasource could not be deleted (#145)
-- FIX: If there is more power on a line than configured, the maximum amount of dots was ignored (#160)
-- FIX: If image URL from datapoint is empty or NULL - remove the displayed image (useful for weather datapoints)
-- FIX: If icon or svg was duplicated, the defined color was not adopted
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Up to 50% faster performance on saving data to the "data" datapoint due to removing unnecessary stuff
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for light and dark theme manual selection with URL parameter "theme=dark" or "theme=light" for overwriting the system darkmode (if applicable)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Code optimization during start-up and releasing memory cause of not using start-up stuff during runtime anymore
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: When duplicating an element, the override properties are also duplicated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements can now be selected while holding ctrl key
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New override features for all elements added. The override features are explained inside the Wiki of the adapter (#153)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Datasource could not be deleted (#145)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If there is more power on a line than configured, the maximum amount of dots was ignored (#160)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If image URL from datapoint is empty or NULL - remove the displayed image (useful for weather datapoints)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If icon or svg was duplicated, the defined color was not adopted
### 0.2.2 (2024-02-15)
-- Added: if using datasource as an image URL, in some cases the picture url is empty (for forecasts e.g.) - Chrome displayed a broken image
-- Added: current active element receives a dashed border. This helps, to identify a picture element with empty url (if served via datasource)
-- Added: Changed the previous added "unit" column for watts and kilowatts inside datasources into "factor" with a description
-- Added: A new button inside datsources is able to check which datasources are in use
-- Added: New translations and some code optimizations
-- FIX: Broken SVG corrected
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: if using datasource as an image URL, in some cases the picture url is empty (for forecasts e.g.) - Chrome displayed a broken image
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: current active element receives a dashed border. This helps, to identify a picture element with empty url (if served via datasource)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Changed the previous added "unit" column for watts and kilowatts inside datasources into "factor" with a description
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A new button inside datsources is able to check which datasources are in use
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New translations and some code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Broken SVG corrected
### 0.2.1 (2024-01-25)
-- Added: Support for datasources as image URL's (explanation is given via question mark)
-- Added: Background for workspace can now be set in basic settings (CSS still works as well)
-- FIX: SVG element was not correctly saved after saving the workspace
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for datasources as image URL's (explanation is given via question mark)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Background for workspace can now be set in basic settings (CSS still works as well)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: SVG element was not correctly saved after saving the workspace
### 0.2.0 (2024-01-11)
-- Added: Control for not deleting sources, if they are in use as source, addition or subtraction (elements which use this one, will be displayed with additional information)
-- Added: IDs for datasources will be displayed inside configuration bar, to better find the ID the element for reason mentioned before
-- Added: Control for not adding duplicate datasources from ioBroker as this will lead into crashes cause of duplicate keys
-- Added: Form on datasources configuration page will be deactivated during the time a datasource is edited
-- Added: A unit for the datasource is selectable - this makes it easier to use those values for addition&subtraction without using Auxiliary data points
-- Added: New translations, design modifcations and various code optimizations
-- FIX: Crash Handler for missing datasources extended (if datasource from ioBroker was deleted and used as source, addition or subtraction in any element)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Control for not deleting sources, if they are in use as source, addition or subtraction (elements which use this one, will be displayed with additional information)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: IDs for datasources will be displayed inside configuration bar, to better find the ID the element for reason mentioned before
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Control for not adding duplicate datasources from ioBroker as this will lead into crashes cause of duplicate keys
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Form on datasources configuration page will be deactivated during the time a datasource is edited
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: A unit for the datasource is selectable - this makes it easier to use those values for addition&subtraction without using Auxiliary data points
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New translations, design modifcations and various code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Crash Handler for missing datasources extended (if datasource from ioBroker was deleted and used as source, addition or subtraction in any element)
### 0.1.0 (2023-11-15)
-- FIX: Alignment of texts and group movement was not possible, after changing to new multiline texts
-- FIX: Saved default fill and outline colors were not applied if adding new text or datasource to workspace
-- Added: Extended the auto calculation to W, kW, MW and GW
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alignment of texts and group movement was not possible, after changing to new multiline texts
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Saved default fill and outline colors were not applied if adding new text or datasource to workspace
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Extended the auto calculation to W, kW, MW and GW
### 0.0.2-alpha.24 (2023-11-14)
-- Added: Lacy loading for Object-Browser. The Object-Browser will not be loaded on configuration start. It will load necessary objects on request, to not block UI anymore
-- Added: Support for line-breaks inside Text or Datasource elements. Line break can be done via or \n. (#10)
-- Added: Overrides can now handle 'text', 'unit', 'append' and 'prepend' values to be replaced
-- Added: Check for Datasources - inside Datasources is a button, which is able to check you sources
-- Added: Faster loading due to code optimizations
-- FIX: Convert Value to positiv was not working. If value is positiv, it was displayed as negative
-- FIX: After waking up displaying device (phone/tablet) from standby, datasources were not refreshed anymore (#99)
-- FIX: If shadow color was entered in hex instead of rgb(a) it was not saved correctly (#90)
-- FIX: Alias values without acknowledge were not updating (#96)
-- FIX: Border-Fill on element was not showing, if value has changed the sign and should be displayed in the other direction
-- FIX: Removed javascript warnings for some icons
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Lacy loading for Object-Browser. The Object-Browser will not be loaded on configuration start. It will load necessary objects on request, to not block UI anymore
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for line-breaks inside Text or Datasource elements. Line break can be done via or \n. (#10)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Overrides can now handle 'text', 'unit', 'append' and 'prepend' values to be replaced
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Check for Datasources - inside Datasources is a button, which is able to check you sources
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Faster loading due to code optimizations
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Convert Value to positiv was not working. If value is positiv, it was displayed as negative
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: After waking up displaying device (phone/tablet) from standby, datasources were not refreshed anymore (#99)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If shadow color was entered in hex instead of rgb(a) it was not saved correctly (#90)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alias values without acknowledge were not updating (#96)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Border-Fill on element was not showing, if value has changed the sign and should be displayed in the other direction
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Removed javascript warnings for some icons
### 0.0.2-alpha.23 (2023-10-25)
-- Added: Extended the value calculation 'Calculate Value from W to kW' to: deactivated, Calculate Value from W to kW, Automatic calculation including unit (W, kW)
-- Added: Some crash-handler if states were deleted
-- FIX: Font face was not applied if changed
-- FIX: When a state inside the "alias" environment was deleted and not removed from the workspace, the adapter could crash unexpectedly
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Extended the value calculation 'Calculate Value from W to kW' to: deactivated, Calculate Value from W to kW, Automatic calculation including unit (W, kW)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Some crash-handler if states were deleted
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Font face was not applied if changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When a state inside the "alias" environment was deleted and not removed from the workspace, the adapter could crash unexpectedly
### 0.0.2-alpha.22 (2023-10-20)
-- Added: Support for boolean states to apply CSS Class, if their value is true/false
-- Added: Refresh Button for object browser - if a new state was added through objects, the configuration needed a complete refresh to receive the new state
-- Added: Support for own Text inside a datasource element. Useful, if you want to style text depending on the value of the datasource
-- FIX: Overrides were not correctly loaded when adapter starts
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for boolean states to apply CSS Class, if their value is true/false
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Refresh Button for object browser - if a new state was added through objects, the configuration needed a complete refresh to receive the new state
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for own Text inside a datasource element. Useful, if you want to style text depending on the value of the datasource
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Overrides were not correctly loaded when adapter starts
### 0.0.2-alpha.21 (2023-10-17)
-- Added: Using left over space in configbar, to display wider text/number boxes and more text without using more space
-- Added: Static navigation in config bar for easier switching between basic and extended settings of the element
-- Added: Better handling of boxes in tab menu. Now we use flex views to grow or shrink boxes. Some boxes a re-aligned to use the available space in a more efficient way.
-- Added: ACE-Editor with syntax highlighting, autocompletion for properties and error notification while using in CSS tab (more user friendly when applying styles). Style of Log output is also formated with syntax highlighting
-- Added: Override function for elements with datasources. Its now possible to add overrides to any element which uses a datasource. With this function, you are able to style the element depending on the value of the datasource
-- FIX: Alignment of elements was not working correctly for text append, text prepend and grouped icons
-- FIX: When using animation depencies with dots, it could be the case that an icorrect amount of dots was displayed
-- FIX: When using subtraction or addition on a datasource, the displayed value was not updated if one of the subtraction or addition values were changed
-- FIX: Thresholds were only possible for Integers - now decimal numbers are also possible
-- FIX: If values were set to be animated, they stopped being updated after some time
-- FIX: Some layout fixes
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Using left over space in configbar, to display wider text/number boxes and more text without using more space
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Static navigation in config bar for easier switching between basic and extended settings of the element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better handling of boxes in tab menu. Now we use flex views to grow or shrink boxes. Some boxes a re-aligned to use the available space in a more efficient way.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: ACE-Editor with syntax highlighting, autocompletion for properties and error notification while using in CSS tab (more user friendly when applying styles). Style of Log output is also formated with syntax highlighting
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Override function for elements with datasources. Its now possible to add overrides to any element which uses a datasource. With this function, you are able to style the element depending on the value of the datasource
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Alignment of elements was not working correctly for text append, text prepend and grouped icons
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When using animation depencies with dots, it could be the case that an icorrect amount of dots was displayed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: When using subtraction or addition on a datasource, the displayed value was not updated if one of the subtraction or addition values were changed
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Thresholds were only possible for Integers - now decimal numbers are also possible
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: If values were set to be animated, they stopped being updated after some time
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some layout fixes
### 0.0.2-alpha.20 (2023-09-22)
-- FIX: states in user environment (userdata and javascript) do not need ACK flags anymore
-- FIX: Darkmode cleanups and some layout improvements
-- FIX: Changed some CSS styles to be consistent
-- Added: Version Checker to check the version on Github and inform the user
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: states in user environment (userdata and javascript) do not need ACK flags anymore
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Darkmode cleanups and some layout improvements
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Changed some CSS styles to be consistent
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Version Checker to check the version on Github and inform the user
### 0.0.2-alpha.19 (2023-09-14)
-- FIX: Since number animation, it could occur, that decimal places got cut off on initial values
-- FIX: Save & Exit was not working correctly, if an high amount of data should be saved
-- Added: Made previously count up/down Animation for numbers configurable for each datasource element
-- Added: Low power mode for animations (can be enabled generaly or via URL parameter on each device)
-- Added: If Element is filled depending on value, it is now possible, to use the basic color as fill for the remaining space or none as transparent
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Since number animation, it could occur, that decimal places got cut off on initial values
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Save & Exit was not working correctly, if an high amount of data should be saved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Made previously count up/down Animation for numbers configurable for each datasource element
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Low power mode for animations (can be enabled generaly or via URL parameter on each device)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: If Element is filled depending on value, it is now possible, to use the basic color as fill for the remaining space or none as transparent
### 0.0.2-alpha.18 (2023-09-11)
-- Added: Count up/down Animation for numbers added. Instead of directly changing numbers, they are animated.
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Count up/down Animation for numbers added. Instead of directly changing numbers, they are animated.
### 0.0.2-alpha.17 (2023-09-07)
-- FIX: Object browser did not show all states - especially not the ones in Channel or Folders
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Object browser did not show all states - especially not the ones in Channel or Folders
### 0.0.2-alpha.16 (2023-08-31)
-- FIX: Adapter crashed sometimes, due to accessing invalid ids
-- Added: Possibility to addition values to other values
-- Added: Directly display animations and values after startup instead of waiting till first value changes
-- Added: Adapter depencies and stability
-- Added: New Translations for new functions
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Adapter crashed sometimes, due to accessing invalid ids
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Possibility to addition values to other values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Directly display animations and values after startup instead of waiting till first value changes
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Adapter depencies and stability
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New Translations for new functions
### 0.0.2-alpha.15 (2023-08-10)
-- FIX: Under some circumstances symbols, texts and images could run out off workspace
-- FIX: consumption calculation produced high CPU load on some systems (#43)
-- FIX: Crash-Handler for animations optimized - if animation is present before value is updated, the adapter could crash
-- Added: Better duplication of items
-- Added: Actions for Datasources and Icons (on, off, toggle) - State can be display in Datasource as well
-- Added: Consumption calculation - Added states if battery charge/discharge and public grid-feed/grid-consumption are not the same
-- Added: Backup moved from states to ioBroker folder instead (saving Redis power and states loading)
-- Added: Loading information for object browser (if not loaded already)
-- Added: Darkmode for Layout
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Under some circumstances symbols, texts and images could run out off workspace
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: consumption calculation produced high CPU load on some systems (#43)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Crash-Handler for animations optimized - if animation is present before value is updated, the adapter could crash
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better duplication of items
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Actions for Datasources and Icons (on, off, toggle) - State can be display in Datasource as well
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Consumption calculation - Added states if battery charge/discharge and public grid-feed/grid-consumption are not the same
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Backup moved from states to ioBroker folder instead (saving Redis power and states loading)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Loading information for object browser (if not loaded already)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Darkmode for Layout
### 0.0.2-alpha.14 (2023-08-04)
-- Added: Support for SVG elements. SVG will be an area inside the workspace and allows to paste pure SVG data (#31)
-- Added: Support for own images. The user is responsible how to upload the image to ioBroker, as the adapter has no upload possibility
-- Added: Support to arrange pictures and elements in levels. They can now be moved to fore- or background
-- Added: Consumption calculation - Currently, only single-mode (positive and negative) states are supported. Different states for battery charge/discharge and public grid-feed/grid-consumption will be added in next version
-- Added: Some error handling improved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for SVG elements. SVG will be an area inside the workspace and allows to paste pure SVG data (#31)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support for own images. The user is responsible how to upload the image to ioBroker, as the adapter has no upload possibility
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Support to arrange pictures and elements in levels. They can now be moved to fore- or background
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Consumption calculation - Currently, only single-mode (positive and negative) states are supported. Different states for battery charge/discharge and public grid-feed/grid-consumption will be added in next version
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Some error handling improved
### 0.0.2-alpha.13 (2023-07-26)
-- FIX: Icon-Proxy was not showing icons under some circumstances
-- FIX: Reverse steps for alignment was in the wrong order (#37)
-- Added: Build-in Object Browser for faster loading and saving bandwith (get rid of the default one)
-- Added: Autocomplete for Datasources Boxes - Datasource will be fetched during typing
-- Added: Language for some boxes were missing
-- Added: Disable all other Datasources in list while editing to prevent layout mix
-- Added: New states for 'battery_remaining_target', which shows the target time in Unixtime and 'battery_remaining_target_DT', which shows the time in human readable format
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Icon-Proxy was not showing icons under some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Reverse steps for alignment was in the wrong order (#37)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Build-in Object Browser for faster loading and saving bandwith (get rid of the default one)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Autocomplete for Datasources Boxes - Datasource will be fetched during typing
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language for some boxes were missing
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Disable all other Datasources in list while editing to prevent layout mix
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New states for 'battery_remaining_target', which shows the target time in Unixtime and 'battery_remaining_target_DT', which shows the time in human readable format
### 0.0.2-alpha.12 (2023-07-18)
-- Added: Improved Icon - Proxy, to serve icons for all symbols (if enabled)
-- Added: Language translations for live-view variables
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Improved Icon - Proxy, to serve icons for all symbols (if enabled)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language translations for live-view variables
### 0.0.2-alpha.11 (2023-07-17)
-- Added: Configuration Bar can be swapped from right to left (better handling, if elements are behind bar)
-- Added: Icon-Proxy-Server (if some of your devices inside the network do not have an internet connection, Energiefluss-erweitert will serve those icons and cache them as well)
-- Added: Better Help-Center when hitting the question mark icon
-- Added: Language translation into: english, german, espanol, french, italian, netherlands, polish language, portuguese, russian, ukrainian, chinese
-- Added: Previous outline fill extended for filling reverse
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Configuration Bar can be swapped from right to left (better handling, if elements are behind bar)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Icon-Proxy-Server (if some of your devices inside the network do not have an internet connection, Energiefluss-erweitert will serve those icons and cache them as well)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Better Help-Center when hitting the question mark icon
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Language translation into: english, german, espanol, french, italian, netherlands, polish language, portuguese, russian, ukrainian, chinese
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Previous outline fill extended for filling reverse
### 0.0.2-alpha.10 (2023-07-10)
-- FIX: Basic icon color was not applied correctly
-- FIX: Fill placeholders for elements were created in error in some circumstances
-- FIX: Subtract was not calculated correctly, if state value is negative
-- FIX: Better handling of positioning elements when entering coordinates
-- FIX: Icons sometimes got a faulty format if duplicated
-- Added: Circles and Rectangles can now have a fill border depending on the value
-- Added: Configuration backup for the last 10 versions
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Basic icon color was not applied correctly
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Fill placeholders for elements were created in error in some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Subtract was not calculated correctly, if state value is negative
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Better handling of positioning elements when entering coordinates
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Icons sometimes got a faulty format if duplicated
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Circles and Rectangles can now have a fill border depending on the value
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Configuration backup for the last 10 versions
### 0.0.2-alpha.9 (2023-07-04)
-- FIX: CSS classes were causing color errors while being applied in config mode
-- FIX: Do not Load CSS class when adapter is starting - only when values change
-- FIX: Threshold was not calculated correctly, if element was substracted by other values
-- FIX: ID list in configbar was loosing event for choosing next element in drop-down
-- Added: Subtract values from other values
-- Added: Start coordinates can be specified in basic settings to better position new elements
-- Added: Threshold for rectangle and circle
-- Added: duplication of one or more element(s)
-- Added: Fill element according to value can now have different directions (bottom to top, top to bottom, right to left, left to right)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: CSS classes were causing color errors while being applied in config mode
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Do not Load CSS class when adapter is starting - only when values change
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Threshold was not calculated correctly, if element was substracted by other values
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: ID list in configbar was loosing event for choosing next element in drop-down
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Subtract values from other values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Start coordinates can be specified in basic settings to better position new elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Threshold for rectangle and circle
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: duplication of one or more element(s)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Fill element according to value can now have different directions (bottom to top, top to bottom, right to left, left to right)
### 0.0.2-alpha.8 (2023-06-26)
-- FIX: Remaining Battery Calculation was not working if source has an ID 0 assigned
-- FIX: Animation timing improved. Better time-handling (#20)
-- FIX: Line could not be clicked/choosen (#19)
-- FIX: Threshold was not working correctly
-- Added: All elements can have CSS classes for their current state values. Active positive, Active negative, Inactive positive and Inactive negative
-- Added: Battery Remaining Time explanation improved
-- Added: Animation can run into opposite direction, if value has changed to positive/negative (#15, #18)
-- Added: Datasource text elements can now have a text before and after their value
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Remaining Battery Calculation was not working if source has an ID 0 assigned
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Animation timing improved. Better time-handling (#20)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line could not be clicked/choosen (#19)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Threshold was not working correctly
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: All elements can have CSS classes for their current state values. Active positive, Active negative, Inactive positive and Inactive negative
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Battery Remaining Time explanation improved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Animation can run into opposite direction, if value has changed to positive/negative (#15, #18)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Datasource text elements can now have a text before and after their value
### 0.0.2-alpha.7 (2023-05-25)
-- FIX: Some Icons were not moveable
-- FIX: Initial configuration was broken
-- Added: Existing Line can be modified as well
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Some Icons were not moveable
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Initial configuration was broken
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Existing Line can be modified as well
### 0.0.2-alpha.6 (2023-05-24)
-- FIX: Line could not be restored in some circumstances
-- FIX: Line was not editable anymore after modifying start and end
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line could not be restored in some circumstances
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Line was not editable anymore after modifying start and end
### 0.0.2-alpha.5 (2023-05-24)
-- Added: Calculation of battery runtime (charge & discharge) can be calculated and implemented via source
-- Added: Basic settings extended to colors of elements
-- Added: alignment of text is possible (right, middle, left)
-- Added: last change timestamp extended to more formats
-- Added: Line can be modified (new start and/or end position). Useful, if many settings applied and line needs to be moved
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Calculation of battery runtime (charge & discharge) can be calculated and implemented via source
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Basic settings extended to colors of elements
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: alignment of text is possible (right, middle, left)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: last change timestamp extended to more formats
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Line can be modified (new start and/or end position). Useful, if many settings applied and line needs to be moved
### 0.0.2-alpha.4 (2023-05-17)
-- Added: String Datasource can now be displayed
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: String Datasource can now be displayed
### 0.0.2-alpha.3 (2023-05-17)
-- FIX: Animations not running after adding each of them
-- Added: Elements can be chosen inside side-panel (useful, if element is not clickable anymore)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Animations not running after adding each of them
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Elements can be chosen inside side-panel (useful, if element is not clickable anymore)
### 0.0.2-alpha.2 (2023-05-15)
-- FIX: Source missing after saving - fill of element not possible (fix #11)
-- FIX: Offset was not working
-- Added: admin menu - link recolored
-- Added: admin menu - access key table
-- Added: question-mark icon for config-wheel
-- Added: New animation-depencies added in advanced menu of animation. Choose dots or duration, to display power-amount on the line
-- Added: last change timestamp of the datasource can be displayed as option: relative to now, timestamp US or timestamp DE
-- Added: all elements can be moved with arrow keys for smoother alignment. Click icon and press arrow-key on keyboard to move it
-- Added: noscroll is added to the workspace, while moving elements. This prevents the page being scrolled up or down
-- Added: elements can be selected with the "lasso-function" - select more than one element with cursor
-- Added: "lasso-catched" elements can be moved with mouse or keyboard (arrow keys)
-- Added: Settings-menu has now basic settings for the elements. All values can be set as default values
-- Added: displayed values can be reduced by other values (selectable)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Source missing after saving - fill of element not possible (fix #11)
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: Offset was not working
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: admin menu - link recolored
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: admin menu - access key table
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: question-mark icon for config-wheel
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: New animation-depencies added in advanced menu of animation. Choose dots or duration, to display power-amount on the line
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: last change timestamp of the datasource can be displayed as option: relative to now, timestamp US or timestamp DE
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: all elements can be moved with arrow keys for smoother alignment. Click icon and press arrow-key on keyboard to move it
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: noscroll is added to the workspace, while moving elements. This prevents the page being scrolled up or down
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: elements can be selected with the "lasso-function" - select more than one element with cursor
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: "lasso-catched" elements can be moved with mouse or keyboard (arrow keys)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Settings-menu has now basic settings for the elements. All values can be set as default values
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: displayed values can be reduced by other values (selectable)
### 0.0.2-alpha.1 (2023-04-28)
-- FIX: removed local Test file, which does not belong to the project
-- Added: Settings Wheel can be disabled in Live-View
-- Added: Last selected Datasource can be "cached", for easier treeview (can be enabled/disabled in settings)
-- Added: Alignment functions do now have an undo function for all steps
-- Added: socket connection is monitored, shows a waiting screen, if instance is not started or restarted
+- ![](https://placehold.co/15x15/A1D343/A1D343.png) FIX: removed local Test file, which does not belong to the project
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Settings Wheel can be disabled in Live-View
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Last selected Datasource can be "cached", for easier treeview (can be enabled/disabled in settings)
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: Alignment functions do now have an undo function for all steps
+- ![](https://placehold.co/15x15/00B5DD/00B5DD.png) Added: socket connection is monitored, shows a waiting screen, if instance is not started or restarted
### 0.0.2-alpha.0 (2023-04-28)
* (SKB) initial release
diff --git a/docs/zh-cn/adapterref/iobroker.flexcharts/README.md b/docs/zh-cn/adapterref/iobroker.flexcharts/README.md
index 54e60a733..889f20c00 100644
--- a/docs/zh-cn/adapterref/iobroker.flexcharts/README.md
+++ b/docs/zh-cn/adapterref/iobroker.flexcharts/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.flexcharts/README.md
title: ioBroker.flexcharts
-hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
+hash: bg7vZAhUrEEfOHPWcLi2QWejGsWx19+UsdyyKnWX0u4=
---
![标识](../../../en/adapterref/iobroker.flexcharts/admin/flexcharts-icon-small.png)
@@ -20,11 +20,11 @@ hash: HkappwCbGmLaXInEwFRFzBYV9Kx9Tctl60Noxmd77YM=
# 基本概念
ioBroker 中有多种适配器可用于查看图表。据我所知,它们都使用 UI 来配置图表的内容和选项。通常,并非所有使用的图形子系统的功能都可以以这种方式使用。例如,无法使用 eChart-Adapter 查看功能齐全的堆叠图表。
-此适配器使用不同的方法。它带来了[Apache ECharts](https://echarts.apache.org/en/index.html) 到 ioBroker。查看 [演示图表](https://echarts.apache.org/examples/en/index.html)的完整功能集。
+此适配器使用不同的方法。它几乎带来了[Apache ECharts](https://echarts.apache.org/en/index.html) 到 ioBroker。查看 [演示图表](https://echarts.apache.org/examples/en/index.html) 的完整功能集。
备注:适配器尚未在 MacOS 上测试。
-**没有 UI 可以配置任何图表。**您必须自己定义图表,适配器负责可视化。您必须通过提供内容作为 json 对象来提供图表的定义和内容 - 在 eCharts 示例中,它对应于变量 `option` 的内容。这里有一个例子来说明。要创建堆叠图表,请将其定义存储在 ioBroker 状态(json 格式)中:
+**没有 UI 可以配置任何图表。**您必须自己定义图表,适配器负责可视化。您必须通过提供内容作为 json 对象来提供图表的定义和内容 - 在 eCharts 示例中,它对应于变量 `option` 的内容。下面是一个例子来说明。要创建堆叠图表,请将其定义存储在 ioBroker 状态(json 格式)中:
```
{ "tooltip": {"trigger": "axis","axisPointer": {"type": "shadow"}},
@@ -47,18 +47,20 @@ ioBroker 中有多种适配器可用于查看图表。据我所知,它们都
}
```
-flexchart 适配器将显示此图表:![flexcharts_stacked1](https://github.com/user-attachments/assets/7cf6dfab-ddad-4b2f-a1e1-20fa4b876b4c)
+flexchart 适配器将显示此图表:
+
+![flexcharts_stacked1](https://github.com/user-attachments/assets/7cf6dfab-ddad-4b2f-a1e1-20fa4b876b4c)
通常您将使用 Blockly 或 javascript 来创建和更新此状态的内容。
还有另一种可能性,即通过 javascript 中的回调函数直接传递 eCharts 数据。详情见下文。
需要明确的是:这种方法不适用于快速创建简单图表。
-但如果您对更复杂的图表有非常具体的想法,flexcharts 可以实现它。
+但如果您对更复杂的图表有特定的想法,flexcharts 可以为您提供实现它的可能性。
# 入门
### 使用适配器
-此适配器将其功能作为 Web 扩展。因此,必须安装并运行 [网络适配器](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`)。假设您使用标准端口 8082 作为 Web 适配器。
+此适配器将其功能作为 Web 扩展。因此,必须安装并运行 [网络适配器](https://www.iobroker.net/#en/adapters/adapterref/iobroker.ws/README.md) (`web.0`)。在此自述文件中,假定您使用标准端口 8082 作为 Web 适配器。
当 flexcharts 适配器处于活动状态时,您可以通过 http://localhost:8082/flexcharts/echarts.html 访问它(将`localhost` 替换为您的 ioBroker 服务器的地址)。
@@ -69,27 +71,27 @@ flexchart 适配器将显示此图表:![flexcharts_stacked1](https://github.co
* `source=state` => 您以 ioBroker 状态 (json) 提供图表数据
* `source=script` => 您通过脚本(javascript 或 blockly)提供图表数据
-有一个内置的演示图表可用:http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-
-要使用 ECharts 的暗模式,请添加`&darkmode`,例如 http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&darkmode
+还有其他可用选项,请参阅[参考部分](#reference)
-要启用图表的定期刷新,请使用选项`&refresh`,例如 http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1&refresh=15 每 15 秒刷新一次图表。最小值为 5 秒。默认为 60 秒。
+要检查适配器是否正确安装,请使用内置演示图表:http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-### 使用 ioBroker 状态作为 echart 的源
+### 使用 ioBroker 状态作为 eChart 的来源
例如:`http://localhost:8082/flexcharts/echarts.html?source=state&id=0_userdata.0.echarts.chart1`
Flexcharts 会将状态 `0_userdata.0.echarts.chart1` 评估为 eChart 的数据。尝试一下:创建这样的状态并复制上面示例的 json 数据(`{ "tooltip": { ...`)作为状态内容,然后使用浏览器访问给定的地址。
-### 使用 javascript 作为 echarts 的源代码
-这有点复杂,但效率更高。你可以直接通过 JS 脚本提供图表数据,该脚本由 flexcharts 适配器动态调用。
+### 使用 javascript 作为 eChart 的源代码
+这有点复杂,但效率更高,也更灵活。您可以直接通过 JS 脚本提供图表数据,该脚本由 flexcharts 适配器动态调用。您可以通过向 http 地址添加参数来将其他参数传递给脚本,例如 `&chart=chart1`。所有 http 参数都可以在脚本中的对象 `httpParams` 中使用(见下面的示例)。
再次强调,最好使用示例进行解释。创建一个包含以下内容的脚本(仅支持第一个 JS 实例 (**javascript.0**),脚本名称无关紧要):
```
-onMessage('flexcharts', (data, callback) => {
- console.log(`data = ${JSON.stringify(data)}`);
+onMessage('flexcharts', (httpParams, callback) => {
+ const myJsonParams = (httpParams.myjsonparams ? JSON.parse(httpParams.myjsonparams) : {} );
+ console.log(`httpParams = ${JSON.stringify(httpParams)}`);
+ console.log(`myJsonParams = ${JSON.stringify(myJsonParams)}`);
chart1(result => callback(result));
});
@@ -123,21 +125,56 @@ function chart1(callback) {
应显示与前面的示例相同的图表。
+您应该获得示例脚本的两个日志条目:
+
+```
+httpParams = {"message":"mylinechart","source":"script"}
+myJsonParams = {}
+```
+
+可以将其他参数转发到脚本,并在脚本中的变量`httpParams`中提供。尝试以下命令:`http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1&myjsonparams={"period":"daily"}`
+
+日志条目现在应如下所示:
+
+```
+httpParams = {"source":"script","chart":"chart1","myjsonparams":"{\"period\":\"daily\"}"}`
+myJsonParams = {"period":"daily"}
+```
+
请注意,**您必须使用 `onMessage()` 功能从适配器接收触发器**。如上例所示,消息的默认值为 `flexcharts`。您可以通过提供附加参数来使用不同的消息,例如,要使用消息 `mycharts`,请将 `&message=mycharts` 添加到 http 地址:`http://localhost:8082/flexcharts/echarts.html?source=script&message=mycharts`
-可以将其他参数转发到脚本,并在脚本中的变量`data`中提供。尝试以下命令:`http://localhost:8082/flexcharts/echarts.html?source=script&chart=chart1¶ms={"period":"daily"}`
+## 模板
+Javascript 模板可用于以下几种用例:
+
+* 使用历史适配器数据的图表:[template1](templates/flexchartsTemplate1.js)
+* 热曲线的简单图表:[template2](templates/flexchartsTemplate2.js)
+* Viessmann E3 系列设备有一个非常具体的用例,例如热泵 Vitocal 250。请参阅 https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35
+
+## 参考
+使用**ioBroker 状态**作为数据源:`http://localhost:8082/flexcharts/echarts.html?source=state&id=my_state_id`
+
+使用**javascript**作为数据源:`http://localhost:8082/flexcharts/echarts.html?source=script`
+
+### 可选参数
+* `&message=my_message` - 将“my_message”发送到 javascript。使用 `onMessage('my_message', (httpParams, callback) => { callback(mychart); })` 提供图表数据。默认为 `flexcharts`。
+* `&darkmode` - 激活 ECharts 的暗模式可视化。
+* `&refresh=number` - 每“number”秒刷新一次图表。默认为 60 秒。允许的最小值为 5 秒。
+* `&user_defined_arguments` - 根据需要添加更多参数。所有参数均可在对象 `httpParams` 中的函数 `onMessage()` 中使用。有关更多详细信息,请参阅上述示例和模板。
+
+### 内置演示图表
+有一个内置的演示图表可用:http://localhost:8082/flexcharts/echarts.html?source=state&id=flexcharts.0.info.chart1
-这应该在示例脚本中给出一个日志条目:`data = {"source":"script","chart":"chart1","params":"{\"period\":\"daily\"}"}`
+当 flexcharts 和 web-adapter 运行时,这将弹出一个演示图表。
-我正在开发更复杂的 javascript 模板,以简化适配器的使用。[第一个模板](templates/flexchartsTemplate1.js) 可用,请参阅文件夹模板。
-Viessmann E3 系列设备有一个非常具体的用例,例如热泵 Vitocal 250。请参阅 https://github.com/MyHomeMyData/ioBroker.e3oncan/discussions/35 即将推出更多内容。敬请期待。
+**注意:**将`localhost`替换为您的ioBroker服务器的地址。将`8082`替换为您的Web适配器使用的端口号。
## Changelog
-### **WORK IN PROGRESS**
+### 0.2.0 (2024-11-06)
+* (MyHomeMyData) Updated readme. Added sections Templates and Reference.
* (MyHomeMyData) Fix for issue #41 (findings of repository checker)
* (MyHomeMyData) Updated ECharts to version 5.5.1, see issue #40
* (MyHomeMyData) Fix for issue #39 (html warnings)
diff --git a/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md b/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md
index 1f30c6b9d..b455aeef3 100644
--- a/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md
+++ b/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md
title: ioBroker.gotify-ws
-hash: ZleT4V2h1sn7+SHyydmhlIKBDbjhJ7fAA55KqnTuJsw=
+hash: oXPHjuHMHoLLlEzMSLVDiPX/+sdFb6o14PVXKItzbxo=
---
![标识](../../../en/adapterref/iobroker.gotify-ws/admin/gotify-ws.png)
@@ -68,6 +68,8 @@ Gotify-WS 还需要 Gotify 服务器的 IP 地址或域和端口。
### **正在进行中**
*(simatec)依赖项已更新
+*(simatec)响应式设计修复
+*(simatec)已添加问题操作
## Changelog
### 0.1.9 (2024-09-26)
diff --git a/docs/zh-cn/adapterref/iobroker.gsmsms/README.md b/docs/zh-cn/adapterref/iobroker.gsmsms/README.md
index f4b54b45a..418d774c0 100644
--- a/docs/zh-cn/adapterref/iobroker.gsmsms/README.md
+++ b/docs/zh-cn/adapterref/iobroker.gsmsms/README.md
@@ -3,167 +3,170 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.gsmsms/README.md
title: ioBroker.gsmsms
-hash: dunlSMGPp9mJWEwiLsW+jZKUNdPBGcuyXoTQ6r32bAY=
+hash: 4OePWk7/C7Efli5jytPaWhasTCdJuILxZpyKT1Jicr0=
---
![标识](../../../en/adapterref/iobroker.gsmsms/admin/gsmsms.png)
![安装数量](https://iobroker.live/badges/gsmsms-installed.svg)
![稳定存储库中的当前版本](https://iobroker.live/badges/gsmsms-stable.svg)
-![NPM版本](https://img.shields.io/npm/v/iobroker.gsmsms.svg)
+![NPM 版本](https://img.shields.io/npm/v/iobroker.gsmsms.svg)
![下载](https://img.shields.io/npm/dm/iobroker.gsmsms.svg)
# IoBroker.gsmsms
![测试与发布](https://github.com/forelleblau/ioBroker.gsmsms/workflows/Test%20and%20Release/badge.svg)
## IoBroker 的 gsmsms 适配器
-使用 GSM 硬件发送和接收 SMS。
+使用 GSM 硬件发送和接收短信。
## 硬件
-任何连接到 ioBroker 设备串行端口的 GSM 硬件(屏蔽、冲浪棒)。
-GSM 模块/棒需要大量电力。请保证充足的电力供应。
+任何 GSM 硬件(屏蔽、surfstick 等)都连接到 ioBroker 设备的串行端口。
+GSM 模块/棒需要大量电力。请确保有足够的电源。
-某些设备必须设置为正确的串行通信模式(请参阅“usb_modeswitch”)。
+某些设备必须设置为正确的串行通信模式(参见“usb_modeswitch”)。
## 设置
### 端口和连接设置
#### 串行端口路径 - 必需。
-例如`/dev/ttyUSB0` 或 `/dev/serial/by-id/xxxxxxxxxxx`(by-id 更稳定,ttyUSBx 可以在重新启动后更改)
+例如 `/dev/ttyUSB0` 或 `/dev/serial/by-id/xxxxxxxxxxx` (by-id 更稳定,ttyUSBx 可以在重启后改变)
-有些设备会暴露多个 USB 端口,因此您可能需要尝试一下。最有可能的“第一个”会起作用,但可能不会传递“传入消息通知”,然后您可以尝试另一个并发送短信,看看几秒钟后是否收到(在华为上,这是第三个端口为例)。
+有些设备有多个 USB 端口,所以您可能需要尝试一下。最有可能的是“第一个”端口可以工作,但可能无法发送“来电消息通知”,然后您可以尝试另一个端口并发送短信,看看几秒钟后是否收到短信(在华为上,这是第三个端口,作为示例)。
#### 您的 SIM 卡 PIN 码
-如果您的 SIM 卡受 PIN 码保护,请提供 PIN 码,初始化期间将使用该 PIN 码解锁 SIM 卡(空,表示“SIM 卡上不存在 PIN 码”)。
+如果您的 SIM 卡受 PIN 保护,请提供 PIN,它将用于在初始化期间解锁 SIM 卡(空,表示“SIM 卡上没有 PIN”)。
### GSM 设置
-为了不耗尽 SIM 卡内存,所有短信在发送/读取后都会从 SIM 卡中删除。使用例如“历史记录” - 用于存储消息或任何其他方便的解决方案的适配器。
+为了不耗尽 SIM 内存,所有短信在发送/读取后都会从 SIM 中删除。例如,使用“历史记录”适配器来存储您的消息或任何其他便捷的解决方案。
-|名称 |类型 |默认 |描述 |
+| 名称 | 类型 | 默认 | 描述 |
| --------------------------- | ------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-|传入短信指示 |布尔 |真实|使调制解调器能够通知已收到新的 SMS 消息。 |
-|启用串联 |布尔 |真实 |将串联的消息作为一条接收。 |
-|自定义 Iinit 命令 |字符串| |如果您的设备需要自定义初始化命令,可以提供该命令并将在 PIN 检查后使用。即某些设备需要“AT + CPMS =“SM”,“SM”,“SM”'才能获得正确的存储集。该命令预计返回 `'OK'`(空,表示“没有用于 init 的自定义命令”)。请参考您的 GSM 设备规格。 |
-| CNMI 当调制解调器打开/关闭时 |字符串| '2,1,0,2,0' / '2,0,2,2,1' |定义消息是否保存在 SIM 卡上或立即传送。请参考您的 GSM 设备规格。 |
+| 传入短信指示 | 布尔值 | true | 启用调制解调器通知已收到新的短信。|
+| 启用连接 | 布尔值 | true | 将连接的消息作为一个整体接收。|
+| 自定义 Iinit 命令 | 字符串 | | 如果您的设备需要自定义初始化命令,则可以提供该命令,并在 PIN 检查后使用。即某些设备需要“AT+CPMS="SM","SM","SM"' 才能获得正确的存储集。该命令预计返回 `'OK'`(空,表示“没有自定义初始化命令”)。请参考您的 GSM 设备规格。|
+| 调制解调器打开/关闭时的 CNMI | 字符串 | '2,1,0,2,0' / '2,0,2,2,1' | 定义消息是否保存在 SIM 卡上或立即传送。请参考您的 GSM 设备规格。|
-
+
-### 串口设置
-请参阅您的 GMS 设备规格(Google 在大多数情况下会提供帮助)
+### 串行端口设置
+请参考您的 GMS 设备规格(大多数情况下 Google 都会提供帮助)
-|名称 |类型 |默认|描述 |
+| 名称 | 类型 | 默认 | 描述 |
| -------- | ------- | ------- | ------------------------------------------------------- |
-|波特率|数量 | 19200 | 19200端口的波特率。 |
-|数据位 |数量 | 8 |必须是以下之一:8、7、6 或 5。 |
-|停止位 |数量 | 1 |必须是以下之一:1 或 2。 |
-|平价 |字符串| “无” |必须是以下之一:“无”、“偶数”、“标记”、“奇数”、“空格”。 |
-| rtscts |布尔 |假 |流量控制设置|
-|克森 |布尔 |假 |流量控制设置|
-|关闭 |布尔 |假 |流量控制设置|
-| xany |布尔 |假 |流量控制设置|
+| baudRate | number | 19200 | 端口的波特率。|
+| 数据位 | 数字 | 8 | 必须是以下之一:8、7、6 或 5。|
+| stopBits | 数字 | 1 | 必须是以下之一:1 或 2。|
+| 奇偶校验 | 字符串 | “无” | 必须是以下之一:'无','偶数','标记','奇数','空格'。|
+| rtscts | 布尔值 | false | 流量控制设置 |
+| xon | boolean | false | 流量控制设置 |
+| xoff | 布尔值 | false | 流量控制设置 |
+| xany | boolean | false | 流控制设置 |
### 其他设置和建议
-#### 指定为适配器 - 对象 (`admin.x`)
-- 您的姓名(默认为 `ownNumber`),最大长度为 16 个字符。
-- 你的电话号码。
-- SMS 操作模式(`PDU` 或 `SMS`,默认且推荐使用`PDU`)。
+#### 指定为适配器 - 对象(`admin.x`)
+- 您的名字(默认为“ownNumber”),最大长度为 16 个字符。
+- 您的电话号码。
+- SMS 操作模式(“PDU” 或 “SMS”,“PDU” 是默认的和推荐的)。
-所有输入都必须使用 ack=false 进行!
+所有输入都必须以 ack=false 进行!
#### 收件箱/发件箱 - 历史记录
-通过激活 `inbox.messageRaw` - 对象和 `sendSMS.messageRaw` - 对象的历史记录适配器,您可以获得 SMS 流量的完整收件箱和发件箱。
+通过激活`inbox.messageRaw` 对象和`sendSMS.messageRaw` 对象的历史适配器,您可以获得 SMS 流量的完整收件箱和发件箱。
## 功能
### 接收短信
-传入的 SMS 会写入 `inbox.*` - 对象。 `inbox.messageRaw` 可用作进一步操作的触发器(例如通过电子邮件适配器转发传入的短信)。
+收到的短信被写入 `inbox.*` 对象。`inbox.messageRaw` 可用作进一步操作的触发器(例如通过电子邮件适配器转发收到的短信)。
-### 发简讯
-要发送短信,请填写`sendSMS.recipient, sendSMS.message` 和可选的`sendSMS.alert`,然后按`sendSMS.send` - 按钮。或者使用以下形式的字符串设置 `sendSMS.messageRaw` - 对象并 ack=false:`{"recipient": "Number", "message":"Yourtext", "alert":"false"}`。
+### 发送短信
+要发送短信,请填写`sendSMS.recipient, sendSMS.message` 和可选的`sendSMS.alert`,然后按`sendSMS.send` - 按钮。或者使用以下格式的字符串设置`sendSMS.messageRaw` - 对象,并设置 ack=false:`{"recipient": "Number", "message":"Yourtext", "alert":"false"}`。
-此适配器还为其他脚本的 blockly 和 sendTo 功能提供了一个 comm-block (sendTo("gsmsms._InstanceNo_", "send", {text: '_yourText_',recipient: '_phonenumber_',alert: '_false/true_'} );)。
+该适配器还为其他脚本的 blockly 和 sendTo 功能提供了一个通信块(sendTo(“gsmsms._InstanceNo_”,“send”,{text:'_yourText_',recipient:'_phonenumber_',alert:'_false/true_'});)。
-### 执行AT+命令
-!请务必知道您在设置 AT+ 命令时做什么,这是您的 SIM 卡/设备。
+### 执行 AT+ 命令
+!设置 AT+ 命令时,请务必了解您要做什么,它是您的 SIM 卡/设备。
-AT+命令以`admin.atCommandSLR`的格式发送,格式为`AT+XXXXy`。
-发送您喜欢的任何命令,但请注意,您只会看到响应的最后一行。
+AT+ 命令以 `AT+XXXXy` 格式设置 `admin.atCommandSLR` 发送。
+发送任何你喜欢的命令,但请注意,你只会看到响应的最后一行。
-## 串口-gsm
-该适配器基于[串口-GSM 插件](https://github.com/zabsalahid/serialport-gsm),用于与 GSM 调制解调器通信,主要用于 SMS。
+## 串行端口-gsm
+此适配器基于[SerialPort-GSM 插件](https://github.com/zabsalahid/serialport-gsm),用于与 GSM 调制解调器进行通信,主要用于 SMS。
+
+## 致谢
+如果没有 @forelleblau (https://github.com/forelleblau) 的出色工作,这个适配器就不可能实现,他开发了此适配器的早期版本。
## 开发者手册
-本部分适用于开发人员。稍后可以删除
+此部分供开发人员使用。稍后可以删除
### 入门
-您快完成了,只剩下几步了:
+您几乎已经完成了,只剩下几个步骤:
-1. 前往 [main.js](main.js) 并开始编程!
+1. 转到 [main.js](main.js)并开始编程!
### 最佳实践
-我们收集了一些有关 ioBroker 开发和编码的 [最佳实践](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices)。如果您是 ioBroker 或 Node.js 的新手,您应该查看它们。如果您已经有经验,您也应该看看它们 - 您可能会学到新的东西:)
+我们收集了一些关于 ioBroker 开发和编码的 [最佳实践](https://github.com/ioBroker/ioBroker.repositories#development-and-coding-best-practices)。如果您是 ioBroker 或 Node.js 的新手,您应该查看它们。如果您已经有经验,您也应该看看它们 - 您可能会学到一些新东西 :)
### `package.json` 中的脚本
-为了您的方便,预定义了几个 npm 脚本。您可以使用`npm run `运行它们
+为方便您使用,我们预定义了几个 npm 脚本。您可以使用 `npm run ` 运行它们
-|脚本名称 |描述 |
+| 脚本名称 | 说明 |
\|-------------\|-------------\|
-\| `test:js` |执行您在 `*.test.js` 文件中定义的测试。 |
-\| `test:package` |确保您的`package.json`和`io-package.json`有效。 |
-\| `test:unit` |使用单元测试测试适配器启动(快速,但可能需要模块模拟才能工作)。 |
-\| `test:integration` |使用 ioBroker 的实际实例测试适配器启动。 |
-\| `test` |对包文件和测试执行最小测试运行。 |
-\| `check` |对您的代码执行类型检查(不编译任何内容)。 |
-\| `lint` |运行`ESLint`来检查代码是否存在格式错误和潜在错误。 |
-\| `release` |创建新版本,请参阅[`@alcalzone/release-script`](https://github.com/AlCalzone/release-script#usage)了解更多详细信息。 |
+\| `test:js` | 执行您在 `*.test.js` 文件中定义的测试。 |
+\| `test:package` | 确保您的 `package.json` 和 `io-package.json` 有效。 |
+\| `test:unit` | 使用单元测试测试适配器启动(快速,但可能需要模块模拟才能工作)。 |
+\| `test:integration` | 使用 ioBroker 的实际实例测试适配器启动。 |
+\| `test` | 对包文件和您的测试执行最少的测试运行。 |
+\| `check` | 对您的代码执行类型检查(不编译任何内容)。 |
+\| `lint` | 运行`ESLint` 检查代码中是否存在格式错误和潜在错误。|
+\| `release` | 创建新版本,有关更多详细信息,请参阅[`@alcalzone/发布脚本`](https://github.com/AlCalzone/release-script#usage)。|
### 编写测试
-如果做得正确,测试代码是非常宝贵的,因为它让您有信心更改代码,同时准确地知道是否以及何时出现问题。关于测试驱动开发主题的好读物是。
-尽管在代码之前编写测试一开始可能看起来很奇怪,但它有非常明显的优点。
+如果做得正确,测试代码是无价的,因为它让你有信心更改代码,同时确切地知道是否以及何时会出现问题。关于测试驱动开发的一篇好文章是。
+虽然在编写代码之前编写测试乍一看可能很奇怪,但它有非常明显的好处。
-该模板为您提供适配器启动和包文件的基本测试。
-建议您将自己的测试添加到其中。
+该模板为您提供了适配器启动和包文件的基本测试。
+建议您将自己的测试添加到组合中。
### 发布适配器
-使用 GitHub Actions,每当您推送与 `v..` 形式匹配的新 git 标签时,您都可以在 npm 上启用自动发布。我们**强烈建议**您这样做。 `.github/workflows/test-and-release.yml` 中描述了必要的步骤。
+使用 GitHub Actions,您可以在推送符合 `v..` 格式的新 git 标签时启用 npm 上的自动发布。我们 **强烈建议** 您这样做。必要的步骤在 `.github/workflows/test-and-release.yml` 中进行了描述。
-由于您安装了发布脚本,因此您只需调用以下命令即可创建新版本:
+由于您安装了发布脚本,您只需调用以下命令即可创建一个新的发布:
```bash
npm run release
```
-发布脚本的其他命令行选项在 [release-script 文档]( )中进行了解释。
+发布脚本的其他命令行选项在 [release-script 文档]( ) 中进行了说明。
-要在 ioBroker 中发布您的适配器,请参阅[ioBroker.存储库](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository)的文档。
+要在 ioBroker 中发布您的适配器,请参阅[ioBroker.repositories](https://github.com/ioBroker/ioBroker.repositories#requirements-for-adapter-to-get-added-to-the-latest-repository) 的文档。
### 使用 dev-server 手动测试适配器
由于您设置了`dev-server`,您可以使用它来运行、测试和调试您的适配器。
-您可以通过从您的开发目录调用来启动`dev-server`:
+您可以通过从开发目录调用来启动`dev-server`:
```bash
dev-server watch
```
-然后,ioBroker.admin 界面将在 可用
+然后 ioBroker.admin 界面将在 上可用
请参阅[`dev-server` 文档](https://github.com/ioBroker/dev-server#command-line)了解更多详情。
@@ -173,33 +176,36 @@ dev-server watch
Placeholder for the next version (at the beginning of the line):
### **WORK IN PROGRESS**
-->
+### 1.0.0 (2024-11-23)
+- (mcm1957) Adapter requires node.js 20 now.
+- (mcm1957) Adapter requires js-controller 5.0.19 and admin 6.17.14 now.
+- (mcm1957) Adapter has been moved to iobroker-community-adapters organization
+- (mcm1957) Some issues reported by adapter checker have been fixed.
+- (mcm1957) Dependencies have been update
-### **WORK IN PROGRESS**
+### 0.0.6
+- (forelleblau) jsonConfig.json, notifications-manager
### 0.0.5
-
-- (forelleblau) bug fixed (adapter set "undefined" into state values)
+- (forelleblau) bug fixed (adapter set "undefined" into state values)
### 0.0.4
-
-- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
+- (Apollon77) Optimizations, brush up to comply with ioBroker.repositories requirements
### 0.0.3
-
-- (forelleblau) dependencies updated, bugs fixed
+- (forelleblau) dependencies updated, bugs fixed
### 0.0.2
-
-- (forelleblau) first published version
+- (forelleblau) first published version
### 0.0.1
-
-- (forelleblau) initial release
+- (forelleblau) initial release
## License
MIT License
+Copyright (c) 2023-2024 ioBroker Community Developers
Copyright (c) 2022-2023 forelleblau
Permission is hereby granted, free of charge, to any person obtaining a copy
diff --git a/docs/zh-cn/adapterref/iobroker.hmip/README.md b/docs/zh-cn/adapterref/iobroker.hmip/README.md
index 7e86c0c6e..cbbe35ca9 100644
--- a/docs/zh-cn/adapterref/iobroker.hmip/README.md
+++ b/docs/zh-cn/adapterref/iobroker.hmip/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.hmip/README.md
title: ioBroker HomeMatic IP 云接入点适配器
-hash: ekRq8vpH7VxIxoTyjOdTaF1cYe0ObcYxRySl20Iw8Ek=
+hash: AOqSLzDU2l/8FlOM/hk1/fp2CdmE5Fex9L7VLEpjPUM=
---
![标识](../../../en/adapterref/iobroker.hmip/admin/homematic.png)
@@ -35,8 +35,8 @@ hash: ekRq8vpH7VxIxoTyjOdTaF1cYe0ObcYxRySl20Iw8Ek=
我会不断改进它,但这需要时间。如果社区能通过 Pull Request 等方式提供帮助,我将不胜感激。
对于无法正常工作的 HmIP 设备,请使用此信息创建一个问题(每个设备一个,如果可能,请在主题中写上技术名称)。
-将 ioBroker 中的适配器日志切换到傻瓜模式,并添加设备的 json,该 json 会打印到问题日志中。
-我可能还需要状态更改的 json。
+将 ioBroker 中的适配器日志切换到傻瓜模式,并添加设备的 JSON,该 JSON 会打印到问题日志中。
+我可能还需要状态更改的 JSON。
谢谢你!
@@ -68,8 +68,14 @@ https://github.com/ioBroker/AdapterRequests/issues/62
### **正在进行中** -->
## Changelog
-### 1.24.1 (2024-08-06)
+### 1.25.0 (2024-11-08)
+* (bluefox) Updated packages
+* (bluefox) User prettier for code
+* (bluefox) Added GUI test for the admin component
+
+### 1.24.3 (2024-09-02)
* (bluefox) GUI was migrated for Admin 7
+* (bluefox) Removed gulp
### 1.23.4 (2024-07-07)
* (Apollon77) previousShutterLevel and hardwareColorTemperatureColdWhite datatype corrected
diff --git a/docs/zh-cn/adapterref/iobroker.imap/README.md b/docs/zh-cn/adapterref/iobroker.imap/README.md
index bd972df33..b11f24c1a 100644
--- a/docs/zh-cn/adapterref/iobroker.imap/README.md
+++ b/docs/zh-cn/adapterref/iobroker.imap/README.md
@@ -8,13 +8,14 @@ BADGE-GitHub commit activity: https://img.shields.io/github/commit-activity/m/Lu
BADGE-GitHub commits since latest release: https://img.shields.io/github/commits-since/Lucky-ESA/ioBroker.imap/latest
BADGE-GitHub last commit: https://img.shields.io/github/last-commit/Lucky-ESA/ioBroker.imap
BADGE-GitHub issues: https://img.shields.io/github/issues/Lucky-ESA/ioBroker.imap
-BADGE-Beta: https://img.shields.io/npm/v/iobroker.imap.svg?color=red&label=beta
+BADGE-Current version in stable repository: https://iobroker.live/badges/imap-stable.svg
BADGE-NPM: https://nodei.co/npm/iobroker.imap.png?downloads=true
+BADGE-Known Vulnerabilities: https://snyk.io/test/github/Lucky-ESA/ioBroker.imap/badge.svg
translatedFrom: de
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.imap/README.md
title: ioBroker.imap
-hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
+hash: BE8xTSdendU5kOGm3Qc7OzvaA15xSrafXCkQWeHNWpQ=
---
![标识](../../../de/admin/imap.png)
@@ -74,7 +75,7 @@ hash: LNk2CBO2kvK/Fj1IY3zLUsUnJ7v6kVAMY/5qnGBDHt0=
- `max.`:最大系统数据点 email_01...email_02... (1-99)
- `最大。 HTML`:HTML 格式的电子邮件的最大数量。必须大于最大数据点 (1-99)
-- `TLS`:使用 TLS 连接 - 默认为 true
+- `TLS`:使用 TLS 连接 - 默认值为 true
- `Flags`:IMAP 查询的标志。可能的标志:
```
@@ -145,16 +146,16 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
![imap_create_mailparser.png](../../../de/adapterref/iobroker.imap/img/imap_create_mailparser.png)
-# 数据点
+# 数据点
### 数据点`imap.0`
[概括](#zusammenfassung)
|对象|描述 |
| --------------------- | ----------------------------------------------------------------------------------------------- |
| imap.0.json_imap | imap.0.json_imap |与上次活动的 IMAP 连接的名称。触发传入电子邮件或更新。 |
-| imap.0.json_table | imap.0.json_table |最后将 IMAP 连接更新为 VIS 的 JSON 表。 |
-| imap.0.online_counter | imap.0.online_counter |活动 IMAP 连接数。 |
-| imap.0.online_history | imap.0.online_history | JSON 格式的连接活动历史记录 - [例子](#array-json-imap0online_history)。 |
+| imap.0.json_table | imap.0.json_table |最后将 IMAP 连接更新为 VIS 的 JSON 表。 |
+| imap.0.online_counter | imap.0.online_counter |活动 IMAP 连接数。 |
+| imap.0.online_history | imap.0.online_history | JSON 格式的连接活动历史记录 - [例子](#array-json-imap0online_history)。 |
![imap_total_overview.png](../../../de/adapterref/iobroker.imap/img/imap_total_overview.png)
@@ -191,7 +192,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.email.email_01.receive | imap.0.xxx.email.email_01.receive |收到日期 |
| imap.0.xxx.email.email_01.seq |序列号 |
| imap.0.xxx.email.email_01.size | imap.0.xxx.email.email_01.size电子邮件的大小(以字节为单位)|
-| imap.0.xxx.email.email_01.subject | imap.0.xxx.email.email_01.subject电子邮件主题 |
+| imap.0.xxx.email.email_01.subject | imap.0.xxx.email.email_01.subject | imap.0.xxx.email.email_01.subject电子邮件主题 |
| imap.0.xxx.email.email_01.texthtml |内容为 HTML |
| imap.0.xxx.email.email_01.to | imap.0.xxx.email.email_01.to |接收器作为数组 |
| imap.0.xxx.email.email_01.uid |唯一的UID |
@@ -207,22 +208,22 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.infos.auth_cram-md5 | imap.0.xxx.infos.auth_cram-md5 | imap.0.xxx.infos.auth_cram-md5认证方式 auth_cram-md5 |
| imap.0.xxx.infos.auth_xoauth | imap.0.xxx.infos.auth_xoauth |身份验证方法 xoauth |
| imap.0.xxx.infos.auth_xoauth2 |身份验证方法 xoauth2 |
-| imap.0.xxx.infos.condstore | imap.0.xxx.infos.condstore | MODSEQ 请求可能[请参考](https://datatracker.ietf.org/doc/html/rfc4551#page-18) |
-| imap.0.xxx.infos.id | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.idle | imap.0.xxx.infos.idle | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.literal\* | imap.0.xxx.infos.literal\* | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.logindisabled | imap.0.xxx.infos.logindisabled | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.move | imap.0.xxx.infos.move |电子邮件可以移动。 [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.命名空间 | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.quota | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sasl-ir | imap.0.xxx.infos.sasl-ir | imap.0.xxx.infos.sasl-ir [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sort | imap.0.xxx.infos.sort |电子邮件将以排序方式检索 [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.sort_display | imap.0.xxx.infos.sort_display | imap.0.xxx.infos.sort_display标头信息已排序。[请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.starttls | imap.0.xxx.infos.starttls | imap.0.xxx.infos.starttls支持starttls。然后可以在实例配置中设置。 [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.thread_orderedsubject | imap.0.xxx.infos.thread_orderedsubject | imap.0.xxx.infos.thread_orderedsubject [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.thread_references | imap.0.xxx.infos.thread_references [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.unselect | imap.0.xxx.infos.unselect | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
-| imap.0.xxx.infos.x-gm-ext-1 | imap.0.xxx.infos.x-gm-ext-1 | [请参考](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.condstore | imap.0.xxx.infos.condstore | MODSEQ 请求可能[看](https://datatracker.ietf.org/doc/html/rfc4551#page-18) |
+| imap.0.xxx.infos.id | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.idle | imap.0.xxx.infos.idle | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.literal\* | imap.0.xxx.infos.literal\* | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.logindisabled | imap.0.xxx.infos.logindisabled | imap.0.xxx.infos.logindisabled [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.move | imap.0.xxx.infos.move |电子邮件可以移动。 [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.命名空间 | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.quota | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sasl-ir | imap.0.xxx.infos.sasl-ir | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sort | imap.0.xxx.infos.sort |电子邮件将以排序方式检索 [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.sort_display | imap.0.xxx.infos.sort_display | imap.0.xxx.infos.sort_display标头信息已排序。[看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.starttls | imap.0.xxx.infos.starttls | imap.0.xxx.infos.starttls支持starttls。然后可以在实例配置中设置。 [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.thread_orderedsubject | imap.0.xxx.infos.thread_orderedsubject | imap.0.xxx.infos.thread_orderedsubject [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.thread_references | imap.0.xxx.infos.thread_references [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.unselect | imap.0.xxx.infos.unselect | [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
+| imap.0.xxx.infos.x-gm-ext-1 | imap.0.xxx.infos.x-gm-ext-1 | imap.0.xxx.infos.x-gm-ext-1 [看](https://www.iana.org/assignments/imap-capabilities/imap-capabilities.xhtml) |
| imap.0.xxx.infos.x-gm-ext-1 | imap.0.xxx.infos.x-gm-ext-1 | [参见](https://www.iana.org/assignments/imap-capability/imap-capability.xhtml) |
![imap_overview_capability.png](img/imap_overview_capability.png)![imap_overview_capability_1.png](../../../de/adapterref/iobroker.imap/img/imap_overview_capability_1.png)
@@ -231,24 +232,30 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
[概括](#zusammenfassung)
|对象|描述 |
-| ------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.apply_html | imap.0.xxx.remote.apply_html |将更改应用到 imap.0.xxx.remote.html。 |
-| imap.0.xxx.remote.change_folder | imap.0.xxx.remote.change_folder | imap.0.xxx.remote.change_folder |实例配置:更改应监视和显示的邮件文件夹。仅在重新启动后才会重置。 |
-| imap.0.xxx.remote.criteria | imap.0.xxx.remote.criteria |实例配置:更改搜索。仅在重新启动后才会重置。 |
-| imap.0.xxx.remote.reload_emails | imap.0.xxx.remote.reload_emails | imap.0.xxx.remote.reload_emails重新加载电子邮件。 |
+| -------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| imap.0.xxx.remote.apply_html | imap.0.xxx.remote.apply_html |将更改应用到 imap.0.xxx.remote.html。 |
+| imap.0.xxx.remote.change_folder | imap.0.xxx.remote.change_folder | imap.0.xxx.remote.change_folder |实例配置:更改应监视和显示的邮件文件夹。仅在重新启动后才会重置。 |
+| imap.0.xxx.remote.criteria | imap.0.xxx.remote.criteria |实例配置:更改搜索。仅在重新启动后才会重置。 |
+| imap.0.xxx.remote.mailbox_folder_change_name | imap.0.xxx.remote.mailbox_folder_change_name |更改邮箱文件夹名称示例[“INBOX.imap”、“INBOX.newimap”] [参见](#ordnername) |
+| imap.0.xxx.remote.mailbox_folder_create | imap.0.xxx.remote.mailbox_folder_create |创建邮箱文件夹 |
+| imap.0.xxx.remote.mailbox_folder_delete | imap.0.xxx.remote.mailbox_folder_delete |删除包含内容的邮箱文件夹 |
+| imap.0.xxx.remote.reload_emails | imap.0.xxx.remote.reload_emails重新加载电子邮件。 |
| imap.0.xxx.remote.search_start | imap.0.xxx.remote.search_start | imap.0.xxx.remote.search_start | imap.0.xxx.remote.search_start将更改应用于change_folder、条件和show_mails |
-| imap.0.xxx.remote.show_mails | imap.0.xxx.remote.show_mails实例配置:要加载的电子邮件数量(最大 HTML)。仅在重新启动后才会重置。当然它应该大于值max。 |
-| imap.0.xxx.remote.vis_command | imap.0.xxx.remote.vis_command | imap.0.xxx.remote.vis_command来自 VIS 的命令从选择框中移动电子邮件。仅由 VIS 使用。 |
+| imap.0.xxx.remote.show_mails | imap.0.xxx.remote.show_mails实例配置:要加载的电子邮件数量(最大 HTML)。仅在重新启动后才会重置。当然它应该大于值 max | 。 |
+| imap.0.xxx.remote.vis_command | imap.0.xxx.remote.vis_command | imap.0.xxx.remote.vis_command来自 VIS 的命令从选择框中移动电子邮件。仅由 VIS 使用。 |
![imap_overview_remote.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote.png)
+### 文件夹名称
+旧文件夹名称可以在 imap.0.xxx.remote.change_folder 对象中查看
+
### 数据点`imap.0.benutzername.remote.copy`
[概括](#zusammenfassung)
|对象|描述 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.copy.apply_copy | imap.0.xxx.remote.copy.apply_copy |应用文件夹和 uid 更改。 |
-| imap.0.xxx.remote.copy.folder | imap.0.xxx.remote.copy.folder | imap.0.xxx.remote.copy.folder |选择应将所选电子邮件复制到的文件夹。 |
+| imap.0.xxx.remote.copy.apply_copy | imap.0.xxx.remote.copy.apply_copy |应用文件夹和 uid 更改。 |
+| imap.0.xxx.remote.copy.folder | imap.0.xxx.remote.copy.folder | imap.0.xxx.remote.copy.folder |选择应将所选电子邮件复制到的文件夹。 |
| imap.0.xxx.remote.copy.uid | imap.0.xxx.remote.copy.uid |输入应在此处复制的电子邮件的 UID。 UID 可以在 imap.0.xxx.json 或电子邮件文件夹中找到 |
![imap_overview_remote_copy.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_copy.png)
@@ -258,7 +265,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
|对象|描述 |
| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.flag.apply_flag | imap.0.xxx.remote.flag.apply_flag |应用设置、类型和 uid 更改。 |
+| imap.0.xxx.remote.flag.apply_flag | imap.0.xxx.remote.flag.apply_flag |应用设置、类型和 uid 更改。 |
| imap.0.xxx.remote.flag.set | imap.0.xxx.remote.flag.set选择setFlag用于设置标志,addFlag用于添加标志,delFlag用于删除标志|
| imap.0.xxx.remote.flag.type | imap.0.xxx.remote.flag.type |选择要添加、设置或删除的标志 |
| imap.0.xxx.remote.flag.uid | imap.0.xxx.remote.flag.uid |应对其进行标志更改的 UID。 UID 可以在 imap.0.xxx.json 或电子邮件文件夹中找到 |
@@ -291,8 +298,8 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.headline_align_column_4 |文本对齐标题列 4 - 默认居中 可能居中、左对齐、右对齐和自动 |
| imap.0.xxx.remote.html.headline_align_column_5 | imap.0.xxx.remote.html.headline_align_column_5文本对齐标题栏 5 - 默认居中 可能居中、左对齐、右对齐和自动 |
| imap.0.xxx.remote.html.headline_align_column_6 |文本对齐标题列 6 - 默认居中 可能居中、左对齐、右对齐和自动 |
-| imap.0.xxx.remote.html.headline_align_column_7 | imap.0.xxx.remote.html.headline_align_column_7 |文本对齐标题列 7 - 默认居中 可能居中、左对齐、右对齐和自动 |
-| imap.0.xxx.remote.html.headline_align_column_8 |文本对齐标题列 8 - 默认居中 可能居中、左对齐、右对齐和自动 |
+| imap.0.xxx.remote.html.headline_align_column_7 | imap.0.xxx.remote.html.headline_align_column_7文本对齐标题列 7 - 默认居中 可能居中、左对齐、右对齐和自动 |
+| imap.0.xxx.remote.html.headline_align_column_8 | imap.0.xxx.remote.html.headline_align_column_8文本对齐标题列 8 - 默认居中 可能居中、左对齐、右对齐和自动 |
| imap.0.xxx.remote.html.headline_align_column_9 | imap.0.xxx.remote.html.headline_align_column_9文本对齐标题列 9 - 默认居中 可能居中、左对齐、右对齐和自动 |
| imap.0.xxx.remote.html.headline_align_column_10 | imap.0.xxx.remote.html.headline_align_column_10文本对齐标题列 10 - 默认居中 可能居中、左对齐、右对齐和自动 |
| imap.0.xxx.remote.html.headline_color | imap.0.xxx.remote.html.headline_color |边框颜色主体 - 标准 #BD5A3C |
@@ -303,14 +310,14 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
|对象|描述 |
| ---------------------------------------------- | ------------------------------------------------------------- |
-| imap.0.xxx.remote.html.headline_column_width_2 | imap.0.xxx.remote.html.headline_column_width_2 |列宽第 2 列 - 默认自动 - 可能为 px 或 % |
+| imap.0.xxx.remote.html.headline_column_width_2 | imap.0.xxx.remote.html.headline_column_width_2 |列宽 第 2 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_column_width_3 | imap.0.xxx.remote.html.headline_column_width_3 |列宽第 3 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_column_width_4 |列宽第 4 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_column_width_5 | imap.0.xxx.remote.html.headline_column_width_5 |列宽第 5 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_column_width_6 |列宽第 6 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_column_width_7 | imap.0.xxx.remote.html.headline_column_width_7 |列宽第 7 列 - 默认自动 - 可能为 px 或 % |
-| imap.0.xxx.remote.html.headline_column_width_8 | imap.0.xxx.remote.html.headline_column_width_8 |列宽 第 8 列 - 默认自动 - 可能为 px 或 % |
-| imap.0.xxx.remote.html.headline_column_width_9 | imap.0.xxx.remote.html.headline_column_width_9 | imap.0.xxx.remote.html.headline_column_width_9列宽第 9 列 - 默认自动 - 可能为 px 或 % |
+| imap.0.xxx.remote.html.headline_column_width_8 |列宽第 8 列 - 默认自动 - 可能为 px 或 % |
+| imap.0.xxx.remote.html.headline_column_width_9 | imap.0.xxx.remote.html.headline_column_width_9 |列宽第 9 列 - 默认自动 - 可能为 px 或 % |
| imap.0.xxx.remote.html.headline_font_size | imap.0.xxx.remote.html.headline_font_size | imap.0.xxx.remote.html.headline_font_size行中的文本大小 - 默认 16 px |
| imap.0.xxx.remote.html.headline_height | imap.0.xxx.remote.html.headline_height | imap.0.xxx.remote.html.headline_height单元格高度 - 默认 35 px |
| imap.0.xxx.remote.html.headline_style | imap.0.xxx.remote.html.headline_style |单元格样式 - 默认正常 - 可能正常或粗体 |
@@ -360,10 +367,10 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
| imap.0.xxx.remote.html.text_select_copy | imap.0.xxx.remote.html.text_select_copy |在副本选择框中开始文本 - 标准副本|
| imap.0.xxx.remote.html.text_select_delflag | imap.0.xxx.remote.html.text_select_delflag在标志选择框中开始文本 - 默认 delFlags - |
| imap.0.xxx.remote.html.text_select_move | imap.0.xxx.remote.html.text_select_move |在复制选择框中开始文本 - 默认移动 |
-| imap.0.xxx.remote.html.text_select_setflag | imap.0.xxx.remote.html.text_select_setflag |标志选择框中的起始文本 - 默认 setFlags - |
+| imap.0.xxx.remote.html.text_select_setflag | imap.0.xxx.remote.html.text_select_setflag标志选择框中的起始文本 - 默认 setFlags - |
| imap.0.xxx.remote.html.text_seq | imap.0.xxx.remote.html.text_seq |标题文本第 6 列 - 标准 SEQ |
| imap.0.xxx.remote.html.text_setflag | imap.0.xxx.remote.html.text_setflag |标题文本第 10 列 - 标准标记操作 |
-| imap.0.xxx.remote.html.text_subject | imap.0.xxx.remote.html.text_subject |标题文本列 3 - 默认主题 |
+| imap.0.xxx.remote.html.text_subject | imap.0.xxx.remote.html.text_subject | imap.0.xxx.remote.html.text_subject标题文本列 3 - 默认主题 |
| imap.0.xxx.remote.html.text_uid | imap.0.xxx.remote.html.text_uid |标题文本列 8 - 默认 UID |
| imap.0.xxx.remote.html.top_font | imap.0.xxx.remote.html.top_font字体页眉和页脚 - 标准 Helvetica |
@@ -383,8 +390,8 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
|对象|描述 |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
-| imap.0.xxx.remote.move.apply_move | imap.0.xxx.remote.move.apply_move |应用文件夹和 uid 更改。 |
-| imap.0.xxx.remote.move.folder | imap.0.xxx.remote.move.folder | imap.0.xxx.remote.move.folder选择应将所选电子邮件移动到的文件夹。 |
+| imap.0.xxx.remote.move.apply_move | imap.0.xxx.remote.move.apply_move |应用文件夹和 uid 更改。 |
+| imap.0.xxx.remote.move.folder | imap.0.xxx.remote.move.folder | imap.0.xxx.remote.move.folder选择应将所选电子邮件移动到的文件夹。 |
| imap.0.xxx.remote.move.uid | imap.0.xxx.remote.move.uid |在此处输入应移动的电子邮件的 UID。您可以在 imap.0.xxx.json 或电子邮件文件夹中找到 UID |
![imap_overview_remote_move.png](../../../de/adapterref/iobroker.imap/img/imap_overview_remote_move.png)
@@ -417,7 +424,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
- 从 IMAP 连接加载所有数据并自行处理。实例设置用作搜索条件。
- 危险! RAM消耗高
-- 然后数据以 JSON 形式传送。
+- 然后数据以 JSON 形式传递。
- 随着日志输出,日志文件变得非常大。因此稍后再次删除日志输出。
- 需要创建一个名为“result”的变量。
- [示例](/docs/de/EXAMPLE.md)
@@ -573,13 +580,48 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
## Changelog
-
-
### **WORK IN PROGRESS**
+- (Lucky-ESA) Mailbox folder delete added
+- (Lucky-ESA) Mailbox folder create added
+- (Lucky-ESA) Change Mailbox Folder name added
+- (Lucky-ESA) IMAP package changed
+
+### 0.2.2 (2024-11-07)
+
+- (Lucky-ESA) New design for settings page added
+- (Lucky-ESA) Crash if uid is empty for new emails
+
+### 0.2.1 (2024-09-16)
+
+- (Lucky-ESA) Update dependencies
+- (Lucky-ESA) Changed Log info to debug
+- (Lucky-ESA) Fixed blockly setFlag crash
+
+### 0.2.0 (2024-06-15)
+
+- (Lucky-ESA) Updated Blockly definitions
+- (Lucky-ESA) JS-Controller >= 5.0.19 required
+- (Lucky-ESA) Admin >=6.13.16 required
+
+### 0.1.3 (2024-03-06)
+
+- (Lucky-ESA) Fixed setFlag
+- (Lucky-ESA) Fixed sendTo error during instance deletion ([#57](https://github.com/Lucky-ESA/ioBroker.imap/issues/57))
+- (Lucky-ESA) Mass email shift intercepted
+
+### 0.1.2 (2024-01-24)
+
+- (Lucky-ESA) Added missing translate
+- (Lucky-ESA) Updated package
+- (Lucky-ESA) Bug fixes
+
+### 0.1.1 (2023-09-11)
+
+- (Lucky-ESA) Delete wrong error parse message
+
+### 0.1.0 (2023-09-06)
+
- (Lucky-ESA) Added RAM consumption - Instance Settings
- (Lucky-ESA) Added german documention
- (Lucky-ESA) Added Mailparser options
@@ -642,7 +684,7 @@ UNSEEN - ungesehen – Nachrichten, bei denen das Flag „Gesehen“ nicht geset
MIT License
-Copyright (c) 2023 Lucky-ESA
+Copyright (c) 2023-2024 Lucky-ESA
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/docs/zh-cn/adapterref/iobroker.innoxel/README.md b/docs/zh-cn/adapterref/iobroker.innoxel/README.md
index 2fb255862..b64c49271 100644
--- a/docs/zh-cn/adapterref/iobroker.innoxel/README.md
+++ b/docs/zh-cn/adapterref/iobroker.innoxel/README.md
@@ -3,7 +3,7 @@ translatedFrom: en
translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译
editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.innoxel/README.md
title: ioBroker.innoxel
-hash: DYyTobJiWFCFHEUKBVPRm8iV5QBcZWMfhs3JkLncA9I=
+hash: TqfTBZ14ipWOHZEM5vYMcTxv//UOU3mtRfvsOq3kFj8=
---
![标识](../../../en/adapterref/iobroker.innoxel/admin/innoxel.png)
@@ -22,30 +22,32 @@ Innoxel Master 3 适配器(https://innoxel.ch)
![测试与发布](https://github.com/matthsc/ioBroker.innoxel/workflows/Test%20and%20Release/badge.svg)
## 要求
--NodeJS >= 18.x
-- ioBroker >= 4.x,管理员 >= 5.x
+-NodeJS >= 20.x
+- ioBroker >= 6.0.11,管理员 >= 6.x
- Innoxel Master 3 智能家居系统
## 安装
在适配器成为稳定存储库的一部分之前,您可以通过在 ioBroker 中启用专家模式来安装最新版本,然后从 npm 安装适配器。不要直接从 Github 安装,这会导致适配器启动时出现错误(“找不到启动文件”)。
-安装后,创建一个新的实例并配置设置:
+适配器可以直接从稳定/测试版存储库安装。安装后,创建一个新实例并配置设置:
- 访问 innoxel master 的连接设置
- - IP地址
- - 港口
- - 用户名
- - 密码
+- IP地址
+ - 港口
+- 用户名
+ - 密码
- 不同区域的轮询间隔
- 状态改变(即开关、调光器)
- 室内气候/恒温器
- - 天气
+ - 天气
- innoxel master 设备详细信息(需要连接到 innoxel master 的用户具有管理员权限)
+请注意:不要直接从 Github 安装适配器,这将导致适配器启动时出现错误(“找不到启动文件”)。
+
## 支持的模块和固件
该适配器的预发布版本已运行 2 年多,固件版本为 1.4.1.0,之后为 1.5.1.0。
-此首次发布的版本已使用固件 1.6.0.0 进行测试。
+最初发布的版本已经使用固件 1.6.0.0 进行了测试。
以下模块已经过测试/受支持:
@@ -55,7 +57,7 @@ Innoxel Master 3 适配器(https://innoxel.ch)
- 暗淡 4 x 600 VA
- 品尝者 RGB
- 热
-- 气象站 P03/3-RS485-CET
+- Wetterstation P03/3-RS485-CET
如果它适用于不同的模块,或者您有其他不起作用的模块,请随时打开问题。
@@ -71,7 +73,7 @@ sendTo("innoxel.0", "triggerInModule", ":", callback);
// i.e. to trigger button 1 on "Taster" with id/address 20
sendTo("innoxel.0", "triggerInModule", "20:1");
sendTo("innoxel.0", "triggerInModule", "20:1", () => {
- // do something after the button press has been executed
+ // do something after the button press has been executed
});
```
@@ -83,12 +85,17 @@ sendTo("innoxel.0", "triggerInModule", "20:1", () => {
模拟按下“Taster”上的按钮。
```ts
-sendTo("innoxel.0", "setDimValue", ":::", callback);
+sendTo(
+ "innoxel.0",
+ "setDimValue",
+ ":::",
+ callback
+);
// i.e. to set the value of channel 7 on dim module 1 to 80%
sendTo("innoxel.0", "setDimValue", "1:7:80");
sendTo("innoxel.0", "setDimValue", "1:7:80", () => {
- // do something after value has been set
+ // do something after value has been set
});
```
@@ -102,12 +109,17 @@ sendTo("innoxel.0", "setDimValue", "1:7:80", () => {
设定加热或冷却温度。
```ts
-sendTo("innoxel.0", "setTemperature", ": | | | | |