diff --git a/docs/content.md b/docs/content.md index d87b3b8c8..9399a23ac 100644 --- a/docs/content.md +++ b/docs/content.md @@ -78,14 +78,13 @@ * [Best Practices](logic/examples) * en:Cloud-Services & Apps;de:Cloud-Services & Apps;ru:Облачные сервисы & Apps;zh-cn:云服务 - * [IoT](cloud/iot) * [Introduction](cloud/README) + * [IoT](cloud/iot) * [Visualisations](cloud/viz) * [Editors](cloud/editor) * [Alexa Smarthome-Skill](cloud/alexasmart) * [Alexa Custom-Skill](cloud/alexacustom) - * [Android App](cloud/androidapp) - * [iOS App](cloud/iosapp) + * [App](cloud/app) * en:Advanced configuration;de:Erweiterte Konfiguration;ru:Экспертные настройки;zh-cn:高级配置 * [Introduction](config/README) diff --git a/docs/de/basics/adapter.md b/docs/de/basics/adapter.md index 6c782ec42..d5e0e103e 100644 --- a/docs/de/basics/adapter.md +++ b/docs/de/basics/adapter.md @@ -1,49 +1,61 @@ --- -lastChanged: "24.08.2024" +lastChanged: 24.08.2024 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/de/basics/adapter.md +title: Controller und Adapter +translatedFrom: en +translatedWarning: Wenn Sie dieses Dokument bearbeiten möchten, löschen Sie bitte das Feld "translationsFrom". Andernfalls wird dieses Dokument automatisch erneut übersetzt +hash: rX78U8X1Tc4gCcfD0BxZf25oR3whd6R0b4YXewZbVtg= --- # Controller und Adapter - ## Was ist ein Controller? - Ein Controller in ioBroker ist eine zentrale Komponente, die für die Verwaltung und Koordination des gesamten ioBroker-Systems verantwortlich ist. -Er übernimmt Aufgaben wie die Verwaltung der Adapter, die Speicherung von Daten und die Bereitstellung von Schnittstellen für die Kommunikation zwischen den verschiedenen Komponenten des Systems. -Momentan ist Controller mit TypeScript geschrieben. +Er übernimmt Aufgaben wie die Verwaltung der Adapter, die Speicherung von Daten und die Bereitstellung von Schnittstellen für die Kommunikation zwischen den Adaptern. +Derzeit wird der Controller mit TypeScript geschrieben. ### Hauptfunktionen eines Controllers -- -- **Verwaltung der Adapter**: Der Controller überwacht und steuert die verschiedenen Adapter, die im ioBroker-System installiert sind. -- **Datenverwaltung**: Der Controller speichert und verwaltet die Daten, die von den Adaptern gesammelt werden. -- **Systemüberwachung**: Der Controller überwacht den Zustand des gesamten Systems und stellt sicher, dass alle Komponenten und Adapter ordnungsgemäß funktionieren. Er kann Benachrichtigungen und Alarme auslösen, wenn Probleme auftreten. +- **Adapterverwaltung**: Der Controller überwacht und steuert die verschiedenen im ioBroker-System installierten Adapter. +- **Datenverwaltung**: Der Controller speichert und verwaltet die von den Adaptern gesammelten Daten. +**Systemüberwachung**: Der Controller überwacht den Zustand des gesamten Systems und stellt sicher, dass alle Komponenten und Adapter ordnungsgemäß funktionieren. Bei Problemen kann er Benachrichtigungen und Alarme auslösen. +- **Kommunikation**: Der Controller stellt die Schnittstellen bereit, über die die verschiedenen Adapter von ioBroker miteinander kommunizieren können. ## Was ist ein Adapter? +Ein Adapter in ioBroker ist eine Softwarekomponente, die es Ihnen ermöglicht, verschiedene Geräte, Dienste oder Protokolle in das ioBroker-System zu integrieren. -Ein Adapter in ioBroker ist eine Softwarekomponente, die es ermöglicht, verschiedene Geräte, -Dienste oder Protokolle in das ioBroker-System zu integrieren. -Adapter fungieren als Schnittstellen zwischen ioBroker und den externen Systemen, die Sie steuern oder von denen sie Daten sammeln. +Es kann verschiedene Aktionen mit den gesammelten Daten durchführen, z. B. sie speichern, verarbeiten oder an andere Systeme weiterleiten. Es kann die Daten auch auf verschiedene Weise visualisieren. -### Hauptfunktionen eines Adapters +Adapter fungieren als Schnittstellen zwischen ioBroker und den externen Systemen, die Sie steuern oder von denen bzw. zwischen denen Sie Daten sammeln, und dem Menschen. -1. **Datenintegration**: Adapter sammeln Daten von externen Geräten oder Diensten und stellen diese Daten im ioBroker zur Verfügung. Dies kann z.B. Sensordaten, Statusinformationen oder andere relevante Daten umfassen. -2. **Steuerung**: Adapter ermöglichen es, externe Geräte oder Dienste über das ioBroker-System zu steuern. Dies kann z.B. das Ein- und Ausschalten von Geräten, das Einstellen von Parametern oder das Ausführen von Befehlen umfassen. -3. **Protokollübersetzung**: Adapter übersetzen die Kommunikationsprotokolle externer Geräte oder Dienste in ein Format, das ioBroker verstehen kann. Dies ermöglicht die nahtlose Integration verschiedener Systeme, die unterschiedliche Protokolle verwenden. +### Hauptfunktionen eines Adapters +1. **Datenintegration**: Adapter sammeln Daten von externen Geräten oder Diensten und stellen diese im ioBroker zur Verfügung. Dies können beispielsweise Sensordaten, Statusinformationen oder andere relevante Daten sein. +2. **Steuerung**: Adapter ermöglichen die Steuerung externer Geräte oder Dienste über das ioBroker-System. Dazu kann beispielsweise das Ein- und Ausschalten von Geräten, das Setzen von Parametern oder das Ausführen von Befehlen gehören. +3. **Visualisierung**: Adapter können Daten auf verschiedene Weise visualisieren, beispielsweise in Diagrammen, Grafiken, Tabellen, Schaltflächen, Schiebereglern usw. +4. **Verlauf**: Adapter können Daten zur späteren Analyse oder Visualisierung speichern. +5. **Automatisierung**: Adapter können Aktionen basierend auf bestimmten Bedingungen oder Ereignissen auslösen. +6. **Benachrichtigung**: Adapter können basierend auf bestimmten Bedingungen oder Ereignissen Benachrichtigungen oder Warnungen senden. +7. **Service**: Adapter können Konfigurationen sichern, Firmware aktualisieren usw. ### Beispiele für Adapter - - **Zigbee-Adapter**: Ermöglicht die Integration von Zigbee-basierten Geräten wie Lampen, Sensoren und Schaltern. - **MQTT-Adapter**: Ermöglicht die Kommunikation mit MQTT-basierten Diensten und Geräten. -- **HTTP-Adapter**: Ermöglicht die Integration von Diensten, die über HTTP kommunizieren. +- **JavaScript-Adapter**: Ermöglicht Ihnen, Skripte in JavaScript/TypeScript zu schreiben oder die Logikblöcke grafisch zu kombinieren, um Geräte oder Dienste zu steuern. ### Vorteile der Verwendung von Adaptern - -- **Flexibilität**: Adapter ermöglichen die Integration einer Vielzahl von Geräten und Diensten, unabhängig von deren Kommunikationsprotokollen. -- **Erweiterbarkeit**: Neue Adapter können entwickelt werden, um zusätzliche Geräte oder Dienste zu unterstützen, wodurch das ioBroker-System kontinuierlich erweitert werden kann. -- **Zentralisierung**: Durch die Verwendung von Adaptern können alle Geräte und Dienste zentral über das ioBroker-System verwaltet und gesteuert werden. - -### Typen von Adaptern -- **Geräteadapter**: Diese Adapter ermöglichen die Integration und Steuerung von physischen Geräten wie Lampen, Sensoren und Schaltern. Beispiele sind der Zigbee-Adapter und der Z-Wave-Adapter. -- **Protokolladapter**: Diese Adapter übersetzen verschiedene Kommunikationsprotokolle in ein Format, das ioBroker verstehen kann. Beispiele sind der MQTT-Adapter und der HTTP-Adapter. -- **Serviceadapter**: Diese Adapter ermöglichen die Integration von Online-Diensten und APIs. Beispiele sind der Alexa-Adapter und der Google-Home-Adapter. -- **Datenbankadapter**: Diese Adapter ermöglichen die Speicherung und Abfrage von Daten in verschiedenen Datenbanksystemen. Beispiele sind der SQL-Adapter und der InfluxDB-Adapter. -- **Visualisierungsadapter**: Diese Adapter bieten Möglichkeiten zur Visualisierung und Darstellung von Daten. Beispiele sind der Vis-Adapter und der Flot-Adapter. -- **Skriptadapter**: Diese Adapter ermöglichen das Erstellen und Ausführen von Skripten innerhalb von ioBroker. Beispiele sind der JavaScript-Adapter und der Blockly-Adapter. -- **Spezialadapter**: Diese Adapter bieten spezielle Funktionen oder Integrationen, die nicht in die anderen Kategorien passen. Beispiele sind der Ping-Adapter und der Backitup-Adapter. +- **Flexibilität**: Adapter ermöglichen die Integration einer breiten Palette von Geräten und Diensten, unabhängig von ihren Kommunikationsprotokollen. +- **Erweiterbarkeit**: Es können neue Adapter entwickelt werden, um zusätzliche Geräte oder Dienste zu unterstützen, sodass das ioBroker-System kontinuierlich erweitert werden kann. +- **Zentralisierung**: Durch den Einsatz von Adaptern können alle Geräte und Dienste zentral über das ioBroker-System verwaltet und gesteuert werden. + +### Adaptertypen +- `general` - Adapter für allgemeine Zwecke. Beispiele sind die Adapter `web`, `welcome` oder `js-controller`. +- „Alarm“ – Für Sicherheits- und Alarmfunktionen. Beispiele sind die Kameraadapter. +- „climate-control“ – Zur Steuerung von Heizungs-, Lüftungs- und Klimaanlagen. Beispiele sind die Adapter „Daikin“ oder „dysonairpurifier“. +- „Kommunikation“ – Zur Kommunikation mit anderen Systemen oder Diensten. Beispiele sind die „Rest-API“ oder „Cloud“-Adapter. +- „Datum und Uhrzeit“ – Zur zeitgesteuerten Steuerung von Geräten. Beispiele sind der Adapter „trashschedule“ oder „birthdays“. +- „energy“ - Zur Überwachung und Steuerung des Energieverbrauchs bzw. der Energieverbrauchserzeugung. Beispiele hierfür sind die Adapter „Solarlog“ oder „SMA-EM“. +- „Garden“ – Zur Steuerung von Gartengeräten. Beispiele sind der Adapter „Gardena“ oder „Rainbird“. +- „Geoposition“ – Zum Verfolgen der Position von Geräten. Beispiele sind der Adapter „Geofency“ oder „Owntracks“. +- „Hardware“ – Diese Adapter ermöglichen die Integration und Steuerung von physischen Geräten wie Lampen, Sensoren und Schaltern. Beispiele sind der Zigbee-Adapter, der Z-Wave-Adapter usw. +- „health“ – Zur Überwachung von Gesundheitsdaten. Beispiele sind der Adapter „fitbit-fitness“ oder „withings“. +- „Haushalt“ – Zur Steuerung von Haushaltsgeräten wie Staubsaugern oder Geschirrspülern. Beispiele sind der Adapter „Botvac“ oder „Ecovacs-Deebot“. +- „Infrastruktur“ – Zur Überwachung und Steuerung von Infrastrukturgeräten wie Routern, Druckern oder NAS. Beispiele sind der „Fritzbox“- oder „Proxmox“-Adapter. +- „iot-systems“ – Zur Integration von IoT-Systemen mit verschiedenen Gerätetypen. Beispiele sind der Adapter „s7“ oder „tasmota“. +- ... diff --git a/docs/de/basics/enums.md b/docs/de/basics/enums.md index 6b2890134..7cb36ef20 100644 --- a/docs/de/basics/enums.md +++ b/docs/de/basics/enums.md @@ -10,3 +10,4 @@ Von Start an gibt es zwei Kategorien: `Räume` und `Funktionen`. Allerdings kön - **Visualisierung**: Die Kategorien helfen dabei, die Objekte in der Visualisierung zu gruppieren und zu sortieren. - **Logik**: In Skripten können die Kategorien verwendet werden, um bestimmte Aktionen für alle Objekte einer Kategorie auszuführen. - **Szenes**: Die Kategorien können in Szenen verwendet werden. +- **Sprachsteuerung**: Die Kategorien können in der Sprachsteuerung verwendet werden um z.B. zu sagen "Schalte alle Lichter im Wohnzimmer an" diff --git a/docs/de/basics/media/Repository_BasicSettings.png b/docs/de/basics/media/Repository_BasicSettings.png new file mode 100644 index 000000000..e03da81ce Binary files /dev/null and b/docs/de/basics/media/Repository_BasicSettings.png differ diff --git a/docs/de/cloud/androidapp.md b/docs/de/cloud/androidapp.md deleted file mode 100644 index 762937c49..000000000 --- a/docs/de/cloud/androidapp.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: "Android App" -lastChanged: "14.09.2018" -editLink: "https://github.com/ioBroker/ioBroker.docs/edit/master/docs/cloud/androidapp.md" -template: true ---- - -# Die Android App - -?> ***Dies ist ein Platzhalter***. -

- Hilf mit bei ioBroker und erweitere diesen Artikel. - Bitte beachte den [ioBroker Style Guide](community/styleguidedoc), - damit die Änderungen einfacher übernommen werden können. diff --git a/docs/de/cloud/app.md b/docs/de/cloud/app.md new file mode 100644 index 000000000..bd579ad86 --- /dev/null +++ b/docs/de/cloud/app.md @@ -0,0 +1,23 @@ +--- +title: App (Android und iOS) +lastChanged: 14.09.2018 +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/cloud/app.md +hash: ivQYhndkr+a7XP7JqnHpqDPGVHQdPo7OBOvt+7fZOhE= +--- +# Offizielle ioBroker-App +Das ioBroker-Projekt verfügt über offizielle Apps für Android und iOS. Die Apps sind in den jeweiligen App Stores erhältlich: + +- [Android-App](https://play.google.com/store/apps/details?id=com.iobroker.visu&hl=en_US) +- [iOS-App](https://apps.apple.com/de/app/iobroker-visu/id1673095774) + +Die Nutzung der App für den lokalen Zugriff ist kostenfrei. Für den Fernzugriff (außerhalb Ihres lokalen Netzwerks) benötigen Sie ein Abonnement für die [ioBroker.pro](https://iobroker.pro/www/pricing#remote)-Cloud. + +## Merkmale +Die App ermöglicht Ihnen: + +- Greifen Sie über das lokale Netzwerk (kostenlos) oder von überall auf der Welt (Cloud-Abonnement erforderlich) auf Ihren ioBroker-Server zu. +- Steuern Sie Ihre Smart-Home-Geräte mit vis-2, iQontrol oder Lovelace +- Senden Sie Benachrichtigungen an Ihr Telefon +- Senden Sie den Telefonstatus an ioBroker, beispielsweise Batteriestand, Standort usw. diff --git a/docs/en/README.md b/docs/en/README.md index b1607a883..b2e667e58 100644 --- a/docs/en/README.md +++ b/docs/en/README.md @@ -4,7 +4,7 @@ lastChanged: 29.02.2024 translatedFrom: de translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/README.md -hash: gxiIWnKD+23DCnfq39JpJ/SHUxlNFIHgBpRtg49DlrY= +hash: WWTt2d6oRczIfqwVnp6kXk77YQF1UxohHL8GkwChkIM= --- ## Make your life easier: Smart Home Wouldn't it be practical to be able to read temperatures, consumption values or switching states of devices from different manufacturers centrally in one place? Wouldn't it be necessary to remember to switch devices on or off when certain conditions or states are reached? @@ -27,7 +27,7 @@ With well over 600 adapters, ioBroker enables the integration of various platfor These adapters enable the connection between physical devices (for example controllable sockets, relays, remote thermometers and the like) and the central ioBroker system. They are able to read the values measured by the devices and control the devices, which often happens via WLAN in the home network. -Other adapters are designed to graphically display measured values such as temperature, power, consumption values or switching states in diagrams. +Other adapters are designed to display measured values such as temperature, power, consumption values or switching states graphically in diagrams. Visualization adapters also offer other options, such as integrating images (e.g. from surveillance cameras), weather data and much more. In addition, there are adapters that offer functions for mathematical calculations or logical operations (such as comparisons). @@ -139,14 +139,14 @@ The Lovelace Editor (WYSIWYG principle - what you see is what you get principle) ## Who is behind ioBroker? ioBroker is an open source project developed by the ioBroker community and administered by [Bluefox](https://github.com/GermanBluefox) as project owner. -Many developers and many other helpers volunteer their free time to develop the central ioBroker system components, the many adapters, the social media support, the documentation and much more. +Many developers and many other helpers volunteer their time to develop the central ioBroker system components, the many adapters, the social media support, the documentation and much more. With the large and helpful community, a solution has been found for every problem so far. ioBroker follows a decentralized approach in which each adapter is maintained in its own GitHub repository. The respective adapter developer makes decisions about his adapter largely independently. Requests for functionality extensions or external feature extensions as a "pull request" are of course taken into account. -Some developers have also joined forces in the ioBroker adapter community to ensure that even if individual developers no longer have time for their adapters, they can continue to be maintained. +Some developers have also joined forces in the ioBroker adapter community to ensure that even if individual developers no longer have time for their adapters, they can still be maintained. There is no contractual support from the open source community, but together we have solved every problem so far! @@ -172,7 +172,7 @@ An overview and ordering of the license for these adapters can be found on this The costs for commercial use of these adapters are also listed there. ### How does ioBroker finance itself? -All central components and almost all other adapters are available free of charge and the source code of the vast majority of adapters is openly available on GitHub. +All central components and almost all other adapters are available free of charge and the source code of most adapters is openly available on GitHub. Since an open source project cannot generate income to buy servers, for example, an official legal form is required for these things, the ioBroker GmbH. The ioBroker GmbH also offers, among other things, commercial support for the ioBroker software or sells, for example, an ioBroker server. @@ -188,7 +188,7 @@ The following graphic provides an overview of the ioBroker Cloud Service product ![](../de/media/iobroker-cloud-services-overview.png) ## Community -Since 2014, ioBroker has secured broad support from thousands of users and developers due to its many advantages. Users and developers meet in the specially set up [Forum](https://forum.iobroker.net) and exchange their experiences and suggestions. On the ioBroker [Discord](https://discord.gg/sGWE65zF) server, experiences can be exchanged in live chat and live debug sessions can be carried out at short notice in order to get to the bottom of current problems. +Since 2014, ioBroker has secured broad support from thousands of users and developers due to its many advantages. Users and developers meet in the specially set up [forum](https://forum.iobroker.net) and exchange their experiences and suggestions. On the ioBroker [Discord](https://discord.gg/sGWE65zF) server, experiences can be exchanged in live chat and live debug sessions can be carried out at short notice in order to get to the bottom of current problems. Link collection of the official ioBroker communities: diff --git a/docs/en/adapterref/iobroker.worx/img/instance.png b/docs/en/adapterref/iobroker.worx/img/instance.png index e60f1e8a1..74eaea40c 100644 Binary files a/docs/en/adapterref/iobroker.worx/img/instance.png and b/docs/en/adapterref/iobroker.worx/img/instance.png differ diff --git a/docs/en/adapterref/iobroker.worx/img/mower_1.png b/docs/en/adapterref/iobroker.worx/img/mower_1.png index 37b4e8305..42bcdf7a5 100644 Binary files a/docs/en/adapterref/iobroker.worx/img/mower_1.png and b/docs/en/adapterref/iobroker.worx/img/mower_1.png differ diff --git a/docs/en/adapterref/iobroker.worx/img/mower_2.png b/docs/en/adapterref/iobroker.worx/img/mower_2.png index 738e93382..2f754b9cd 100644 Binary files a/docs/en/adapterref/iobroker.worx/img/mower_2.png and b/docs/en/adapterref/iobroker.worx/img/mower_2.png differ diff --git a/docs/en/adapterref/iobroker.worx/img/mower_3.png b/docs/en/adapterref/iobroker.worx/img/mower_3.png index 0b1f38ae3..c32679fad 100644 Binary files a/docs/en/adapterref/iobroker.worx/img/mower_3.png and b/docs/en/adapterref/iobroker.worx/img/mower_3.png differ diff --git a/docs/en/adapterref/iobroker.worx/img/mower_4.png b/docs/en/adapterref/iobroker.worx/img/mower_4.png index 536d8eccd..bf7b40643 100644 Binary files a/docs/en/adapterref/iobroker.worx/img/mower_4.png and b/docs/en/adapterref/iobroker.worx/img/mower_4.png differ diff --git a/docs/en/basics/adapter.md b/docs/en/basics/adapter.md index a3770ffa9..e1ea06be3 100644 --- a/docs/en/basics/adapter.md +++ b/docs/en/basics/adapter.md @@ -1,37 +1,44 @@ --- lastChanged: 24.08.2024 -translatedFrom: de -translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/basics/adapter.md title: Controllers and adapters -hash: 8HcEKegvo687TBc+kFOupFkmNBDZ+XMvC0iQNS62dKE= --- # Controllers and adapters + ## What is a controller? + A controller in ioBroker is a central component that is responsible for managing and coordinating the entire ioBroker system. -It performs tasks such as managing the adapters, storing data and providing interfaces for communication between the different components of the system. -Currently, Controller is written with TypeScript. +It performs tasks such as managing the adapters, storing data and providing interfaces for communication between the adapters. +Currently, the Controller is written with TypeScript. ### Main functions of a controller -- - **Adapter management**: The controller monitors and controls the various adapters installed in the ioBroker system. - **Data Management**: The controller stores and manages the data collected by the adapters. - **System Monitoring**: The controller monitors the health of the entire system and ensures that all components and adapters are functioning properly. It can trigger notifications and alarms when problems occur. +- **Communication**: The controller provides the interfaces through which the different adapters of ioBroker can communicate with each other. ## What is an adapter? + An adapter in ioBroker is a software component that allows you to integrate various devices, services or protocols into the ioBroker system. -Adapters act as interfaces between ioBroker and the external systems you control or collect data from. + +It can perform different actions on gathered data, such as storing, processing, or forwarding it to other systems. It can visualize the data too in different ways. + +Adapters act as interfaces between ioBroker and the external systems that you control or collect data from or between and the human. ### Main functions of an adapter 1. **Data integration**: Adapters collect data from external devices or services and make this data available in ioBroker. This can include, for example, sensor data, status information or other relevant data. 2. **Control**: Adapters make it possible to control external devices or services via the ioBroker system. This can include, for example, turning devices on and off, setting parameters or executing commands. -3. **Protocol translation**: Adapters translate the communication protocols of external devices or services into a format that ioBroker can understand. This enables seamless integration of different systems that use different protocols. +3. **Visualisation**: Adapters can visualize data in different ways, such as charts, graphs, tables, buttons, sliders, etc. +4. **History**: Adapters can store data for later analysis or visualization. +5. **Automation**: Adapters can trigger actions based on certain conditions or events. +6. **Notification**: Adapters can send notifications or alerts based on certain conditions or events. +7. **Service**: Adapters can back up configurations, update firmware, etc. ### Examples of adapters - **Zigbee adapter**: Enables the integration of Zigbee-based devices such as lamps, sensors and switches. - **MQTT Adapter**: Enables communication with MQTT-based services and devices. -- **HTTP adapter**: Enables the integration of services that communicate via HTTP. +- **JavaScript Adapter**: Allows you to write scripts in JavaScript/TypeScript or graphically combine the logic blocks to control devices or services. ### Benefits of using adapters - **Flexibility**: Adapters enable the integration of a wide range of devices and services, regardless of their communication protocols. @@ -39,10 +46,17 @@ Adapters act as interfaces between ioBroker and the external systems you control - **Centralization**: By using adapters, all devices and services can be managed and controlled centrally via the ioBroker system. ### Types of adapters -- **Device adapters**: These adapters enable the integration and control of physical devices such as lamps, sensors and switches. Examples are the Zigbee adapter and the Z-Wave adapter. -- **Protocol adapters**: These adapters translate various communication protocols into a format that ioBroker can understand. Examples are the MQTT adapter and the HTTP adapter. -- **Service adapters**: These adapters enable the integration of online services and APIs. Examples are the Alexa adapter and the Google Home adapter. -- **Database adapters**: These adapters enable the storage and query of data in various database systems. Examples are the SQL adapter and the InfluxDB adapter. -- **Visualization adapters**: These adapters provide options for visualizing and presenting data. Examples are the Vis adapter and the Flot adapter. -- **Script adapters**: These adapters allow you to create and run scripts within ioBroker. Examples are the JavaScript adapter and the Blockly adapter. -- **Specialty adapters**: These adapters provide special features or integrations that do not fit into the other categories. Examples are the Ping adapter and the Backitup adapter. \ No newline at end of file +- `general` - General purpose adapters. Examples are the `web`, `welcome` or `js-controller` adapters. +- `alarm` - For security and alarm features. Examples are the camera adapters. +- `climate-control` - For controlling heating, ventilation, and air conditioning systems. Examples are the `Daikin` or `dysonairpurifier` adapters. +- `communication` - For communication with other systems or services. Examples are the `Rest-API` or `cloud` adapters. +- `date-and-time` - For controlling of devices on schedule. Examples are the `trashschedule` or `birthdays` adapter. +- `energy` - For monitoring and controlling energy consumption or production. Examples are the `Solarlog` or `SMA-EM` adapter. +- `garden` - For controlling garden devices. Examples are the `gardena` or `rainbird` adapter. +- `geoposition` - For tracking the position of devices. Examples are the `geofency` or `owntracks` adapter. +- `hardware` - These adapters enable the integration and control of physical devices such as lamps, sensors and switches. Examples are the Zigbee adapter, the Z-Wave adapter, etc. +- `health` - For monitoring health data. Examples are the `fitbit-fitness` or `withings` adapter. +- `household` - For controlling household devices like vacuum cleaners or dishwashers. Examples are the `botvac` or `ecovacs-deebot` adapter. +- `infrastructure` - For monitoring and controlling infrastructure devices, like routers, printers or NAS. Examples are the `fritzbox` or `proxmox` adapter. +- `iot-systems` - For integrating IoT systems with various types of devices. Examples are the `s7` or `tasmota` adapter. +- ... diff --git a/docs/en/basics/alias.md b/docs/en/basics/alias.md index a743986f4..bff298afe 100644 --- a/docs/en/basics/alias.md +++ b/docs/en/basics/alias.md @@ -1,8 +1,165 @@ --- -lastChanged: "26.01.2022" +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/basics/alias.md +title: Alias +translatedFrom: de +translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again +hash: QwIPQTgQXD25NUUWMGQmkjrFfy7z1Q/QBg/phOj2ik0= --- +# Aliases +Alias (pseudonym) is a virtual data point that is linked to a real data point. -# Alias +## Use cases +Often the real devices are defective and the user has to replace this device. +In addition to replacing the hardware, the address of this device is changed. For example, from `hm-rpc.0.ABC123` to `hm-rpc.0.QJU978`. -?> ***This is a placeholder*** .

Help with ioBroker and expand this article. Please note the [ioBroker Style Guide](https://www.iobroker.net/#de/documentation/community/styleguidedoc.md) so that the changes can be adopted more easily. +Since the old address was used in many places like vis, javascript, scenes or others, the user now has to find all these places and replace it there. +This feature allows the user to assign an alias for the data point of a physical device and use that alias in all cases. +If the device needs to be replaced, the ID only needs to be changed in the alias. + +Another use case for this feature is supporting devices in special smart adapters like iot or material. +Using aliases, the required state structure can be created, but the values are read from physical devices. + +## Explanation +All data points created in the object namespace `alias.0` are managed as alias data points. + +The value of the alias is read from the associated data point (target), but object properties (like common, native) are themselves read from the alias data point. + +In fact, a `alias` object mirrors the value of the target object. +If allowed, both values can be changed and will be automatically synchronized by the ioBroker core system. +Both states can also be used to subscribe to scripts and should behave exactly the same. + +Here is an example of such an object: + +``` +{ + "_id": "alias.0.Light.Device_1.WORKING", + "type": "state", + "common": { + "alias": { + "id": "admin.0.connected" + }, + "name": "WORKING", + "role": "indicator.working", + "type": "boolean" + }, + "native": {} +} +``` + +`native` is always empty because there is no device behind the alias and all settings are saved in `common`. + +The ID of the data point whose value must be read or written is stored in `common.alias.id`. + +Alias converts the value automatically if Min/Max settings are defined for both objects (alias and target). + +For example, if the alias is `min=0,max=100` and the destination is `min=0,max=255`, when reading, the value 10 from the destination state will be converted to 3.9215686274509802 and the value written to the alias 10 will be converted to 25.5. + +The types are also converted automatically: from string to number, from number to boolean and so on. It depends on the alias and target types. + +Additionally, write and read functions can be defined in `common.alias`: + +``` +{ + "_id": "alias.0.Temperature.SET", + "type": "state", + "common": { + "alias": { + "id": "knx.0.6786878.value", + "write": "(val * 9/5) + 32", + "read": "(val − 32) * 5/9" + }, + "unit": "°C", + "name": "Temperature", + "role": "value.temperature", + "type": "number" + }, + "native": {} +} +``` + +Goal + +``` +{ + "_id": "knx.0.6786878.value", + "type": "state", + "common": { + "unit": "°F", + "name": "Temperature", + "role": "value.temperature", + "type": "number" + }, + "native": {} +} +``` + +If conversion functions are defined, automatic conversion is disabled. For read-only functions, the write function could be omitted, correspondingly for write-only functions - the read function. + +E.g. + +``` +{ + "_id": "alias.0.button", + "type": "state", + "common": { + "alias": { + "id": "knx.0.6786879.value", + "write": "val ? 1 : 0" + }, + "name": "Button", + "role": "button", + "type": "boolean" + }, + "native": {} +} +``` + +Goal + +``` +{ + "_id": "knx.0.6786879.value", + "type": "state", + "common": { + "name": "KNX Switch", + "role": "value", + "type": "number", + "min": 0, + "max": 1 + }, + "native": {} +} +``` + +Subscriptions are managed automatically. When an alias is subscribed, the target ID is also subscribed. + +The target device ID can be changed dynamically (via the administrator) and the subscription will be updated for a new target ID. + +Since version 3.0 of the js-controller, separate status and command data points can be merged in the alias: + +* alias.id.write contains the ID of the data point that is set when the alias is written +* alias.id.read contains the ID of the data point mirrored by the alias + +``` +{ + _id: "alias.0.aliasName", + common: { + name: 'Test AliasC', + type: 'number', + role: 'state', + min: -10, + max: 10, + alias: { + id: { + read: 'state.id.to.read.from', + write: 'state.id.to.write.to' + } + read: 'val * 10 + 1', + write: '(val - 1) / 10' + } + }, + native: {}, + type: 'state' +} +``` diff --git a/docs/en/basics/enums.md b/docs/en/basics/enums.md index 6e7144507..1be7880be 100644 --- a/docs/en/basics/enums.md +++ b/docs/en/basics/enums.md @@ -3,7 +3,7 @@ translatedFrom: de translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/basics/enums.md title: Categories/Lists -hash: rqOKByMjzSQxp3fb+HKbbzMiZ4L35Ng+UhehMESFDjY= +hash: dRtaZaSersmPe015O54LIxsy7mWuVT4pyEN1yf2HifE= --- # Categories/Lists Category definitions play an important role in ioBroker. @@ -16,4 +16,5 @@ From the start there are two categories: `Räume` and `Funktionen`. However, you ## What are the categories used for? - **Visualization**: The categories help to group and sort the objects in the visualization. - **Logic**: Categories can be used in scripts to perform certain actions on all objects in a category. -- **Scenes**: The categories can be used in scenes. \ No newline at end of file +- **Scenes**: The categories can be used in scenes. +- **Voice control**: The categories can be used in voice control to say e.g. "Turn on all the lights in the living room" \ No newline at end of file diff --git a/docs/en/basics/states.md b/docs/en/basics/states.md index 5379972ca..0c942957b 100644 --- a/docs/en/basics/states.md +++ b/docs/en/basics/states.md @@ -1,10 +1,10 @@ --- -lastChanged: 06.06.2019 +lastChanged: 25.08.2024 translatedFrom: de translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/basics/states.md title: States and data points -hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= +hash: 190MIPX6wgLnFl6yKQR3EpEWnybrYzc4cf2YD6kb+rE= --- # States and data points A **data point** consists of a static object of type `state` and a dynamic state. @@ -19,11 +19,11 @@ Properties of a state are: * `from` - (optional) source (adapter instance) of the last update * `user` - (optional) User name who last wrote the value. * `c` - (optional) comment -* `expire` - (optional) Time in seconds when the value is reset to `null`. +* `expire` - (optional) Time in seconds when the value is set to `null`. Attributes of the static object are id, type = 'state', common, native. The following common attributes are possible: -* `common.type` (optional) - default is 'mixed' = any type. Possible values: `number`, `string`, `boolean`, `array`, `object`, `mixed`, `file`. +* `common.type` (optional) - default is `mixed` = any type. Possible values: `number`, `string`, `boolean`, `array`, `object`, `mixed`, `file`. * `common.name` (optional, string) * `common.max` (optional, number) * `common.step` (optional, number) - increase / decrease interval. E.g. 0.5 for thermostat diff --git a/docs/en/cloud/androidapp.md b/docs/en/cloud/androidapp.md deleted file mode 100644 index 7d48f242a..000000000 --- a/docs/en/cloud/androidapp.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Android app -lastChanged: 14.09.2018 -editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/en/cloud/androidapp.md -template: true -translatedFrom: de -translatedWarning: If you want to edit this document please delete "translatedFrom" field, elsewise this document will be translated automatically again -hash: Rj3SjOw7mcCokZKTLvjUxi2iAfUUhx8k6LRnng42m4s= ---- -# The Android app -?> ***This is a placeholder***.

Help ioBroker and expand this article. Please note the [ioBroker Style Guide](community/styleguidedoc) so that the changes can be adopted more easily. \ No newline at end of file diff --git a/docs/en/cloud/app.md b/docs/en/cloud/app.md new file mode 100644 index 000000000..701fdd5d2 --- /dev/null +++ b/docs/en/cloud/app.md @@ -0,0 +1,17 @@ +--- +title: App (Android and iOS) +lastChanged: 14.09.2018 +--- +# Official ioBroker app +ioBroker project has official apps for Android and iOS. The apps are available in the respective app stores: +- [Android app](https://play.google.com/store/apps/details?id=com.iobroker.visu&hl=en_US) +- [iOS app](https://apps.apple.com/de/app/iobroker-visu/id1673095774) + +The usage of the app for local access is free of charge. For remote access (outside of your local network) you need to have a subscription to the [ioBroker.pro](https://iobroker.pro/www/pricing#remote) cloud. + +## Features +The app allows you to: +- Access your ioBroker server from local network (free) or from anywhere in the world (required subscription to cloud) +- Control your smart home devices with vis-2, iQontrol or Lovelace +- Send notifications to your phone +- Send phone status to ioBroker, like battery level, location, etc. diff --git a/docs/ru/README.md b/docs/ru/README.md index e18b127d7..b9cb80520 100644 --- a/docs/ru/README.md +++ b/docs/ru/README.md @@ -2,9 +2,9 @@ title: документация ioBroker lastChanged: 29.02.2024 translatedFrom: de -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/README.md -hash: gxiIWnKD+23DCnfq39JpJ/SHUxlNFIHgBpRtg49DlrY= +hash: WWTt2d6oRczIfqwVnp6kXk77YQF1UxohHL8GkwChkIM= --- ## Сделайте свою жизнь проще: Умный дом Разве не было бы практично централизованно и в одном месте считывать температуры, значения потребления или состояния переключения устройств разных производителей? Разве мы не должны помнить о включении и выключении устройств при достижении определенных условий или состояний? @@ -25,7 +25,7 @@ hash: gxiIWnKD+23DCnfq39JpJ/SHUxlNFIHgBpRtg49DlrY= #### Что такое адаптеры? **Адаптеры** — это **плагины** (программные модули, небольшие программы), написанные на JavaScript для Node.js, которые были специально разработаны для конкретных устройств, типов устройств, устройств определенных производителей или других служб, например для запроса веб-сайтов. -Эти адаптеры обеспечивают соединение между физическими устройствами (например, управляемыми розетками, реле, дистанционными термометрами и т.п.) и центральной системой ioBroker. Вы можете считывать значения, измеренные устройствами, и управлять ими, что часто происходит через WLAN в вашей домашней сети. +Эти адаптеры обеспечивают соединение между физическими устройствами (например, управляемыми розетками, реле, дистанционными термометрами и т.п.) и центральной системой ioBroker. Вы можете считывать значения, измеренные устройствами, и управлять устройствами, что часто происходит через WLAN в вашей собственной домашней сети. Другие адаптеры предназначены для графического отображения измеренных значений, таких как температура, мощность, значения потребления или состояния переключения, в виде диаграмм. Адаптеры визуализации также предлагают другие возможности, такие как интеграция изображений (например, с камер наблюдения), данных о погоде и многое другое. @@ -39,7 +39,7 @@ hash: gxiIWnKD+23DCnfq39JpJ/SHUxlNFIHgBpRtg49DlrY= **Совет:** [Обзор доступных адаптеров](https://www.iobroker.net/#de/adapters/adapters.md) -### IoBroker объединяет широкий спектр систем умного дома +### IoBroker объединяет самые разные системы умного дома ![](../de/media/iobroker-simple-overview.png) На этом рисунке показано, как ioBroker, как центральная система, координирует и соединяет широкий спектр систем умного дома и других служб, таких как календари. @@ -55,18 +55,18 @@ hash: gxiIWnKD+23DCnfq39JpJ/SHUxlNFIHgBpRtg49DlrY= - Если в календаре внесена запись «Отпуск», все лампы HUE включатся в 18:00. - В 22:00 все ставни закроются и все освещение в Хюэ погаснет. -- В 8:00 утра все ставни снова поднимутся. +- В 8 часов утра все ставни снова поднимутся. Используя доступные адаптеры визуализации, пользователь может создавать индивидуальные страницы состояния и управления для своих ламп Hue и рольставней, доступ к которым можно получить с мобильных устройств из дома или во время отпуска (например, с помощью облачных сервисов ioBroker или VPN). ## Сильные стороны ioBroker -### Независимая платформа -ioBroker можно установить практически на все аппаратные платформы, работающие под управлением Linux, OSX, Windows или Docker в качестве операционной системы. Поэтому возможны одноплатные компьютеры (например, Raspberry Pi), серверы, NAS или серверы со средой виртуализации (например, Proxmox, настольные компьютеры и т. д.). +### Независимость от платформы +ioBroker можно установить практически на все аппаратные платформы, работающие под управлением Linux, OSX, Windows или Docker в качестве операционной системы. Возможны одноплатные компьютеры (например, Raspberry Pi), серверы, NAS или серверы со средой виртуализации (например, Proxmox, настольные компьютеры и т. д.). -Простая процедура установки, состоящая из одной строки (однострочный установщик), обеспечивает удобную установку под Linux и OSX и, следовательно, быстрый запуск ioBroker. +Простая процедура установки, состоящая из одной строки (однострочный установщик), обеспечивает удобную установку под Linux и OSX и, таким образом, быстрый запуск ioBroker. ### Масштабируемость -Если со временем потребуется подключение дополнительных систем умного дома, пользователь может реализовать их в любой момент, используя дополнительные адаптеры во время работы. +Если со временем потребуется подключение дополнительных систем умного дома, пользователь может реализовать их в любой момент с помощью дополнительных адаптеров в ходе текущей эксплуатации. Сам ioBroker также масштабируем: можно подключить несколько серверов ioBroker, чтобы сформировать многохостовую систему. Можно даже смешивать платформы операционных систем и связывать одноплатные компьютеры с большими многоядерными серверами. ###Индивидуальное программирование процессов @@ -86,9 +86,9 @@ ioBroker можно установить практически на все ап ### ВИС [Видна сторона адаптера](https://www.iobroker.net/#de/adapters/adapterref/iobroker.vis/README.md) -Благодаря адаптеру VIS (визуализация) ioBroker предоставляет мощный инструмент для создания индивидуальных визуализаций. Текущие значения от датчиков могут отображаться графически так же, как исторические кривые. Живое изображение с камер наблюдения, реализация системы сигнализации, систем отопления и кондиционирования воздуха – практически все, что только можно себе представить, также может быть реализовано. +Благодаря адаптеру VIS (визуализация) ioBroker предоставляет мощный инструмент для создания индивидуальных визуализаций. Текущие значения датчиков могут отображаться как графически, так и в виде исторических кривых. Живое изображение с камер наблюдения, реализация системы сигнализации, систем отопления и кондиционирования воздуха – практически все, что только можно себе представить, также может быть реализовано. -Используя VIS, пользователь имеет максимальную свободу проектирования во время реализации. Готовые строительные блоки для простоты использования помогают пользователю собрать пользовательский интерфейс. Но возможно не только отображение информации. Устройствами также можно быстро управлять через интерфейс визуализации. Работу интерфейса можно адаптировать к самым разным устройствам – от смартфонов и настенных планшетов с сенсорными функциями до ПК – все можно реализовать с помощью простого перетаскивания. +Используя VIS, пользователь имеет максимальную свободу проектирования во время реализации. Готовые строительные блоки для простоты использования помогают пользователю собрать пользовательский интерфейс. Но возможно не только отображение информации. Устройствами также можно быстро управлять через интерфейс визуализации. Работу интерфейса можно адаптировать к широкому спектру устройств — от смартфонов и настенных планшетов с сенсорными функциями до ПК — всего можно добиться простым перетаскиванием. ![](../de/media/iobroker-visualisation-vis.png) @@ -116,10 +116,10 @@ Jarvis отзывчив, адаптируется к размеру экрана Достигайте своей цели быстро, но при этом гибко – вот что отличает iQontrol: - Создайте Vis один раз и используйте его везде: от ПК, планшета до мобильного телефона, iQontrol работает на всех устройствах — либо в браузере, либо в виде веб-приложения (можно сохранить на главном экране, а затем воспринимать как приложение) -- iQontrol динамически адаптируется ко всем разрешениям (адаптивный, функциональный дизайн) +- iQontrol динамически адаптируется ко всем разрешениям (адаптивный дизайн) - Супер быстрое время загрузки - Благодаря стандартным настройкам вы сможете быстро достичь своей цели -- Однако благодаря расширенным настройкам и виджетам у вас есть высокий уровень гибкости и возможностей настройки (в некоторых установках вы даже не узнаете, что на самом деле это iQontrol) +- Однако благодаря расширенным настройкам и виджетам у вас есть высокий уровень гибкости и возможностей настройки (в некоторых установках вы больше не узнаете, что это на самом деле iQontrol) Видео [Демо-видео iQontrol][] @@ -139,14 +139,14 @@ Jarvis отзывчив, адаптируется к размеру экрана ## Кто стоит за ioBroker? ioBroker — это проект с открытым исходным кодом, разработанный сообществом ioBroker и администрируемый [Блюфокс](https://github.com/GermanBluefox) как владельцем проекта. -Многие разработчики и многие другие помощники добровольно отдают свое свободное время разработке центральных компонентов системы ioBroker, множества адаптеров, поддержки социальных сетей, документации и многого другого. +Многие разработчики и многие другие помощники добровольно тратят свое свободное время на разработку основных компонентов системы ioBroker, множества адаптеров, поддержки социальных сетей, документации и многого другого. Благодаря большому и отзывчивому сообществу на данный момент найдено решение для каждой проблемы. ioBroker придерживается децентрализованного подхода, при котором каждый адаптер хранится в собственном репозитории GitHub. Соответствующий разработчик адаптера принимает решения относительно своего адаптера в значительной степени самостоятельно. Запросы на дополнительную функциональность или внешние расширения функций в виде «запросов на включение», конечно, принимаются во внимание. -Некоторые разработчики также объединили усилия в сообществе адаптеров ioBroker, чтобы гарантировать, что даже если у отдельных разработчиков больше нет времени на свои адаптеры, их можно будет продолжать поддерживать. +Некоторые разработчики также объединили усилия в сообществе адаптеров ioBroker, чтобы гарантировать, что даже если у отдельных разработчиков больше нет времени на свои адаптеры, их можно будет поддерживать. Контрактной поддержки со стороны сообщества открытого исходного кода нет, но вместе мы решили все проблемы! @@ -188,7 +188,7 @@ ioBroker Free Cloud — это также бесплатный сервис, п ![](../de/media/iobroker-cloud-services-overview.png) ## Сообщество -С 2014 года ioBroker заручился широкой поддержкой тысяч пользователей и разработчиков благодаря своим многочисленным преимуществам. Пользователи и разработчики встречаются в специально созданном [Форум](https://forum.iobroker.net) и обмениваются друг с другом опытом и предложениями. На сервере ioBroker [Раздор](https://discord.gg/sGWE65zF) можно обмениваться опытом в живом чате, а сеансы отладки в режиме реального времени можно проводить в кратчайшие сроки, чтобы разобраться в сути текущих проблем. +С 2014 года ioBroker заручился широкой поддержкой тысяч пользователей и разработчиков благодаря своим многочисленным преимуществам. Пользователи и разработчики встречаются в специально созданном [форум](https://forum.iobroker.net) и обмениваются друг с другом опытом и предложениями. На сервере ioBroker [Раздор](https://discord.gg/sGWE65zF) можно обмениваться опытом в живом чате, а сеансы отладки в режиме реального времени можно проводить в кратчайшие сроки, чтобы разобраться в сути текущих проблем. Сборник ссылок из официальных сообществ ioBroker: @@ -242,4 +242,4 @@ ioBroker Free Cloud — это также бесплатный сервис, п [iQontrol Demo Video]: https://www.youtube.com/watch?v=QHgmrzMmcX4&list=PL8epyNz8pGEv6-R8dnfXm-m5aBlZFKOBG&index=1 -[ioBroker Developer]: https://forum.iobroker.net/groups/developer +[ioBroker Developer]: https://forum.iobroker.net/groups/developer \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.parser/README.md b/docs/ru/adapterref/iobroker.parser/README.md index 07a9094a8..a8ecc2e85 100644 --- a/docs/ru/adapterref/iobroker.parser/README.md +++ b/docs/ru/adapterref/iobroker.parser/README.md @@ -1,102 +1,102 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.parser/README.md title: Адаптер парсера ioBroker -hash: Le4c+UayImhSKld1ia2TKTckHZUsW4qw9xKSC9LG2fk= +hash: 699NFuNyBB5WvJ2oV9HHyNwPuee68cU6G0sWYfrak6U= --- ![Логотип](../../../en/adapterref/iobroker.parser/admin/parser.png) ![Количество установок](http://iobroker.live/badges/parser-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.parser.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.parser.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.parser.svg) # Адаптер парсера ioBroker -![Тестирование и выпуск](https://github.com/ioBroker/ioBroker.parser/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/parser/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +![Тест и выпуск](https://github.com/ioBroker/ioBroker.parser/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/parser/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**Этот адаптер использует библиотеки 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. -Этот адаптер анализирует данные, полученные по URL-адресу или из файла, с помощью регулярных выражений. Для каждого правила, настроенного в настройках этого адаптера, состояние будет создано в разделе `parser.` и заполнено и обновлено проанализированной информацией. +Этот адаптер анализирует данные, полученные через URL или из файла, используя регулярные выражения. Для каждого правила, настроенного в настройках этого адаптера, будет создано состояние в `parser.`, заполненное и обновленное проанализированной информацией. ## Настройки ### 1. Интервал опроса по умолчанию -Это значение интервала опроса по умолчанию будет использоваться, если для записи в таблице конфигурации (столбец: «Интервал») не указано индивидуальное значение интервала опроса. Интервал измеряется в миллисекундах и определяет, как часто читается ссылка или файл и обновляются состояния. +Это значение интервала опроса по умолчанию будет использоваться, если для записи в таблице конфигурации (столбец: «Интервал») не указано индивидуальное значение интервала опроса. Интервал указывается в миллисекундах и определяет, как часто считывается ссылка или файл, а состояния обновляются. -**Примечание.** Не используйте слишком агрессивный интервал опроса, особенно для URL-адресов веб-сайтов. Например, если вы хотите получить цену ваших акций с определенного веб-сайта, вам, вероятно, подойдет интервал всего в 24 часа (= 86400000 мс), если вы не дневной трейдер. Если вы слишком часто пытаетесь получить данные с определенных URL-адресов, веб-сайт может заблокировать вас и внести в черный список сервера. Поэтому, пожалуйста, используйте интервал опроса с осторожностью. +**Примечание:** Не используйте слишком агрессивный интервал опроса, особенно для URL-адресов веб-сайтов. Например, если вы хотите получить цену своих акций с определенного веб-сайта, вам, вероятно, подойдет интервал всего в 24 часа (= 86400000 мс), если вы не дневной трейдер. Если вы попытаетесь получить данные с определенных URL-адресов слишком часто, веб-сайт может забанить вас и поместить в черный список сервера. Поэтому, пожалуйста, используйте интервал опроса с осторожностью. -### 2. Тайм-аут запроса -Укажите, как долго адаптер ожидает ответа HTTP при выполнении запросов к веб-сайту. +### 2. Запрос времени ожидания +Укажите, как долго адаптер будет ожидать HTTP-ответа при выполнении веб-запросов. ### 3. Задержка между запросами -Укажите, как долго адаптер ожидает между выполнением HTTP-запросов при выполнении удаленных запросов. Полезно при получении данных с медленных хостов или через медленные соединения, чтобы избежать перегрузки любого из них. Ноль (по умолчанию) означает отсутствие задержки. +Укажите, как долго адаптер ждет между HTTP-запросами при выполнении удаленных запросов. Полезно при извлечении данных с медленных хостов или через медленные соединения, чтобы избежать перегрузки одного из них. Ноль (по умолчанию) означает отсутствие задержки. -Эта задержка зависит от каждого хоста. Если удаленные запросы настроены на получение данных с нескольких удаленных хостов, каждый хост будет запрашиваться параллельно. +Эта задержка действует на основе хоста. Если удаленные запросы настроены на выборку с нескольких удаленных хостов, каждый хост будет опрашиваться параллельно. -Задержка — это минимальное значение между инициированием каждого запроса. То есть, если чтение запроса занимает больше времени, чем этот параметр задержки, следующий запрос начнется сразу после завершения чтения. +Задержка — это минимальное значение между инициированием каждого запроса. То есть, если запрос будет прочитан дольше, чем этот параметр задержки, то следующий запрос будет запущен сразу после завершения чтения. -### 4. Примите недействительные сертификаты +### 4. Принимать недействительные сертификаты Укажите, принимаются или отклоняются самоподписанные/недействительные сертификаты SSL/TLS при выполнении HTTPS-запросов. ### 5. Используйте небезопасный HTTP-парсер -Укажите использование небезопасного анализатора HTTP, который принимает недопустимые заголовки HTTP. Это может обеспечить совместимость с несоответствующими реализациями HTTP. +Укажите, чтобы использовать небезопасный парсер HTTP, который принимает недействительные заголовки HTTP. Это может обеспечить взаимодействие с несоответствующими реализациями HTTP. Следует избегать использования небезопасного парсера. ### 6. Таблица Нажмите кнопку «Плюс», чтобы добавить новую запись в таблицу. -**Примечание по производительности.** Если вы введете один и тот же URL-адрес или имя файла более одного раза в разные строки таблицы и если значения столбца «Интервал» одинаковы, будет получено только содержимое URL-адреса или имени файла ** один раз** и кэшируется для обработки нескольких строк таблицы, соответствующих URL/имени файла и интервалу. Это позволяет вам применять несколько регулярных выражений (то есть несколько строк таблицы) к одному URL-адресу или имени файла без необходимости многократного получения данных из источника. +**Примечание о производительности:** Если вы вводите один и тот же URL или имя файла более одного раза в разные строки таблицы, и если значения столбца «Интервал» одинаковы, содержимое URL или имени файла будет извлечено только **один раз** и кэшировано для обработки нескольких строк таблицы, соответствующих URL/имени файла и интервалу. Это позволяет вам применять несколько регулярных выражений (то есть несколько строк таблицы) к одному URL или имени файла без необходимости многократного извлечения данных из источника. **Поля таблицы:** -- **_Name_** - имя состояния, которое создается под `parser.<номер экземпляра>`. Пробелы не допускаются. Вы можете использовать точки `.` в качестве разделителя для создания подпапок. Пример: `Shares.Microsoft.Current` приведет к `parser.<номер экземпляра>.Shares.Microsoft.Current`. -- **_URL или имя файла_** — либо URL-адрес веб-сайта, либо путь к файлу, информацию о котором мы хотим получить. Примеры `https://darksky.net/forecast/48.1371,11.5754/si24/de` (информация о погоде в Мюнхене) или `/opt/iobroker/test/testdata.txt` (файл из ioBroker). -- **_RegEx_** — регулярное выражение, как извлечь данные из ссылки. Существует хороший сервис для проверки регулярных выражений: [regex101](https://regex101.com/). Например. `temp swip">(-?\d+)˚<` для строки выше. -- **_Item_** (нем. «Num») — регулярное выражение может найти (сопоставить) несколько записей. С помощью этой опции вы можете определить, какой матч выбрать. 0 = первое совпадение, 1 = второе совпадение, 2 = третье совпадение и т. д. По умолчанию установлено значение 0 (первое совпадение). +- **_Name_** - имя состояния, которое создается в `parser.<номер экземпляра>`. Пробелы не допускаются. Вы можете использовать точки `.` в качестве разделителя для создания подпапок. Пример: `Shares.Microsoft.Current` приведет к `parser.<номер экземпляра>.Shares.Microsoft.Current`. +- **_URL или имя файла_** - либо URL веб-сайта, либо путь к файлу, из которого мы хотим получить информацию. Примеры `https://darksky.net/forecast/48.1371,11.5754/si24/de` (информация о погоде в Мюнхене) или `/opt/iobroker/test/testdata.txt` (файл из ioBroker). +- **_RegEx_** - регулярное выражение, как извлечь данные из ссылки. Есть хороший сервис для проверки регулярных выражений: [regex101](https://regex101.com/). Например, `temp swip">(-?\d+)˚<` для строки выше. +- **_Item_** (нем.: "Num") - регулярное выражение может найти (сопоставить) несколько записей. С помощью этой опции вы можете определить, какое совпадение будет выбрано. 0 = первое совпадение, 1 = второе совпадение, 2 = третье совпадение и т. д. По умолчанию 0 (первое совпадение). - **_Роль_** - одна из ролей: - - custom - пользователь определяет через _admin_ роль - - температура - значение представляет собой температуру - - значение - значение представляет собой число (например, диммер) - - блайнды - значение представляет собой блайнд-позицию - - переключатель - значение представляет собой положение переключателя (истина/ложь) - - button - значение представляет собой кнопку - - индикатор - логический индикатор -- **_Type_** — тип переменной в раскрывающемся меню. -- **_Unit_** — Необязательно: единица измерения значения, добавленного к записи состояния. Например. `°C`, `€`, `GB` и т. д. -- **_Old_** — если активировано, состояние _не_ будет обновляться, если значение не может быть прочитано или найдено в предоставленной дате (URL-адресе или файле), поэтому в этом случае оно сохранит прежнее значение. -- **_Subs_** – Необязательно: замените URL-адрес или имя файла. Этот замещающий URL-адрес/имя файла будет использоваться, если URL-адрес/имя файла первого столбца недоступен. -- **_Factor/Offset_** (только для чисел типа «Тип») — позволяет модифицировать полученные данные до их перевода в состояние: - - _расчетное значение_ = _извлеченное значение_ \* коэффициент + смещение, чтобы немедленно внести изменения в значение. -- **_Interval_** — интервал опроса в мс (миллисекундах). Если поле пусто или равно 0, будет использоваться интервал опроса по умолчанию. Дополнительную информацию см. выше. - -## Пример настроек -| Имя | URL-адрес или имя файла | регулярное выражение | Роль | Тип | Единица | Интервал | -| ----------------- | :----------------------------------------------------- | :----------------------------------- | ----------- | ------- | ---- | -------- | -| температураМюнхен | `https://darksky.net/forecast/48.1371,11.5754/si24/de` | `temp swip">(-?\d+)˚<` | температура | номер | °С | 180000 | -| облакоБег | `https://iobroker.net/` | `Privacy Notice` | индикатор | логическое | | 60000 | -| температура процессора | `/sys/devices/virtual/thermal/thermal_zone0/temp` | `(.*)` | температура | номер | °С | 30000 | -| акцииЦена.Виза | `https://www.finanzen.net/aktien/visa-aktie` | `\d{0,3},\d{2}(?=EUR<\/span>)` | ценность | номер | € | 86400000 | -| клейнанцейген | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` | по умолчанию | строка | | 600000 | -| клейнанцейген | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` | по умолчанию | строка | | 600000 | - -*Примечание.* При применении регулярного выражения к полученным данным URL/файла все разрывы строк будут заменены пробелами, чтобы обеспечить возможность многострочного поиска. +- настраиваемый - пользователь сам определяет через _администратор_ роль +- температура - значение равно температуре +- значение - значение представляет собой число (например, диммер) +- блайнды - значение представляет собой блайндовую позицию +- переключатель - значение - положение переключателя (истина/ложь) +- кнопка - значение - кнопка +- индикатор - логический индикатор +- **_Тип_** - тип переменной согласно выпадающему меню. +- **_Unit_** - Необязательно: единица измерения значения, добавленного к записи состояния. Например, `°C`, `€`, `GB` и т. д. +- **_Старый_** - Если активировано, состояние _не_ будет обновляться, если значение не может быть прочитано или найдено в указанной дате (URL или файл), поэтому в этом случае будет сохранено предыдущее значение. +- **_Subs_** - Необязательно: заменитель URL или имени файла. Этот заменитель URL/имя файла будет использоваться, если URL/имя файла первого столбца недоступен. +- **_Factor/Offset_** (только для чисел «Тип») — позволяет изменять извлеченные данные перед установкой в состояние: +- _вычисленное значение_ = _извлеченное значение_ \* фактор + смещение, для немедленного внесения изменений в значение +- **_Interval_** - интервал опроса в мс (миллисекундах). Если пусто или 0, будет использоваться интервал опроса по умолчанию. Дополнительную информацию см. выше. + +## Примеры настроек +| Имя | URL или имя файла | RegEx | Роль | Тип | Единица | Интервал | +| ----------------- |:-------------------------------------------------------| :----------------------------------- | ----------- | ------- | ---- | -------- | +| температураМюнхен | `https://darksky.net/forecast/48.1371,11.5754/si24/de` | `temp swip">(-?\d+)˚<` | температура | число | °C | 180000 | +| cloudRunning | `https://iobroker.net/` | `Privacy Notice` | индикатор | логическое значение | | 60000 | +| cpuTemperature | `/sys/devices/virtual/thermal/thermal_zone0/temp` | `(.*)` | температура | число | °C | 30000 | +| stockPrice.Visa | `https://www.finanzen.net/aktien/visa-aktie` | `\d{0,3},\d{2}(?=EUR<\/span>)` | стоимость | количество | € | 86400000 | +| клейнанцейген | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` | по умолчанию | строка | | 600000 | +| клейнанцейген | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` | по умолчанию | строка | | 600000 | + +*Примечание:* При применении регулярного выражения к полученным данным URL/файла все переносы строк будут заменены пробелами, чтобы обеспечить возможность многострочного поиска. ## О регулярных выражениях (RegExp) -Регулярные выражения — это мощный инструмент для анализа и извлечения определенных данных из строк, и что еще более важно: они позволяют извлекать определенные значения/текст из заданной строки (например, из HTML-кода веб-страницы или текста из файла), применяя правила. . +Регулярные выражения — это мощный инструмент для анализа и извлечения определенных данных из строк, и что еще важнее: они позволяют извлекать определенные значения/текст из заданной строки (например, из HTML-кода веб-страницы или текста из файла) путем применения правил. -Для логических типов регулярное выражение довольно простое. Для числовых типов следует обозначать число скобками — `()`. Например. чтобы извлечь число из *Температура 5°C*, вам следует использовать выражение ` (\d+)`. +Для булевых типов регулярное выражение довольно простое. Для числовых типов следует пометить число скобками - `()`. Например, чтобы извлечь число из *Температура 5°C*, следует использовать выражение ` (\d+)`. Дополнительная информация о RegExp: - [Документация MDN/Mozilla](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) -- [regex101: онлайн-инструмент для создания и проверки регулярных выражений](https://regex101.com/) +- [regex101: онлайн-инструмент для создания и тестирования регулярных выражений](https://regex101.com/) ### Примеры - `.at` соответствует любой трехсимвольной строке, заканчивающейся на `at`, включая `hat`, `cat` и `bat`. - `[hc]at` соответствует `hat` и `cat`. -- `[^b]at` соответствует всем строкам, соответствующим .at, кроме `bat`. +- `[^b]at` соответствует всем строкам, соответствующим .at, за исключением `bat`. - `[^hc]at` соответствует всем строкам, соответствующим .at, кроме `hat` и `cat`. -- `^[hc]at` соответствует `hat` и `cat`, но только в начале строки или строки. -- `[hc]at$` соответствует `hat` и `cat`, но только в конце строки или строки. +- `^[hc]at` соответствует `hat` и `cat`, но только в начале строки. +- `[hc]at$` соответствует `hat` и `cat`, но только в конце строки или имени. - `\[.\]` соответствует любому одиночному символу, заключенному в `[` и `]`, поскольку скобки экранированы, например: `[a]` и `[b]`. - `s.\*` соответствует s, за которым следует ноль или более символов, например: `s`, `saw` и `seed`. - `[hc]+at` соответствует `hat`, `cat`, `hhat`, `chat`, `hcat`, `cchchat` и т. д., но не `at`. @@ -104,15 +104,15 @@ hash: Le4c+UayImhSKld1ia2TKTckHZUsW4qw9xKSC9LG2fk= - `[hc]\*at` соответствует `hat`, `cat`, `hhat`, `chat`, `hcat`, `cchchat`, `at` и т. д. - `cat|dog` соответствует `cat` или `dog`. - `(\d+)` - получить число из строки -- `сейчас (\w+)` позже - получить слово между `сейчас` и `позже` +- `now (\w+)` later - получить слово между `now` и `later` ### Другие полезные выражения -- `(-?\d+)` получить число (как отрицательные, так и положительные числа) +- `(-?\d+)` получить число (как отрицательное, так и положительное) - `[+-]?([0-9]+.?[0-9]|.[0-9]+)` получить число с десятичными знаками (и `.` в качестве десятичного разделителя) - `[+-]?([0-9]+,?[0-9]|,[0-9]+)` получить число с десятичными знаками (и `,` в качестве десятичного разделителя) ## Пример уведомления -### Телеграм +### Телеграмма ```Javascript on("parser.0.kleinanzeigen", (obj) => { sendTo("telegram.0", { @@ -125,12 +125,12 @@ on("parser.0.kleinanzeigen", (obj) => { Значения могут иметь коды качества: - 0 - ОК -- 0x82 - URL-адрес или файл не могут быть прочитаны. -- 0x44 - Числовое или строковое значение не найдено в тексте. +- 0x82 - URL или файл не могут быть прочитаны. +- 0x44 - Число или строковое значение не найдено в тексте ## Запуск -Дополнительно к интервалу опроса синтаксический анализ конкретных правил может быть запущен записью пустого значения (`false`, `0`, '' - зависит от типа состояния) в состояние с §§SSSSS_2 §§ флаг подтверждения. -В этом случае значение будет прочитано из URL/файла и немедленно проанализировано. +Дополнительно к интервалу опроса разбор определенных правил может быть запущен путем записи пустого значения (`false`, `0`, '' - зависит от типа состояния) в состояние с флагом подтверждения `false`. +В этом случае значение будет считано из URL/файла и немедленно проанализировано. Вы также можете отправить сообщение адаптеру с помощью команды `sendTo`: @@ -141,14 +141,20 @@ sendTo("parser.0", "trigger", "temperatureMunich" /* name of rule, or parser.0.t ``` ## Поддерживать -1. Общие сведения: [Форум ioBroker](https://forum.iobroker.net/). Немецкоязычные пользователи: см. [тему форума ioBroker Parser-Adapter](https://forum.iobroker.net/topic/4494/adapter-parser-regex). -2. В случае возникновения каких-либо проблем ознакомьтесь с [Адаптером синтаксического анализатора ioBroker: проблемы с GitHub](https://github.com/ioBroker/ioBroker.parser/issues). +1. Общие сведения: [Форум ioBroker](https://forum.iobroker.net/). Немецкоязычные пользователи: см. [тема форума ioBroker Parser-Adapter](https://forum.iobroker.net/topic/4494/adapter-parser-regex). +2. В случае возникновения каких-либо проблем, пожалуйста, ознакомьтесь с [Адаптер парсера ioBroker: проблемы GitHub](https://github.com/ioBroker/ioBroker.parser/issues). +### **РАБОТА В ХОДЕ** --> ## Changelog +### 2.2.2 (2024-07-14) +* (bluefox) GUI was migrated for admin v7 + +### 2.1.0 (2023-12-14) +* (mcm1957) Only node 16 and higher is supported + ### 2.0.7 (2023-10-25) * (TA2k) added the user agent to prevent timeout blocking * (bluefox) Added a configurable userAgent option @@ -247,7 +253,7 @@ sendTo("parser.0", "trigger", "temperatureMunich" /* name of rule, or parser.0.t ## License The MIT License (MIT) -Copyright (c) 2017-2023 bluefox +Copyright (c) 2017-2024 bluefox Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -265,4 +271,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.ping/README.md b/docs/ru/adapterref/iobroker.ping/README.md index c2719c6b5..c90ef2886 100644 --- a/docs/ru/adapterref/iobroker.ping/README.md +++ b/docs/ru/adapterref/iobroker.ping/README.md @@ -1,26 +1,26 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.ping/README.md -title: ПИН-адаптер -hash: MAGjUdHBudMUVg9QoTfLArDzpKf+ftdBhWu6hu3FqJA= +title: Адаптер PING +hash: Sxv9m2nXnXAw1YjMyPaVSDFJsJ+yklUu/k93fWbggTs= --- ![Логотип](../../../en/adapterref/iobroker.ping/admin/ping.png) ![Количество установок](http://iobroker.live/badges/ping-stable.svg) -![версия NPM](http://img.shields.io/npm/v/iobroker.ping.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.ping.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.ping.svg) -# PING-адаптер -![Тестируйте и выпускайте](https://github.com/ioBroker/ioBroker.ping/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/ping/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +# Адаптер PING +![Тест и выпуск](https://github.com/ioBroker/ioBroker.ping/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/ping/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) ## Пингует настроенные IP-адреса. -Пингует указанные IP-адреса с заданным интервалом и отслеживает результаты. +Осуществляет пингование указанных IP-адресов с заданным интервалом и отслеживает результаты. -**Этот адаптер использует библиотеки 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. -## Пинг с javascript-адаптера -Вы можете пропинговать любой IP-адрес из адаптера javascript с помощью команды: +## Пинг с адаптера JavaScript +Вы можете выполнить ping любого IP-адреса из адаптера JavaScript с помощью команды: ``` sendTo('ping.0', 'ping', '192.168.1.1', (res) => { @@ -28,18 +28,37 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { }); ``` -## Известные вопросы -* если невозможно пропинговать ваш Linux-клиент, проверьте, правильно ли установлен `iputils-ping` на клиенте. +## Известные проблемы +* если не удаётся выполнить ping вашего клиента Linux, проверьте, правильно ли установлен `iputils-ping` на клиенте. + +* Команда `ping` в Linux требует прав root. + +Вы можете предоставить адаптеру права на выполнение команды `ping` от имени пользователя root. + +Для этого необходимо добавить следующую строку в файл `/etc/sudoers` с командой `sudo visudo`: `iobroker ALL=(ALL) NOPASSWD: /bin/ping`. + +Или вы можете разрешить выполнение ping с помощью команды `sudo setcap cap_net_raw+ep /bin/ping`. + +Если `setcup` не найден, необходимо установить setcap с `sudo apt-get install libcap2-bin`. +### **РАБОТА В ХОДЕ** --> ## Changelog +### 1.7.0 (2024-08-17) +* (bluefox) Added possibility to browse the IP ranges + +### 1.6.4 (2024-07-17) +* (bluefox) Added possibility to execute `setcap` command to allow ping without root rights + +### 1.6.3 (2024-07-16) +* (bluefox) Updated the packages + ### 1.6.2 (2023-07-19) * (McM1957) Handling of state updates causing crashes with js-controller 5 has been corrected. (Issue #106) * (McM1957) Trailing spaces are now removed from ip address and name. Trailing spaces blocked correct operation. (Issue #98) -* (bluefox) Added json config +* (bluefox) Added JSON config * (bluefox) Added different intervals for online and offline devices * (bluefox) implemented export/import of devices @@ -54,7 +73,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (Apollon77) optimize for js-controller 3.3 ### 1.4.12 (2020-09-18) -* (Apollon77) Prevent a crash case when no devices are defined (Sentry IOBROKER-PING-R) +* (Apollon77) Prevented a crash case when no devices are defined (Sentry IOBROKER-PING-R) ### 1.4.11 (2020-08-26) * (Apollon77) update js-controller dependency to correct version (1.5.8) @@ -66,11 +85,11 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (Apollon77) finally try to catch spawn errors (Sentry IOBROKER-PING-2) ### 1.4.6 (2020-04-29) -* (Apollon77) Make sure adapter does not crash if ping command can not be executed (Sentry) +* (Apollon77) Make sure the adapter does not crash if ping command cannot be executed (Sentry) * (Apollon77) Catch error when `ping.probe` could not be started (Sentry IOBROKER-PING-2) ### 1.4.5 (2020-04-23) -* (Apollon77) Fixed potential crash case (Sentry) +* (Apollon77) Fixed a potential crash case (Sentry) ### 1.4.4 (2020-04-17) * (bluefox) Added support for Admin3 @@ -83,7 +102,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (JayVee2) Sort the IP addresses ### 1.4.1 (2019-01-08) -* (simatec) support compact mode +* (simatec) supported compact mode ### 1.4.0 (2018-01-25) * (vdemidov) refactored, added ping time and roundtrips per second for every host @@ -92,7 +111,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (ldittmar) object values are converted to the valid type ### 1.3.0 (2017-02-21) -* (bluefox) allow to remove host name from state's name +* (bluefox) allowed removing host name from state's name ### 1.2.0 (2016-12-09) * (bluefox) change configuration dialog @@ -111,7 +130,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (bluefox) add tests ### 0.1.3 (2015-01-26) -* (bluefox) Fixed the error if configuration changed +* (bluefox) Fixed the error if the configuration changed ### 0.1.2 (2015-01-14) * (bluefox) Fixed the configuration page @@ -138,7 +157,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { The MIT License (MIT) -Copyright (c) 2014-2023, bluefox +Copyright (c) 2014-2024, bluefox Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -156,4 +175,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.pollenflug/README.md b/docs/ru/adapterref/iobroker.pollenflug/README.md index ecaac3c27..05f59d1f3 100644 --- a/docs/ru/adapterref/iobroker.pollenflug/README.md +++ b/docs/ru/adapterref/iobroker.pollenflug/README.md @@ -1,99 +1,98 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.pollenflug/README.md title: Индекс риска пыльцы -hash: RjP/kMcMjP8AFiLqq64h2tjH2yUsQbolm3pTtgV7UQs= +hash: azUqlE8U4xUni87ATfGl3Us9WLxbI1W/4imlG05+XLM= --- -![логотип](../../../en/adapterref/iobroker.pollenflug/admin/pollenflug.png) +![Логотип](../../../en/adapterref/iobroker.pollenflug/admin/pollenflug.png) -![Travis CI Статус сборки](https://travis-ci.org/schmupu/ioBroker.pollenflug.svg?branch=master) -![AppVeyor Статус сборки](https://ci.appveyor.com/api/projects/status/github/schmupu/ioBroker.pollenflug?branch=master&svg=true) +![Статус сборки Travis CI](https://travis-ci.org/schmupu/ioBroker.pollenflug.svg?branch=master) +![Статус сборки AppVeyor](https://ci.appveyor.com/api/projects/status/github/schmupu/ioBroker.pollenflug?branch=master&svg=true) ![Количество установок](http://iobroker.live/badges/pollenflug-stable.svg) -![Версия NPM](http://img.shields.io/npm/v/iobroker.pollenflug.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.pollenflug.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.pollenflug.svg) -![NPM](https://nodei.co/npm/iobroker.pollenflug.png?downloads=true) +![НПМ](https://nodei.co/npm/iobroker.pollenflug.png?downloads=true) # Индекс риска пыльцы -![DWDLogo](../../../en/adapterref/iobroker.pollenflug/docs/dwdlogo.png) +![DWDЛоготип](../../../en/adapterref/iobroker.pollenflug/docs/dwdlogo.png) -Немецкая служба погоды DWD готовит ежедневные прогнозы индекса риска пыльцы. -Прогнозируются виды пыльцы: орешник, ольха, ясень, береза, трава, рожь, полынь и амброзия на сегодня и завтра, в пятницу также на послезавтра (воскресенье). +Немецкая метеорологическая служба DWD готовит ежедневные прогнозы индекса пыльцевого риска. +Прогнозируются следующие виды пыльцы: орешник, ольха, ясень, береза, трава, рожь, полынь и амброзия на сегодня и завтра, в пятницу также на послезавтра (воскресенье). Обновляется ежедневно утром. -Информацию о округах пыльцы можно найти по адресу: https://www.dwd.de/pollenflug. Авторские права на используемые данные пыльцы: © Deutscher Wetterdienst (Quelle: Deutscher Wetterdienst). +Информация о пыльцевых округах доступна по адресу: https://www.dwd.de/pollenflug Авторские права на используемые данные о пыльце: © Deutscher Wetterdienst (Quelle: Deutscher Wetterdienst) ## Установка и настройка -Требуется node.js 8.0 или выше и Admin v3! Выберите округ в конфигурации адаптера ioBroker. Вы получите индекс риска пыльцы для этого округа. Индекс будет обновляться один раз в день, около 11 часов. -В объектах info.today, info.trible и info.dayaftertuture будет указан срок действия. -Возможно, например, что сегодня пятница, но в объекте info.today день - четверг. -Это верно, потому что данные DWD все еще с четверга и не обновляются до сих пор. Обновление будет в 11 часов обычно. +Выберите округ в конфигурации адаптера ioBroker. Вы получите индекс риска пыльцы для этого округа. Индекс будет обновляться один раз в день, около 11 часов. +В объектах info.today, info.tomorrow и info.dayaftertomorrow будет показан период действия. +Возможно, например, сегодня пятница, но в объекте info.today день — четверг. +Это верно, потому что данные DWD все еще с четверга и не обновлялись до сих пор. Обновление будет происходить в 11 часов, как правило. Предоставленные немецкие округа: -* Шлезвиг-Гольштейн и Гамбург (регион 11 и 12) -    * Inseln und Marschen (регион 11) -    * Geest, Шлезвиг-Гольштейн и Гамбург (регион 12) +* Шлезвиг-Гольштейн и Гамбург (регионы 11 и 12) + * Инсельн и Маршен (регион 11) + * Гест, земли Шлезвиг-Гольштейн и Гамбург (регион 12) * Мекленбург-Передняя Померания (регион 20) -* Niedersachsen und Bremen (регион 31 и 32) -    * Вестл. Нидерсаксен / Бремен (регион 31) -    * Остл. Нидерсаксен (регион 32) -* Северный Рейн-Вестфалия (регион 41, 42 и 43) -    * Рейн-Вестфал. Тифленд (регион 41) -    * Оствестфален (регион 42) -    * Mittelgebirge NRW (регион 43) +* Нидерсаксония и Бремен (регионы 31 и 32) + * Вестл. Нидерсаксен/Бремен (регион 31) + * Эстл. Нидерсаксен (регион 32) +* Северный Рейн-Вестфалия (регионы 41, 42 и 43) + * Рейн.-Вестфаль. Тифланд (регион 41) + * Оствестфален (регион 42) + * Миттельгебирге NRW (регион 43) * Бранденбург и Берлин (регион 50) -* Sachsen-Anhalt (регион 61 и 62) -    * Tiefland Sachsen-Anhalt (регион 61) -    * Гарц (регион 62) -* Тюринген (регион 71 и 72) -    * Tiefland Thüringen (регион 71) -    * Миттельгебирге Тюринген (регион 72) -* Sachsen (регион 81 и 82) -    * Tiefland Sachsen (регион 81) -    * Mittelgebirge Sachsen (регион 82) -* Гессен (регион 91 и 92) -    * Nordhessen und hess. Миттельгебирге (регион 91) -    * Рейн-Майн (регион 92) +* Саксония-Анхальт (регионы 61 и 62) + * Тифланд Саксония-Анхальт (регион 61) +* Гарц (регион 62) +* Тюрингия (регионы 71 и 72) + * Тифланд Тюринген (регион 71) + * Миттельгебирге Тюрингия (регион 72) +* Саксония (регионы 81 и 82) + * Тифланд Саксония (регион 81) + * Миттельгебирге Саксония (регион 82) +* Гессен (регионы 91 и 92) + * Нордессен и Гесс. Миттельгебирге (регион 91) +* Рейн-Майн (регион 92) * Рейнланд-Пфальц и Саар (регионы 101, 102 и 103) -    * Рейн, Пфальц, Нахе и Мозель (регион 101) -    * Mittelgebirgsbereich Рейнланд-Пфальц (регион 102) -    * Саар (регион 103) -* Баден-Вюртемберг (регион 111, 112 и 113) -    * Oberrhein und unteres Neckartal (регион 111) -    * Гогенлоэ / Митлерер Неккар / Обершвабен (регион 112) -    * Миттельгебирге Баден-Вюртемберг (регион 113) -* Бавария (регион 121, 122, 123 и 124) -    * Allgäu / Oberbayern / Bay. Вальд (регион 121) -    * Donauniederungen (регион 122) -    * Бавария Нордл. дер Донау, о. Bayr. Вальд, о. Mainfranken (регион 123) -    * Mainfranken (регион 124) + * Рейн, Пфальц, Наэ и Мозель (регион 101) + * Mittelgebirgsbereich Rheinland-Pfalz (регион 102) +* Саар (регион 103) +* Баден-Вюртемберг (регионы 111, 112 и 113) + * Oberrhein und unteres Neckartal (регион 111) + * Гогенлоэ/миттлерер Неккар/Обершвабен (регион 112) + * Миттельгебирге Баден-Вюртемберг (регион 113) +* Бавария (регионы 121, 122, 123 и 124) + * Альгой/Обербайерн/Бэй. Вальд (121 регион) + * Донауниедерунген (регион 122) + * Бавария Нёрдль. дер Донау, о. Байр. Вальд, о. Майнфранкен (регион 123) + * Майнфранкен (регион 124) ![ioBroker1](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug1.png) -Исходный индекс риска DWD 0, 0-1, 1, 1-2, 2, 2-3 и 3 изменяется на 0, 1, 2, 3, 4, 5 и 6. -Этот формат проще использовать в ioBroker. +Первоначальный индекс риска DWD 0, 0-1, 1, 1-2, 2, 2-3 и 3 изменен на 0, 1, 2, 3, 4, 5 и 6. Этот формат можно проще использовать в ioBroker. | Индекс | Индекс DWD | описание | |----- |---------- |------------------------------------ | -| -1 | -1 | нет данных | +| -1 | -1 | данные отсутствуют | | 0 | 0 | нет концентрации пыльцы | -| 1 | 0-1 | нет низкой концентрации пыльцы | +| 1 | 0-1 | от нуля до низкой концентрации пыльцы | | 2 | 1 | низкая концентрация пыльцы | -| 3 | 1-2 | низкая и средняя концентрация пыльцы | +| 3 | 1-2 | низкая или средняя концентрация пыльцы | | 4 | 2 | средняя концентрация пыльцы | -| 5 | 2-3 | концентрация пыльцы от средней до высокой | +| 5 | 2-3 | средняя или высокая концентрация пыльцы | | 6 | 3 | высокая концентрация пыльцы | -** Пример полета пыльцы: ** ![ioBroker2](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug2.png) +**Пример полета пыльцы:** ![ioBroker2](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug2.png) ![ioBroker3](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug3.png) -URL-адрес изображения пыльцы из DWD +URL-адрес изображений пыльцы из DWD ![ioBroker4](https://www.dwd.de/DWD/warnungen/medizin/pollen/pollen_1_0.png) ## Пример -Если поступят новые данные из DWD (изменится сегодняшняя дата), сценарий покажет индекс риска пыльцы для Hasel и Erle. +Если поступят новые данные от DWD (сегодняшняя дата изменится), скрипт покажет индекс риска пыльцы для Хазела и Эрла. ``` on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { @@ -104,7 +103,30 @@ on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { }); ``` +## Кредиты +Создание этого адаптера было бы невозможно без выдающейся работы schmupu (https://github.com/schmupu), который создал версию V1.x.x этого адаптера. + ## Changelog + +### 2.0.0 (2024-07-24) +* (mcm1957) This adapter hase been moved to iobroker-community-adapters organization +* (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now. +* (mcm1957) Dependencies have been updated + +### 1.0.6 (03.05.2019) +* (Stübi) User can enable/disable sentry logging + +### 1.0.5 (29.04.2019) +* (Stübi) Add Sentry to adapter + +### 1.0.4 (19.10.2019) +* (Stübi) Bugfixing + +### 1.0.3 (12.04.2019) +* (Stübi) Bugfixing, changing logo size ### 1.0.2 (12.03.2019) * (Stübi) Bugfixing, of changing sepaation of entries in riskindex_x from ',' to ', ' @@ -132,7 +154,8 @@ on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { ## License The MIT License (MIT) -Copyright (c) 2019 Thorsten Stueben / +Copyright (c) 2024 iobroker-community +Copyright (c) 2020 Thorsten Stueben / Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -150,4 +173,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.roborock/README.md b/docs/ru/adapterref/iobroker.roborock/README.md index e41f73aeb..bc2921a56 100644 --- a/docs/ru/adapterref/iobroker.roborock/README.md +++ b/docs/ru/adapterref/iobroker.roborock/README.md @@ -1,54 +1,55 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.roborock/README.md -title: ioBroker.roborock -hash: ZbXfzwhuQCvaMwzAEM00uIjetXhhWHpf5hSd6wz3ids= +title: ioBroker.роборок +hash: O7JKqAp+ZBiAMaW5WhpC3/jObo5ljSu2qxwqZsUSxy0= --- ![Логотип](../../../en/adapterref/iobroker.roborock/admin/roborock.png) -![НПМ-версия](https://img.shields.io/npm/v/iobroker.roborock.svg) +![версия НПМ](https://img.shields.io/npm/v/iobroker.roborock.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.roborock.svg) ![Количество установок](https://iobroker.live/badges/roborock-installed.svg) -![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/roborock-stable.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/roborock-stable.svg) ![НПМ](https://nodei.co/npm/iobroker.roborock.png?downloads=true) # IoBroker.roborock -**Тесты:** ![Тестирование и выпуск](https://github.com/copystring/ioBroker.roborock/workflows/Test%20and%20Release/badge.svg) +**Тесты:** ![Тест и выпуск](https://github.com/copystring/ioBroker.roborock/workflows/Test%20and%20Release/badge.svg) **Перевод:** [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/roborock/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) ## Адаптер Roborock для ioBroker -Этот адаптер позволяет вам управлять, получать состояния, историю уборки и просматривать карту пылесоса Roborock, настроенную в приложении Roborock. +Этот адаптер позволяет вам управлять, получать данные о состоянии, историю уборки и просматривать карту пылесоса Roborock, настроенного в приложении Roborock. -**Этот адаптер использует библиотеки 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. ## Поддерживаемые роботы: - Роборок S4 - Роборок S4 Макс - Роборок S5 Макс - Роборок S6 -- Роборок S6 Чистый -- Роборок С6 МаксВ +- Roborock S6 Чистый +- Roborock S6 MaxV - Роборок S7 -- Роборок S7 MaxV (Ультра) +- Roborock S7 MaxV (Ультра) - Роборок Q7 - Роборок Q7 Макс -- Роборок С7 Про Ультра -- Роборок S7 Макс Ультра +- Roborock S7 Pro Ультра +- Roborock S7 Max Ultra - Роборок S8 -- Роборок С8 Про Ультра +- Roborock S8 Pro Ультра - Роборок Кью Рево - Роборок Q8 Макс -- Роборок Q5 Про +- Роборок Q5 Pro +- Roborock Q Revo Pro -## Очистка зоны -Эта функция работает только тогда, когда в настройках адаптера включено создание карт! +## Зональная уборка +Эта функция работает только в том случае, если в настройках адаптера включена функция создания карты! ### Создание карты не работает на Raspberry Pi - - Работает веб-сервер. Порт по умолчанию — 6824. - - Откройте http://iobroker:6824/map.html в своем браузере (измените http://iobroker на свое имя хоста или IP-адрес ioBroker!!!) - - Нарисуйте свой квадрат, предназначенный для уборки. Roborock поддерживает до 4 зон очистки одновременно. +- Веб-сервер запущен. Порт по умолчанию 6824. +- Откройте http://iobroker:6824/map.html в вашем браузере (измените http://iobroker на имя хоста или IP вашего ioBroker!!!) +- Нарисуйте свой квадрат, предназначенный для уборки. Roborock поддерживает до 4 зон уборки одновременно. ![](https://github.com/copystring/ioBroker.roborock/blob/main/images/Rockrock_zone_cleaning.gif) @@ -57,6 +58,43 @@ hash: ZbXfzwhuQCvaMwzAEM00uIjetXhhWHpf5hSd6wz3ids= Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 0.6.6 (2024-07-14) +* (copystring) require min node 20 to operate correctly with current dependencies + +### 0.6.5 (2024-07-13) +* (copystring) Add and fix some parameters and attributes +* (copystring) Fix getMap() in getParameter() +* (copystring) Add connection state to timeouts +* (copystring) Detect and report unsupported attributes +* (copystring) Improve camera and voice support detection +* (copystring) Wait for TCP client to connect on start of adapter +* (copystring) Add handling of TCP chunks. This will fix a lot of timeouts 🎉 +* (copystring) Manage stop/stop in the webinterface via state of robot instead of guessing via clicking the buttons in the webinterface +* (copystring) Refactor and improve javascript code of web interface +* (copystring) Add Roborock Q Revo Pro +* (copystring) Update dependencies + +### 0.6.4 (2024-04-21) +* (copystring) Fix io-package.json and update packages + +### 0.6.3 (2024-04-21) +* (copystring) Add consumables to Qrevo MaxV +* (copystring) Fix S5 Max clean records defintion +* (copystring) Fix app_start via web interface +* (copystring) Improve local devices discovery + +### 0.6.2 (2024-04-05) +* (copystring) Fix start of go2rtc + +### 0.6.1 (2024-04-02) +* (copystring) Fix lint + +### 0.6.0 (2024-04-02) +* (copystring) New and improved message queue handler +* (copystring) Convert robot features to new much more modular system +* (copystring) Add support for large photos of obstacles +* (copystring) Many bug fixes I can't remember :D + ### 0.5.4 (2024-02-01) * (copystring) Fix mqtt disconnect/reconnect bug on start of adapter @@ -293,4 +331,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.rpi2/README.md b/docs/ru/adapterref/iobroker.rpi2/README.md index 3f1678abe..7ada7d5a5 100644 --- a/docs/ru/adapterref/iobroker.rpi2/README.md +++ b/docs/ru/adapterref/iobroker.rpi2/README.md @@ -1,62 +1,67 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.rpi2/README.md -title: без заголовка -hash: G9+pPja5y/AjJQaB9C9Q6N56ohBNs3VK6oK3cmSPVsM= +title: нет названия +hash: eqFbMVAtc2KJ4WQOBCX2RsFccxIp6aRsiZMzepwkGJw= --- -![Логотип](../../../en/adapterref/iobroker.rpi2/admin/rpi2.png) Адаптер ioBroker RPI-Monitor +![Логотип](../../../en/adapterref/iobroker.rpi2/admin/rpi2.png) Адаптер ioBroker RPI-монитор -![НПМ-версия](https://img.shields.io/npm/v/iobroker.rpi2.svg) +![версия НПМ](https://img.shields.io/npm/v/iobroker.rpi2.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.rpi2.svg) ![Количество установок](https://iobroker.live/badges/rpi2-installed.svg) -![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/rpi2-stable.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/rpi2-stable.svg) ![НПМ](https://nodei.co/npm/iobroker.rpi2.png?downloads=true) ============== -**Тесты:** ![Тестирование и выпуск](https://github.com/iobroker-community-adapters/ioBroker.rpi2/workflows/Test%20and%20Release/badge.svg) Реализация RPI-Monitor для интеграции в ioBroker. Это та же реализация, что и для iobroker.rpi, но с GPIO. +**Тесты:** ![Тест и выпуск](https://github.com/iobroker-community-adapters/ioBroker.rpi2/workflows/Test%20and%20Release/badge.svg) Реализация RPI-Monitor для интеграции в ioBroker. Это та же реализация, что и для iobroker.rpi, но с GPIO. ## Важная информация Работает только с узлом >= 18 -**ioBroker требуются специальные разрешения для управления GPIO.** В большинстве дистрибутивов Linux этого можно добиться, добавив пользователя ioBroker в группу `gpio` (рекомендуется) или запустив ioBroker под `root` (менее безопасно). +**ioBroker требуются специальные разрешения для управления GPIO.** В большинстве дистрибутивов Linux этого можно добиться, добавив пользователя ioBroker в группу `gpio` (рекомендуется) или запустив ioBroker под учетной записью `root` (менее безопасно). -## Монтаж +Для работы gpio необходимо установить libgpiod **перед** установкой адаптера, например так: `sudo apt-get install -y libgpiod-dev` + +## Установка После установки вам необходимо настроить все необходимые модули через страницу администрирования. -После запуска iobroker.rpi все выбранные модули генерируют дерево объектов в ioBroker внутри rpi.<экземпляр>.<имя модуля>, например. rpi.0.cpu +После запуска iobroker.rpi все выбранные модули генерируют дерево объектов в ioBroker в rpi.. например rpi.0.cpu -Убедитесь, что установлены Python и build-essential: +Убедитесь, что установлены python и build-essential: ``` sudo apt-get update sudo apt-get install -y build-essential python +sudo apt-get install -y libgpiod-dev ``` +(последний необходим только если вы хотите работать с GPIO) + После выбора доступны следующие объекты: #### **ПРОЦЕССОР** -- частота процессора +- частота_процессора - нагрузка1 - нагрузка5 - нагрузка15 #### **Raspberry (требуется vcgencmd)** -- напряжение процессора +- напряжение_процессора - mem_arm -- мем_гпу +- mem_gpu -#### **Объем памяти** +#### **Память** - память_доступна -- память_свободно +- память_свободна - память_всего #### **Сеть (eth0)** - net_received - net_send -#### **SD Card** +#### **SD-карта** - sdcard_boot_total - sdcard_boot_used - sdcard_root_total @@ -69,11 +74,11 @@ sudo apt-get install -y build-essential python #### **Температура** - soc_temp -#### **Время работы** +#### **Время безотказной работы** - время безотказной работы -#### **Беспроводная локальная сеть** -- wifi_received +#### **Беспроводная ЛВС** +- wifi_получен - wifi_send ## Конфигурация @@ -81,24 +86,24 @@ sudo apt-get install -y build-essential python - ПРОЦЕССОР - Малина -- Объем памяти +- Память - Сеть -- SD Card +- SD-карта - Менять - Температура - Время безотказной работы -- WLAN +- Беспроводная локальная сеть -## Файлы журналов/Настройки конфигурации +## Файлы журналов / Параметры конфигурации ## Функции -## Делать +## То, что нужно сделать ## Протестированное оборудование - - Одроид С1 - - Малиновый Пи 1 +- Одроид С1 +- Raspberry Pi 1 ## GPIO -Вы также можете читать и контролировать GPIO. -Все, что вам нужно сделать, это настроить в настройках параметры GPIO (дополнительная вкладка). +Вы также можете читать и управлять GPIO. +Все, что вам нужно сделать, это настроить параметры GPIO в настройках (дополнительная вкладка). ![GPIO](../../../en/adapterref/iobroker.rpi2/img/pi3_gpio.png) @@ -106,8 +111,8 @@ sudo apt-get install -y build-essential python - rpi.0.gpio.PORT.state -Нумерация портов — BCM (контакты BroadComm на чипе). Вы можете получить перечисление с помощью ```gpio readall```. -Например PI2: +Нумерация портов — BCM (контакты BroadComm на чипе). Вы можете получить нумерацию с помощью ```gpio readall```. +Например, PI2: ``` +-----+-----+---------+------+---+---Pi 2---+---+------+---------+-----+-----+ @@ -139,9 +144,9 @@ sudo apt-get install -y build-essential python ``` ## Датчики DHTxx/AM23xx -Вы можете считывать данные с датчиков температуры/влажности DHT11, DHT22 и AM2302. +Вы можете считывать показания с датчиков температуры/влажности DHT11, DHT22 и AM2302. -Подключите такой датчик к выводу GPIO, как описано на странице пакета [узел-dht-сенсор](https://www.npmjs.com/package/node-dht-sensor). Несколько датчиков могут быть подключены к *нескольким* контактам (это *не* шинная система), как обсуждалось. +Подключите такой датчик к выводу GPIO, как описано на странице пакета [узел-dht-датчик](https://www.npmjs.com/package/node-dht-sensor). Несколько датчиков можно подключить к *нескольким* выводам (это *не* шинная система), как обсуждалось. ## Changelog @@ -245,4 +250,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.rssfeed/README.md b/docs/ru/adapterref/iobroker.rssfeed/README.md index aea95b278..4209223ac 100644 --- a/docs/ru/adapterref/iobroker.rssfeed/README.md +++ b/docs/ru/adapterref/iobroker.rssfeed/README.md @@ -1,101 +1,291 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.rssfeed/README.md -title: Адаптер ioBroker для запроса и отображения RSS-каналов различных стандартов (Atom, RSS, RDF) -hash: 2EJ3w/l3dIfXZJMpjQqU13o7sbmZyqWpAWMgWgAWZZY= +title: Адаптер ioBroker для запроса и отображения RSS-каналов разных стандартов (Atom, RSS, RDF) +hash: h+308Gfw/ORgLpz15BGP+BgOnriuS2UqVYxy+f2ctnU= --- ![Логотип](../../../en/adapterref/iobroker.rssfeed/admin/rssfeed.png) -![НПМ-версия](https://img.shields.io/npm/v/iobroker.rssfeed.svg) +![версия НПМ](https://img.shields.io/npm/v/iobroker.rssfeed.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.rssfeed.svg) ![Количество установок](https://iobroker.live/badges/rssfeed-installed.svg) -![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/rssfeed-stable.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/rssfeed-stable.svg) ![НПМ](https://nodei.co/npm/iobroker.rssfeed.png?downloads=true) # Адаптер ioBroker для запроса и отображения RSS-каналов разных стандартов (Atom, RSS, RDF) -**Тесты:** ![Тестирование и выпуск](https://github.com/oweitman/ioBroker.rssfeed/workflows/Test%20and%20Release/badge.svg) +**Тесты:** ![Тест и выпуск](https://github.com/oweitman/ioBroker.rssfeed/workflows/Test%20and%20Release/badge.svg) ## Обзор -Адаптер для запроса и отображения RSS-каналов различных стандартов (Atom, RSS, RDF). -Вы можете настроить вывод канала с помощью системы шаблонов. В шаблоны вы можете включать HTML, CSS и Javascript. +Адаптер для запроса и отображения RSS-каналов разных стандартов (Atom, RSS, RDF). +Вы можете настроить вывод канала с помощью системы шаблонов. В шаблоны можно включать HTML, CSS и Javascript. -Важно: действителен только английский перевод из-за ошибок в автоматических переводах на другие языки, сделанных iobroker. +Важно: действителен только перевод на английский язык из-за ошибок в автоматических переводах на другие языки, выполненных iobroker. ## Добавить экземпляр -После установки адаптер должен отображаться в разделе адаптера в iobroker. -Иногда случается, что изменения не видны, особенно при веб-изменениях (диалог виджетов/конфигурации), возможно, придется выполнить в командной строке следующую команду: +После установки адаптер должен отображаться в разделе адаптеров в iobroker. +Иногда бывает так, что изменения не видны, особенно при веб-изменениях (виджеты/диалог конфигурации), может потребоваться выполнить следующую команду в командной строке: ```bash iobroker upload rssfeed ``` -В правой области в строке адаптера экземпляр можно добавить с помощью кнопки плюс +В правой области в строке адаптера можно добавить экземпляр с помощью кнопки «плюс» ## Конфигурация -Конфигурация проста. Есть всего несколько полей +Конфигурация проста. Всего несколько полей. | Настройка | описание | | ---------------------- | ------------------------------------------------------------------------------------------------------------------ | -| Обновление по умолчанию (мин) | — это общая спецификация того, как часто канал должен вызываться снова в минутах. По умолчанию — 60 минут | -| Макс Артикель (Стандарт) | Здесь можно ограничить общий объем данных, подлежащих обработке. | +| Обновление по умолчанию (мин) | общая спецификация того, как часто фид должен вызываться снова в минутах. Значение по умолчанию — 60 минут | +| Макс. артикул (стандартный) | Общий объем обрабатываемых данных может быть ограничен здесь. | -Затем для каждого нового канала: +Затем для каждого нового фида: | Настройка | описание | | ------------- | ---------------------------------------------------------------------------------------------- | -| Имя | Имя точки данных. Внутри папки имя не должно появляться дважды. | +| Имя | Имя для точки данных. Внутри папки имя не должно появляться дважды. | | Категория | Имя подпапки, в которой должна появиться точка данных. Категория должна быть уникальной | -| URL | Полный адрес фида (с http:// или https://, см. примеры ниже) | -| Обновить (мин) | Для этого фида можно указать другое значение. В противном случае принимается общая спецификация | -| Макс Статьи | Для этого фида можно указать другое значение. В противном случае принимается общая спецификация | +| Url | Полный адрес фида (с http:// или https://, см. примеры ниже) | +| Обновить (мин) | Для этого фида можно указать другое значение. В противном случае берется общая спецификация | +| Макс. количество статей | Для этого фида можно указать другое значение. В противном случае берется общая спецификация | -Если вы сохранили и закрыли конфигурацию, данные канала можно будет найти в виде точки данных JSON в дереве объектов. -Если вы удалите запись, точки данных не будут удалены. +Если вы сохранили и закрыли конфигурацию, feed-data можно найти как точку данных JSON в дереве объектов. +Если вы удалите запись, точки данных не удаляются. -## Визуалы и виджеты +## Вис и виджеты Следующие виджеты действительно существуют -- «Виджет RSS-канала 2» — для отображения одного канала. -- `RSS Feed Multi widget` - для отображения нескольких объединенных каналов в одном виджете. -- `RSS Feed Meta Helper` — вспомогательный виджет для проверки метаданных канала. -- `RSS Feed Article Helper 2` — вспомогательный виджет для проверки данных статьи в канале. -- `RSS Feed Title Marquee 3` — виджет для отображения заголовков канала в виде рамки. -- `JSON Template` — виджет, который не имеет ничего общего с RSS-каналами, но использует ту же технологию, и вы можете определить собственный шаблон для отображения любых JSON-данных в Vis. +- `RSS Feed widget 2` - для отображения одного канала +- `RSS Feed Multi widget 3` - для отображения нескольких агрегированных каналов в одном виджете. +- `RSS Feed Meta Helper` - вспомогательный виджет для проверки метаданных ленты +- `RSS Feed Article Helper 2` - вспомогательный виджет для проверки данных статей в ленте +- `RSS Feed Title Marquee 3` - виджет для отображения заголовков ленты в виде бегущей строки +- `Шаблон JSON` - виджет, который не имеет ничего общего с RSS-каналами, но использует ту же технологию, и вы можете определить собственный шаблон для отображения любых JSON-данных в Vis. -Документация по vis-виджетам доступна внутри vis или [Документация по виджетам/немецкий](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.rssfeed/blob/master/widgets/rssfeed/doc.html). +### Виджет RSS-канала 2 +Этот виджет можно использовать для отображения RSS-каналов, на которые вы подписаны в диалоговом окне конфигурации адаптера. Для обеспечения наилучшего отображения была выбрана система шаблонов. Описания форматирования и синтаксиса можно найти на следующих страницах. -## Шаблон на основе примеров -Пример, который я тестировал со следующими RSS-каналами: +#### Атрибут rss_oid +Выбор точки данных с соответствующим RSS-каналом. -- -- +#### Атрибут rss_template +Шаблон определяет внешний вид RSS-канала. В шаблоне можно использовать все допустимые теги HTML (включая атрибуты CSS в тегах стилей). Кроме того, существуют специальные теги, в которых отображаются данные канала и могут выполняться инструкции JavaScript. Для лучшей идентификации данных и используемых имен атрибутов есть два виджета: rssfeed Meta helper и rssfeed Article helper. -```html -<%= meta.title %> <% articles.forEach(function(item){ %> -

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

-

<%- item.title %>

-

<%- item.description %>

-
-<% }); %> -``` +**Наличие переменной:** -Система шаблонов работает с определенными тегами. -Используемые теги означают следующее +- rss.meta: метаинформация канала +- rss.articles: массив всех статей +- widgetid: идентификатор виджета +- стиль: объект стиля, если вы настраиваете дополнительную информацию о стиле -| `tag` | описание | -| ----- | ------------------------------------------------------------------- | -| <%= | Содержимое содержащегося выражения/переменной будет экранировано. | -| <%- | Содержимое содержащегося выражения/переменной не экранируется. | -| <% | Нет вывода, используется для вложенных инструкций JavaScript | -| %> | обычно является закрывающим тегом для завершения одного из предыдущих | +Более подробную информацию об этих переменных см. в главе **Доступные переменные**. + +Подробную информацию о системе шаблонов см. в главе Шаблон на основе примеров. + +#### Атрибут rss_maxarticles +Максимальное количество отдельных статей, отображаемых из RSS-канала + +#### Атрибут rss_filter +Для функции фильтра в поле можно ввести один или несколько критериев фильтрации, разделенных точкой с запятой (;). +Для поиска проверяются следующие атрибуты статьи: заголовок, описание, категории. +Отображаются только статьи, содержащие один из этих терминов. + +### RSS-канал Мульти-виджет 3 +С помощью этого виджета несколько каналов могут быть объединены в один канал. +Из-за нескольких каналов есть несколько различий в доступности данных в шаблоне по сравнению с обычным виджетом RSS-канала. +Метапеременная недоступна в шаблоне. Однако 3 метаатрибута title и description доступны в каждой отдельной статье под именами meta_title и meta_description. +Кроме того, в настройках можно назначить общее имя для каждого канала, которое доступно в шаблоне под именем meta_name в каждой статье, чтобы можно было определить происхождение статьи. +В остальном к шаблону применяются те же правила, что и для виджета RSS-канала. + +#### Атрибут rss_feedCount - Общая группа +Здесь можно задать количество каналов, которые необходимо настроить. Для каждого канала в vis создается отдельная группа для настройки. + +#### Атрибут rss_template +Шаблон определяет внешний вид RSS-канала. В шаблоне можно использовать все допустимые теги HTML (включая атрибуты CSS в тегах стилей). Кроме того, существуют специальные теги, в которых отображаются данные канала и могут выполняться инструкции JavaScript. Для лучшей идентификации данных и используемых имен атрибутов есть два виджета: rssfeed Meta helper и rssfeed Article helper. + +Подробную информацию о системе шаблонов см. в главе Шаблон на основе примеров. + +**Наличие переменной:** + +- rss.articles: массив всех статей. + +- Подмножество метаинформации элемента доступно в статье как **meta_name**, **meta_title** и **meta_description** + +- dp[] как массив, если вы настраиваете дополнительные точки данных +- widgetid: идентификатор виджета +- стиль: объект стиля, если вы настраиваете дополнительную информацию о стиле + +Более подробную информацию об этих переменных см. в главе Доступные переменные. + +#### Атрибут rss_dpCount - Общая группа +Здесь вы можете указать количество дополнительных точек данных, которые должны быть доступны в шаблоне. + +#### Атрибут rss_dp[число] - Общая группа +Здесь вы можете выбрать соответствующую точку данных. Точка данных доступна в шаблоне под переменной dp. Это означает, что точка данных может быть извлечена в шаблоне следующим образом + +Подробную информацию об этих переменных см. в главе Доступные переменные. + +#### Атрибут rss_oid - групповые каналы[число] +Выбор точки данных с соответствующим RSS-каналом. + +#### Атрибут rss_name - групповые каналы[номер] +Здесь вы можете ввести имя, которое будет доступно в шаблоне для каждой статьи под именем атрибута meta_name. + +#### Атрибут rss_maxarticles - групповые каналы[число] +Максимальное количество отдельных статей, отображаемых из RSS-канала + +#### Атрибут rss_filter - групповые каналы[число] +Для функции фильтра в поле можно ввести один или несколько критериев фильтрации, разделенных точкой с запятой (;). +Для поиска используются следующие атрибуты статьи: заголовок, описание, категории. +Отображаются только статьи, содержащие один из этих терминов. + +### Помощник метаданных RSS-канала +Этот виджет можно использовать для отображения метаатрибутов определенного фида. Он просто используется как вспомогательный виджет для создания шаблона для быстрого и легкого отображения содержимого данных RSS-канала. +Атрибуты + +#### Атрибут rss_oid +Выбор точки данных с соответствующим RSS-каналом. + +### Помощник по статьям RSS-канала +Этот виджет может использоваться для отображения атрибутов статьи определенного фида. Он просто используется как вспомогательный виджет для создания шаблона для быстрого и легкого отображения содержимого данных RSS-канала. + +#### Атрибут rss_oid +Выбор точки данных с соответствующим RSS-каналом. + +#### Атрибут rss_prefix +Чтобы упростить использование имен атрибутов путем копирования/вставки, здесь можно указать имя переменной, используемой в шаблоне статьи. + +#### Атрибут rss_article +Этот атрибут можно использовать для переключения между различными существующими статьями в RSS-канале. + +### Заголовок RSS-канала, бегущая строка 3 +С этим виджетом все атрибуты заголовка будут отображаться в виде прокручивающегося текста. В рамках изменения виджета marquee 2 на 3 этот виджет теперь является мультивиджетом, в котором вы можете объединять более одного RSS-канала. + +#### Атрибут rss_feedCount - Общая группа +Здесь вы можете задать количество каналов, которые необходимо настроить. Для каждого канала, который необходимо настроить, в vis создается отдельная группа. + +#### Атрибут rss_speed - Общая группа +Скорость прокрутки прокручиваемого текста Атрибут rss_divider - Группа General Здесь можно ввести символы, используемые для разделения заголовков. Значение по умолчанию - +++. + +#### Атрибут rss_pauseonhover - Общая группа +Если эта опция включена, прокрутка текста останавливается, как только вы наводите указатель мыши на текст. + +#### Атрибут rss_link - Общая группа +Если эта опция включена, заголовки отображаются в виде ссылки. Если щелкнуть или коснуться заголовка, ссылка на статью откроется в новом окне или вкладке. + +#### Атрибут rss_withtime - Общая группа +Если эта опция включена, время отображается перед соответствующим заголовком. Атрибут rss_withdate - Общая группа Если эта опция включена, дата без года и время отображаются перед соответствующим заголовком. + +#### Атрибут rss_withyear - Общая группа +Если эта опция включена, дата с годом и временем отображаются перед соответствующим заголовком. + +#### Атрибут rss_oid - Группа каналов[номер] +Выберите точку данных с соответствующим RSS-каналом. + +#### Атрибут rss_maxarticles - Группа Feeds[number] +Максимальное количество отдельных статей, отображаемых из RSS-канала + +#### Атрибут rss_filter - Группа каналов[номер] +Для функции фильтра в поле можно ввести один или несколько критериев фильтрации, разделенных точкой с запятой (;). +Для поиска проверяются следующие атрибуты статьи: заголовок, описание, категории. +Отображаются только статьи, содержащие один из этих терминов. + +### Шаблон JSON2 +Используя этот виджет, можно отобразить любую точку данных с данными JSON по желанию. +Отображение выполняется с использованием формата шаблона, который можно рассматривать как комбинированную форму HTML-кода + JavaScript + специальных тегов, которые управляют отображением атрибутов JSON. + +#### Атрибут json_oid +Выбор точки данных с соответствующими данными JSON. + +#### Атрибут rss_template +Шаблон можно использовать для определения внешнего вида данных JSON. Все допустимые теги HTML (включая атрибуты CSS в тегах стилей) можно использовать в шаблоне. +Также существуют специальные теги, в которых отображаются данные JSON и могут выполняться инструкции JavaScript. + +Подробную информацию о системе шаблонов см. в главе Шаблон на основе примеров. + +Данные JSON передаются в шаблон с префиксом data. Кроме того, текущий widgetID также доступен как переменная, так что его можно указать в отдельных инструкциях CSS. + +**Пример объекта** + +{ "onearray": [ "один", "два" ], "oneobject": { "attribute1": 1, "attribute2": 2 }, "onenumber": 123, "onetext": "onetwothree" } + +В приведенном выше примере атрибуты могут быть выведены следующим образом: + +<%- data.onenumber %> <%- data.onetext %> + +**Результат** + +123 одиндватри + +Массивы могут быть доступны через индекс. Индекс всегда начинается с 0. Однако существуют также фейковые массивы, где индекс не начинается с 0 или даже состоит из текста. Здесь применяются правила для объектов. В примере выше это будет + +<%- данные.onearray[0] %> <%- данные.onearray[1] %> + +**Результат** + +один два + +Если вы попытаетесь вывести массив напрямую без индекса, шаблон выведет все элементы, разделенные запятыми. + +<%- данные.onearray %> + +**Результат** -Все, что находится за пределами этих тегов, отображается точно так, как есть, или интерпретируется как HTML. (см., например, p-tag, div-tag, small-tag. В шаблоне доступны 2 предопределенные переменные. +один,два -### `meta` -Содержит всю метаинформацию о канале. Доступен следующий контент. Я думаю, что идентификаторы говорят сами за себя. В справке я опишу их более подробно. или укажите содержимое (некоторые из них представляют собой массивы) +Массивы также могут состоять из коллекции объектов. В данном примере представлен только простой массив. Пример массивов с объектами будет приведен позже. -- `meta.title` +<% для (var i = 0; i < data.onearray.length ; i++ ) { %> <%- data.onearray[i] %> <% } %> + +**Результат** + +один два + +**Объекты** могут содержать отдельные атрибуты, массивы или объекты снова. Это означает, что данные JSON могут быть вложены на любую глубину. + +Атрибуты объекта могут быть адресованы с помощью точечной нотации или скобочной нотации. Точечная нотация работает только в том случае, если атрибут соответствует определенным соглашениям об именовании (первый символ должен быть буквой, остальные цифры или буквы или подчеркивание). +Скобочная нотация также работает для атрибутов, которые не соответствуют соглашению об именовании. + +**Точечная нотация** + +<%- data.oneobject.attribute1 %> + +**Обозначение скобок** + +<%- data.oneobject["attribute1"] %> + +**Результат для обоих примеров** + +1 + +Перебрать атрибуты объекта + +<% for (var prop in data.oneobject) { %> <%- "data.oneobject." + prop + " = " + data.oneobject[prop] %> <% } %> + +**Результат** + +данные.одинобъект.атрибут1 = 1 данные.одинобъект.атрибут2 = 2 + +**Расширенный вариант использования** + +В приведенных выше примерах был охвачен только чистый вывод. Шаблон теперь также может быть обогащен тегами HTML для достижения определенного макета. Вот пример: + +

Выход

<% для (var prop in data.oneobject) { %>
<%- "data.oneobject." + prop + " = " %> <%- data.oneobject[prop] %>
<% } %> + +**Результат** + +данные.одинобъект.атрибут1 = 1 данные.одинобъект.атрибут2 = 2 + +(В Markdown цвета не видны) + +## Доступные переменные в шаблонах +### `rss.meta` +Здесь содержится вся метаинформация о ленте. Доступно следующее содержимое. Я думаю, идентификаторы говорят сами за себя. В справке я опишу их более подробно. или укажите содержимое (некоторые из них являются массивами) Только в виджете RSS Feed 2 доступен полный набор метаинформации + +Использование в шаблоне см. в **Шаблоне на основе примера** + +- `мета.заголовок` - `мета.описание` - `мета.ссылка` - `meta.xmlurl` @@ -104,16 +294,20 @@ iobroker upload rssfeed - `мета.автор` - `мета.язык` - `мета.изображение` -- `мета.фавикон` -- `meta.copyright` +- `meta.favicon` +- `мета.авторское право` - `мета.генератор` - `мета.категории` -#### `articles` -Представляет собой массив с отдельными элементами (массив JavaScript). Каждый элемент имеет следующие свойства. -Чтобы оно подходило, я, например, сделаю перед ним пункт-приставку. Но если вы хотите, вы можете выбрать это сами. Его нужно только назвать соответствующим образом в цикле (forEach). И здесь идентификаторы говорят сами за себя. Не все атрибуты заполняются в каждом фиде. Наиболее важные из них уже включены в шаблон выше. +#### `rss.articles or articles` +Это массив с отдельными элементами (массив javascript). Каждый элемент имеет следующие свойства. +Чтобы он подходил, например, я сделаю префиксный элемент перед ним. Но если хотите, вы можете выбрать его сами. Он должен быть только назван соответствующим образом в цикле (forEach). Здесь также идентификаторы говорят сами за себя. Не все атрибуты заполняются в каждом фиде. Самые важные из них уже включены в шаблон выше. -- `item.title` +Статьи доступны как rss.articles в виджете RSS-канала 2 и как статьи в виджете мульти-канала RSS 3. + +Использование в шаблоне см. в **Шаблоне на основе примера** + +- `название.элемента` - `item.description` - `item.summary` - `item.link` @@ -121,14 +315,191 @@ iobroker upload rssfeed - `item.permalink` - `item.date` - `item.pubdate` -- `item.author` +- `элемент.автор` - `item.guid` - `item.comments` - `item.image` - `item.categories` -- `item.source` +- `элемент.источник` - `item.enclosures` +## Шаблон на основе примеров +### Базовый шаблон виджета RSS-канала 2 +Следующий шаблон в настоящее время используется как стандартный в виджете RSS-канала 2. Он был протестирован со следующими каналами + +- или +- + +``` + + +

<%- rss.meta.title %>

+<% rss.articles.forEach(function(item){ %> +
+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+
+<% }); %> +``` + +### Базовый шаблон RSS-канала мультивиджет 3 +Следующий шаблон в настоящее время используется в качестве стандартного в виджете RSS-канала multi 3. Обратите внимание на небольшие различия в использовании переменных. Он был протестирован со следующими каналами + +``` + + +<% rss.articles.forEach(function(item){ %> +

<%- item.meta_name || item.meta_title || '' %>

+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+<% }); %> +``` + +### Пример шаблона для виджета RSS-Feed multi 3 со статьями в виде слайд-шоу и кнопками «Назад/Далее» +``` + + + + +
+
+ <% rss.articles.forEach(function(item){ %> +
+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+
+ <% }); %> +
+
+ + +
+
+ + +``` + +Система шаблонов работает с определенными тегами. +Используемые теги означают следующее + +| `tag` | описание | +| ----- | ------------------------------------------------------------------- | +| <%= | Содержимое содержащегося выражения/переменной будет экранировано. | +| <%- | Содержимое содержащегося выражения/переменной неэкранировано. | +| <% | Нет вывода, используется для вложенных инструкций JavaScript | +| %> | обычно является закрывающим тегом для завершения одного из предыдущих | + +Все, что находится за пределами этих тегов, отображается точно так, как есть, или, если это HTML, интерпретируется как HTML. (см., например, p-tag, div-tag, small-tag). В шаблоне вам доступны 2 предопределенные переменные + ## Пример шаблона и подробное описание ```html <%= meta.title %> <% articles.forEach(function(item){ %> @@ -139,17 +510,16 @@ iobroker upload rssfeed <% }); %> ``` -Краткое описание того, что происходит в отдельных строках Z1: Вывод заголовка ленты Z2: Без вывода. Команда Javascript для перебора всех статей, при каждом повороте текущий элемент присваивается переменной item. -Z3: Вывод даты и времени есть. Он заключен в небольшой тег p/для форматирования. Для форматирования используется функция формата даты vis-own. Описание можно найти в адаптере. -Z4: вывод заголовка статьи. Тег Header 3 используется для форматирования. -Z5: Вывод содержания статьи. Он заключен в p-тег. Здесь, по крайней мере в двух примерах, включен HTML-код, который обычно включает изображение и описательный текст. Z6: Выведите тег div, который очищает специальное форматирование в Feed-html (в обоих примерах для tagesschau и bild он необходим. Другой корм, возможно, в этом не нуждался. -Z7: Без вывода. Эта строка замыкает цикл JavaScript. Все, что было определено между Z2 и Z7, повторяется для каждой статьи. +Краткое описание того, что происходит в отдельных строках Z1: Вывод заголовка фида Z2: Без вывода. Команда Javascript для цикла по всем статьям, с каждым поворотом текущий элемент назначается переменной item. +Z3: Вывод даты и времени. Он заключен в тег p / small для форматирования. Для форматирования используется функция форматирования даты vis-own. Описание можно найти в адаптере vis. +Z4: Вывод заголовка статьи. Для форматирования используется тег Header 3 -. +Z5: Вывод содержимого статьи. Он заключен в тег p-. Здесь, по крайней мере в двух примерах, включен HTML-код, который обычно идет с изображением и описательным текстом Z6: Вывести тег div, который очищает специальное форматирование в feed-html (в обоих примерах для tagesschau и bild он необходим. Другим фидам он, возможно, не нужен. Z7: Без вывода. Эта строка замкнула цикл javascript. Все, что было определено между Z2 и Z7, повторяется для каждой отдельной статьи. -## Делать -- очистка неиспользуемых записей в datapoint info.lastRequest путем сохранения в диалоговом окне администратора. -- кнопка очистки неиспользуемых точек данных в диалоге администратора +## То, что нужно сделать +- очистите неиспользуемые записи в точке данных info.lastRequest, сохранив их в диалоговом окне администратора. +- кнопка для очистки неиспользуемых точек данных в диалоговом окне администратора - ~~Мульти-виджеты RSS-каналов~~ -- ~~Выделение мультивиджетов~~ +- ~~Мульти-виджет-блокнот~~ - ~~Weitere Datenpunkte im Template verfügbar machen.~~ - ~~Виджет для Laufschrift mit den Titeln ~~ @@ -159,10 +529,45 @@ Z7: Без вывода. Эта строка замыкает цикл JavaScrip Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 3.1.0 (2024-08-11) + +- adjust dependency to js-controller in a minor release + +### 3.0.2 (2024-08-09) + +- add keyword in package.json + +### 3.0.1 (2024-08-09) + +- add template example for articles as a Diashow +- adjust dependency to js-controller + +### 3.0.0 (2024-07-24) + +- update multifeed widget 3 and deprecate multifeed widget 2 +- breaking change: in rssfeed widget 2: articles and meta have to be changed to rss.articles and rss.meta + +### 2.10.0 (2024-07-11) + +- fine tuning on templates and available variables +- fine tuning on format and translation +- move widget documentation form doc.html to readme + +### 2.9.10 (2024-07-11) + +- update images for dark and light theme + +### 2.9.9 (2024-07-11) + +- update packages +- update formating and improve error logging +- remove detailed sentry status reporting +- fix subscribing states -### **WORK IN PROGRESS** +### 2.9.8 (2024-07-09) - ignore widgets in vis-2 +- add restart vis/vis2 ### 2.9.7 (2024-06-22) @@ -397,4 +802,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.s7/README.md b/docs/ru/adapterref/iobroker.s7/README.md index 39d1e48bd..acfa62458 100644 --- a/docs/ru/adapterref/iobroker.s7/README.md +++ b/docs/ru/adapterref/iobroker.s7/README.md @@ -2,101 +2,99 @@ BADGE-Number of Installations: http://iobroker.live/badges/s7-stable.svg BADGE-NPM version: http://img.shields.io/npm/v/iobroker.s7.svg BADGE-Downloads: https://img.shields.io/npm/dm/iobroker.s7.svg -BADGE-Tests: https://travis-ci.org/ioBroker/ioBroker.s7.svg?branch=master -BADGE-NPM: https://nodei.co/npm/iobroker.s7.png?downloads=true translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.s7/README.md title: ioBroker.S7 -hash: nAuRGgna8b2Yl/7OOGbig0EnQ2VauC1p6p25yWF+jwg= +hash: 5jId14HKNWFtK+5CK7Zp+N/ToagYuN9T5OE2uDYkrxE= --- # IoBroker.S7 ## Подробное описание -Адаптер S7, который поставляется с ioBroker, основан на Snap7 \. Snap7 устанавливается во время первой установки адаптера и обрабатывает TCP / IP-связь между S7 PLC и ioBroker. Поэтому обязательно, чтобы S7 был оборудован интерфейсом Ethernet (встроенным или внешним CP) для связи через TCP / IP с оборудованием, на котором работает ioBroker. В качестве предварительного условия пользователь должен знать основы связи TCP / IP и уметь конфигурировать ПЛК S7 с помощью программного обеспечения Step7. Но это не должно стать проблемой для тех, кто рассматривает возможность привязки S7 к ioBroker. +Адаптер S7, который поставляется с ioBroker, основан на Snap7\. Snap7 будет установлен во время первой установки адаптера и обрабатывает связь TCP/IP между ПЛК S7 и ioBroker. Поэтому обязательно, чтобы S7 был оснащен интерфейсом Ethernet (интегрированным или внешним CP) для связи по TCP/IP с оборудованием, на котором работает ioBroker. В качестве предварительного условия пользователь должен знать основы связи TCP/IP и уметь настраивать ПЛК S7 с помощью программного обеспечения Step7. Но это не должно быть проблемой для тех, кто рассматривает возможность привязки S7 к ioBroker. -## Монтаж -Это руководство основано на следующей конфигурации: +## Установка +Данное руководство основано на следующей конфигурации: * S7-315 со встроенным интерфейсом Ethernet -* Raspberry Pi 2, ioBroker, работающий под Debian GNU / Linux 7.8 (wheezy) +* Raspberry Pi 2, ioBroker, работающий под управлением Debian GNU/Linux 7.8 (хрипло) * Диапазон IP-адресов 192.168.1.xxx * ПК работает: - * Инструмент для работы с электронными таблицами, например MS Excel, Apache Open Office - * Браузер Google Chrome - * Step7 V5.5 SP4 HF5 +* Инструмент для работы с электронными таблицами, такой как MS Excel, Apache Open Office +* Браузер Google Chrome +* Шаг 7 V5.5 SP4 HF5 -** необходим дополнительный документ: (iobroker_adapter_S7.xlsx) [iobroker_adapter_S7.xlsx] ** +**необходим дополнительный документ:  (iobroker_adapter_S7.xlsx)[iobroker_adapter_S7.xlsx]** ### Связь через блоки данных (БД) -В этом руководстве описывается связь между ioBroker и S7 PLC через блоки данных. Для связи могут быть созданы идеально выделенные БД. Базы данных должны быть интегрированы в код, работающий в S7 \. Преимущество этого подхода в том, что вы можете быть уверены, что не перезапишете данные случайно, например, в блоке данных экземпляра, что может привести к нежелательным или неожиданным реакциям в вашем программном обеспечении S7. Если вам необходимо использовать существующие блоки данных из-за ограничений памяти или вы не можете вносить какие-либо изменения в программное обеспечение S7, убедитесь, что вы заполняете соответствующие данные в ioBroker только во избежание конфликтов. +В этом руководстве описывается связь между ioBroker и S7 PLC через блоки данных. В идеале для связи можно сгенерировать выделенные базы данных. Базы данных должны быть интегрированы в код, работающий в S7\. Преимущество такого подхода в том, что вы можете быть уверены, что не перезапишете данные случайно, например, в блоке данных экземпляра, что может привести к нежелательным или неожиданным реакциям в вашем программном обеспечении S7. Если вам приходится использовать существующие блоки данных из-за ограничений памяти или вы не можете вносить какие-либо изменения в программное обеспечение S7, убедитесь, что вы заполняете соответствующие данные только в ioBroker, чтобы избежать конфликтов. -### Создание коммуникационных БД -Мы собираемся работать с 4 БД: +### Генерация баз данных связи +Мы будем работать с 4 базами данных: -* DB20 - двоичные значения, отправляемые из ioBroker в S7 (цифровой ввод из представления S7) -* DB21 - двоичные значения, отправляемые в ioBroker из S7 (цифровой вывод из представления S7) -* DB22 - Реальные значения, отправленные из ioBroker в S7 (аналоговый ввод из представления S7) -* DB23 - Реальные значения, отправляемые в ioBroker из S7 (аналоговый вывод из S7-представления) +* DB20 – Двоичные значения, отправленные из ioBroker в S7 (цифровой ввод из представления S7) +* DB21 – Двоичные значения, отправленные в ioBroker из S7 (цифровой вывод из представления S7) +* DB22 – Реальные значения, отправленные из ioBroker в S7 (аналоговый ввод из представления S7) +* DB23 – Реальные значения, отправленные в ioBroker из S7 (аналоговый вывод из представления S7) -БД будут созданы с использованием электронной таблицы с одной таблицей на блок данных. +Базы данных будут созданы с использованием электронной таблицы, по одной таблице на блок данных. ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_1.png) -#### Подготовка DB20 - двоичные значения, отправленные из ioBroker в S7 +#### Подготовка DB20 – Двоичные значения, отправленные из ioBroker в S7 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_3.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -Столбцы от A до M основаны на структуре в ioBroker и должны быть заполнены пользователем на основе программного обеспечения S7. Возможно, вы захотите использовать части таблицы символов S7 (копирование - вставка). В столбце O код для S7 DB получается из содержимого столбцов с A по M. +Столбцы A–M основаны на структуре в ioBroker и должны быть заполнены пользователем на основе программного обеспечения S7. Возможно, вы захотите использовать части таблицы символов S7 (копировать – вставить). В столбце O код для S7 DB выводится из содержимого столбцов A–M. -* Столбец A: DB = номер DB в S7 и первая часть адреса в ioBroker +* Столбец A: DB = Номер DB в S7 и первая часть адреса в ioBroker * Столбец B: Байт = Байт в БД в S7 и вторая часть адреса в ioBroker -* Столбец C: Бит = Бит в БД в S7 и третья часть адреса в ioBroker +* Столбец C: Бит = Бит в базе данных в S7 и третья часть адреса в ioBroker * Столбец D: Имя = Имя в БД в S7 и имя в ioBroker * Столбец E: Описание = Комментарий в БД в S7 и описание в ioBroker -* Столбец F: Type = Введите DB в S7 и введите ioBroker -* Столбец G: длина = длина в ioBroker -* Столбец H: Unit = unit в ioBroker -* Столбец I: Роль = роль в ioBroker. +* Столбец F: Тип = Введите DB в S7 и введите ioBroker +* Столбец G: Длина = длина в ioBroker +* Столбец H: Единица = единица в ioBroker +* Столбец I: Роль = роль в ioBroker * Столбец J: Комната = комната в ioBroker -* Столбец K: опрос = точка данных будет опрашиваться циклически (истина / ложь) -* Столбец L: RW = точка данных может быть записана (истина / ложь) è «истина» в DB20, поскольку мы хотим записать данные в S7. -* Столбец M: WP = точка данных будет установлена на «1» только для «времени импульса», определенного в «Общие - Общие». +* Столбец K: Опрос = точка данных будет опрашиваться циклически (истина/ложь) +* Столбец L: RW = точка данных может быть записана (истина/ложь) è «истина» в DB20, поскольку мы хотим записать данные в S7 +* Столбец M: WP = точка данных будет установлена на «1» только для «времени импульса», определенного в разделе «Общие – Общие» ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_config_1.png) -* Столбец N: намеренно оставлен пустым. -* Столбец O: содержимое БД = содержимое, которое будет скопировано в Step7 для создания БД, формула: `` `= CONCATENATE (D2;": "; F2;": = ";" false; ";" // "; E2 ) `` ` +* Столбец N: намеренно оставлен пустым +* Столбец O: содержимое БД = содержимое, которое будет скопировано в Шаг 7 для генерации БД, формула: ```=CONCATENATE(D2;":";F2;":=";"false;";"//";E2)``` -#### Подготовка DB21 - двоичные значения, отправляемые в ioBroker из S7 +#### Подготовка DB21 – Двоичные значения, отправленные в ioBroker из S7 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_3.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* Столбец L: RW è «false» в DB21, так как мы хотим читать данные из S7. +* Столбец L: RW – «false» в DB21, так как мы хотим прочитать данные из S7 -#### Подготовка DB22 - Реальные значения, отправленные из ioBroker в S7 +#### Подготовка DB22 – Реальные значения, отправленные из ioBroker в S7 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_4.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* Столбец B: байт = начальный байт действительного значения (0, 4, 8,…) -* Столбец C: бит = оставлен пустым -* Столбец L: RW è «true» в DB22, поскольку мы хотим записывать данные в S7. -* Столбец O: Формула: `` = CONCATENATE_ _ (D2; ":"; F2; ": ="; "0.000000e + 000;"; "//"; E2) `` ` +* Столбец B: Байт = начальный байт реального значения (0, 4, 8, …) +* Столбец C: Бит = оставлен пустым +* Столбец L: RW – «true» в DB22, так как мы хотим записать данные в S7 +* Столбец O: Формула: ```=СЦЕПИТЬ_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` -#### Подготовка DB23 - Реальные значения, отправленные в ioBroker из S7 +#### Подготовка DB23 – Реальные значения, отправленные в ioBroker из S7 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_5.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* Столбец B: байт = начальный байт действительного значения (0, 4, 8,…) -* Столбец C: бит = оставлен пустым -* Столбец L: RW è «false» в DB23, так как мы хотим читать данные из S7. -* Столбец O: Формула: `` = CONCATENATE_ _ (D2; ":"; F2; ": ="; "0.000000e + 000;"; "//"; E2) `` ` +* Столбец B: Байт = начальный байт реального значения (0, 4, 8, …) +* Столбец C: Бит = оставлен пустым +* Столбец L: RW è «false» в DB23, так как мы хотим прочитать данные из S7 +* Столбец O: Формула: ```=СЦЕПИТЬ_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` #### Создание источников БД на шаге 7 -Теперь мы сгенерируем БД на шаге 7, используя код из столбца O нашей электронной таблицы. В вашу программу Step7 вставьте источник STL, щелкнув правой кнопкой мыши на «Источники». [![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_1.png) +Теперь мы сгенерируем базы данных в Step7, используя код в столбце O нашей электронной таблицы. Вставьте исходный код STL в вашу программу Step7, щелкнув правой кнопкой мыши на «Источники». [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_1.png) Переименуйте новый источник в «DB20». Вставьте следующий код в пустой источник: @@ -115,23 +113,23 @@ END_DATA_BLOCK ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_2.png) -Скопируйте источник «DB20» 3 раза и назовите копии DB21, DB22, DB23, а также измените строку один в каждом источнике на: +Скопируйте исходный файл «DB20» 3 раза и назовите копии DB21, DB22, DB23, а также измените строку один в каждом исходном файле на: -* `` БЛОК_ДАННЫХ БД 21`` -* `` БЛОК_ДАННЫХ БД 22 '' -* `` БЛОК_ДАННЫХ БД 23 '' +* ```БЛОК_ДАННЫХ БД 21``` +* ```БЛОК_ДАННЫХ БД 22``` +* ```БЛОК_ДАННЫХ БД 23``` ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_3.png) -Теперь перейдите к таблице DB20 и скопируйте код в столбец O (без заголовка): +Теперь перейдите в электронную таблицу, таблицу DB20, и скопируйте код из столбца O (без заголовка): ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_4.png) -Вставьте ячейки в источник под названием «DB20» на шаге 7 между «STRUCT» и «END_STRUCT;»: +Вставьте ячейки в источнике под названием «DB20» в Шаге 7 между «STRUCT» и «END_STRUCT;»: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_5.png) -Запустите компилятор, и результат должен быть 0 ошибок, 0 предупреждений. Теперь DB20 сгенерирован, и вы найдете новый блок в своей программе S7 в разделе «Блоки». +Запустите компилятор, и результат должен быть 0 Ошибок, 0 Предупреждений. DB20 теперь сгенерирован, и вы найдете новый блок в разделе «Блоки» в вашей программе S7. ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_6.png) @@ -139,11 +137,11 @@ END_DATA_BLOCK ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_7.png) - Адрес должен соответствовать адресу в электронной таблице, просто проверьте работоспособность, сравнив комбинацию байта и бита: +Адрес должен соответствовать адресу в электронной таблице, просто выполните проверку на корректность, сравнив комбинацию байта и бита: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_8.png) -Повторите для DB21, DB22, DB23 и убедитесь, что вы выбрали столбец O из правой таблицы и вставили его в правильный источник (таблица DB21 в исходный DB21 и т. Д.) Поскольку DB22 и 23 будут иметь дело с РЕАЛЬНЫМИ значениями, вы можете найти ниже, как блоки будут смотреться. +Повторите эти действия для DB21, DB22, DB23 и убедитесь, что вы выбрали столбец O из правильной таблицы и вставили его в правильный источник (таблицу DB21 в источник DB21 и т. д.). Поскольку DB22 и 23 будут иметь дело с РЕАЛЬНЫМИ значениями, ниже вы можете увидеть, как будут выглядеть блоки. ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_9.png) @@ -151,110 +149,163 @@ END_DATA_BLOCK ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_10.png) -Теперь у нас есть 4 базы данных, необходимые для связи: +Теперь у нас есть 4 базы данных, необходимые для коммуникации: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_11.png) -Вы должны дать им соответственно символическое имя, чтобы сохранить ясность. Не забудьте подключить их к S7 logic и загрузить измененный код. +Вы должны дать им символическое имя соответственно, что поможет сохранить ясность. Не забудьте подключить их к логике S7 и загрузить измененный код. -### Заполнить базы данных в ioBroker -Теперь, когда 4 DB являются частью кода, работающего в S7, мы расскажем ioBroker, как взаимодействовать с S7. +### Заполнение баз данных в ioBroker +Теперь, когда четыре базы данных являются частью кода, работающего в S7, мы сообщим ioBroker, как взаимодействовать с S7. -#### Установка экземпляра S7-адаптера -Адаптеры - оборудование - Siemens S7 Adapter - + +#### Установка экземпляра адаптера S7 +Адаптеры – аппаратные средства – Адаптер Siemens S7 – + ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_1.png) -Возможно несколько экземпляров, если вы хотите, чтобы ваш ioBroker соединялся с несколькими процессорами S7. Включите новый экземпляр адаптера: +Несколько экземпляров возможны, если вы хотите, чтобы ваш ioBroker подключался к нескольким процессорам S7. Включите новый экземпляр адаптера: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_2.png) -Название адаптера (стандарт: Siemens S7 Adapter) также можно изменить на этом этапе. Одной из идей было бы использование IP-адреса как части заголовка. Откройте конфигурацию адаптера +Название адаптера (стандарт: Siemens S7 Adapter) также может быть изменено на этом этапе. Использование IP-адреса как части названия было бы одной из идей. Откройте конфигурацию адаптера ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_3.png) -и приступаем к настройке S7-адаптера: +и приступаем к настройке адаптера S7: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_4.png) * Вкладка «Общие» - * Подключение к ПЛК - * IP-адрес ПЛК IP-адрес ПЛК, как определено в Step7 HW Config. +* Подключение ПЛК +* IP-адрес ПЛК IP-адрес ПЛК, определенный в конфигурации оборудования Step7 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_5.png) -* S7 LOGO! Если вы используете ЛОГОТИП, а не ПЛК S7 -* PLC Rack Номер стойки CPU, как указано в Step7 HW Config (R0 / S2) -* Слот ПЛК Номер слота ЦП, как указано в аппаратной конфигурации Step7 (R0 / S2) +* S7 LOGO! Если вы используете LOGO, а не S7 PLC +* PLC Rack Номер стойки ЦП, указанный в конфигурации оборудования Step7 (R0/S2) +* Слот ПЛК Номер слота ЦП, указанный в конфигурации оборудования Step7 (R0/S2) ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_6.png) * Общий - * Округлить действительное до: Число цифр, действительное значение будет округлено до после разделителя, например: 2 -> 12,12 3 -> 12,123… 9 -> 12,123456789 - * Задержка опроса: цикл обновления связи в миллисекундах -* Время повторного подключения: Продолжительность в миллисекундах после повторного подключения будет предпринята после того, как соединение с S7 было потеряно. -* Время импульса: время в миллисекундах для «1» для точек данных, настроенных как WP = true. -* Импортировать файл символов: - * Загрузить символы Функция для импорта символов Step7 из файла ASCII - здесь не используется -* Импортировать файл БД: - * Добавить функцию БД для импорта БД Step7 из файла ASCII - здесь не используется +* Округлить вещественное число до: Количество цифр, до которых будет округлено вещественное число после разделителя, например: 2 -> 12,12 3 -> 12,123 … 9 -> 12,123456789 +* Задержка опроса: цикл обновления связи в миллисекундах + * Время повторного подключения: Длительность в миллисекундах, после которой будет предпринята попытка повторного подключения после потери соединения с S7. + * Длительность импульса: время в миллисекундах для «1» для точек данных, настроенных как WP = true +* Импорт файла символов: +* Функция загрузки символов для импорта символов Step7 из файла ASCII – здесь не используется. +* Импорт файла БД: +* Добавить функцию БД для импорта баз данных Step7 из файла ASCII – здесь не используется #### Настройте ioBroker для связи Пропускаем вкладки «Входы», «Выходы» и «Маркеры» и переходим сразу к «БД»: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_7.png) -Здесь вы можете найти структуру электронной таблицы. Мы снова готовы к массовому проектированию. Нажмите кнопку «Импортировать из CSV» [ +Здесь вы можете найти структуру электронной таблицы. Мы снова готовы к массовому проектированию. Нажмите кнопку «Импорт из CSV» [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_8.png) -и вы получите пустое поле. Теперь снова перейдите к электронной таблице, к таблице DB20, и скопируйте столбцы от A до M (без заголовков). [ +и вы получаете пустое поле. Теперь снова перейдите к таблице, таблице DB20, и скопируйте столбец A через M (без заголовков). [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_9.png) -Вставьте ячейки в пустое поле импорта в ioBroker и подтвердите, нажав «Экспорт», который должен называться «Импорт». [ +Вставьте ячейки в пустое поле импорта в ioBroker и подтвердите нажатием «Экспорт» (который должен называться «Импорт»). [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_10.png) -Первая БД готова и готова к обмену данными: +Первая база данных готова и готова к передаче: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_11.png) -Повторите для DB21, DB22, DB23 \. Каждый раз, когда вы нажимаете «Импортировать из CSV», вы получаете пустое поле, но содержимое будет добавлено в список. Вы должны сделать это в кратчайшие сроки, независимо от того, сколько точек данных вы хотите заполнить. Если вы хотите использовать функции, которые поставляются с ioBroker, заполнив поля Length, Unit, Role, Room, вы также можете сделать это в таблице, чтобы воспользоваться преимуществами массового проектирования. Если вы решите сделать это позже или только для пары точек данных, вы также можете сделать это непосредственно в ioBroker в разделе «БД» со встроенными параметрами редактирования. Но не забывайте экономить! 12 [ +Повторите для DB21, DB22, DB23\. Каждый раз, когда вы нажимаете «Импорт из CSV», вы получаете пустое поле, но содержимое будет добавлено в список. Вы должны закончить в кратчайшие сроки, независимо от того, сколько точек данных вы хотите заполнить. Если вы хотите использовать функции, которые есть в ioBroker, заполнив Длина, Единица, Роль, Комната, вы можете сделать это в электронной таблице, чтобы воспользоваться преимуществами массового проектирования. Если вы решите сделать это позже или только для нескольких точек данных, вы также можете сделать это непосредственно в ioBroker в разделе «БД» с интегрированными опциями редактирования. Не забудьте сохранить! 12 [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_12.png) -#### Проверка связи -Перейдите на вкладку «Объекты» в ioBroker и найдите экземпляр S7 (например, s7.0, а не system.adapter.S7.0). Если вам что-то не хватает: F5 (обновление веб-страницы) - король! Ее вы найдете две группы: +#### Тест на коммуникацию +Перейдите на вкладку «Объекты» в ioBroker и найдите экземпляр S7 (например, s7.0, а не system.adapter.S7.0). Если вы что-то упустили: F5 (обновление веб-страницы) — это король! Здесь вы найдете две группы: -* БД с 4 настроенными БД: - * DB20 - * DB21 - * DB22 - * DB23 +* Базы данных с 4 настроенными нами базами данных: +* ДБ20 +* DB21 +* DB22 +* DB23 * Информация с информацией о подключении: - * Соединение: «истина», если S7 можно найти в сети. - * pdu: размер PDU Snap7, подключенный к S7 (обычно 240 для S7-300, 480 для S7-400) - * poll_time: время в миллисекундах, которое Snap7 использует для связи - должно быть меньше, чем задержка опроса, настроенная в параметрах «Общие» - «Общие» в конфигурации экземпляра адаптера. +* Соединение: «истина», если S7 можно найти в сети +* pdu: размер PDU, с которым Snap7 подключается к S7 (обычно 240 для S7-300, 480 для S7-400) +* poll_time: время в миллисекундах, необходимое Snap7 для связи — должно быть меньше задержки опроса, настроенной в разделе «Общие» — «Общие» в конфигурации экземпляра адаптера. ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_13.png) - Мы настроили DB21 и DB23 как DB, отправляющие информацию в ioBroker, т.е. если вы откроете DB в разделе «Объекты», вы должны увидеть уже поступающие значения, учитывая, что DB снабжены данными из кода S7. +Мы настроили DB21 и DB23 как базы данных, отправляющие информацию в ioBroker, т. е. если вы откроете базы данных в разделе «Объекты», вы должны увидеть уже поступающие значения, учитывая, что базы данных снабжаются данными из кода S7. -## Мониторинг и работа в vis -Запустите ioBroker.vis из вкладки «Экземпляры». Я рекомендую установить vis-hqwidgets. Начнем с переключателя: +## Мониторинг и эксплуатация в vis +Запустите ioBroker.vis из вкладки «Instances». Рекомендую установить vis-hqwidgets. Начнем с переключателя: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_14.png) -Перетащите виджет переключателя в представление, подключите его к идентификатору объекта переключателя в DB20, и все готово. Если вы сейчас задействуете переключатель, вы обнаружите, что точка данных в «Objects» - «s7.x» - «DBs» - «DB20» будет переключаться, и S7 будет включать и выключать все, что когда-либо было подключено к DB. Если вы отслеживаете БД на шаге 7 в режиме онлайн, вы увидите, что точка данных в БД изменится с «0» на «1» и т. Д. Бинарный статус работает точно так же: перетащите и отпустите виджет в вашем представлении и подключитесь соответствующая точка данных от DB21 к нему. То же самое и с реальными значениями: +Перетащите виджет переключателя на свое представление, подключите его к идентификатору объекта переключателя в DB20, и все готово. Если вы сейчас задействуете переключатель, вы увидите, что точка данных в разделе «Объекты» – «s7.x» – «DBs» – «DB20» будет переключаться, а S7 будет включать и выключать все, что подключено к базе данных. Если вы будете следить за базой данных в Step7 в режиме онлайн, вы увидите, что точка данных в базе данных изменится с «0» на «1» и т. д. Двоичный статус работает точно так же: перетащите виджет на свое представление и подключите к нему соответствующую точку данных из DB21. И то же самое снова для реальных значений: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_15.png) -Важно: Пользователь отвечает за подключение правильных точек данных к виджетам. Вы можете связать реальное значение с двоичным статусом (например, лампочка), чтобы лампочка показывала «горит», когда реальное значение> 1.0. Вот и все, ребята, довольно просто и понятно, а? +Важно: Пользователь отвечает за подключение правильных точек данных к виджетам. Вы можете подключить реальное значение к двоичному статусу (например, лампочка), так что лампочка будет показывать «включено», как только реальное значение будет >1.0. Вот и все, ребята, довольно просто и понятно, да? ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Updated GUI packages + +### 1.4.3 (2024-02-17) +* (Bettman66) Fix REAL number parsing error + +### 1.4.2 (2023-12-04) +* IMPORTANT: Node.js 16+ is required to run this version! +* (Apollon77) Update dependencies to make adapter work with Node.js 20+ + +### 1.3.15 (2022-12-23) +* (bluefox) Updated GUI packages +* (bluefox) Added ukrainian translation + +### 1.3.14 (2022-09-27) +* (bluefox) Updated GUI packages + +### 1.3.13 (2022-08-02) +* (bluefox) Added preparations for ioBroker cloud +* (bluefox) Migrate GUI tu muiV5 + +### 1.3.12 (2022-04-03) +* (jogibear9988) Removed duplicated code +* (jogibear9988) Implemented S5TIME support (must be tested on a real device) + +### 1.3.11 (2022-02-13) +* (bluefox) Updated releaser + +### 1.3.10 (2021-11-13) +* (Apollon77) Better handle invalid entries with empty Address + +### 1.3.9 (2021-11-09) +* (Apollon77) make sure strings work correctly +* (Apollon77) Fix several crash cases (IOBROKER-S7-17, IOBROKER-S7-19, IOBROKER-S7-1C, IOBROKER-S7-18) + +### 1.3.7 (2021-11-08) +* (bluefox) Corrected type of "write" attribute + +### 1.3.6 (2021-07-31) +* (bluefox) Corrected import of last line + +### 1.3.5 (2021-07-07) +* (bluefox) Change edit mode behaviour + +### 1.3.3 (2021-06-28) +* (bluefox) Corrected the error in GUI + +### 1.3.2 (2021-06-23) +* (Apollon77) Add adapter tier for js-controller 3.3 + +### 1.3.1 (2021-06-23) +* (bluefox) Corrected the type of states + ### 1.3.0 (2021-06-17) -* (bluefox) New configuration page on react +* (bluefox) New configuration page on react ### 1.2.5 (2021-04-17) * (Apollon77) Fix pot crash case (Sentry IOBROKER-S7-16) @@ -270,7 +321,7 @@ END_DATA_BLOCK * (Apollon77) Prevent warnings in js-controller 3.2 ### 1.2.1 (2021-01-25) -* (Apollon77) fix info.connection state +* (Apollon77) fix `info.connection` state ### 1.2.0 (2021-01-25) * (Apollon77) Prevent error case (Sentry IOBROKER-S7-4) @@ -344,7 +395,7 @@ END_DATA_BLOCK * (bluefox) add translation ### 0.2.3 (2015.09.24) -* (bluefox) add suppor of Logo! +* (bluefox) added support of Logo! ### 0.2.2 (2015.09.11) * (bluefox) add S7time @@ -380,7 +431,7 @@ END_DATA_BLOCK ### 0.1.3 (2015.06.04) * (bluefox) translate admin * (bluefox) remove jshint warnings -* (bluefox) add info.connected and rename info.connection to info.state +* (bluefox) add `info.connected` and rename `info.connection` to `info.state` ### 0.1.2 * Bugfix startup @@ -406,7 +457,7 @@ END_DATA_BLOCK ## License The MIT License (MIT) -Copyright (c) 2014-2021 bluefox , +Copyright (c) 2014-2024 bluefox , Copyright (c) 2014-2016 smiling_Jack @@ -426,4 +477,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.sayit/README.md b/docs/ru/adapterref/iobroker.sayit/README.md index 06be43f2c..4c51b7ad1 100644 --- a/docs/ru/adapterref/iobroker.sayit/README.md +++ b/docs/ru/adapterref/iobroker.sayit/README.md @@ -1,66 +1,66 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.sayit/README.md -title: адаптер ioBroker Sayit -hash: /unz3ntgh85Hz+ZiPVipGk8JExnbZ/YczfEFY+uJno8= +title: ioBroker sayit адаптер +hash: iKZAJidQHuyYqiVCtChm9m1nExJtvRV2zI1LVq7PX9s= --- ![Логотип](../../../en/adapterref/iobroker.sayit/admin/sayit.png) ![Количество установок](http://iobroker.live/badges/sayit-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.sayit.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.sayit.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.sayit.svg) -# Адаптер ioBrokersayit -![Тестирование и выпуск](https://github.com/ioBroker/iobroker.sayit/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/sayit/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +# IoBroker sayit адаптер +![Тест и выпуск](https://github.com/ioBroker/iobroker.sayit/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/sayit/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**Этот адаптер использует библиотеки 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. -SayIt Adaptor может преобразовывать текст в речь и воспроизводить его на каком-либо устройстве. +Адаптер SayIt может преобразовывать текст в речь и воспроизводить ее на некоторых устройствах. ## Конфигурация -Фактически поддерживаются следующие выходные данные: +Фактически поддерживаются следующие выходы: -- *Браузер* - текст будет воспроизводиться браузером с открытой страницей `iobroker.vis`. Он поддерживается почти всеми настольными браузерами и немногими мобильными браузерами. +- *Браузер* - браузер воспроизведет текст на открытой странице `iobroker.vis`. Поддерживается почти всеми браузерами для настольных компьютеров и несколькими мобильными браузерами. -- *[Home24- MediaPlayer](http://www.home-24.net/index.php?app=media)* — текст будет отправлен и воспроизведен на Android-устройстве с установленным Home24 — MediaPlayer. Для этого будет использоваться встроенный в Android движок преобразования текста в речь. Порт нельзя изменить и установить на 50000. +- *[Home24- MediaPlayer](http://www.home-24.net/index.php?app=media)* - текст будет отправлен и воспроизведен на Android-устройстве с установленным Home24 - MediaPlayer. Для этого будет использован встроенный в Android движок преобразования текста в речь. Порт нельзя изменить, установите значение 50000. -- *Home24 – MediaPlayer и [FTP-сервер](https://play.google.com/store/apps/details?id=lutey.FTPServer)* – текст будет отправлен и воспроизведен на устройстве Android с помощью Home24 – MediaPlayer установлен. Для этого будет использоваться движок преобразования текста в речь Google. Созданный mp3-файл будет скопирован по FTP на устройство Android и воспроизведен с помощью Home24 - MediaPlayer. +- *Home24 - MediaPlayer и [FTP Server](https://play.google.com/store/apps/details?id=lutey.FTPServer)* - текст будет отправлен и воспроизведен на Android-устройстве с установленным Home24 - MediaPlayer. Для этого будет использоваться движок Google text to speech. Сгенерированный mp3-файл будет скопирован по FTP на Android-устройство и воспроизведен с помощью Home24 - MediaPlayer. - Оба приложения должны иметь одинаковые домашние каталоги. (Например, корневой каталог «sd-карты»). +Оба приложения должны иметь одинаковые домашние каталоги. (Например, корневой каталог \"sd card\"). -- *Система* — текст будет воспроизводиться ОС, на которой работает адаптер ioBroker. Поддерживаются следующие ОС: Windows, Linux, Mac OSx. +- *Система* - текст будет воспроизводиться ОС, на которой работает адаптер ioBroker. Поддерживаются следующие ОС: Windows, linux, Mac OSx. -- *Windows engine* - текст будет воспроизводиться окнами, где работает адаптер SayIt. Для этого будет использоваться механизм преобразования текста в речь Windows, который должен быть предварительно настроен пользователем. Вы можете проверить [здесь](http://windows.microsoft.com/en-us/windows/setting-speech-options#1TC=windows-7), как его настроить. +- *Движок Windows* - текст будет воспроизводиться Windows, где запущен адаптер sayIt. Для этого будет использоваться движок Windows Text to Speech, который должен быть предварительно настроен пользователем. Вы можете проверить [здесь](http://windows.microsoft.com/en-us/windows/setting-speech-options#1TC=windows-7), как его настроить. -- *Sonos* — воспроизведение текста на устройстве Sonos. Убедитесь, что веб-адаптер включен. Это необходимо для того, чтобы SONOS мог читать сгенерированные mp3-файлы. +- *Sonos* - воспроизведение текста на устройстве Sonos. Убедитесь, что веб-адаптер включен. Он необходим для включения SONOS для чтения сгенерированных mp3-файлов. -- *Heos* — воспроизведение текста на устройстве HEOS. Убедитесь, что веб-адаптер включен. Это необходимо для того, чтобы HEOS мог читать сгенерированные файлы mp3. +- *Heos* - воспроизведение текста на устройстве HEOS. Убедитесь, что веб-адаптер включен. Он необходим для включения HEOS для чтения сгенерированных файлов mp3. - *Chromecast* — воспроизведение текста на устройстве Chromecast. -- *MPD* — воспроизводить текст на музыкальном проигрывателе Daemon. Используйте только **http** для веб-адаптера, не используйте https. +- *MPD* - воспроизведение текста на Music Player Daemon. Используйте только **http** для веб-адаптера, не используйте https. -Чтобы включить преобразование текста в речь в системе RaspberryPI или Linux, вызовите один раз следующую команду `sudo apt-get -y install mpg321`, чтобы установить mpg321. +Чтобы включить функцию преобразования текста в речь на RaspberryPI или в системе Linux, выполните один раз следующую команду `sudo apt-get -y install mpg321`, чтобы установить mpg321. -Файлы mp3/wav можно воспроизвести, вписав их имя в объект. (например, `/vis.0/main/img/door-bell.mp3`) +Файлы mp3/wav можно воспроизводить, записав их имя в объект. (например, `/vis.0/main/img/door-bell.mp3`) -Файл должен быть предварительно загружен. +Файл должен быть сначала загружен. -### Двигатели ТТС -В сети: +### Двигатели TTS +Онлайн: - Google: английский, немецкий, русский, итальянский, испанский, французский; - Яндекс: Русский -Для использования голосов Яндекса необходимо запросить API-ключ здесь: [https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/](https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/). [Этот сервис будет отключен 1 января 2019 года и заменен на Yandex.cloud] Чтобы использовать Yandex.cloud, вам необходимо зарегистрироваться здесь: [https://cloud.yandex.ru/], установить SpeechKIT API в облаке и получить Auth Token. и идентификатор папки, как описано в инструкциях API. +Для использования голосов Яндекса необходимо запросить ключ API здесь: [https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/](https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/). [Эта услуга будет отключена 1 января 2019 года и заменена на Yandex.cloud] Для использования Yandex.cloud необходимо зарегистрироваться здесь: [https://cloud.yandex.ru/], установить SpeechKIT API в облаке и получить токен аутентификации и идентификатор папки, как описано в инструкциях API. -- Облако: для использования облачных голосов вам необходимо настроить и запустить «облачный» адаптер или ввести ключ приложения непосредственно в настройках. -- Amazon Web Services Полли: +- Облако: для использования голосов Cloud вам необходимо настроить и запустить адаптер `cloud` или ввести ключ приложения непосредственно в настройках. +- Опрос Amazon Web Services: - Чтобы использовать голоса AWS Polly, необходимо создать ключ доступа и секретный ключ [здесь](https://console.aws.amazon.com/iam/home). Документацию Amazon вы можете найти [здесь](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html). +Чтобы использовать голоса AWS Polly, вам необходимо создать ключ доступа и секретный ключ [здесь](https://console.aws.amazon.com/iam/home). Документацию Amazon вы можете найти [здесь](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html). -Не в сети: +Оффлайн: - PicoTTS (только Linux): английский, немецкий, итальянский, испанский, французский; @@ -69,86 +69,85 @@ SayIt Adaptor может преобразовывать текст в речь - Coqui TTS: английский, немецкий, испанский, французский, голландский, японский, китайский; - Инструкции по использованию см. в разделе [официальная документация](https://tts.readthedocs.io/en/latest/index.html). +Инструкции по использованию см. в разделе [официальная документация](https://tts.readthedocs.io/en/latest/index.html) -### Форматирование текста Polly в облаке и Amazon Web Services +### Форматирование текста опроса Cloud и Amazon Web Services Вы можете отформатировать текст с помощью [Язык разметки синтеза речи](http://docs.aws.amazon.com/polly/latest/dg/ssml.html). -Самые полезные функции: +Наиболее полезные функции: -- `` - сделать паузу на x секунд (максимум 10 секунд). -- `большой` — сделать ударение на каком-то слове. -- `Я говорю это` - управление параметрами скорости и громкости. -- `12345` — произносить каждую цифру отдельно. +- ``- сделать паузу на x секунд (максимум 10 секунд). +- ` большой ` - сделать ударение на каком-либо слове. +- `Я говорю это` - управление параметрами скорости и громкости. +- `12345` - произнесите каждую цифру отдельно. -Подробнее [Информация](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference). +Подробнее [информация](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference). ### Системная команда -Если у вас есть программа, которая может воспроизводить аудиофайлы локально или где-то еще, вы можете написать эту команду здесь. Например. +Если у вас есть какая-то программа, которая может воспроизводить аудиофайлы локально или где-то еще, вы можете написать эту команду здесь. Например: -```myCustomPlayer --option``` +`myCustomPlayer --option` -Если выбран выход **Система**, адаптер `sayit` выполнит следующую команду в локальной системе: +Если выбран выход **System**, адаптер `sayit` выполнит следующую команду в локальной системе: -```myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3``` +`myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3` -Если имя файла должно оставаться где-то посередине, вы можете использовать *%s*, чтобы указать, где должно быть размещено имя файла: +Если имя файла должно располагаться где-то посередине, можно использовать *%s*, чтобы указать, где должно располагаться имя файла: -```myCustomPlayer --option "%s" > /dev/null``` +`myCustomPlayer --option "%s" > /dev/null` -SayIt сделает из него ```myCustomPlayer --option "/opt/iobroker/node_modules/iobroker.sayit/say.mp3" > /dev/null```. +sayIt сделает из него `myCustomPlayer --option "/opt/iobroker/node_modules/iobroker.sayit/say.mp3" > /dev/null`. ## Использование -Адаптер SayIt нельзя использовать отдельно. Им необходимо управлять с помощью адаптера JavaScript или с помощью «vis» с помощью определенного виджета. -После создания экземпляра адаптера вы можете найти следующие объекты: +Адаптер SayIt не может использоваться отдельно. Он должен управляться из адаптера javascript или из "vis" с определенным виджетом. После создания экземпляра адаптера вы можете найти следующие объекты: - `sayit.N.tts.text`: Фраза, которую нужно произнести. -- `sayit.N.tts.volume`: громкость, которая будет использоваться при воспроизведении фразы. -- `sayit.N.tts.playing`: true, если текст сейчас воспроизводится, и false, если нет. Поддерживается только для режимов игры «Windows» и «System». -- `sayit.N.tts.cachetext`: фраза, которая будет кэширована, и затем ее можно будет использовать без Интернета. +- `sayit.N.tts.volume`: громкость, с которой будет воспроизводиться фраза. +- `sayit.N.tts.playing`: true, если текст сейчас воспроизводится, и false, если нет. Поддерживается только для режимов воспроизведения "windows" и "system". +- `sayit.N.tts.cachetext`: Фраза, которая будет кэширована, и затем ее можно будет использовать без подключения к интернету. - Например, вы можете ввести здесь вручную «Нет Интернета», и если пинг до google.com отрицательный, напишите «Нет Интернета» в «tts.text», и это будет произнесено. Разумеется, кэш должен быть включен. +Например, вы можете ввести здесь вручную "Нет интернета" и если пинг до google.com отрицательный, написать "Нет интернета" в "tts.text" и это будет произнесено. Конечно, кэш должен быть включен. -Состояние `tts.text` поддерживает расширенный синтаксис, поэтому язык/движок и громкость можно определить вместе с текстом. Он используется для включения многоязычных движков text2speech. -Например, если адаптер имеет движок «Google-english», можно с помощью фразы ```de:Sag es``` принудительно использовать речевой движок Google-Deutsch. +Состояние `tts.text` поддерживает расширенный синтаксис, поэтому язык/движок и громкость могут быть определены вместе с текстом. Он используется для включения многоязычных движков text2speech. +Например, если адаптер имеет движок `Google-english`, возможно с помощью фразы `de:Sag es` принудительно использовать речевой движок Google-Deutsch. -С помощью ```ru;75;Погода хорошая``` мы можем принудительно использовать русский язык и громкость 75%. +С помощью `ru;75;Погода хорошая` мы можем принудительно использовать русский язык и громкость 75%. -Вы можете указать громкость объявления в процентах от текущей или заданной громкости (не от максимальной). Например, если команда ```de;75;Gutes Wetter``` и громкость объявления равна 50 %, то объявление будет воспроизводиться с громкостью 38 % из возможных 100 %. +Вы можете указать громкость объявления в процентах от текущей или заданной громкости (не от максимальной). Например, если команда `de;75;Gutes Wetter`и «громкость объявления» составляет 50%, объявление будет воспроизводиться с громкостью 38% из 100% возможных. -Также можно указать системную команду для воспроизведения mp3-файла. Если оставить это поле пустым, будут использоваться настройки по умолчанию: windows — `cmdmp3.exe`, OSX — `/usr/bin/afplay`, Linux — `mpg321` или `omxplayer` (рекомендуется). +Также можно указать системную команду для воспроизведения mp3-файла. Если оставить поле пустым, будут использоваться настройки по умолчанию: windows - `cmdmp3.exe`, OSX - `/usr/bin/afplay`, linux - `mpg321` или `omxplayer` (рекомендуется). -Чтобы установить omxplayer, напишите ```sudo apt-get install omxplayer``` или напишите ```sudo apt-get install mpg321```, чтобы установить mpg321. +Чтобы установить omxplayer, напишите `sudo apt-get install omxplayer` или напишите `sudo apt-get install mpg321`, чтобы установить mpg321. -**Примечание.** Выбор объявления по умолчанию будет возможен только после запуска экземпляра. +**Примечание:** Выбор объявления по умолчанию будет возможен только после запуска экземпляра. ### Приоритеты -Чтобы немедленно произнести текст, несмотря на тексты в очереди, у вас есть 2 возможности: +Чтобы немедленно произнести текст, несмотря на очередь текстов, у вас есть две возможности: -- место "!" в качестве первого символа в тексте, поэтому этот текст будет произноситься сразу после текущего. -- запишите true в состояние «tts.clearQueue», и очередь будет очищена. После этого вы можете записать новый текст в tts.text, но все тексты в очереди будут выброшены. +- поместите «!» в качестве первого символа в тексте, чтобы этот текст был произнесен сразу после текущего. +- запишите true в состояние "tts.clearQueue" и очередь будет очищена. После этого вы можете записать новый текст в `tts.text`, но все тексты в очереди будут отброшены. ### Двигатели Возможны следующие значения для двигателей: #### Google -- **en** - английский +- **en** - Английский - **de** - немецкий - **pl** - Польский - **ru** - Русский - **ук** - украинский -- **оно** - Итальянский +- **it** - Итальяно - **es** - Эспаньол - **fr** - французский - **nl** - Нидерланды - **zh-CN** - 简体中文 -- **pt** - Португальский +- **pt** - португальский -####яндекс +#### Яндекс - **ru_Я:Яндекс** - Русский -- **ru_YA_CLOUD:Yandex Cloud** - Русский [Yandex.Cloud API генерирует файлы в формате OGG. Для воспроизведения файлов ogg в Linux необходимо установить mplayer и выбрать его в качестве системного проигрывателя] +- **ru_YA_CLOUD:Yandex Cloud** - Русский [API Яндекс.Облака генерирует файлы в формате OGG. Для воспроизведения файлов ogg на Linux необходимо установить mplayer и выбрать его в качестве системного проигрывателя] -#### Amazon polly через облако +#### Amazon опрос через облако - **ru-RU_CLOUD_Female** - Русский - Татьяна - **ru-RU_CLOUD_Male** - Русский - Максим - **de-DE_CLOUD_Female** - Deutsch - Марлен @@ -156,74 +155,74 @@ SayIt сделает из него ```myCustomPlayer --option "/opt/iobroker/nod - **de-DE_CLOUD_Female_Vicki** - Deutsch - Вики - **de-DE_CLOUD_Male_Daniel** - Deutsch - Даниэль - **de-AT_CLOUD_Female_Hannah** - Австрия - Ханна -- **en-US_CLOUD_Female** - ru-US - Женщина - Салли -- **en-US_CLOUD_Male** - ru-US - Мужчина - Джоуи +- **en-US_CLOUD_Female** - en-US - Женский - Салли +- **en-US_CLOUD_Male** - en-US - Мужской - Джоуи - **da-DK_CLOUD_Female** - da-DK - Женщина - Наджа - **da-DK_CLOUD_Male** - da-DK - Мужчина - Мэдс - **en-AU_CLOUD_Female** - ru-AU – Женщина – Николь -- **en-AU_CLOUD_Male** - ru-AU - Мужской - Рассел -- **en-GB_CLOUD_Female_Amy** - ru-GB - Женщина - Эми +- **en-AU_CLOUD_Male** - ru-AU – Мужской – Рассел +- **en-GB_CLOUD_Female_Amy** - en-GB - Женский - Эми - **en-GB_CLOUD_Male** - ru-GB - Мужчина - Брайан - **en-GB_CLOUD_Female_Emma** - ru-GB - Женщина - Эмма -- **en-GB-WLS_CLOUD_Female** - en-GB-WLS - Женщина - Гвинет +- **en-GB-WLS_CLOUD_Female** - en-GB-WLS - Женский - Гвинет - **en-GB-WLS_CLOUD_Male** - en-GB-WLS - Мужской - Geraint -- **cy-GB_CLOUD_Female** - cy-GB - Женщина - Гвинет -- **cy-GB_CLOUD_Male** - cy-GB - Мужской - Geraint -- **en-IN_CLOUD_Female** - en-IN - Женщина - Равина -- **en-US_CLOUD_Male_Chipmunk** - ru-US - Самец - Бурундук -- **en-US_CLOUD_Male_Eric** - ru-US - Мужчина - Эрик -- **en-US_CLOUD_Female_Ivy** - ru-US - Женский - Ivy -- **en-US_CLOUD_Female_Jennifer** - ru-US - Женщина - Дженнифер -- **en-US_CLOUD_Male_Justin** - ru-US - Мужчина - Джастин -- **en-US_CLOUD_Female_Kendra** - ru-US - Женщина - Кендра -- **en-US_CLOUD_Female_Kimberly** - ru-US - Женщина - Кимберли +- **cy-GB_CLOUD_Female** - cy-GB - Женский - Гвинет +- **cy-GB_CLOUD_Male** - cy-GB - Мужской - Герайнт +- **en-IN_CLOUD_Female** - en-IN - Женский - Равина +- **en-US_CLOUD_Male_Chipmunk** - en-US - Мужчина - Бурундук +- **en-US_CLOUD_Male_Eric** - en-US - Мужчина - Эрик +- **en-US_CLOUD_Female_Ivy** - en-US - Женский - Ivy +- **en-US_CLOUD_Female_Jennifer** - en-US - Женщина - Дженнифер +- **en-US_CLOUD_Male_Justin** - en-US - Мужской - Джастин +- **en-US_CLOUD_Женский_Кендра** - en-US - Женский - Кендра +- **en-US_CLOUD_Female_Kimberly** - en-US - Женский - Кимберли - **es-ES_CLOUD_Female** - es-ES - Женщина - Кончита - **es-ES_CLOUD_Male** - es-ES - Мужчина - Энрике -- **es-US_CLOUD_Female** - es-US - Женщина - Пенелопа -- **es-US_CLOUD_Male** - es-US - Мужчина - Мигель -- **fr-CA_CLOUD_Female** - fr-CA - Женщина - Шанталь +- **es-US_CLOUD_Female** - es-US - Женский - Пенелопа +- **es-US_CLOUD_Male** - es-US - Мужской - Мигель +- **fr-CA_CLOUD_Female** - fr-CA - Женский - Шанталь - **fr-FR_CLOUD_Female** - fr-FR - Женский - Селин - **fr-FR_CLOUD_Male** - fr-FR - Мужской - Матье - **is-IS_CLOUD_Female** - is-IS - Женщина - Дора -- **is-IS_CLOUD_Male** - is-IS - Мужчина - Карл +- **is-IS_CLOUD_Male** - is-IS - Мужской - Карл - **it-IT_CLOUD_Female** - it-IT - Женщина - Карла -- **it-IT_CLOUD_Male** - it-IT - Мужчина - Джорджио -- **nb-NO_CLOUD_Female** - no-NO - Женщина - Лив -- **no-NO_CLOUD_Female** - no-NO - Женщина - Ида -- **nl-NL_CLOUD_Female** - nl-NL - Женщина - Лотте -- **nl-NL_CLOUD_Male** - nl-NL - Мужчина - Рубен +- **it-IT_CLOUD_Male** - it-IT - Мужской - Джорджио +- **nb-NO_CLOUD_Female** - no-NO - Female - Liv +- **no-NO_CLOUD_Female** - no-NO - Female - Ида +- **nl-NL_CLOUD_Female** - nl-NL - Female - Лотте +- **nl-NL_CLOUD_Male** - nl-NL - Мужской - Рубен - **pl-PL_CLOUD_Female_Agnieszka** - pl-PL - Женщина - Агнешка - **pl-PL_CLOUD_Male_Jacek** - pl-PL - Мужчина - Яцек -- **pl-PL_CLOUD_Female_Ewa** - pl-PL - Женщина - Ева -- **pl-PL_CLOUD_Male_Jan** - pl-PL - Мужской - январь +- **pl-PL_CLOUD_Female_Ewa** - pl-PL - Женщина - Ewa +- **pl-PL_CLOUD_Male_Jan** - pl-PL - Мужской - Янв - **pl-PL_CLOUD_Female** - pl-PL - Женский - Майя -- **pt-BR_CLOUD_Female** - pt-BR - Женский - Витория -- **pt-BR_CLOUD_Female_Camila** - pt-BR - Женщина - Камила -- **pt-BR_CLOUD_Male** - pt-BR - Мужской - Рикардо -- **pt-PT_CLOUD_Male** - pt-PT - Мужчина - Криштиану +- **pt-BR_CLOUD_Female** - pt-BR - Female - Витория +- **pt-BR_CLOUD_Женский_Камила** - pt-BR - Женский - Камила +- **pt-BR_CLOUD_Male** - pt-BR - Мужчина - Рикардо +- **pt-PT_CLOUD_Male** - pt-PT - Мужской - Криштиану - **pt-PT_CLOUD_Female** - pt-PT - Женщина - Инес - **ro-RO_CLOUD_Female** - ro-RO - Женщина - Кармен - **sv-SE_CLOUD_Female** - sv-SE - Женщина - Астрид - **tr-TR_CLOUD_Female** - tr-TR - Женский - Филиз -- **pt-BR_CLOUD_Female_Camila** - pt-BR - Женщина - Камила +- **pt-BR_CLOUD_Женский_Камила** - pt-BR - Женский - Камила #### Пико ТТС -- **en-US** - английский, США -- **en-GB** - английский GB -- **de-DE** - Немецкий -- **it-IT** - Итальянский +- **en-US** - Английский (США) +- **en-GB** - Английский GB +- **de-DE** - немецкий +- **it-IT** - Итальяно - **es-ES** - Эспаньол -- **fr-FR** - Français +- **fr-FR** - французский #### Коки ТТС - Английский -- немецкий +- Немецкий - Испанский -- Франсэ +- французский - Нидерланды - 日本 -#### Amazon Polly Direct +#### Amazon опрос прямой - **ru-RU_AP_Female** - Русский - Татьяна - **ru-RU_AP_Male** - Русский - Максим - **de-DE_AP_Female** - Deutsch - Марлен @@ -232,27 +231,27 @@ SayIt сделает из него ```myCustomPlayer --option "/opt/iobroker/nod - **en-US_AP_Female** - ru-US - Женский - Салли - **en-US_AP_Male** - ru-US - Мужчина - Джоуи - **da-DK_AP_Female** - da-DK - Женщина - Наджа -- **da-DK_AP_Male** - da-DK - Мужчина - Мэдс -- **en-AU_AP_Female** - ru-AU – Женский – Николь +- **da-DK_AP_Male** - da-DK - Мужской - Мэдс +- **en-AU_AP_Female** - ru-AU - Женский - Николь - **en-AU_AP_Male** - ru-AU - Мужской - Рассел - **en-GB_AP_Female_Amy** - ru-GB - Женщина - Эми - **en-GB_AP_Male** - ru-GB - Мужчина - Брайан - **en-GB_AP_Female_Emma** - ru-GB - Женщина - Эмма -- **en-GB-WLS_AP_Female** - en-GB-WLS - Женщина - Гвинет +- **en-GB-WLS_AP_Female** - en-GB-WLS - Женский - Гвинет - **en-GB-WLS_AP_Male** - en-GB-WLS - Мужской - Geraint - **cy-GB_AP_Female** - cy-GB - Женщина - Гвинет -- **cy-GB_AP_Male** - cy-GB - Мужской - Geraint +- **cy-GB_AP_Male** - cy-GB - Мужчина - Герайнт - **en-IN_AP_Female** - en-IN - Женщина - Равина -- **en-US_AP_Male_Chipmunk** - ru-US - Самец - Бурундук -- **en-US_AP_Male_Eric** - ru-US - Мужчина - Эрик -- **en-US_AP_Female_Ivy** - ru-US - Женский - Ivy -- **en-US_AP_Female_Jennifer** - ru-US - Женщина - Дженнифер -- **en-US_AP_Male_Justin** - ru-US - Мужчина - Джастин +- **en-US_AP_Male_Chipmunk** - en-US - Мужчина - Бурундук +- **en-US_AP_Male_Eric** - en-US - Мужчина - Эрик +- **en-US_AP_Female_Ivy** - en-US - Женский - Ivy +- **en-US_AP_Female_Jennifer** - en-US - Женщина - Дженнифер +- **en-US_AP_Male_Justin** - en-US - Мужчина - Джастин - **en-US_AP_Female_Kendra** - ru-US - Женщина - Кендра -- **en-US_AP_Female_Kimberly** - ru-US - Женский - Кимберли +- **en-US_AP_Female_Kimberly** - en-US - Женский - Кимберли - **es-ES_AP_Female** - es-ES - Женщина - Кончита - **es-ES_AP_Male** - es-ES - Мужской - Энрике -- **es-US_AP_Female** - es-US - Женщина - Пенелопа +- **es-US_AP_Female** - es-US - Женский - Пенелопа - **es-US_AP_Male** - es-US - Мужской - Мигель - **fr-CA_AP_Female** - fr-CA - Женский - Шанталь - **fr-FR_AP_Female** - fr-FR - Женский - Селин @@ -261,28 +260,43 @@ SayIt сделает из него ```myCustomPlayer --option "/opt/iobroker/nod - **is-IS_AP_Male** - is-IS - Мужчина - Карл - **it-IT_AP_Female** - it-IT - Женщина - Карла - **it-IT_AP_Male** - it-IT - Мужчина - Джорджио -- **nb-NO_AP_Female** - nb-NO - Женщина - Лив -- **nl-NL_AP_Female** - nl-NL - Женщина - Лотте +- **nb-NO_AP_Female** - nb-NO - Женский - Liv +- **nl-NL_AP_Female** - nl-NL - Female - Лотте - **nl-NL_AP_Male** - nl-NL - Мужчина - Рубен - **pl-PL_AP_Female_Agnieszka** - pl-PL - Женщина - Агнешка - **pl-PL_AP_Male_Jacek** - pl-PL - Мужской - Яцек -- **pl-PL_AP_Female_Ewa** - pl-PL - Женщина - Ева +- **pl-PL_AP_Female_Ewa** - pl-PL - Женский - Ewa - **pl-PL_AP_Male_Jan** - pl-PL - Мужской - Янв - **pl-PL_AP_Female** - pl-PL - Женский - Майя -- **pt-BR_AP_Female** - pt-BR - Женский - Витория -- **pt-BR_AP_Male** - pt-BR - Мужской - Рикардо +- **pt-BR_AP_Female** - pt-BR - Female - Витория +- **pt-BR_AP_Male** - pt-BR - Мужчина - Рикардо - **pt-PT_AP_Male** - pt-PT - Мужчина - Криштиану -- **pt-PT_AP_Female** - pt-PT - Женский - Инес +- **pt-PT_AP_Female** - pt-PT - Женщина - Инес - **ro-RO_AP_Female** - ro-RO - Женщина - Кармен - **sv-SE_AP_Female** - sv-SE - Женщина - Астрид - **tr-TR_AP_Female** - tr-TR - Женский - Филиз - **ko-KR_AP_Female** - ko-KR - Женщина - Соён - +### **РАБОТА В ХОДЕ** --> ## Changelog +### 5.0.0 (2024-07-16) +* (mcm1957) Adapter requires admin v7 or newer now +* (mcm1957) Adapter requires jas-controller 5 or newer now +* (bluefox) Added possibility to play directly from states: `sayit.0/tts.userfiles/gong.mp3` + +### 4.0.5 (2024-07-12) +* (bluefox) Packages updated +* (bluefox) Corrected playing in vis +* (bluefox) Corrected blockly +* (bluefox) Corrected upload of files + +### 4.0.1 (2024-05-25) +* (bluefox) Packages updated +* (neopholus) Using the pre-calculated duration of the mp3 to wait long enough even for longer announcements + ### 4.0.0 (2023-10-31) * (bluefox) Breaking changes: A minimal node.js version is 16 * (bluefox) Browser outputs now to vis(1) and vis-2 @@ -343,7 +357,7 @@ SayIt сделает из него ```myCustomPlayer --option "/opt/iobroker/nod ### 1.11.0 (2020-08-02) * (Apollon77) Move the generated mp3 file to an own directory in iobroker-data instead of inside node_modules (Hopefully not breaking) -* (Apollon77) Change File write to use Sync methods to make sure they cannot run in parallel +* (Apollon77) Change the file writing to use Sync methods to make sure they cannot run in parallel ### 1.10.2 (2020-07-19) * (Apollon77) Crash case prevented (Sentry IOBROKER-SAYIT-8) @@ -417,7 +431,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 1.6.3 (2017-10-04) * (bluefox) Code refactoring -* (bluefox) Add google home as output +* (bluefox) Add Google Home as output * (bluefox) Remove ivona because not more supported ### 1.5.2 (2017-03-09) @@ -428,11 +442,11 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 1.5.0 (2017-01-27) * (DarkChaos) Add AWS Polly as source -* (bluefox) Add cloud as source +* (bluefox) Add cloud as a source ### 1.4.0 (2017-01-16) * (bluefox) fixed install problem -* (bluefox) add PicoTTS as source +* (bluefox) add PicoTTS as a source ### 1.3.3 (2017-01-13) * (bluefox) show only installed instances in blockly @@ -460,7 +474,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller * (bluefox) Add omxplayer option ### 1.0.1 (2016-10-12) -* (bluefox) support of blockly +* (bluefox) support for blockly ### 1.0.0 (2016-05-14) * (bluefox) Make the type of mp3 as file @@ -482,7 +496,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 0.3.12 (2015-10-06) * (bluefox) fixed error if received mp3 file is too short -* (bluefox) try to implement cache datapoint (you can use sayit.0.tts.cachetext to create cache for phrases and use sayit without internet) +* (bluefox) try to implement cache datapoint (you can use `sayit.0.tts.cachetext` to create cache for phrases and use sayit without internet) ### 0.3.11 (2015-08-03) * (bluefox) change google requests from http to https @@ -500,7 +514,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 0.3.7 (2015-05-28) * (bluefox) fixed volume for an announcement -* (bluefox) support for play files from internal filesystem, like "/sayit.0/tts.userfiles/myGong.mp3" +* (bluefox) support for play files from internal filesystem, like `/sayit.0/tts.userfiles/myGong.mp3` ### 0.3.6 (2015-03-24) * (bluefox) fixed error with volume by sonos @@ -542,7 +556,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller The MIT License (MIT) -Copyright (c) 2014-2023, bluefox +Copyright (c) 2014-2024, bluefox Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -560,4 +574,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.shuttercontrol/README.md b/docs/ru/adapterref/iobroker.shuttercontrol/README.md index e378dd420..35759a954 100644 --- a/docs/ru/adapterref/iobroker.shuttercontrol/README.md +++ b/docs/ru/adapterref/iobroker.shuttercontrol/README.md @@ -7,15 +7,15 @@ BADGE-License: https://img.shields.io/github/license/simatec/ioBroker.shuttercon BADGE-Donate: https://img.shields.io/badge/paypal-donate%20|%20spenden-blue.svg BADGE-: https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86 translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.shuttercontrol/README.md title: Документация и инструкции для Shuttercontrol -hash: Ad/MPmge7x07ZO6srEacKPIO7fHp1znTYBAM6aLoWNQ= +hash: PdO2+I/0b//z7ITdPxGVqrTnSHuuJDbNldCVMjrYhx4= --- ![Логотип](../../../en/adapterref/iobroker.shuttercontrol/img/shuttercontrol.png) ![Количество установок](http://iobroker.live/badges/shuttercontrol-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.shuttercontrol.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.shuttercontrol.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.shuttercontrol.svg) ![Известные уязвимости](https://snyk.io/test/github/simatec/ioBroker.shuttercontrol/badge.svg) ![Лицензия](https://img.shields.io/github/license/simatec/ioBroker.shuttercontrol?style=flat) @@ -23,122 +23,122 @@ hash: Ad/MPmge7x07ZO6srEacKPIO7fHp1znTYBAM6aLoWNQ= ![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86) # Документация и инструкции для Shuttercontrol -![Тестирование и выпуск](https://github.com/simatec/ioBroker.shuttercontrol/workflows/Test%20and%20Release/badge.svg) +![Тест и выпуск](https://github.com/simatec/ioBroker.shuttercontrol/workflows/Test%20and%20Release/badge.svg) --- -## Поддержка разработки адаптеров -**Если вам понравился адаптер, рассмотрите возможность сделать пожертвование:** +## Поддержка разработки адаптера +**Если вам понравился адаптер, пожалуйста, рассмотрите возможность сделать пожертвование:** -[![PayPal](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://paypal.me/mk1676) +[![paypal](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://paypal.me/mk1676) --- ## Основы ->:grey_exclamation: Руководство действительно начиная с стабильной версии 1.6.2 :grey_exclamation: +>:grey_exclamation: Руководство действительно с версии stable 1.6.2 :grey_exclamation: -Shuttercontrol — это адаптер для комплексного управления рольставнями, жалюзи или маркизами, включающий как автоматическое затемнение, так и ночное затемнение. +Shuttercontrol — это адаптер для комплексного управления рольставнями, жалюзи или маркизами, включающий как автоматическое затенение, так и ночное затемнение. >:point_right: Для простоты здесь упоминаются только рольставни. Для управления доступно большое количество настраиваемых параметров, например: -* три разных глобальных таймера, например. гостиная, спальня и детская зона, -* различные параметры, зависящие от положения солнца, которые можно настроить индивидуально для каждой рольставни. +* три разных глобальных таймера, например, для гостиной, спальни и детской зоны, +* различные параметры, зависящие от положения солнца, которые можно устанавливать индивидуально для каждой рольставни. можно настроить индивидуально для каждой рольставни, -* Триггеры для датчиков двери/окна, которые служат защитой от блокировки или автоматического открытия на индивидуальном уровне. +* Триггеры для датчиков дверей/окон, которые выполняют функцию защиты от блокировки или автоматического открытия на индивидуальном уровне. -открытие на индивидуальном уровне при открытии двери или окна, +открывание на индивидуальном уровне при открытии двери или окна, -* Различные регулируемые параметры затенения в зависимости, например, от +* Различные регулируемые параметры затенения в зависимости, например: внутренняя температура, наружная температура, яркость, датчик тепла или аналогичный, -* Включение положения солнца, чтобы затемнить только те комнаты, которые на самом деле затенены. +* Учет положения солнца позволяет затемнять только те помещения, которые фактически затенены. освещены. -Все точки данных конфигурации уже предварительно заданы с примерами, чтобы адаптер был быстро готов к использованию после установки и ввода идентификаторов готового к работе затвора. +Все точки данных конфигурации уже предварительно заданы с примерами, так что адаптер быстро готов к использованию после установки и ввода идентификаторов жалюзи, готовых к работе. Дальнейшая конфигурация затем используется для адаптации к личным пожеланиям. -> Shuttercontrol может управлять приводами только через положение, например УРОВЕНЬ со значениями от 0 до 100 или 0-255 соответственно. Соответствующая синхронизация жалюзи или жалюзи должна быть принята на себя приводом. -взять на себя исполнительный механизм. Приводами жалюзи, которые предлагают по одному объекту для «высоты» и «угла ламелей», можно управлять с помощью двух жалюзи. -может использоваться с двумя объектами-жалюзи с одинаковой параметризацией. -использоваться. +> Shuttercontrol может управлять приводами только через положение, например, LEVEL, со значениями от 0 до 100 или 0-255 соответственно. Соответствующее время срабатывания затвора или жалюзи должно быть принято приводом. +быть принято приводом. Приводы жалюзи, которые предлагают по одному объекту для «высоты» и «угла наклона планки», могут управляться с помощью двух жалюзи. +может использоваться с двумя объектами жалюзи с одинаковой параметризацией. +быть использовано. --- -## Монтаж -Адаптер находится в «стабильном» репозитории ioBroker. На вкладке «Адаптер» выбирается «shuttercontrol», и с помощью (+) создается экземпляр адаптера управления затвором. +## Установка +Адаптер находится в "stable" репозитории ioBroker. На вкладке "Adapter" выбирается "shuttercontrol" и создается экземпляр адаптера shuttercontrol через (+). ## Конфигурация После создания экземпляра автоматически открывается окно конфигурации с вкладками ОСНОВНЫЕ НАСТРОЙКИ, НАСТРОЙКИ ВРЕМЕНИ и ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ. ->:point_right: Вкладки [Настройки времени](#time-settings) и [Дополнительные настройки](#extra-settings) должны быть отредактированы в первую очередь, то есть до того, как ставни будут добавлены с помощью карандаша в ОСНОВНЫХ НАСТРОЙКАХ. +>:point_right: Вкладки [Настройки времени](#time-settings) и [Дополнительные настройки](#extra-settings) следует редактировать в первую очередь, т. е. до того, как будут добавлены ставни с помощью карандаша в ОСНОВНЫХ НАСТРОЙКАХ. --- ### ОСНОВНЫЕ НАСТРОЙКИ -![основной](../../../en/adapterref/iobroker.shuttercontrol/img/main.png) --- >:point_right: Доступ к документации на github можно получить через знак вопроса в правом верхнем углу (7). +![основной](../../../en/adapterref/iobroker.shuttercontrol/img/main.png) --- >:point_right: Доступ к документации на github можно получить, нажав на вопросительный знак в правом верхнем углу (7). -#### Сохранить или загрузить конфигурацию адаптера -Нажмите стрелку вниз (9) в правом верхнем углу, чтобы сохранить конфигурацию адаптера в виде файла .json. -Нажмите стрелку вверх (8), чтобы загрузить существующую конфигурацию адаптера в формате .json. +#### Сохраните или загрузите конфигурацию адаптера +Нажмите на стрелку, направленную вниз (9) в правом верхнем углу, чтобы сохранить конфигурацию адаптера как файл .json. +Нажмите на стрелку вверх (8), чтобы загрузить существующую конфигурацию адаптера в формате .json. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- ### НАСТРОЙКИ ВРЕМЕНИ -Здесь выполняются основные настройки времени или астрономического времени, которые позже используются в [Настройки затвора](#shutter-settings) для каждого затвора. -[Настройки затвора](#shutter-settings) для каждой заслонки. +Здесь задаются основные настройки времени или Astro, которые позже используются в [Настройки затвора](#shutter-settings) для каждого затвора. +[Настройки затвора](#shutter-settings) для каждого затвора. ->:heavy_exclamation_mark: Shuttercontrol всегда закрывает ставни **пятницу** в установленное время **выходных**. -и **воскресенье** всегда в установленное время **рабочей недели** :heavy_exclamation_mark: +>:heavy_exclamation_mark: Shuttercontrol всегда закрывает ставни **в пятницу** в установленное время **выходных**. +и **в воскресенье** всегда в установленное время **рабочей недели** :heavy_exclamation_mark: -![Настройки времени](../../../en/adapterref/iobroker.shuttercontrol/img/timeSettings.png) +![времяНастройки](../../../en/adapterref/iobroker.shuttercontrol/img/timeSettings.png) -#### Настройки гостиной, спальной зоны и детской зоны -Отдельные настройки открываются через раскрывающийся список. Описание дано в качестве примера для жилой зоны и аналогично применимо ко всем помещениям. -для всех областей. +#### Настройки для гостиной, спальной и детской зон +Индивидуальные настройки открываются через выпадающий список. Описание приведено в качестве примера для жилой зоны и аналогично применяется ко всем зонам. +для всех зон. ->:point_right: Конечно, эту классификацию не обязательно использовать для жилой, спальной или детской зоны. -детская зона, но позволяет определить три зоны в здании с разным временем движения роллет. +>:point_right: Конечно, эта категоризация не обязательно должна использоваться для жилой, спальной или детской зоны. +детской зоны, но позволяет определить три зоны в здании с разным временем движения рольставней. -**Тип автоматического управления жилой зоной** +**Тип автоматического управления для жилой зоны** -Раскрывающееся меню используется для выбора между: +Выпадающий список используется для выбора между: -* **Только время жилой зоны:** +* **Только время в жилой зоне:** -*Рольставни управляются только по времени. +*Рольставни работают только по таймеру. -* Время гостиной с восходом и закатом солнца. +* Время гостиной с восходом и заходом солнца. -*Рольставни управляются в зависимости от восхода и захода солнца, но не поднимаются раньше самого раннего времени и не опускаются после самого позднего. +*Рольставни управляются в зависимости от восхода и захода солнца, но не поднимаются раньше самого раннего времени и не опускаются позже самого позднего времени. -* **Время проживания с «Золотым часом»:** +* **Жилая зона времени с Золотым часом:** -*Аналогично восходу и закату солнца, но с указанием начала и конца «Золотого часа». +*Аналогично восходу и заходу солнца, но с отсылкой к началу и концу «Золотого часа». **Закрытие ставен в течение рабочей недели:** *Обычное время затемнения в течение недели*. -**Самое раннее время подъема ставен в течение недели:** *Это самое раннее время подъема ставен в течение недели. +**Самое раннее время подъема ставней в течение недели:** *Это самое раннее время подъема ставней в течение недели. -**Последнее время подъема в течение недели:** *Это самое позднее время подъема рольставней в течение недели*. +**Самое позднее время подъема рольставней в течение недели:** *Это самое позднее время, когда рольставни будут подняты в течение недели*. -**Время задержки шахматного подъема жалюзи (секунды):** *Расстояние между отдельными подъемами жалюзи этого диапазона, напр. во избежание радиопомех или для создания впечатления, что их перемещают вручную. +**Время задержки для поэтапного подъема рольставней (секунды):** *Расстояние между отдельными подъемами рольставней данного диапазона, например, для избежания радиопомех или для создания впечатления, что они перемещаются вручную. **Закрытие рольставней в выходные дни:** *Обычное время затемнения в выходные дни **и** в праздничные дни. -**Самое раннее время подъема в выходные дни:** *Это самое раннее время подъема ставней в выходные **и** праздничные дни. +**Самое раннее время подъема ставней в выходные дни:** *Это самое раннее время, когда ставни поднимаются в выходные дни **и** в праздничные дни. -**Последнее время подъема в выходные дни:** *В это время рольставни поднимаются в выходные дни **и** самое позднее в праздничные дни*. +**Самое позднее время подъема в выходные дни:** *В настоящее время рольставни поднимаются в выходные дни **и** самое позднее в праздничные дни*. ->:point_right: Если рольставни никогда не должны подниматься, если солнце еще не превысило определенное положение, это время должно быть установлено на самое позднее время этого положения солнца (21.12.). +>:point_right: Если рольставни никогда не должны подниматься, пока солнце еще не достигло определенного положения, это время должно быть установлено на самое позднее время этого положения солнца (21.12.). _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ @@ -148,54 +148,54 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco ![КонфигЭкстра](../../../en/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png) #### Астронастройки -![дополнительныеНастройкиAstro](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png) +![extraSettingsAstro](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png) **Широта и долгота:** *Shuttercontrol берет широту и долготу из настроек системы ioBroker. Shuttercontrol использует эти значения для расчета положения солнца. -**Выход из функции защиты от солнца с указанием высоты солнца (высоты):** *Как только солнце опускается ниже установленной здесь высоты, затенение прекращается. -затенение Shuttercontrol заканчивается. +**Выход из функции защиты от солнца по высоте солнца (возвышению):** *Как только солнце опускается ниже установленной здесь высоты, затенение прекращается. +затенение с помощью Shuttercontrol прекращается. ->:point_right: Здесь можно принять во внимание возможное преждевременное затенение из-за зданий или высоких деревьев и завершить автоматическое затенение раньше. +>:point_right: Возможное преждевременное затенение из-за зданий или высоких деревьев можно учесть здесь и завершить автоматическое затенение раньше. -**Задержка времени для подъема или опускания (минуты):** *Здесь можно ввести смещение +/-, на которое должны быть задержаны движения жалюзи от типа автоматического управления, выбранного в [Настройки времени](#time-settings). +**Время задержки подъема или опускания (минуты):** *Здесь можно ввести смещение +/-, на которое движение жалюзи должно задерживаться относительно типа автоматического управления, выбранного в [Настройки времени](#time-settings). -**Время задержки для шахматного движения жалюзи (секунды):** *Чтобы предотвратить одновременное движение всех жалюзи, здесь можно установить глобальную задержку в секундах. +**Временная задержка для ступенчатого движения затвора (секунды):** *Чтобы предотвратить одновременное движение всех затворов, здесь можно установить глобальную временную задержку в секундах. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Летние настройки -![дополнительныеНастройкиЛето](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png) +![extraНастройкиЛето](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png) -**Начало лета** и **Конец лета:** *Здесь начало или конец лета можно установить по вашему желанию. +**Начало лета** и **Конец лета**:** *Здесь начало или конец лета можно установить по вашему желанию. -В разделе [Настройки затвора](#shutter-settings) соответствующей ставни установка флажка ``Do not close shutter in summer`` предотвращает закрытие этой ставни летом. +Установка флажка в пункте [Настройки затвора](#shutter-settings) соответствующей шторы на ``Do not close shutter in summer`` предотвращает закрытие этой шторы летом. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Рождественские настройки -![дополнительныеНастройкиРождество](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png) +![extraНастройкиРождество](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png) -**Начало рождественских периодов** и **окончание рождественских периодов:** *Здесь можно установить начало или конец рождественских периодов по вашему желанию. +**Начало рождественского периода** и **Окончание рождественского периода**: *Здесь начало и окончание рождественского периода можно установить в соответствии с вашими собственными пожеланиями. -В настройках [Дополнительные настройки роллет](#extra-settings-roller-shutter) «Рождество» включается желаемая функция и устанавливается желаемое положение жалюзи. +В разделе [Дополнительные настройки для рольставней](#extra-settings-roller-shutter) Рождественские настройки включается нужная в это время функция и устанавливается желаемое положение рольставней. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Настройки праздников и государственных праздников -![дополнительныеНастройкиПраздники](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png) +![extraНастройкиПраздники](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png) -**Использование праздничных дней:** *При установке этого флажка и выборе соответствующего экземпляра адаптера выходных ставни будут перемещаться в праздничные дни в установленное время, начиная с выходных. +**Использование государственных праздников:** *Установив этот флажок и выбрав соответствующий экземпляр адаптера для государственных праздников, ставни будут перемещаться в государственные праздники в установленное время выходных. ->:point_right: При необходимости можно создать два экземпляра адаптера государственных праздников: > один для отображения всех возможных государственных праздников и один с праздничными днями, связанными с рабочим временем, к которому затем обращается ShutterControl. +>:point_right: При необходимости можно создать два экземпляра адаптера государственных праздников: > один для отображения всех возможных государственных праздников и один с государственными праздниками, соответствующими рабочему времени, к которому затем обращается shuttercontrol. -**Идентификатор объекта для установки выходного дня: *Этот идентификатор объекта устанавливает внутреннее состояние «Выходной». +**Идентификатор объекта для установки праздника: *Этот идентификатор объекта устанавливает внутреннее состояние «Праздник». Здесь, например, можно использовать точку данных из адаптера iCal, которая возвращает значение ``true`` в случае праздника и, таким образом, позволяет ставням двигаться в выходные дни. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ @@ -203,96 +203,96 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco --- #### Настройки датчика яркости -![дополнительныеНастройкиДатчик яркости](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png) +![extraНастройкиЯркостьдатчик](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png) Если ставни должны перемещаться автоматически с помощью датчика освещенности, это настраивается здесь. -Затем активация выполняется индивидуально для каждой заслонки в [Основные настройки затвора](#main-shutter-settings). -в разделе **Тип управления закрытием (или открытием) рольставни** выбрав запись «Датчик освещенности». +Затем активация выполняется индивидуально для каждой рольставни в разделе [Настройки основного затвора](#main-shutter-settings). +в разделе **Тип управления закрытием (или открытием) рольставни**, выбрав запись «Датчик освещенности». -**Значение освещенности для закрытия с помощью датчика освещенности** *Значение освещенности, начиная с которого жалюзи должны быть закрыты. +**Значение яркости для закрытия с датчиком яркости** *Значение яркости, при котором ставни должны закрываться. -**Значение освещенности для открытия с помощью датчика освещенности** *Значение освещенности, начиная с которого жалюзи должны быть открыты*. +**Значение яркости для открытия с помощью датчика яркости** *Значение яркости, при котором должны открываться ставни*. -**Идентификатор объекта датчика освещенности** *Ссылка на датчик освещенности, например от метеостанции или от уличного датчика движения или отдельного датчика освещенности. +**Идентификатор объекта датчика яркости** *Ссылка на датчик яркости, например, от метеостанции или от наружного датчика движения или отдельного датчика яркости. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Настройки школьных каникул -![дополнительныеНастройкиШкольные каникулы](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png) +![extraНастройкиШкольные каникулы](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png) -Здесь период каникул можно активировать либо через отдельную точку данных с **Идентификатором объекта для активации/деактивации школьных каникул**, либо путем установки галочки для установленного экземпляра Schoolfree Adaptor. -Затем жалюзи открываются в период праздников в установленное время для вождения в выходные дни. -Режим отпуска можно активировать индивидуально для каждой зоны. +Здесь период праздников можно активировать либо через отдельную точку данных с **Идентификатором объекта для активации/деактивации школьных каникул**, либо установив флажок для экземпляра установленного адаптера Schoolfree. +Затем ставни открываются в период праздников в установленное время для вождения в выходные дни. +Режим праздников можно активировать индивидуально для каждой области. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Особые времена -![дополнительныеНастройкиSonder](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png) +![extraSettingsЗондер](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png) **Закрыть определенные ставни позже** *Эта опция позволяет снова опустить все ставни поздно вечером. -Это охватывает сценарий, когда в обычное время закрытия окно или дверь все еще были открыты. -окно или дверь все еще были открыты в обычное время для закрытия или, например, дверь во внутренний двор снова открывается после закрытия. -Если флажок установлен, отображается настройка **Время, в которое настроенные рольставни должны закрываться поздно**. +Это охватывает сценарий, когда в обычное время закрытия окно или дверь были все еще открыты. +окно или дверь были все еще открыты в обычное время закрытия, или если, например, дверь патио снова открывается после закрытия. +Когда установлен флажок, появляется настройка **Время, в которое настроенные рольставни должны закрываться поздно**. -> Эту функцию необходимо активировать для каждой ставни в [Настройки затвора](#shutter-settings) с помощью отметки **Закрывать рольставни поздно** для каждой рольставни отдельно или деактивировать, если это нежелательно. +> Эту функцию необходимо активировать для каждой рольставни в [Настройки затвора](#shutter-settings), установив флажок **Закрывать рольставни поздно** для каждой рольставни отдельно или деактивировав ее, если она не нужна. -**Полностью закройте все жалюзи в промежуточном положении** *Время, когда все жалюзи полностью закрываются вечером (например, 22:00)*. +**Полностью закрыть все ставни в промежуточном положении** *Время, когда все ставни полностью закрыты вечером (например, 22:00)*. -**Рольставни открываются только в том случае, если последнее движение произошло x минут назад:** *Рольставни открываются адаптером только по истечении установленного здесь времени. -установленное здесь истекло. +**Открыть рольставни только если последнее движение x минут назад:** *Рольставни открываются адаптером только если истекло установленное здесь время. +истекло установленное здесь время. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Дополнительные настройки -![ExtraSettingsExtra](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png) +![extraНастройкиExtra](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png) -**Проверка текущего статуса затвора:** У некоторых пользователей (в том числе пользователей Shelly) возникает проблема: уровень немного меняется. По этой причине здесь есть флажок. -Если флажок активирован, ShutterControl проверит текущий уровень по истечении времени ожидания проверки состояния жалюзи, Shuttercontrol проверит текущий уровень и временно сохранит его. +**Проверка текущего состояния затвора:** У некоторых пользователей (в том числе пользователей Shelly) есть проблема с тем, что уровень немного меняется. Для этого здесь есть флажок. +Если флажок активирован, shuttercontrol проверит текущий уровень после времени ожидания проверки состояния затвора, shuttercontrol проверяет текущий уровень и временно сохраняет его. -**Блокировка ручного режима для известной высоты жалюзи** *Округление текущей высоты жалюзи в большую или меньшую сторону*. -Здесь положение роллет можно округлять с шагом 5 или 10. +**Блокировка ручного режима для известных высот жалюзи** *Округление вверх или вниз текущих высот жалюзи*. +Здесь положение рольставней можно округлить с шагом 5 или 10. -**Идентификатор объекта триггера для спальной зоны (Авто):** *Данный триггер активирует автоматический режим спальной зоны. +**Идентификатор объекта триггера для спальной зоны (Авто):** *Этот триггер активирует автоматический режим спальной зоны. **Идентификатор объекта триггера жилой зоны (Авто):** *Этот триггер активирует автоматический режим жилой зоны. -**Идентификатор объекта триггера для детской области (Авто):** *Этот триггер активирует автоматический режим детской области. +**Идентификатор объекта триггера для детской зоны (Авто):** *Этот триггер активирует автоматический режим детской зоны. --- #### Настройки будильника -![дополнительныеНастройкиБудильник](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png) +![extraНастройкиБудильник](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png) ->:point_right: Для каждого сигнала тревоги для активации требуется логическая точка данных (истина/ложь), > которая активирует **игнал тревоги** = статус** стина** или деактивирует **игнал тревоги** = статус** ЛОЖЬ**. ->:point_right: Кроме того, для каждого сигнала тревоги необходимо определить высоту (0–100%), на которую перемещается рольставня в случае тревоги. ->point_right: В [Настройка будильника](#alarm-setting) соответствующей жалюзи определяется, на какие сигналы тревоги должна реагировать жалюзи. -Затвор должен среагировать. +>:point_right: Для каждого сигнала тревоги требуется логическая точка данных (истина/ложь) для активации, > которая активирует **сигнал тревоги** = статус **истина** или деактивирует **сигнал тревоги** = статус **ложь**. +>:point_right: Кроме того, для каждого сигнала тревоги необходимо определить высоту (0-100%), на которую перемещается рольставня в случае сигнала тревоги. +>point_right: В [Установка будильника](#alarm-setting) соответствующего ставня затем определяется, на какие сигналы тревоги должен реагировать ставень. +ставень должен реагировать. Приоритеты отдельных сигналов тревоги: -Приоритет 1 (высший приоритет) --> Пожар: +Приоритет 1 (наивысший приоритет) --> Пожар: -При срабатывании этого сигнала тревоги сконфигурированные для него рольставни в **любом** случае поднимутся на заданную высоту. ->:exclamation: После этого ставни блокируются и **НЕ** закрываются автоматически, даже если пожарная сигнализация сброшена (ложь). +Если срабатывает эта сигнализация, настроенные для нее рольставни переместятся на заданную высоту в **любом** случае. +>:exclamation: Затем рольставни блокируются и **НЕ** закроются автоматически, даже если пожарная сигнализация будет сброшена (ложь). >:point_right:После сброса пожарной сигнализации жалюзи необходимо повторно инициализировать с помощью кнопок «openAll» / «closeAll». -Это предотвращает повторное автоматическое закрытие рольставней по любой причине в случае пожара. -Это также гарантирует, что пути эвакуации остаются открытыми и гарантируется доступ пожарной команды. +Это предотвращает автоматическое закрытие рольставней по любой причине в случае пожара. +Это также гарантирует, что пути эвакуации останутся открытыми, а доступ для пожарной бригады гарантирован. -Прио 2–5 (тот же приоритет) --> Дождь, Ветер2, Ветер1, Мороз: +Приоритет 2 - 5 (тот же приоритет) --> Дождь, Ветер2, Ветер1, Мороз: -Когда эти сигналы тревоги активированы, Shuttercontrol перемещает настроенные рольставни на последний активный уровень тревоги. +При активации этих сигналов тревоги Shuttercontrol переводит настроенные рольставни на последний активный уровень сигнала тревоги. Однако при отключении отдельных сигналов тревоги соблюдается следующий приоритет: Приоритет 1 = Пожар Приоритет 2 = Дождь Приоритет 3 = Ветер 2 Приоритет 4 = Ветер 1 Приоритет 5 = Мороз -Сигнализация замерзания имеет прямой эффект только в том случае, если активированные рольставни уже закрыты (опасность замерзания рольставней). Если сигнализация замерзания срабатывает, когда рольставни все еще открыты, рольставни автоматически перемещаются на высоту, установленную для сигнализации замерзания, только при их закрытии. +Сигнализация замерзания действует напрямую только в том случае, если активированные рольставни уже закрыты (опасность замерзания рольставней). Если сигнализация замерзания срабатывает, когда рольставни еще открыты, рольставни автоматически перемещаются на высоту, установленную для сигнализации замерзания, только когда они закрыты. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ @@ -301,9 +301,9 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco ### Настройки затвора ![основной1](../../../en/adapterref/iobroker.shuttercontrol/img/main1.png) ->:point_right: Пример привода *пример жалюзи* создается автоматически, удалите его через корзину (5). +>:point_right: Пример привода *пример ставня* создан автоматически, пожалуйста, удалите его через мусорную корзину (5). -Теперь добавьте свои собственные приводы жалюзи, нажав на (+) (1). Откроется выбор идентификатора и выберите точку данных LEVEL, которая представляет положение желаемой рольставни. +Теперь добавьте собственные приводы жалюзи, нажав на (+) (1). Откроется выбор идентификатора и выберите точку данных LEVEL, которая представляет положение желаемой рольставни. ![ID_Selector_DP_Levelg](../../../en/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png) @@ -311,233 +311,235 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco ![вкладка](../../../en/adapterref/iobroker.shuttercontrol/img/main1.png) -* **Нет:** *порядковый номер перечисленных ставен*. +* **Нет:** *порядковый номер перечисленных ставней*. -* **Активен:** *Флажок для активации/деактивации управления соответствующей рольставней*. +* **Активно:** *Флажок для активации/деактивации управления соответствующей рольставней*. * **Имя:** *Имя привода автоматически считывается из объектов при выборе идентификатора. -и затем может быть изменено по вашему желанию. +и затем может быть изменен в соответствии с вашими пожеланиями. -* **Идентификатор объекта:** *Уникальный идентификатор точки данных, которой необходимо управлять в объектах*. +* **Идентификатор объекта затвора:** *Уникальный идентификатор точки данных, которая будет контролироваться в объектах*. -* **(+)** *Изменить выбранный привод роллет* * **Карандаш** * *Изменить выбранный привод роллет +* **(+)** *Изменить выбранный привод рольставней* * **Карандаш** * *Изменить выбранный привод рольставней -* **Карандаш** *Откройте индивидуальную конфигурацию соответствующей роллеты*. +* **Карандаш** *Открыть индивидуальную конфигурацию соответствующей рольставни*. -* **Двойной лист:** *Копирование роллет* +* **Двойной лист:** *Копировальная рольставня* -* **Стрелки:** *Определите порядок движения рольставней при одинаковых настройках. +* **Стрелки:** *Определяют порядок движения рольставней при одинаковых настройках. -* Мусорная корзина:* *Удаляет привод жалюзи со всеми настроенными данными. +* Корзина:* *Удаляет привод жалюзи со всеми настроенными данными. -После того, как рольставни созданы, нажатием карандаша (3) на соответствующую рольставню с вкладками [ОСНОВНЫЕ НАСТРОЙКИ для роллет](#main-shutter-settings), [НАСТРОЙКИ СОЛНЦА ЗАЩИТЫ](#sun-protection-settings) и [ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ](#extra-settings) далее настраивается каждая створка индивидуально. +После создания рольставней, нажав на карандаш (3) на соответствующей рольставне с язычками [ОСНОВНЫЕ НАСТРОЙКИ для рольставней](#main-shutter-settings), [НАСТРОЙКИ ЗАЩИТЫ ОТ СОЛНЦА](#sun-protection-settings) и [ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ](#extra-settings), каждая рольставня далее настраивается индивидуально. --- -#### Настройки главного затвора +#### Настройки основного затвора ![mainShutter.png](../../../en/adapterref/iobroker.shuttercontrol/img/mainShutter.png) -В верхней области время открытия или закрытия жалюзи выбирается отдельно через выпадающее меню. +В верхней области время открытия или закрытия ставня выбирается отдельно с помощью выпадающего меню. > :point_right: Это время уже настроено в [Настройки времени](#time-settings). Варианты выбора: -* **Выкл.** *Не использовать таймеры. +* **Выкл.:** *Не использовать таймеры. -* **Гостиная зона:** *Затвор перемещается в указанное в *Настройки гостиной* время. +* **Жилая зона:** *Жалюзи перемещаются в соответствии с настройками в *Настройках жилой зоны*. -* Жилая зона (автоматически):** **Рольставни перемещаются во время, указанное в* астройки жилой зоны*. +* Жилая зона (автоматически):** **Рольставни перемещаются в соответствии с временем, заданным в* астройках для жилой зоны*. -**и** кроме того, затвор активируется в ответ на триггер, определенный в дополнительных настройках. -Идентификатор объекта для активации/деактивации автоматической жилой зоны». Если для этого параметра установлено значение false, рольставни **не** будут перемещаться автоматически. +**и** кроме того, ставни активируются в ответ на триггер, определенный в разделе Дополнительные настройки. +Идентификатор объекта для активации/деактивации автоматической жилой зоны. Если Если установлено значение false, рольставни **не** будут перемещаться автоматически. -* Рольставни перемещаются во время, указанное в *Настройки спального места*. +* Рольставни перемещаются в соответствии с настройками *Настроек спальной зоны*. -* Рольставни перемещаются во время, указанное в *Настройках спальной зоны*. +* Рольставни перемещаются в соответствии с настройками *Настроек для спальной зоны*. **и** кроме того, затвор активируется в ответ на триггер, указанный в дополнительных настройках. -Идентификатор объекта для активации/деактивации зоны автосна». -Если для этого параметра установлено значение false, рольставни **не** будут перемещаться автоматически. +Идентификатор объекта для активации/деактивации зоны автоматического сна. +Если установлено значение false, рольставни **не** будут перемещаться автоматически. -* Детская зона: **Рольставни перемещаются во время, указанное в* астройках детской зоны*. +* Детская зона: **Рольставни перемещаются в соответствии с настройками* етской зоны*. -* Детская зона (автоматически):* *Рольставни перемещаются во время, указанное в *Настройках детской зоны*. +* Детская зона (автоматически):* *Рольставни перемещаются в соответствии с временем, заданным в *Настройках детской зоны*. **и** кроме того, затвор активируется в ответ на триггер, определенный в дополнительных настройках. -Идентификатор объекта для активации/деактивации автоматической детской зоны». -Если для этого параметра установлено значение false, затвор **не** будет перемещаться автоматически. +Идентификатор объекта для активации/деактивации автоматической детской зоны. +Если установлено значение false, затвор **не** будет перемещаться автоматически. -* Закат/восход солнца:** * *Затвор перемещается при закате или восходе солнца. +* Закат/Восход:** * *Затвор движется во время заката или восхода солнца. -* Высота солнца: Если высота падает ниже установленного здесь значения, рольставни закрываются. +* Высота солнца: если высота солнца опускается ниже установленного здесь значения, рольставни закрываются. -* Золотой час:** * *Рольставни закрываются в «Золотой час», который, в зависимости от широты и времени года, составляет ок. За 1 час до захода солнца или после восхода солнца. +* Золотой час:** * *Рольставни закрываются в золотой час, который, в зависимости от широты и времени года, наступает примерно за 1 час до захода солнца или после восхода солнца. до захода солнца или после восхода солнца, в зависимости от широты и времени года. -* Датчик освещенности:** * *Рольставни перемещаются только в соответствии с датчиком освещенности, который настроен в разделе [Настройки датчика освещенности](#brightness-sensor-settings). +* Датчик яркости:** * *Рольставни двигаются только в соответствии с датчиком яркости, который настраивается в разделе [Настройки датчика яркости](#brightness-sensor-settings). * Только ручное управление:** * *Рольставни можно перемещать только вручную в выбранном направлении. -:point_right: Перемещение с помощью кнопок под ``shuttercontrol.0.control`` невозможно. -point_right: Это может быть полезно, например, для навесов, которые не следует открывать вместе с другими рольставнями. +:point_right: Движение невозможно с помощью кнопок под ``shuttercontrol.0.control``. +point_right: Это может быть полезно, например, для маркиз, которые не следует открывать вместе с другими рольставнями. которые не следует открывать вместе с другими ставнями. -**Значение датчика окна/двери в закрытом состоянии:** *Здесь определяется значение, которое может иметь триггер под **Идентификатор объекта контакта окна/двери** (например, оконный или дверной контакт). -(например, контакт окна или поворотной ручки), при котором автоматическая система рольставней может двигаться неограниченно долго. +**Значение датчика окна/двери в закрытом состоянии:** *Здесь определяется значение, которое может иметь триггер под **Идентификатором объекта контакта окна/двери** (например, контакт окна или двери). +(например, контакт окна или поворотной ручки), при котором автоматической системе рольставней разрешено двигаться неограниченно долго. :point_right: Можно выбрать такие значения, как true, false, 0, 1 или 2. -> point_right: Если рольставни не находятся в крайнем верхнем положении и указанное здесь состояние датчика изменяется, рольставни перемещаются в крайнее верхнее положение. -состояние датчика изменяется, рольставни перемещаются на **высоту роллет при открытии окна или двери**. +> point_right: Если рольставни не находятся в самом верхнем положении и указанное здесь состояние датчика изменяется, рольставни перемещаются в самое верхнее положение. +состояние датчика изменяется, рольставни перемещаются на **высоту рольставней при открытии окна или двери**. -**Значение датчика окна/двери в наклоненном состоянии:** *Это устанавливает значение, на которое установлен триггер в разделе **Идентификатор объекта контакта окна/двери** (например, оконный или дверной контакт). -(например, контакт окна или поворотной ручки), при котором автоматическая система рольставней может двигаться неограниченно долго. +**Значение датчика окна/двери в наклонном состоянии:** *Это устанавливает значение, на которое устанавливается триггер под **Идентификатором объекта контакта окна/двери** (например, контакт окна или двери). +(например, контакт окна или поворотной ручки), при котором автоматической системе рольставней разрешено двигаться неограниченно долго. :point_right: Можно выбрать такие значения, как true, false, 0, 1 или 2. -> point_right: Если рольставни не находятся в крайнем верхнем положении и указанное здесь состояние датчика изменяется, рольставни перемещаются в крайнее верхнее положение. -состояние датчика изменяется, рольставни перемещаются на **высоту роллет при открытии окна или двери**. +> point_right: Если рольставни не находятся в самом верхнем положении и указанное здесь состояние датчика изменяется, рольставни перемещаются в самое верхнее положение. +состояние датчика изменяется, рольставни перемещаются на **высоту рольставней при открытии окна или двери**. -> :exclamation: Если нет оконного контакта с функцией наклона, это значение должно быть установлено на «нет». +> :exclamation: Если оконный контакт с функцией наклона отсутствует, это значение следует установить на «отсутствует». -**Перемещайте рольставни при изменении состояния окна/двери:** *Потяните вниз, чтобы выбрать функцию, которая будет выполняться при перемещении датчика окна/двери:* +**Перемещение рольставней при изменении состояния окна/двери:** *Вытяните вниз, чтобы выбрать функцию, которая должна выполняться при перемещении датчика окна/двери:* -**Выкл.**: нет движения. +**Выкл**: нет движения -* **Открыто**: при открытии окна/двери ставня поднимается вверх и остается там, при закрытии ставня не двигается. -* **Закрыть**: После закрытия окна/двери рольставни перемещаются в положение затемнения, при открытии рольставни не двигаются. +* **Открыто**: При открывании окна/двери ставни поднимаются и остаются в таком положении, при закрывании ставни не двигаются. +* **Закрыть**: После закрытия окна/двери рольставни перемещаются в положение затемнения, при открытии рольставни не перемещаются. -**Открытие и закрытие:** Рольставни поднимаются вверх, когда окно/дверь открывается, и снова опускаются, когда окно закрывается. +**Открытие и закрытие:** Рольставни поднимаются при открытии окна/двери и снова опускаются при закрытии. -**Высота жалюзи при открытии окна или двери:** *Желаемое положение жалюзи от 0 до 100, напр. для окон 25% на вентиляцию или 100% на проходимость дверей. -чтобы двери могли пройти. +**Высота рольставней при открытии окна или двери:** *Желаемое положение рольставней от 0 до 100, например, для окон 25% для вентиляции или 100% для дверей, чтобы можно было проехать. +для дверей, чтобы можно было проехать. -**Высота жалюзи при наклоне окна или двери:** *Желаемое положение жалюзи от 0 до 100, напр. для окон 25% на вентиляцию. +**Высота рольставней при наклоне окна или двери:** *Требуемое положение рольставней от 0 до 100, например, для окон 25% для вентиляции. -**Используйте автоматические рольставни, даже когда окно/дверь открыты (защита от блокировки)** **Если в момент автоматического закрытия датчик окна/двери __не соответствует введенному значению (окно/дверь закрыто) ), в соответствии с выбранной настройкой будут выполнены следующие действия:** +**Использовать автоматические рольставни даже при открытом окне/двери (защита от блокировки)** **Если во время автоматического закрытия датчик окна/двери __не__ соответствует введенному там значению (окно/дверь закрыты), то в соответствии с выбранной настройкой будут выполнены следующие действия:** -* **Выкл.**: защита от блокировки активна в обоих направлениях, ставни не двигаются, когда окно открыто. -* **Открыть**: разрешено только повышение. По окончании затемнения/затенения рольставни поднимаются вверх, даже если окно открыто. Рольставни не закрываются автоматически при открытом окне. -* **Закрыть**: разрешено только закрытие. В начале затемнения/затенения роллеты опускаются, несмотря на открытое окно. Рольставни не открываются при открытом окне. -* **Открытие и закрытие**: Рольставни могут двигаться в обоих направлениях, когда окно открыто. +* **Выкл.**: Защита от блокировки активна в обоих направлениях, ставни не двигаются, когда окно открыто. +* **Открыто**: Разрешено только поднимать. В конце затемнения/затенения рольставни поднимаются, даже если окно открыто. Рольставни не закрываются автоматически, когда окно открыто. +* **Закрыть**: Разрешено только закрытие. В начале затемнения/затенения рольставни опускаются, несмотря на то, что окно открыто. Рольставни не открываются, когда окно открыто. +* **Открытие и закрытие**: рольставни могут двигаться в обоих направлениях, когда окно открыто. -**Высота рольставни при движении вниз:** *Значение положения, когда рольставня закрыта. +**Высота рольставней при движении вниз:** *Значение положения при закрытой рольставне. -**Высота жалюзи в поднятом состоянии:** *Значение положения при открытых жалюзи*. +**Высота рольставней в поднятом состоянии:** *Значение положения при открытых рольставнях*. -> :point_right: Высоту рольставни необходимо ввести в соответствии с используемыми приводами (0-100 или 0-255): > 0 = закрыто и 100 = открыто или 0 = открыто и 100 = закрыто. +> :point_right: Высота рольставней должна быть введена в соответствии с используемыми приводами (0-100 или 0-255): > 0 = закрыты и 100 = открыты или 0 = открыты и 100 = закрыты. -**Идентификатор объекта контакта окна/двери:** Используйте (+), чтобы выбрать датчик (состояние), который должен предотвратить движение рольставней (например, дверной контакт). +**Идентификатор объекта оконного/дверного контакта:** Используйте (+), чтобы выбрать датчик (состояние), который должен предотвратить движение рольставней (например, дверной контакт). _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Настройки защиты от солнца -![защита от солнца](../../../en/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png) +![sunProtect](../../../en/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png) -**Тип управления защитой от солнца:** Защитой от солнца можно управлять с помощью различных триггеров для затенения и его завершения. В раскрывающемся списке можно выбрать следующие комбинации: +**Тип управления солнцезащитой:** Солнцезащитой можно управлять с помощью различных триггеров затенения и его окончания. С помощью выпадающего списка можно выбрать следующие комбинации: -* Снаружи -* Внутренний и наружный датчик температуры/освещенности +* Из +* Датчик температуры/освещённости внутри и снаружи помещения * Направление компаса (положение солнца) -* Внутренний/наружный датчик температуры/света и кардинальное направление -* Датчик наружной температуры/освещенности и направление -* Датчик наружной температуры/освещенности +* Датчик температуры/освещенности в помещении/на улице и направление света +* Датчик наружной температуры/освещения и направления +* Датчик наружной температуры/освещённости * Температура в помещении -> :point_right: Защита от солнца срабатывает только тогда, когда ВСЕ триггеры выбранной комбинации выбраны активными (логическое соединение И) и прекращается, когда ОДИН из триггеров становится неактивным. +> :point_right: Защита от солнца срабатывает только тогда, когда ВСЕ триггеры выбранной комбинации активны (логическое соединение «И»), и прекращает работу, когда ОДИН из триггеров становится неактивным. > :point_right: Идентификатор объекта также должен быть сохранен для ВСЕХ выбранных триггеров. -> :point_right: Датчик освещенности всегда является дополнительным и может оставаться пустым. Если датчик освещенности настроен, он связан с остальными параметрами И. +> :point_right: Датчик освещенности всегда необязателен и может оставаться пустым. Если датчик освещенности настроен, он связан с другими параметрами И. -**Высота жалюзи при движении вниз:** *Значение того, насколько далеко жалюзи должны быть закрыты при затемнении.* +**Высота рольставней при движении вниз:** *Значение того, насколько далеко должны быть закрыты рольставни при затенении.* -**Направление (положение солнца):** *Выравнивание окошка компаса (0° = север; 180° = юг)* +**Направление (положение солнца):** *Положение окна на компасной розе (0° = север; 180° = юг)* -**+/- Диапазон положения солнца для активной защиты от солнца:** *Область, в которой солнце (вокруг центральной точки) будет мешать окну. За пределами этой области нет тени.* +**+/- Диапазон положения солнца для активной защиты от солнца:** *Зона, в которой солнце (вокруг центральной точки) будет мешать окну. За пределами этой зоны затенение отсутствует.* **Заданное значение наружной температуры:** *Затенение начинается с этого значения (или выше).* -**Гистерез наружной температуры (в процентах):** *Здесь вы можете установить гистерезис в процентах, чтобы рольставни при колебаниях не поднимались и опускались постоянно.* Гистерезис — это разница между верхним значением температуры, при котором должно быть затенение. начало и нижнее значение температуры, при котором затенение снова прекращается. +**Гистерезис наружной температуры (в процентах):** *Здесь можно задать гистерезис в процентах, чтобы рольставни при колебаниях не ходили постоянно вверх и вниз.* Гистерезис — это разница между верхним значением температуры, при котором должно начинаться затенение, и нижним значением температуры, при котором затенение снова заканчивается. -**Идентификатор объекта наружной температуры:** Датчик, выбранный здесь с помощью (+), не обязательно должен измерять наружную температуру. Он может указать любое значение, которое можно использовать для запуска затенения. -Это также может быть термодатчик (датчик разницы температур). -Если в качестве триггера не выбран наружный датчик, оставьте это поле пустым. +**Идентификатор объекта температуры наружного воздуха:** Датчик, выбранный здесь с помощью (+), не обязательно должен измерять температуру наружного воздуха. Он может предоставить любое значение, которое может быть использовано для запуска затенения. +Это также может быть датчик тепла (датчик разности температур). +Если в качестве триггера не выбран ни один датчик наружного воздуха, оставьте это поле пустым. **Уставка датчика освещенности для защиты от солнца:** *Пороговое значение для начала затенения.* Это значение зависит от датчика, выбранного в поле **Идентификатор объекта для датчика освещенности для защиты от солнца**. -**Гистерезис датчика освещенности (в процентах):** Здесь вы можете установить нисходящий гистерезис в процентах, чтобы рольставни не двигались постоянно вверх и вниз при колебаниях, вызванных сменой облаков. -Гистерезис — это разница между заданным значением, при котором должно начинаться затенение, и нижним значением яркости, при котором затенение должно снова начинаться. +**Гистерезис датчика освещенности (в процентах):** Здесь вы можете установить нисходящий гистерезис в процентах, чтобы рольставни не двигались постоянно вверх и вниз при колебаниях, вызванных изменением облачности. +Гистерезис — это разница между заданным значением, при котором должно начинаться затенение, и нижним значением яркости, при котором затенение должно начинаться и заканчиваться. -> :point_right: Пример: Уставка датчика освещенности для защиты от солнца установлена на 30 000, гистерезис на 40 %: Защита от солнца активна с 30 000 и остается активной до тех пор, пока значение не упадет ниже 18 000. +> :point_right: Пример: Уставка датчика освещенности для защиты от солнца установлена на 30 000, гистерезис на 40%. Защита от солнца активна с 30 000 и остается активной до тех пор, пока значение не опустится ниже 18 000. -**Идентификатор объекта датчика солнечной освещенности:** *Аналог датчика наружной температуры* Если не выбран в качестве триггера, оставьте пустым +**Идентификатор объекта датчика освещенности для защиты от солнца:** *Аналог датчика наружной температуры* Если не выбрано в качестве триггера, оставьте поле пустым -**Заданное значение температуры в помещении:** Здесь можно ввести температуру внутреннего датчика температуры, назначенного на рольставни, при которой не должно быть затенения, например, чтобы уменьшить нагрев и использовать излучение зимой для поддержания обогрев. +**Заданная температура в помещении:** Здесь можно ввести температуру внутреннего датчика температуры, назначенного рольставням, при которой не должно происходить затенения, например, для уменьшения нагрева с целью использования излучения зимой для поддержки отопления. -**Внутренняя температура гистерезиса (в процентах):** *Здесь вы можете установить гистерезис в процентах, чтобы рольставни при колебаниях внутренней температуры не повышались и не понижались постоянно.* Гистерезис – это разница между верхним значением температуры, при котором должно начинаться затенение и наименьшее значение температуры, при котором затенение снова прекращается. +**Гистерезис внутренней температуры (в процентах):** *Здесь можно задать гистерезис в процентах, чтобы рольставни при колебаниях внутренней температуры не двигались постоянно вверх и вниз.* Гистерезис — это разница между верхним значением температуры, при котором должно начинаться затенение, и нижним значением температуры, при котором затенение снова заканчивается. -**Идентификатор объекта датчика внутренней температуры:** Используйте (+), чтобы выбрать датчик температуры. -Если в качестве триггера не выбран внутренний датчик, оставьте это поле пустым. +**Идентификатор объекта датчика температуры в помещении:** Используйте (+) для выбора датчика температуры. +Если в качестве триггера не выбран датчик температуры в помещении, оставьте это поле пустым. _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ --- #### Дополнительные настройки рольставней -![главнаяДополнительно](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtra.png) +![mainExtra](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtra.png) #### Настройки рольставней ![mainExtraShutterSettings](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png) -**Закрывать рольставни поздно** При использовании этой опции рольставни активируются в определенное время (настраиваемое в [Особое время](#special-times)) и также выключаются. -> :exclamation: Здесь не учтена блокировка и рольставни опускаются, несмотря на открытое окно! (Опасность блокировки!!) :exclamation: +**Закрыть рольставни поздно** С этой опцией рольставни активируются в определенное время (регулируется в [Особые времена](#special-times)), а также закрываются. +> :exclamation: Защита от блокировки здесь не учитывается, и рольставни опускаются, несмотря на то, что окно открыто! (Опасность быть заблокированным!!) :exclamation: -**Не закрывайте рольставни летом** Некоторые рольставни летом не следует закрывать. Период [Летние настройки](#summer-settings) будет летом. +**Не закрывайте рольставни летом** Некоторые рольставни не следует закрывать летом. Летом будет период в [Летние Настройки](#summer-settings). -**Вождение после закрытия окна** После закрытия окна/двери рольставни будут установлены на последнюю запрошенную настройку. +**Управление после закрытия окна** После закрытия окна/двери рольставни будут установлены в последнюю запрошенную настройку. Позиционное управление. -> :point_right: Это работает только в том случае, если для защиты от блокировки не установлено значение «Выкл.»! +> :point_right: Это работает только в том случае, если защита от блокировки не установлена на «Выкл»! #### Рождественские настройки -![ГлавнаяExtraChristmas](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png) +![mainExtraChristmas](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png) -Если на Рождество рольставни должны быть закрыты только частично, т. к. если свечная арка или что-то подобное должно оставаться видимой, можно использовать этот вариант. В этом случае рольставни не будут полностью закрыты в обычное время закрытия, а будут закрыты только до уровня, который можно установить. -> :point_right: **Уровень роллет во время Рождества** виден и регулируется только в том случае, если установлен флажок **Уровень роллет во время Рождества** используется**. +Если рольставни должны быть закрыты только частично в рождественское время, например, если должна оставаться видна арка свечи или что-то подобное, можно использовать эту опцию. В таком случае рольставни не будут полностью закрыты в обычное время закрытия, а будут закрыты только до уровня, который можно задать. +> :point_right: **Уровень рольставней в рождественское время** виден и регулируется только в том случае, если установлен флажок **Уровень рольставней в рождественское время используется**. -Период, когда эта функция должна быть активирована, устанавливается в разделе [Рождественские настройки](#christmas-settings). -> :point_right: Если поздно вечером рольставни должны быть полностью закрыты, можно использовать эту опцию > **Закрыть рольставни поздно** или **Перевести в промежуточное положение и полностью закрыть позже** >. -> :point_right: Эти два параметра также можно использовать независимо от рождественских настроек. +Период, когда эта функция должна быть активирована, устанавливается в [Рождественские настройки](#christmas-settings) set. +> :point_right: Если рольставни должны быть полностью закрыты позже вечером, можно использовать эту опцию > **Закрыть рольставни поздно** или **Переместить в промежуточное положение и полностью закрыть позже** > можно использовать. +> :point_right: Эти две опции также можно использовать независимо от настроек Рождества. #### Настройки защиты от солнца -![ГлавнаяExtraSun](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png) +![mainExtraSun](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png) + +**Держать рольставни в режиме защиты от солнца** Если эта опция включена, рольставни остаются в режиме защиты от солнца, даже если больше нет необходимости в защите от солнца, и остаются в режиме защиты от солнца до тех пор, пока вечером не поступит сигнал «закрыть». Это предотвращает подъем и опускание рольставней несколько раз в день. +Очень практично при работе в режиме жалюзи, когда высота удерживается на низком уровне (опция отмечена), и просто открывайте и закрывайте ламели. -**Держать рольставни в защите от солнца** Если эта опция включена, рольставни остаются под защитой от солнца, даже если больше нет требований к защите от солнца, и остаются под защитой от солнца до тех пор, пока не будет «закрыто» сигнал приходит вечером. -Это предотвращает подъем и опускание роллет несколько раз в день. -Очень практично при работе жалюзи, когда высота удерживается на низком уровне (опция проверена) и можно просто открывать и закрывать ламели. +**Задержка падения ниже яркости до окончания затенения (минуты)** Здесь задается время, по истечении которого должна произойти задержка, если затенение затемнено и яркость падает ниже установленного уровня. +Значение по умолчанию — 0, при необходимости его можно отрегулировать. Эта опция работает только совместно с датчиком яркости -**Теплозащита** Эта опция позволяет полностью закрыть рольставни в жаркую погоду. -После активации этой опции появится поле для ввода температуры в °C. +**Защита от перегрева** Эта опция позволяет полностью закрыть рольставни в жаркую погоду. +После активации этой опции появляется поле для ввода температуры в °C. -> :point_right: Если рольставни регулируются вручную и положение автоматически не соответствует этому, автоматика останавливается! +> :point_right: Если рольставни отрегулированы вручную и их положение не соответствует автоматическому, автоматическая система останавливается! > :point_right: Если рольставни вручную перемещаются на заданную высоту для открытия, закрытия или защиты от солнца, автоматическая функция сохраняется. #### Дополнительные настройки ![mainExtraExtra](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png) -**Задержка роллеты при открытии окна(ов)** *Параметр задержки открытия роллеты после открытия окна/двери (в секундах)* +**Задержка открывания рольставней при открытии окна (с)** *Параметр задержки открывания рольставней после открытия окна/двери (в секундах)* -**Задержка роллеты при закрытии окна(ов)** *Параметр задержки закрытия роллеты после закрытия окна/двери (в секундах)* +**Задержка закрывания рольставней при закрытии окна (с)** *Параметр задержки закрывания рольставней после закрытия окна/двери (в секундах)* -**Переместитесь в промежуточное положение, а затем полностью закройте** *При активации становится видна **высота рольставни в промежуточном положении**. Затем при закрытии рольставни перемещаются в установленное промежуточное положение, а затем полностью закрываются* +**Перейти в промежуточное положение и позже полностью закрыть** *При активации становится видна **высота рольставни в промежуточном положении**. Затем рольставня перемещается в установленное промежуточное положение при закрытии и позже полностью закрывается* #### Настройка будильника -![ГлавнаяExtraAlarm](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png) +![mainExtraAlarm](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png) -Здесь активируются или деактивируются сигналы тревоги, предварительно определенные для текущей рольставни через [Настройки сигналов тревоги](#alarm-setting). +Здесь активируются или деактивируются сигналы тревоги, предопределенные для текущей рольставни через [Настройки будильника](#alarm-setting). _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ @@ -546,18 +548,18 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco ## Точки данных Shuttercontrol создает различные точки данных в следующих папках: -* Shuttercontrol.x.control -* Shuttercontrol.x.info -* Shuttercontrol.x.shutters +* shuttercontrol.x.control +* shuttercontrol.x.info +* shuttercontrol.x.ставни > :point_right: x обозначает соответствующий установленный экземпляр --- -### ShutterControl0Control +### Shuttercontrol0control ![контроль точек данных](../../../en/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png) -Точки данных для управления различными функциями, такими как: *Отпуск *Если ```true```, рольставни перемещаются в установленное время по выходным и в +Точки данных для управления различными функциями, такими как: *Праздник *Если ```true```, рольставни будут двигаться в установленное время по выходным и в ```false``` during weekday hours.* > :point_right: Can use your own scripts that calculate or display vacation, days off, etc. @@ -643,23 +645,23 @@ _[Back to top](#documentation-and-instructions-for-shuttercontrol)_ * autoDown *For each roller shutter, automatic closing can be deactivated here with ```false``` -или активирован с помощью ```true```.* +или активировано с помощью ```true```.* * автоуровень -*Показывает текущее положение каждой рольставни (посредством этого рольставнями невозможно управлять).* +*Показывает текущее положение каждой рольставни (управлять рольставнями с его помощью нельзя).* -* автостатус +* автосостояние -*Показывает текущее состояние (вверх, вниз, Manu_Mode, sunProtect) для каждой рольставни (посредством этого рольставнями невозможно управлять).* +*Показывает текущее состояние (вверх, вниз, Manu_Mode, sunProtect) для каждой рольставни (роллеты не могут управляться с помощью этого).* -* автоСан +* автоСолнце *Функция защиты от солнца может быть отключена для каждой рольставни с помощью ```false``` или активирована с помощью ```true```.* * автовверх -*Для каждой рольставни автоматическое открытие можно деактивировать здесь с помощью ```false``` или активировать с помощью ```true```.* +*Для каждой рольставни автоматическое открывание можно отключить здесь с помощью ```false``` или активировать с помощью ```true```.* _[Вернуться наверх](#documentation-and-instructions-for-shuttercontrol)_ @@ -667,6 +669,24 @@ _[Вернуться наверх](#documentation-and-instructions-for-shutterco ### __WORK IN PROGRESS__ * (simatec) Dependencies updated +* (simatec) Fix End-Delay for Sunprotect +* (simatec) Update Translations +* (simatec) Trigger changed +* (simatec) Code revision and improvements +* (simatec) many small fixes +* (simatec) Fix Sunprotect end by Shutter up +* (simatec) Fix Shutter up when open the Window +* (simatec) Test & Release updated +* (simatec) Fix Trigger + +### 1.7.3 (2024-06-20) +* (simatec) Fix Sunprotect End-Delay + +### 1.7.2 (2024-06-20) +* (simatec) Fix Shutterstate enabled + +### 1.7.1 (2024-06-19) +* (simatec) Dependencies updated * (simatec) Docu updated ### 1.7.0 (2024-02-05) @@ -1214,4 +1234,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.simple-api/README.md b/docs/ru/adapterref/iobroker.simple-api/README.md index 838d25465..440736950 100644 --- a/docs/ru/adapterref/iobroker.simple-api/README.md +++ b/docs/ru/adapterref/iobroker.simple-api/README.md @@ -1,25 +1,25 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.simple-api/README.md -title: Simple-API -hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= +title: Simple-api +hash: uZ6qv91MUDsp64vaDdJZv17hn5SFo1Qn8zeHBd097Ec= --- ![Логотип](../../../en/adapterref/iobroker.simple-api/admin/simple-api.png) ![Количество установок](http://iobroker.live/badges/simple-api-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.simple-api.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.simple-api.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.simple-api.svg) -# Simple-API -![Тестирование и выпуск](https://github.com/ioBroker/ioBroker.simple-api/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/simple-api/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +# Простой API +![Тест и выпуск](https://github.com/ioBroker/ioBroker.simple-api/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/simple-api/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -Это интерфейс RESTFul для чтения объектов и состояний из ioBroker и для записи/управления состояниями через HTTP-запросы Get/Post. +Это интерфейс RESTFul для чтения объектов и состояний из ioBroker, а также для записи/управления состояниями с помощью HTTP-запросов Get/Post. -**Этот адаптер использует библиотеки 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. ## Использование -Вызовите в браузере `http://ipaddress:8087/help`, чтобы получить справку по API. Результат: +Вызовите в браузере `http://ipaddress:8087/help`, чтобы получить справку об API. Результат: ``` { @@ -41,7 +41,7 @@ hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= } ``` -### GetPlainValue +### ПолучитьОбычноеЗначение Позвоните, например: `http://ipaddress:8087/getPlainValue/system.adapter.admin.0.alive` @@ -50,7 +50,7 @@ hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= `true` -Кроме того, вы можете использовать ключ запроса `json`, чтобы принудительно проанализировать сохраненное значение: +Кроме того, вы можете использовать ключ запроса `json` для принудительного анализа сохраненного значения: `http://ipaddress:8087/getPlainValue/javascript.0.value?json` @@ -58,11 +58,11 @@ hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= `{"a":1}` -И без флага `json` результат будет таким: +А без флага `json` результат был бы таким: `"{\"a\": 1}"` -Можно использовать еще один полезный флаг `noStringify`: +Можно использовать еще один полезный флаг, `noStringify`: `http://ipaddress:8087/getPlainValue/javascript.0.stringValue?noStringify` @@ -70,12 +70,12 @@ hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= `VALUETEXT` -И без флага `noStringify` результат будет таким: +А без флага `noStringify` результат был бы таким: `"VALUETEXT"` ### Получать -Позвоните, например: `http://ipaddress:8087/get/system.adapter.admin.0.alive` +Вызов, например: `http://ipaddress:8087/get/system.adapter.admin.0.alive` Результат: @@ -110,8 +110,8 @@ http://ipaddress:8087/get/system.adapter.admin.0.alive?prettyPrint } ``` -### GetBulk -Получите множество состояний с помощью одного запроса, возвращаемого в виде массива объектов в порядке списка в запросе и id/val/ts в качестве подобъекта. +### ПолучитьBulk +Получить множество состояний одним запросом, возвращенным в виде массива объектов в порядке списка в запросе и id/val/ts в качестве подобъекта ### Набор Позвоните, например: @@ -143,7 +143,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint Конечно, точка данных `javascript.0.test` должна существовать. -Дополнительно можно определить тип значения: +Кроме того, можно определить тип значения: ``` http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&type=string @@ -159,50 +159,50 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true Переключает значение: - логическое значение: true => false, false => true -- число без ограничений: x => 100-x -- число с ограничениями: x => max - (x - min) +- количество без ограничений: x => 100-x +- число с ограничениями: x => макс - (x - мин) ### SetBulk -Установите множество состояний одним запросом. Этот запрос также поддерживает метод POST, поскольку данные POST должны находиться в теле, а не в URL-адресе. +Установить несколько состояний одним запросом. Этот запрос также поддерживает метод POST, поскольку данные POST должны быть в теле, а не в URL. ### SetValueFromBody -Позволяет установить значение данного состояния с помощью содержимого тела POST. +Позволяет задать значение данного состояния, заданное содержимым тела POST. -Вызовите, например: `http://ipaddress:8087/setValueFromBody/0_userdata.0.example_state` с телом `hello`, где `0_userdata.0.example_state` — это идентификатор состояния. +Например, вызовите: `http://ipaddress:8087/setValueFromBody/0_userdata.0.example_state` с телом `hello`, где `0_userdata.0.example_state` — это идентификатор состояния. ### Объекты Чтение объектов определенного типа из БД. -Вызовите, например: `http://ipaddress:8087/objects?pattern=enum.*&type=enum` — чтобы прочитать все перечисления. +Вызовите, например: `http://ipaddress:8087/objects?pattern=enum.*&type=enum` — для чтения всех перечислений или -`http://ipaddress:8087/objects?pattern=system.adapter.admin.0.*` - прочитать все состояния в ветке `system.adapter.admin.0` +`http://ipaddress:8087/objects?pattern=system.adapter.admin.0.*` - для чтения всех состояний в ветке `system.adapter.admin.0` -### Состояния +### Штаты ### Поиск -Если в конфигурации установлен источник данных (история, SQL), то отображаются только точки данных, известные источнику данных. -Если опция «Перечислить все точки данных» активирована или источник данных не указан, будут перечислены все точки данных. -Эта команда необходима для плагина Grafana JSON/SimpleJSON. +Если в конфигурации задан источник данных (история, SQL), то будут перечислены только точки данных, известные источнику данных. +Если активирована опция «Список всех точек данных» или источник данных не указан, будут перечислены все точки данных. +Эта команда необходима для плагина Grafana JSON / SimpleJSON. ### Запрос Если в конфигурации экземпляра указан источник данных (История, SQL), данные из указанных точек данных считываются за указанный период, в противном случае считывается только текущее значение. -Эта команда необходима для плагина Grafana JSON/SimpleJSON. +Эта команда необходима для плагина Grafana JSON / SimpleJSON. ### Помощь -Возвращает вывод [этот](#usage) +Возвращает [этот](#usage) вывод обратно ## Использование -Предположим, у нас нет безопасности и сервер работает на порту по умолчанию 8087. +Предположим, у нас нет защиты и сервер работает на порту по умолчанию 8087. -Для всех запросов можно указать имя или идентификатор состояния. +Для всех запросов можно указать название или идентификатор штата. -Для каждого запроса, возвращающего JSON, вы можете установить параметр `prettyPrint`, чтобы получить выходные данные в удобочитаемой форме. +Для каждого запроса, возвращающего JSON, вы можете установить параметр `prettyPrint`, чтобы получить вывод в удобочитаемой форме. -Если аутентификация включена, два других поля являются обязательными: `?user=admin&pass=iobroker`. +Если включена аутентификация, то обязательными являются два других поля: `?user=admin&pass=iobroker` -### GetPlainValue -Прочитайте значение состояния в виде текста. Вы можете указать больше идентификаторов, разделенных точкой с запятой. +### ПолучитьОбычноеЗначение +Прочитать значение состояния как текст. Вы можете указать больше идентификаторов, разделенных точкой с запятой ```http://ip:8087/getPlainValue/admin.0.memHeapTotal``` @@ -218,7 +218,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ``` ### Получать -Считайте данные о состоянии и объекте состояния в формате JSON. Вы можете указать больше идентификаторов, разделенных точкой с запятой. +Прочитать состояние и данные объекта состояния как json. Вы можете указать больше идентификаторов, разделенных точкой с запятой. Если запрошено более одного идентификатора, будет возвращен массив JSON. ```http://localhost:8087/get/admin.0.memHeapTotal/?prettyPrint``` @@ -305,8 +305,8 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ] ``` -### GetBulk -Прочитайте состояния других идентификаторов с отметкой времени. Вы можете указать больше идентификаторов, разделенных точкой с запятой. +### ПолучитьBulk +Прочитайте состояния большего количества идентификаторов с временной меткой. Вы можете указать больше идентификаторов, разделив их точкой с запятой. Массив JSON будет возвращаться всегда. ```http://ip:8087/getBulk/admin.0.memHeapTotal,admin.0.memHeapUsed/?prettyPrint``` @@ -325,7 +325,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ``` ### Набор -Напишите состояния с указанными идентификаторами. Вы можете указать опцию *wait* в миллисекундах, чтобы дождаться ответа от водителя. +Запишите состояния с указанными идентификаторами. Вы можете указать опцию *wait* в миллисекундах, чтобы дождаться ответа от водителя. ```http://ip:8087/set/hm-rpc.0.IEQ12345.LEVEL?value=1&prettyPrint``` @@ -346,11 +346,11 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true } ``` -Если в течение указанного времени ответ не будет получен, будет возвращено значение `null`. -В первом случае ответ будет возвращен немедленно и `ack` будет ложным. Во втором случае `ack` верно. Это означает, что это был ответ водителя. +Если в указанное время ответ не будет получен, будет возвращено значение `null`. +В первом случае ответ будет возвращен немедленно, а `ack` — ложь. Во втором случае `ack` — истина. Это означает, что это был ответ от водителя. ### SetBulk -- написать большое количество идентификаторов в одном запросе. +- запись большого количества идентификаторов в одном запросе. ```http://ip:8087/setBulk?hm-rpc.0.FEQ1234567:1.LEVEL=0.7&Anwesenheit=0&prettyPrint``` @@ -366,10 +366,10 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ] ``` -Вы также можете отправить этот запрос как POST. +Вы также можете отправить этот запрос методом POST. ### Объекты -Получите список всех объектов по шаблону. Если шаблон не указан, все объекты будут возвращены в виде массива JSON. +Получить список всех объектов для шаблона. Если шаблон не указан, будут возвращены все объекты как массив JSON. ```http://ip:8087/objects?prettyPrint``` @@ -409,7 +409,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ... ``` -Получите все объекты управления адаптера system.adapter.admin.0: +Получить все объекты управления адаптера system.adapter.admin.0: ```http://ip:8087/objects?pattern=system.adapter.admin.0*&prettyPrint``` @@ -430,8 +430,8 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ``` -### Состояния -Получите список всех состояний по шаблону. Если шаблон не указан, все состояния будут возвращены в виде массива JSON. +### Штаты +Получить список всех состояний для шаблона. Если шаблон не указан, будут возвращены все состояния как массив JSON. ```http://ip:8087/states?prettyPrint``` @@ -461,7 +461,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ... ``` -Получите все объекты управления адаптера system.adapter.admin.0: +Получить все объекты управления адаптера system.adapter.admin.0: ```http://ip:8087/states?pattern=system.adapter.admin.0*&prettyPrint``` @@ -515,8 +515,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true ``` ### Поиск -Если в конфигурации установлен источник данных (история, SQL), то отображаются только точки данных, известные источнику данных. -Если опция «Перечислить все точки данных» активирована или источник данных не указан, будут перечислены все точки данных. +Если в конфигурации задан источник данных (История, SQL), то будут перечислены только точки данных, известные источнику данных. Если активирована опция «Список всех точек данных» или не указан источник данных, будут перечислены все точки данных. ``` http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint @@ -538,7 +537,7 @@ http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint ``` ### Запрос -Если указан источник данных (История, SQL), данные из указанных точек данных считываются за указанный период. +Если указан источник данных (История, SQL), то данные из указанных точек данных считываются за указанный период. ```http://ip:8087/query/system.host.iobroker-dev.load,system.host.iobroker-dev.memHeapUsed/?prettyPrint&dateFrom=2019-06-08T01:00:00.000Z&dateTo=2019-06-08T01:00:10.000Z``` @@ -608,11 +607,17 @@ http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint ] ``` - +### **РАБОТА В ХОДЕ** --> ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Updated packages + +### 2.8.0 (2024-05-23) +* (foxriver76) ported to `@iobroker/webserver` + ### 2.7.2 (2022-10-08) * (Apollon77) Prepare for future js-controller versions @@ -772,7 +777,7 @@ http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint ## License The MIT License (MIT) -Copyright (c) 2015-2022 bluefox +Copyright (c) 2015-2024 bluefox Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -790,4 +795,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.squeezeboxrpc/README.md b/docs/ru/adapterref/iobroker.squeezeboxrpc/README.md index 8a4edbafb..4a84bf0af 100644 --- a/docs/ru/adapterref/iobroker.squeezeboxrpc/README.md +++ b/docs/ru/adapterref/iobroker.squeezeboxrpc/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.squeezeboxrpc/README.md -title: ioBroker Logitech Squeezebox Adapter по протоколу JSON / RPC -hash: qKPsRUM5+1VQuVVtnDRARZTTlf1qsUsPvAGN0hZljgE= +title: Адаптер ioBroker Logitech Squeezebox через протокол JSON/RPC +hash: ApQx3ISC5vhk8iOmN++3gMfLBg2a4pNQLkFTGh1r4eI= --- ![Логотип](../../../en/adapterref/iobroker.squeezeboxrpc/admin/squeezeboxrpc.png) -![Количество установок](http://iobroker.live/badges/squeezeboxrpc-installed.svg) -![Версия NPM](http://img.shields.io/npm/v/iobroker.squeezeboxrpc.svg) +![версия НПМ](https://img.shields.io/npm/v/iobroker.squeezeboxrpc.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.squeezeboxrpc.svg) -![Трэвис](https://img.shields.io/travis/oweitman/ioBroker.squeezeboxrpc.svg) -![Статус сборки AppVeyor](https://img.shields.io/appveyor/ci/oweitman/iobroker-squeezeboxrpc.svg) -![Проблемы с GitHub](https://img.shields.io/github/issues/oweitman/ioBroker.squeezeboxrpc.svg) +![Количество установок](https://iobroker.live/badges/squeezeboxrpc-installed.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/squeezeboxrpc-stable.svg) +![НПМ](https://nodei.co/npm/iobroker.squeezeboxrpc.png?downloads=true) -# IoBroker Адаптер Logitech Squeezebox по протоколу JSON / RPC -Это альтернативный адаптер, который использует JSON / RPC-Protokoll для получения данных и отправки команд на Logitech Media Server ([LMS](https://de.wikipedia.org/wiki/Logitech_Media_Server)) для управления подключенными устройствами, например +# Адаптер ioBroker Logitech Squeezebox через протокол JSON/RPC +**Тесты:** ![Тест и выпуск](https://github.com/oweitman/ioBroker.squeezeboxrpc/workflows/Test%20and%20Release/badge.svg) -* родной [squeezebox] (https://de.wikipedia.org/wiki/Squeezebox), -* Raspberry Pi с дополнительным аудиомодулем и небольшими прошивками на базе Linux, такими как [picoreplayer] (https://picoreplayer.org/) или [max2play] (https://www.max2play.com). -* с плагинами chromecast, airplay или UPnP / DLNA-Devices +Это альтернативный адаптер, который использует протокол JSON/RPC для получения данных и отправки команд на Logitech Media Server ([СУО](https://de.wikipedia.org/wiki/Logitech_Media_Server)) для управления подключенными устройствами, такими как -LMS-сервер может управлять / предоставлять очень большие музыкальные коллекции на жестких дисках или NAS, подключаться к различным поставщикам потоковой передачи, таким как Spotify, Deezer, Soundcloud, shoutcast, tunein, napster, pandora, tidal и т. Д. +- нативный [squeezebox](https://de.wikipedia.org/wiki/Squeezebox), +- Raspberry Pi с дополнительным аудиомодулем и небольшими прошивками на базе Linux -Зачем нужен еще один адаптер squeezebox? +как [picoreplayer](https://picoreplayer.org/) или [max2play](https://www.max2play.com). -Существующий адаптер использует telnet для доступа к LMS. У телнета есть недостатки. -Фактический основной веб-интерфейс LMS также использует протокол rpc / json для получения всей необходимой информации или отправки команд на сервер / игроков. +- с плагинами chromecast, airplay или UPnP/DLNA-устройствами + +LMS-сервер может управлять/предоставлять очень большие музыкальные коллекции на жестких дисках или NAS, подключаться к различным потоковым провайдерам, таким как Spotify, Deezer, Soundcloud, shoutcast, tunein, napster, pandora, tidal и многим другим. + +Зачем нужен еще один адаптер Squeezebox? + +Существующий адаптер использует telnet для доступа к LMS. Telnet имеет некоторые недостатки. +Фактический основной веб-интерфейс LMS также использует rpc/json-протокол для получения всей необходимой информации или отправки команд на сервер/плееры. + +## Функции +- большинство данных, которые предоставляет LMS-Service, доступны в адаптере +- подробная информация о статусе игрока, названии песни, исполнителе, + +альбом, обложка, плейлист + +- множество функций управления для воспроизведения, паузы, остановки, перемотки вперед, назад, повтора, + +Перемешивание, воспроизведение избранного, переход к времени (абсолютному и относительному), переход к индексу плейлиста (абсолютному и относительному), кнопки включения/выключения питания и предустановки -## Характеристики -- большая часть данных, которые предоставляет LMS-Service, доступна в адаптере -- подробная информация о статусе плеера, название песни, исполнитель, альбом, обложка, плейлист -- множество функций управления для воспроизведения, паузы, остановки, вперед, перемотки назад, повтора, случайного воспроизведения, воспроизведения в избранном, перехода по времени (абсолютного и относительного), перехода к индексу списка воспроизведения (абсолютного и относительного), включения / выключения питания и кнопок предварительной настройки - все избранное и все подуровни с сервера -- многие виджеты для компонента iobroker-vis включены для создания собственных пользовательских интерфейсов управления (выбор игрока, выбор избранного, управление группами синхронизации, кнопки для воспроизведения / паузы, перехода вперед, назад, режима повтора и выбора режима случайного воспроизведения) +- включено множество виджетов для компонента iobroker-vis для создания собственных -Документация для виджетов vis доступна внутри vis или [Виджет-Документация / немецкий](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.squeezeboxrpc/blob/master/widgets/squeezeboxrpc/doc.html). +управление пользовательскими интерфейсами (выбор проигрывателя, выбор избранного, управление синхронизированными группами, кнопки для воспроизведения/паузы, перемотки вперед, назад, выбора режима повтора и режима случайного воспроизведения) + +Документация по vis-виджетам доступна внутри vis или [Виджет-Документация/немецкий](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.squeezeboxrpc/blob/master/widgets/squeezeboxrpc/doc.html) ## Установка - Установить пакет - Создать экземпляр -- Настройте экземпляр с IP-адресом медиа-сервера logitech и портом (normal 9000) -- запустить / перезапустить экземпляр +- Настройте экземпляр с IP-адресом медиасервера Logitech. + +и порт (обычно 9000) -## Обновить -- после изменения кода виджета и обновления адаптера iobroker должен загрузить веб-файлы на внутренний веб-сервер. Пользователь сообщил, что иногда этого не происходило или происходило с задержкой. вы можете запустить это действие с помощью следующей команды +- запустить/перезапустить экземпляр + +## Обновлять +- после изменений в коде виджета и обновления адаптера, iobroker + +следует загрузить веб-файлы на внутренний веб-сервер. Пользователь сообщил, что иногда это не происходило или происходило с задержкой. Вы можете вызвать это действие с помощью следующей команды iobroker загрузить squeezeboxpc ## Предоставленные состояния ### Сервер | состояние | Описание | -| ----------------- | ------------------------------ | -| LastScan | отметка времени последнего сканирования музыки | +| ---------------- | ----------------------------- | +| LastScan | временная метка последнего сканирования музыки | | PlayerCount | Количество известных игроков | | PlayerCountOther | Количество известных других игроков | | PlayerCountSN | Количество известных игроков SN | @@ -61,161 +78,386 @@ iobroker загрузить squeezeboxpc | TotalDuration | Суммарное время воспроизведения всех песен | | TotalGenres | Количество всех известных жанров | | TotalSongs | Количество всех известных песен | -| SyncGroups | Существующие группы синхронизации | +| SyncGroups | Существующие Syncgroups | | Версия | Версия LMS | | mac | MAC-ID сервера | -| uuid | uuid LMS-экземпляра | +| uuid | uuid экземпляра LMS | дополнительная определенная кнопка для обновления избранного -кнопка | Описание ----------------- | --------------------------------------------- getFavorites | запросить все избранное с сервера +| кнопка | Описание | +| ------------ | --------------------------------- | +| getFavorites | запросить все избранное с сервера | ### Избранное Для каждого избранного Все атрибуты доступны только для чтения -состояние | Описание ----------------- | ------------------------------ Имя | Название избранных хэшей | указывает, является ли это идентификатором каталога | id любимого изображения | изображение / значок избранного, если доступно isaudio | тип isaudio | Примеры типов: ссылка, текст, аудио, URL плейлиста | URL трека +| состояние | Описание | +| -------- | ------------------------------------------ | +| Имя | Имя фаворита | +| hasitems | указывает, является ли это каталогом | +| id | id избранного | +| изображение | изображение/значок для избранного, если доступно | +| isaudio | isaudio | +| тип | Примеры типов: ссылка, текст, аудио, плейлист | +| url | url трека | - Доступны все подуровни (подкаталоги) избранного. +Доступны все подуровни (подкаталоги) избранного. ### Игроки -для каждого игрока Режим показывает, можете ли вы изменить значение. предпринятые действия описаны в атрибуте +для каждого игрока Режим показывает, можно ли изменить значение. Предпринятое действие описано в атрибуте + +| состояние | режим | Описание | +| -------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------- | +| Сигналы тревоги | R/- | Все зарегистрированные сигналы тревоги для этого игрока в формате JSON | +| Альбом | R/- | Название текущего альбома | +| Художник | R/- | Имя художника | +| ArtworkUrl | R/- | URL-адрес для Artwork | +| Битрейт | R/- | Битрейт трека | +| Подключено | R/- | состояние соединения игрока (0/1) | +| Продолжительность | R/- | Продолжительность трека | +| Жанр | R/- | жанр трека | +| IP | R/- | IP игрока | +| Режим | R/- | воспроизведение / пауза / стоп | +| Имя игрока | R/- | Имя игрока | +| PlayerID | R/- | ID игрока | +| Плейлист | R/- | Фактический плейлист в формате JSON | +| PlaylistCurrentIndex | R/W | перейти к абсолютной позиции, указав
trackindex или относительный с + или - в конце
начало. Пример 10,-3,+2 | +| PlaylistRepeat | R/W | Повтор песни(1)/плейлиста(2)/не повторять(0) | +| PlaylistShuffle | R/W | перемешать плейлист(1)/перемешать альбом(2)/не перемешивать(0) | +| Питание | Чтение/запись | получить/установить состояние питания проигрывателя выкл(0)/вкл(1) | +| RadioName | R/- | Название радиостанции | +| Оценить | R/- | Рейтинг песни | +| Удалённый | R/- | Если удалённый поток (1) | +| SyncMaster | R/- | ID/MAC Syncmaster | +| SyncSlaves | R/- | ID/Mac игроков в Syncgroup | +| Время | R/- | прошедшее время песни | +| Название | R/- | название песни | +| Тип | R/- | тип носителя (например, MP3 Radio) | +| Url | R/- | URL трека / потока | +| Громкость | Чтение/запись | получить/установить громкость плеера (0-100) | +| состояние | Чтение/запись | получить/установить состояние воспроизведения: пауза(0),воспроизведение(1),стоп(2) | + +Список воспроизведения предоставляет фактические следующие атрибуты, если они доступны в LMS. +Некоторые атрибуты зависят от типа песен (поток/файл/...) Все атрибуты доступны только для чтения + +| атрибут | Описание | +| ---------- | --------------------------------- | +| Альбом | Название текущего альбома | +| Художник | Имя художника | +| ArtworkUrl | URL-адрес произведения искусства | +| Битрейт | Битрейт трека | +| Продолжительность | Продолжительность трека | +| RadioName | Название радиостанции | +| Оценить | Рейтинг песни | +| название | название песни | +| Тип | тип носителя (например, MP3 Radio) | +| url | URL-адрес трека/потока | +| индекс | индекс песни в плейлисте | +| id | id песни | -состояние | режим | Описание -------------------- | ---- | -------------------------------------------------- --- Тревоги | R / - | Все зарегистрированные будильники для этого проигрывателя как JSON Album | R / - | Название текущего альбома Исполнитель | R / - | Имя художника ArtworkUrl | R / - | URL битрейта произведения искусства | R / - | Битрейт трека Connected | R / - | состояние подключения игрока (0/1) Продолжительность | R / - | Продолжительность трека Жанр | R / - | жанр трека IP | R / - | IP плеера Mode | R / - | воспроизведение / пауза / остановка Имя игрока | R / - | Имя игрока PlayerID | R / - | Плейлист ID игрока | R / - | Фактический список воспроизведения в формате JSON PlaylistCurrentIndex | R / W | перейти к абсолютной позиции, указав trackindex, или перейти к относительной позиции с + или - в начале. Пример 10, -3, + 2 PlaylistRepeat | R / W | Повтор песни (1) / список воспроизведения (2) / не повторять (0) PlaylistShuffle | R / W | перемешать плейлист (1) / перемешать альбом (2) / не перемешивать (0) Power | R / W | получить / установить состояние питания проигрывателя выключено (0) / включено (1) RadioName | R / - | Название радиостанции Ставка | R / - | Рейтинг песни Remote | R / - | Если удаленный поток (1) SyncMaster | R / - | ID / MAC-адрес Syncmaster SyncSlaves | R / - | ID / Mac игроков в Syncgroup Time | R / - | истекшее время песни Название | R / - | название песни Тип | R / - | тип носителя (например, MP3-радио) URL | R / - | URL трека / потока Volume | R / W | получить / установить Громкость плеера (0-100) состояние | R / W | получить / установить состояние воспроизведения: пауза (0), воспроизведение (1), остановка (2) +дополнительные определенные кнопки: -Список воспроизведения содержит следующие атрибуты, если они доступны в LMS. -Атрибуты Somme зависят от типа песен (поток / файл / ...) Все атрибуты доступны только для чтения +| кнопка | Описание | +| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| btnВперед | Следующая песня | +| btnRewind | Предыдущая песня | +| btnPreset\_\* | Кнопки 1-6 для определения в плеере или на сервере | +| cmdGeneral | общее поле команд для отправки команд игроку. каждое поле должно быть заключено в кавычки. параметры должны быть разделены запятыми. Пример: "play","1" | +| cmdPlayFavorite | для воспроизведения избранного установите идентификатор избранного | +| cmdPlayUrl | для воспроизведения URL-адреса´example ";" | +| cmdGoTime | перейти к абсолютной позиции, указав количество секунд, или перейти к относительной позиции, указав + или - в начале секунд. Пример 100,-50,+50 | + +Для получения более подробной информации посетите документацию CLI: + + + +## То, что нужно сделать +- больше тестирования/исправления +- уменьшить зависимости от других пакетов (squeezenode) +- больше настроек для опционального включения/выключения функций для улучшения памяти и производительности +- добавить виджет плейлиста +- добавить виджет просмотра для просмотра в LMS-меню +- добавить виджет круглой ручки, управляемой игроком +- остановить воспроизведение при повторном нажатии кнопки избранного. +- cmdGeneral для сервера. +- ~~добавлено telnet-соединение для получения push-событий с сервера для оптимизации опроса~~ +- ~~реализовать состояние команды для размещения индивидуальных команд пользователя (через json) для сервера и игрока~~ +- ~~реализация дополнительных функций управления (выбор позиции плейлиста для воспроизведения, ffwd, frew, переход к временной позиции в песне, повтор песни, случайная песня)~~ +- ~~добавить плейлист в playerdata как массив json~~ +- ~~добавлять обложку (логотип станции/обложка плейлиста) для избранного~~ +- ~~реализовать больше уровней (подкаталогов) избранного~~ +- ~~автоматическое обнаружение сервера Logitech Media~~ -атрибут | Описание ----------------- | -------------------------------------------------- --- Альбом | Название текущего альбома Исполнитель | Имя художника ArtworkUrl | URL битрейта художественного произведения | Битрейт трека Продолжительность | Продолжительность трека RadioName | Название радиостанции Ставка | Рейтинг названия песни | название песни Тип | тип носителя (например, MP3-радио) url | URL индекса трека / потока | индекс песни в плейлисте id | id песни +## Changelog -дополнительные определенные кнопки: + +### 1.3.15 (2024-08-09) -кнопка | Описание ----------------- | --------------------------------------------- btnForward | Следующая песня btnRewind | Предыдущая песня btnPreset_ * | 1-6 кнопок для определения в плеере или сервере cmdGeneral | общее командное поле для отправки команд игроку. каждое поле должно быть заключено в кавычки. параметры необходимо разделять запятыми. Пример: «play», «1» cmdPlayFavorite | для воспроизведения избранного установите идентификатор избранного cmdPlayUrl | для воспроизведения URL-примера "http://50.7.77.114:8101/;" cmdGoTime | перейти в абсолютную позицию, указав количество секунд, или перейти в относительную позицию с помощью + или - в начале секунд. Пример 100, -50, + 50 - -Для получения дополнительной информации посетите CLI-документацию: - -https://github.com/elParaguayo/LMS-CLI-Documentation/blob/master/LMS-CLI.md - -## Делать -* больше тестирования / исправления -* уменьшить зависимости от других пакетов (squeezenode) -* дополнительные настройки для включения / выключения функций для улучшения памяти и производительности -* добавить виджет плейлиста -* добавить виджет просмотра для просмотра в LMS-меню -* добавить виджет с круглой ручкой, управляемый игроком -* прекратить воспроизведение, если снова нажать кнопку «Избранное». -* cmdGeneral für Server. -* ~~ добавить связь по telnet для получения push-событий с сервера для оптимизации опроса ~~ -* ~~ реализовать состояние команды для размещения индивидуальных команд пользователя (через json) для сервера и игрока ~~ -* ~~ реализовать дополнительные функции управления (выбор позиции списка воспроизведения для воспроизведения, ffwd, frew, переход к временной позиции в песне, повтор песни, случайная песня) ~~ -* ~~ добавить плейлист в playerdata как массив json ~~ -* ~~ добавить обложку (логотип станции / обложку для плейлиста) в избранное ~~ -* ~~ реализовать больше уровней (подкаталогов) избранного ~~ -* ~~ автообнаружение logitech media server ~~ +- due to a adapter checker issue i have to remove the release 1.3.13 from npm. + but changes from 1.3.13 are included in 1.3.14 + +### 1.3.14 (2024-08-05) + +- fix formatting + +### 1.3.13 (2024-08-05) + +- revert the fix for artist handling due to negative effect of spotify + +### 1.3.12 (2024-08-05) + +- improve cmdGoto handling by kairauer, close PR #74 +- fix issues from adapter checker +- integrate squeezenode lib + +### 1.3.11 (2024-08-05) + +- update adapter structure and switch to jsonconfig + +### 1.3.10 + +- getalbumartist as artist if setting of TPE2/TPE3 in LMS are changed" + +### 1.3.9 + +- fix error with deleting favorites +- fix wrong type for datapoint + +### 1.3.8 + +- fix forward button widget + +### 1.3.7 + +- fix object creation of states in player modul + +### 1.3.6 + +- fix object creation of states + +### 1.3.5 + +- fix object creation for favorites + +### 1.3.4 + +- fix object creation for favorites / \* center widgets in sidebar + +### 1.3.3 + +- repair imageproxy for image datapoints of favorites + +### 1.3.2 + +- fix for Alarm contains only enabled Alarms + +### 1.3.1 + +- fix problem with git dependency url + +### 1.3.0 + +- fix problem wit setting own icon in player widget / \* add infos about alarms to a player datapoint -## Changelog ### 1.2.1 -* fix small issue in last version + +- fix small issue in last version + ### 1.2.0 -* improve handling of imageproxy artwork + +- improve handling of imageproxy artwork + ### 1.1.0 -* make request of favorites configurable + +- make request of favorites configurable + ### 1.0.1 - * change setstate/createobject logic - * fix role and type for Mode-state - * update tests - * update dependency versions - * improve io-package.json + +- change setstate/createobject logic +- fix role and type for Mode-state +- update tests +- update dependency versions +- improve io-package.json + ### 1.0.0 - * prepare for stable repository + +- prepare for stable repository + ### 0.8.32 - * the adapter function iobroker.deleteChannel didnt works as expected. it didnt delete the whole subtree of states. now i implement my own delete function + +- the adapter function iobroker.deleteChannel didnt works as expected. it didnt delete the whole subtree of states. now i implement my own delete function + ### 0.8.31 - * change behaviour of deleting favorites + +- change behaviour of deleting favorites + ### 0.8.30 - * change from the issue of the adapter checker + +- change from the issue of the adapter checker + ### 0.8.29 - * optimize handling of player state power and connected + +- optimize handling of player state power and connected + ### 0.8.28 - * add advanced signaling function with telnet and fix some more authorization issues with LMS + +- add advanced signaling function with telnet and fix some more authorization issues with LMS + ### 0.8.27 - * initialization for the new calctype property if empty in volumebar + +- initialization for the new calctype property if empty in volumebar + ### 0.8.26 - * more improvement and fixing at volumebar / remove playlist widget from master. not ready yet + +- more improvement and fixing at volumebar / remove playlist widget from master. not ready yet + ### 0.8.25 - * fixing css-settings on volumebar + +- fixing css-settings on volumebar + ### 0.8.24 - * volumebar didnt get events between the segments, change clickevent and calculation + +- volumebar didnt get events between the segments, change clickevent and calculation + ### 0.8.23 - * adjust dependencies to remove vulnerabilities in dependend packages. alos remove travis due of unresolvable build-failures for win+node10/12 + +- adjust dependencies to remove vulnerabilities in dependend packages. alos remove travis due of unresolvable build-failures for win+node10/12 + ### 0.8.22 - * due to iobroker.controller 2.0 a command in the api changed (socket to vis.conn._socket) + +- due to iobroker.controller 2.0 a command in the api changed (socket to vis.conn.\_socket) + ### 0.8.21 - * add command für playing urls + +- add command für playing urls + ### 0.8.20 - * remove node v6 test setting + +- remove node v6 test setting + ### 0.8.19 - * shorten news history + +- shorten news history + ### 0.8.18 (2019-06-27) -* last minute changes. + +- last minute changes. + ### 0.8.17 (2019-06-26) -* add more widges: playtime bar, string, number, datetime, image. add button margin to player and favorite widget, improve editing of viewindex. do some refactoring. + +- add more widges: playtime bar, string, number, datetime, image. add button margin to player and favorite widget, improve editing of viewindex. do some refactoring. + ### 0.8.16 (2019-06-24) -* resolve a cross browser issue for firefox. the style.font attribute is empty and you have to construct the font string by yourself + +- resolve a cross browser issue for firefox. the style.font attribute is empty and you have to construct the font string by yourself + ### 0.8.15 (2019-06-19) -* minor issue with not ready states + +- minor issue with not ready states + ### 0.8.14 (2019-06-19) -* add syncgroups as new server-datapoint,add syncgroup widget, change some jquery event logic + +- add syncgroups as new server-datapoint,add syncgroup widget, change some jquery event logic + ### 0.8.13 (2019-06-16) -* rename widgetset from squeezeboxrpcwidgets to squeezeboxrpc + +- rename widgetset from squeezeboxrpcwidgets to squeezeboxrpc + ### 0.8.12 (2019-06-16) -* sync version with npm + +- sync version with npm + ### 0.8.11 (2019-06-15) -* try to integrate the widgets into the main adapter + +- try to integrate the widgets into the main adapter + ### 0.8.10 (2019-05-15) -* another try to fix the EADDRINUSE error of the server discovery + +- another try to fix the EADDRINUSE error of the server discovery + ### 0.8.9 (2019-05-15) -* try to fix the EADDRINUSE error of the server discovery + +- try to fix the EADDRINUSE error of the server discovery + ### 0.8.8 (2019-05-14) -* make discover configurable + +- make discover configurable + ### 0.8.7 (2019-05-11) -* more control features (select playlist pos to play,ffwd,frew,jump to a time position in song,repeat song,random song) + +- more control features (select playlist pos to play,ffwd,frew,jump to a time position in song,repeat song,random song) + ### 0.8.6 (2019-05-10) -* move some configuration options into seperate tabs + +- move some configuration options into seperate tabs + ### 0.8.5 (2019-05-08) -* change serverdiscovery interval method, remove some double cmd lines, additional minor changes advised from eslint + +- change serverdiscovery interval method, remove some double cmd lines, additional minor changes advised from eslint + ### 0.8.4 -* move some files to lib directory + +- move some files to lib directory + ### 0.8.3 -* close port for discovery on unload + +- close port for discovery on unload + ### 0.8.2 -* sync version with npm + +- sync version with npm + ### 0.8.1 -* set compact mode flag + +- set compact mode flag + ### 0.8.0 -* implementation of compact mode, change version to represent a realistic feature completness + +- implementation of compact mode, change version to represent a realistic feature completness + ### 0.0.9 -* debug options are now configurable + +- debug options are now configurable + ### 0.0.8 -* More playlist attributes + remove trailing and leading spaces from source + +- More playlist attributes + remove trailing and leading spaces from source + ### 0.0.7 -* Add the playlist to each player as json + +- Add the playlist to each player as json + ### 0.0.6 -* More config options + +- More config options + ### 0.0.5 -* All levels/subdirectories of favorites are now available in iobroker + +- All levels/subdirectories of favorites are now available in iobroker + ### 0.0.4 -* added the cmdPlayFavorite for each player + +- added the cmdPlayFavorite for each player + ### 0.0.3 -* repair the no-data symbols for buttons in vis + +- repair the no-data symbols for buttons in vis + ### 0.0.2 -* added autodiscovery + +- added autodiscovery + ### 0.0.1 -* initial release + +- initial release ## License -MIT License -Copyright (c) 2019-2020 oweitman +MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -234,3 +476,5 @@ 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. + +Copyright (c) 2019-2024 oweitman \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.sureflap/README.md b/docs/ru/adapterref/iobroker.sureflap/README.md index ea68c2bda..5a4e888a6 100644 --- a/docs/ru/adapterref/iobroker.sureflap/README.md +++ b/docs/ru/adapterref/iobroker.sureflap/README.md @@ -1,149 +1,190 @@ ---- -translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен -editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.sureflap/README.md -title: ioBroker.sureflap -hash: 5jIpLT/ix1AlAVGorCSvgZ1yepwQ5XC/sEgSEKZ2Vw4= ---- -![Стабильная версия](http://iobroker.live/badges/sureflap-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.sureflap.svg) -![Загрузки](https://img.shields.io/npm/dm/iobroker.sureflap.svg) -![Количество установок (последних)](http://iobroker.live/badges/sureflap-installed.svg) -![НПМ](https://nodei.co/npm/iobroker.sureflap.png?downloads=true) - -

- -# IoBroker.sureflap -![Тестирование и выпуск](https://github.com/Sickboy78/ioBroker.sureflap/workflows/Test%20and%20Release/badge.svg) - -## Адаптер для умных устройств для домашних животных от Sure Petcare® -

- -## Конфигурация -Добавьте имя пользователя и пароль из своей учетной записи Sure Petcare® на странице конфигурации адаптера. - -Также здесь можно настроить пороги полной и разряженной батареи при использовании аккумулятора. Это влияет на процентные значения заряда батареи. - -## Описание -Адаптер предоставляет информацию о настройках и состоянии заслонки вашего питомца, кошки, кормушки или диспенсера для воды. - -Он также показывает местонахождение ваших питомцев и потребление ими еды и воды (с кормушкой и/или диспенсером для воды). - -Он позволяет вам управлять режимом блокировки и комендантским часом вашей створки, а также устанавливать местоположение ваших питомцев. - -Для адаптера требуется Node 18 или новее. - -### Изменяемые значения -Следующие состояния можно изменить, и они вступят в силу на вашем устройстве, соответственно, они будут отражены в вашем приложении Sure Petcare®. - -| состояние | описание | разрешенные значения | -|-------|-------------|----------------| -| имя_домохозяйства.имя_концентратора.control.led_mode | устанавливает яркость светодиодов хаба | **0** - выключено
**1** - высокий
**4** — затемнено | -| имя_домохозяйства.имя_концентратора.имя_заслонки.контроль.комендантский час | включает или отключает настроенный комендантский час
(комендантский час необходимо настроить через приложение) | **правда** или **ложь** | -| имя_домохозяйства.имя_концентратора.имя_заслонки.контроль.режим блокировки | устанавливает режим блокировки | **0** - открыто
**1** – заблокировать
**2** - блокировка
**3** - закрыто (блокировка входа и выхода) | -| имя_домохозяйства.имя_концентратора.имя_клапана.назначенные_питомцы.имя_питомца.контроль.тип | устанавливает тип питомца для назначенного питомца и закрылка | **2** - домашнее животное на улице
**3** - домашнее животное | -| имя_домохозяйства.имя_концентратора.имя_кормушки.control.close_delay | устанавливает задержку закрытия крышки питателя | **0** - быстро
**4** - нормальный
**20** - медленно | -| имя_домохозяйства.домашние животные.имя_питомца.внутри | устанавливает, находится ли ваш питомец внутри | **правда** или **ложь** | - -### Состав -Адаптер создает следующую иерархическую структуру: +--- +translatedFrom: en +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.sureflap/README.md +title: ioBroker.sureflap +hash: rSqt+4ME/KdGYXT7BTGsggsZ6MB8OeKxyqAwxVq0y3I= +--- +![Стабильная версия](http://iobroker.live/badges/sureflap-stable.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.sureflap.svg) +![Загрузки](https://img.shields.io/npm/dm/iobroker.sureflap.svg) +![Количество установок (последнее)](http://iobroker.live/badges/sureflap-installed.svg) +![НПМ](https://nodei.co/npm/iobroker.sureflap.png?downloads=true) + +

+ +# IoBroker.sureflap +![Тест и выпуск](https://github.com/Sickboy78/ioBroker.sureflap/workflows/Test%20and%20Release/badge.svg) + +## Адаптер для умных устройств для домашних животных от Sure Petcare® +

+ +## Конфигурация +Добавьте имя пользователя и пароль от вашей учетной записи Sure Petcare® на странице конфигурации адаптера. + +Также пороги полного и пустого заряда батареи могут быть адаптированы здесь при использовании аккумулятора. Это влияет на процентные значения батареи. + +## Описание +Адаптер предоставляет информацию о настройках и состоянии дверцы для домашних животных, дверцы для кошек, кормушки или поилки. + +Он также показывает местонахождение ваших питомцев и потребление ими еды и воды (при наличии кормушки и/или поилки). + +Он позволяет вам контролировать режим блокировки и комендантский час вашей двери, а также устанавливать местоположение ваших питомцев. + +Для адаптера требуется Node 18 или более новая версия. + +### Изменяемые значения +Следующие состояния можно изменить, и они вступят в силу на вашем устройстве и соответственно будут отражены в вашем приложении Sure Petcare®. + +| состояние | описание | допустимые значения | +|-----------------------------------------------------------------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------| +| имя_дома.имя_хаба.управление.режим_светодиодов | устанавливает яркость светодиодов хаба | **0** - выключено
**1** - высокий
**4** - затемненный | +| имя_домохозяйства.имя_концентратора.имя_флапа.control.curfew_enabled | включает или отключает настроенный комендантский час | **true** или **false** | +| имя_домохозяйства.имя_концентратора.имя_флапа.контроль.текущий_курфю | устанавливает текущий_курфю,
поддерживает 1 (дверца для домашних животных) или до 4 (дверца для кошек) времен комендантского часа | **[{"enabled":true\|false, "lock_time":"xx:xx", "unlock_time":"xx:xx"}, ...]** | +| имя_домохозяйства.имя_концентратора.имя_флапа.контроль.lockmode | устанавливает режим блокировки | **0** - открыто
**1** - зафиксировать
**2** - блокировка
**3** - закрыто (запирается и выключается) | +| имя_дома.имя_концентратора.имя_флапа.назначенные_питомцы.имя_питомца.контроль.тип | устанавливает тип питомца для назначенного питомца и флапа | **2** - питомец на улице
**3** - домашнее животное | +| имя_домохозяйства.имя_концентратора.имя_кормушки.контроль.закрытие_задержки | устанавливает задержку закрытия крышки кормушки | **0** - быстро
**4** - нормальный
**20** - медленно | +| имя_дома.домашние_питомцы.имя_питомца.внутри | устанавливает, находится ли ваш питомец внутри | **истина** или **ложь** | + +### Структура +Адаптер создает следующую иерархическую структуру: + +адаптер
├ имя_домохозяйства
│ ├ имя_хаба
│ │ ├ онлайн
│ │ ├ серийный_номер
│ │ ├ сигнал
│ │ │ ├ устройство_rssi
│ │ │ └ hub_rssi
│ │ ├ версия
│ │ │ ├ прошивка
│ │ │ └ аппаратное обеспечение
│ │ ├ контроль
│ │ │ └ светодиодный_режим
│ │ ├ felaqua_name
│ │ │ ├ аккумулятор
│ │ │ ├ процент_заряда_батареи
│ │ │ ├ онлайн
│ │ │ ├ серийный_номер
│ │ │ ├ сигнал
│ │ │ │ ├ устройство_rssi
│ │ │ │ └ hub_rssi
│ │ │ ├ версия
│ │ │ │ ├ прошивка
│ │ │ │ └ аппаратное обеспечение
│ │ │ ├ назначенные_питомцы
│ │ │ │ └ имя_питомца
│ │ │ └ вода
│ │ │ ├ процент_заполнения
│ │ │ ├ последний_заполненный_в
│ │ │ └ вес
│ │ ├ имя_кормушки
│ │ │ ├ аккумулятор
│ │ │ ├ процент_заряда_батареи
│ │ │ ├ онлайн
│ │ │ ├ серийный_номер
│ │ │ ├ сигнал
│ │ │ │ ├ устройство_rssi
│ │ │ │ └ hub_rssi
│ │ │ ├ версия
│ │ │ │ ├ прошивка
│ │ │ │ └ аппаратное обеспечение
│ │ │ ├ назначенные_питомцы
│ │ │ │ └ имя_питомца
│ │ │ ├ миски
│ │ │ │ └ 0..1
│ │ │ │ ├ процент_заполнения
│ │ │ │ ├ тип_еды
│ │ │ │ ├ последний_заполненный_в
│ │ │ │ ├ Последний_ноль_в
│ │ │ │ ├ цель
│ │ │ │ └ вес
│ │ │ └ контроль
│ │ │ └ закрыть_задержку
│ │ └ имя_лоскута
│ │ ├ аккумулятор
│ │ ├ процент_заряда_батареи
│ │ ├ комендантский час_активный
│ │ ├ последний_включенный_комендантский час
│ │ ├ онлайн
│ │ ├ серийный_номер
│ │ ├ контроль
│ │ │ ├ комендантский час_включен
│ │ │ ├ текущий_комендантский час
│ │ │ └ режим блокировки
│ │ ├ сигнал
│ │ │ ├ устройство_rssi
│ │ │ └ hub_rssi
│ │ ├ версия
│ │ │ ├ прошивка
│ │ │ └ аппаратное обеспечение
│ │ └ назначенные_питомцы
│ │ └ имя_питомца
│ │ └ контроль
│ │ └ тип
│ ├ история
│ │ └ json
│ │ └ 0..24
│ └ домашние животные
│ └ имя_питомца
│ ├ внутри
│ ├ имя
│ ├ с тех пор
│ ├ еда
│ │ ├ последний_раз_съеденный
│ │ ├ время_затрачено
│ │ ├ раз_съедено
│ │ └ сухой..мокрый
│ │ └ вес
│ ├ движение
│ │ ├ последнее_направление
│ │ ├ последний_флап
│ │ ├ последний_флап_id
│ │ ├ последний_раз
│ │ ├ время_проведенное_на_внешнем_ пространстве
│ │ └ время_на улице
│ └ вода
│ ├ последний_раз_пьяный
│ ├ время_затрачено
│ ├ раз_пьяный
│ └ вес
└ информация
├ все_устройства_онлайн
├ соединение
├ последнее_обновление
└ версия
+ +## Примечания +SureFlap®, Sure Petcare® и Felaqua® являются зарегистрированными товарными знаками [SureFlap Ltd.](https://www.surepetcare.com/) + +Фотографии устройств SureFlap® предоставляются бесплатно для использования с сайта [Конечно Petcare®](https://www.surepetcare.com/en-us/press). + +## Changelog + +### 2.2.1 (2024-08-11) + +* (Sickboy78) added new data to feeder +* (Sickboy78) added new data to water dispenser +* (Sickboy78) dependency updates -адаптер
├ имя_домохозяйства
│ ├ имя_концентратора
│ │ ├ онлайн
│ │ ├ серийный_номер
│ │ ├ сигнал
│ │ │ ├ устройство_rssi
│ │ │ └hub_rssi
│ │ ├ версия
│ │ │ ├ прошивка
│ │ │ └ аппаратное обеспечение
│ │ ├ контроль
│ │ │ └ светодиодный режим
│ │ ├ felaqua_name
│ │ │ ├ аккумулятор
│ │ │ ├ Battery_percentage
│ │ │ ├ онлайн
│ │ │ ├ серийный_номер
│ │ │ ├ сигнал
│ │ │ │ ├ устройство_rssi
│ │ │ │ └hub_rssi
│ │ │ ├ версия
│ │ │ │ ├ прошивка
│ │ │ │ └ аппаратное обеспечение
│ │ │ ├ назначенные_питомцы
│ │ │ │ └ имя_питомца
│ │ │ └ вода
│ │ │ └ вес
│ │ ├ имя_фидера
│ │ │ ├ аккумулятор
│ │ │ ├ Battery_percentage
│ │ │ ├ онлайн
│ │ │ ├ серийный_номер
│ │ │ ├ сигнал
│ │ │ │ ├ устройство_rssi
│ │ │ │ └hub_rssi
│ │ │ ├ версия
│ │ │ │ ├ прошивка
│ │ │ │ └ аппаратное обеспечение
│ │ │ ├ назначенные_питомцы
│ │ │ │ └ имя_питомца
│ │ │ ├ миски
│ │ │ │ └ 0..1
│ │ │ │ ├ тип_продукта
│ │ │ │ ├ цель
│ │ │ │ └ вес
│ │ │ └ контроль
│ │ │ └ close_delay
│ │ └ имя_клапана
│ │ ├ аккумулятор
│ │ ├ Battery_percentage
│ │ ├ комендантский час_активный
│ │ ├ онлайн
│ │ ├ серийный_номер
│ │ ├ контроль
│ │ │ ├ комендантский час
│ │ │ └ режим блокировки
│ │ ├ сигнал
│ │ │ ├ устройство_rssi
│ │ │ └hub_rssi
│ │ ├ версия
│ │ │ ├ прошивка
│ │ │ └ аппаратное обеспечение
│ │ ├ комендантский час
│ │ │ └ 0..и
│ │ │ ├ включено
│ │ │ ├ время_блокировки
│ │ │ └время_разблокировки
│ │ ├ последний_комендантский час
│ │ │ └ 0..и
│ │ │ ├ включено
│ │ │ ├ время_блокировки
│ │ │ └ время разблокировки
│ │ └ назначенные_питомцы
│ │ └ имя_питомца
│ │ └ контроль
│ │ └ тип
│ ├ история
│ │ └ 0..24
│ │ └ ...
│ └ домашние животные
│ └ имя_питомца
│ ├ внутри
│ ├ имя
│ ├ поскольку
│ ├ еда
│ │ ├ последний_раз_съеденный
│ │ ├ потраченное_время
│ │ ├ раз_съедено
│ │ └ сухой..мокрый
│ │ └ вес
│ ├ движение
│ │ ├ последнее_направление
│ │ ├ последний_клапан
│ │ ├ последний_флап_ид
│ │ ├ последний_раз
│ │ ├ время_проведённое_вне_
│ │ └ раз_снаружи
│ └ вода
│ ├ последний_раз_пьяный
│ ├ потраченное_время
│ ├ раз_пьяных
│ └ вес
└ информация
├ all_devices_online
├ связь
└ последнее_обновление
+### 2.2.0 (2024-07-25) -## Примечания -SureFlap®, Sure Petcare® и Felaqua® являются зарегистрированными торговыми марками [Компания SureFlap, ООО](https://www.surepetcare.com/). +* (Sickboy78) added new json curfew +* (Sickboy78) added new json history +* (Sickboy78) fix lock mode is undefined +* (Sickboy78) code cleanup and refactoring +* (Sickboy78) dependency updates -Изображения устройств SureFlap® предоставляются бесплатно с [Конечно Petcare®](https://www.surepetcare.com/en-us/press). +### 2.1.2 (2024-06-02) -## Changelog +* (Sickboy78) dependency updates ### 2.1.1 (2024-02-25) + * (Sickboy78) bugfix for outside times not beeing shown ### 2.1.0 (2024-02-20) + * (Scrounger) option to enable history data * (Sickboy78) added number of history entries to configuration ### 2.0.2 (2024-02-17) + * (Sickboy78) added flap id to last movement * (Sickboy78) fixed a bug where hub was recognized as obsolete device because of same name as a device * (Sickboy78) fixed a bug where setting lockmode or curfew was not working because of flap having same name as the hub ### 2.0.1 (2024-01-24) + * (Sickboy78) added last movement for pets * (Sickboy78) added time spent outside today for pets * (Sickboy78) dependency updates ### 1.2.3 (2023-12-29) + * (Sickboy78) added api host to config and set default to new api * (Sickboy78) improved removing of obsolete objects ### 1.2.2 (2023-10-17) + * (Sickboy78) added signal strength and hardware and firmware version of devices ### 1.2.1 (2023-10-03) + * (Sickboy78) fixed get_history_since call failing because of API changes * (Sickboy78) added workaround for removed parent object because of API changes * (Sickboy78) removed wrongly created objects because of API changes ### 1.2.0 (2023-08-19) + * (Sickboy78) repetitive errors are now logged as debug to avoid spamming the error log * (Sickboy78) increased timeout for surepet API from 60 to 120 seconds * (Sickboy78) added removal of deleted or renamed pets * (Sickboy78) security updates ### 1.1.9 (2023-07-21) + * (Sickboy78) fixed undefined serial number * (Sickboy78) dependency updates ### 1.1.8 (2023-06-01) + * (Sickboy78) adjustments for Surepet API changes ### 1.1.7 (2023-03-13) + * (Sickboy78) fixed false login error in case pet had no photo ### 1.1.6 (2023-01-07) + * (Sickboy78) added battery voltage configuration * (Sickboy78) added translation for adapter settings * (Sickboy78) security updates ### 1.1.5 (2022-09-10) + * (Sickboy78) added display of serial numbers ### 1.1.4 (2022-09-07) + * (Sickboy78) added Felaqua support * (Sickboy78) improved battery and battery percentage indicator (reduced outliers) ### 1.1.3 (2022-03-28) + * (Sickboy78) code improvements * (Sickboy78) improved error handling if no pet has been assigned yet ### 1.1.2 (2022-03-06) + * (Sickboy78) improved error and timeout handling * (Sickboy78) optimized subscribed states ### 1.1.1 (2022-02-20) + * (Sickboy78) removed pet type control from pet flap (is a cat flap exclusive feature) * (Sickboy78) fixed wrong default value for info.last_update * (Sickboy78) testing updates for js-controller 4 * (Sickboy78) security updates ### 1.1.0 (2022-01-17) + * (Sickboy78) bugfix and security updates ### 1.0.9 (2022-01-05) + * (Sickboy78) removed old encrypt/decrypt from index_m * (Sickboy78) added adapter unloaded guard in case unload happens during data requests ### 1.0.8 (2021-11-22) + * (Sickboy78) added food type, target weight and remaining food in feeder * (Sickboy78) added todays pet food consumption, times eaten and time spent ### 1.0.7 (2021-11-02) + * (Sickboy78) added history * (Sickboy78) added last update time ### 1.0.6 (2021-09-12) + * (Sickboy78) added feeder support (closing delay of lid) * (Sickboy78) added led control for hub * (Sickboy78) added assigned pets for flap and feeder devices @@ -151,24 +192,29 @@ SureFlap®, Sure Petcare® и Felaqua® являются зарегистрир * (Apollon77) update CI testing ### 1.0.5 (2021-04-25) + * (Sickboy78) fixed bug in case pets didn't have a position (e.g. no flaps, only feeder in use) ### 1.0.4 (2021-03-07) + * (Sickboy78) added state curfew_active for pet flap devices * (Sickboy78) fixed normalization of device names * (Sickboy78) fixed changeable values not resetting when change fails ### 1.0.3 (2021-02-28) + * (Sickboy78) code improvements from review * (Sickboy78) fixed timezone bug ### 1.0.2 (2021-02-25) + * (Sickboy78) fixed bug setting lockmode and inside values ### 1.0.1 (2021-02-19) -* (Sickboy78) initial release -## License +* (Sickboy78) initial release + +## License MIT License @@ -190,4 +236,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 Sickboy78 +Copyright (c) 2024 Sickboy78 \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.tado/README.md b/docs/ru/adapterref/iobroker.tado/README.md index 92d4ff356..0c77c74f6 100644 --- a/docs/ru/adapterref/iobroker.tado/README.md +++ b/docs/ru/adapterref/iobroker.tado/README.md @@ -1,14 +1,14 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.tado/README.md title: ioBroker.tado -hash: 5eHSe1aPZGsg+GO/TTEDgwOeteZOzQYOc2Mdi23DTkA= +hash: geVZ7oXA8AL/ojS3YQGyqgz0/bMerKYEh5QjLFk6zy8= --- # IoBroker.tado ![Количество установок](http://iobroker.live/badges/tado-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.tado.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.tado.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.tado.svg) ![Известные уязвимости](https://snyk.io/test/github/DrozmotiX/ioBroker.tado/badge.svg) ![Статус зависимости](https://img.shields.io/librariesio/release/npm/iobroker.tado) @@ -16,74 +16,73 @@ hash: 5eHSe1aPZGsg+GO/TTEDgwOeteZOzQYOc2Mdi23DTkA= -[![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/tado/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) ![Тестирование и выпуск](https://github.com/DrozmotiX/ioBroker.tado/workflows/Test%20and%20Release/badge.svg) +[![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/tado/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) ![Тест и выпуск](https://github.com/DrozmotiX/ioBroker.tado/workflows/Test%20and%20Release/badge.svg) ## Адаптер tado для ioBroker -Tado° (https://www.tado.com) — эксперт в области интеллектуального отопления и управления энергопотреблением вашего дома, спроектированный и разработанный в Германии. Экономьте энергию и сокращайте расходы вместе с нами – наслаждайтесь уютным и экологичным домом. +Tado° (https://www.tado.com) — эксперт в области интеллектуального отопления и управления энергией для вашего дома, разработанный и созданный в Германии. Экономьте энергию и сокращайте расходы навсегда вместе с нами — наслаждайтесь уютным и устойчивым домом. -**Этот адаптер использует библиотеки 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. + +## ТАДО° X +Tado X **в настоящее время не поддерживается** этим адаптером. Адаптер поддерживает Tado V3, V3+ и V2. +Если кто-то поддерживает добавление функциональности Tado X, создайте тикет или отправьте электронное письмо на адрес . Вам нужно будет поддержать сеанс отладки и взаимодействовать с разработчиком адаптера. ## Вещи, которыми можно управлять -| Государство | Описание | +| Состояние | Описание | | ----- | ----------- | | tado.[x].[yyyyyy].Rooms.[z].setting.power | Включить/выключить устройство | -| тадо.[x].[yyyyyy].Комнаты.[z].setting.temperature.celsius | Определить температуру | +| tado.[x].[yyyyyy].Rooms.[z].setting.temperature.celsius | Определить температуру | | tado.[x].[yyyyyy].Rooms.[z].overlayClearZone | Переключиться в автоматический режим | | tado.[x].[yyyyyy].Rooms.[z].overlay.termination.typeSkillBasedApp | Установить режим расписания | -| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.durationInSeconds | Установите, как долго будет действовать режим расписания | +| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.durationInSeconds | Установить, как долго будет применяться режим расписания | | tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].offset.offsetCelsius | Смещение температуры | | tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].childLockEnabled | Блокировка от детей вкл/выкл | | tado.[x].[yyyyyy].Rooms.[z].timeTables.tt_id | Выбрать активное расписание | | tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.openWindowDetectionEnabled | Включить/выключить обнаружение открытого окна на термостате | -| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.timeoutInSeconds | Тайм-аут, в течение которого термостаты отключаются при обнаружении открытого окна | -| tado.[x].[yyyyyy].Rooms.[z].activateOpenWindow | Выключать термостаты при обнаружении открытого окна (работает только в том случае, если термостат обнаруживает открытое окно) | -| тадо.[x].[гггггг].Home.state.presence | Установите режим ДОМА, В гостях или АВТО | -| тадо.[x].[гггггг].Home.masterswitch | Включить/выключить все устройства | +| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.timeoutInSeconds | Тайм-аут, через который термостаты будут выключены при обнаружении открытого окна | +| tado.[x].[yyyyyy].Rooms.[z].activateOpenWindow | Выключить термостаты при обнаружении открытого окна (работает только если термостат обнаруживает открытое окно) | +| tado.[x].[yyyyyy].Home.state.presence | Установить режим HOME, AWAY или AUTO | +| tado.[x].[yyyyyy].Home.masterswitch | Включить/выключить все устройства | | tado.[x].[yyyyyy].Rooms.[z].setting.mode | Режим переменного тока (только устройства переменного тока) | | tado.[x].[yyyyyy].Rooms.[z].setting.fanspeed | Скорость вентилятора (только устройства переменного тока с V3 и более ранними версиями) | -| tado.[x].[yyyyyy].Rooms.[z].setting.fanLebel | Fanlebel (только устройства переменного тока версии V3+) | -| tado.[x].[yyyyyy].Rooms.[z].setting.verticalSwing | Вертикальное качание (только устройства переменного тока версии V3+) | -| tado.[x].[yyyyyy].Rooms.[z].setting.horizontalSwing | Горизонтальное качание (только устройства переменного тока с V3 и более ранними версиями) | +| tado.[x].[yyyyyy].Rooms.[z].setting.fanLebel | Fanlebel (только устройства AC с версией V3+) | +| tado.[x].[yyyyyy].Rooms.[z].setting.verticalSwing | Вертикальное качание (только устройства переменного тока с версией V3+) | +| tado.[x].[yyyyyy].Rooms.[z].setting.horizontalSwing | Горизонтальное качание (только устройства переменного тока с V3 и более старыми версиями) | ## Требует -* Node.js 18 или выше. -* Хост ioBroker (js-контроллер) 5.0 или выше +* Node.js 18 или выше +* ioBroker хост (js-контроллер) 5.0 или выше ## Changelog -### 0.5.0 (2023-11-25) -* (HGlab01) Breaking changes - - Node.js 18.0 or higher - - ioBroker host (js-controller) 5.0 or higher -* (HGlab01) fix jsonConf validation issue -* (HGlab01) Bump axios to 1.6.2 -* (HGlab01) update contact data - -### 0.4.12 (2023-11-14) -* (HGlab01) switch finaly to Admin5 UI -* (HGlab01) Improve REST-call handling -* (HGlab01) Bump axios to 1.6.1 - -### 0.4.11 (2023-10-09) -* (HGlab01) Bump json-explorer to 0.1.14 -* (Garfonso) add value AUTO for *.Home.state.presence (in addtion to HOME and AWAY) -* (HGlab01) Bump axios to 1.5.1 - -### 0.4.10 (2023-09-26) -* (HGlab01) Add attribute 'isBalanceHpEligible' -* (HGlab01) improve axios keep_a_live - -### 0.4.9 (2023-07-05) -* (HGlab01) Add attribute 'zonesCount' -* (HGlab01) Bump ioBroker-jsonExplorer to 0.1.12 +### 0.5.6 (2024-08-06) +* (HGlab01) Improve AccessToken Management +* (HGlab01) Bump axios to 1.7.3 +* (HGlab01) Add attribute 'language' +* (HGlab01) Add attribute 'isHeatPumpInstalled' + +### 0.5.5 (2024-06-25) +* (HGlab01) Bump axios to 1.7.2 + +### 0.5.4 (2024-04-18) +* (HGlab01) Add attribute 'runningOfflineSchedule' +* (HGlab01) Bump axios to 1.6.8 + +### 0.5.3 (2024-01-29) +* (HGlab01) Improve axios handling +* (HGlab01) Bump axios to 1.6.7 + +### 0.5.1 (2023-12-11) +* (HGlab01) Bump json-explorer to 0.1.15 +* (HGlab01) Prepare (c) for 2024 ## License MIT License -Copyright (c) 2023 HGlab01 & DutchmanNL +Copyright (c) 2024 HGlab01 & DutchmanNL Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -101,4 +100,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.telegram/README.md b/docs/ru/adapterref/iobroker.telegram/README.md index a8c253d64..92e826d2b 100644 --- a/docs/ru/adapterref/iobroker.telegram/README.md +++ b/docs/ru/adapterref/iobroker.telegram/README.md @@ -10,32 +10,32 @@ BADGE-NPM version: http://img.shields.io/npm/v/iobroker.telegram.svg BADGE-Current version in stable repository: https://iobroker.live/badges/telegram-stable.svg BADGE-Number of Installations: https://iobroker.live/badges/telegram-installed.svg translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.telegram/README.md -title: ioBroker.telegram -hash: 1CX57riukuEhE4auf0j8p9GvmB3Glsfpz5vS9su8S3c= +title: ioBroker.телеграмма +hash: 4bqUvopK6VJFk9nKbkT2Fn54ZPPfbBbWrcZEDwLwAJw= --- ![Логотип](../../../en/admin/telegram.png) -# IoBroker.telegram +# IoBroker.телеграмма ## Конфигурация Попросите [@BotFather](https://telegram.me/botfather) создать нового бота `/newbot`. Вам будет предложено ввести имя бота, а затем имя пользователя. -После этого вы получите Токен. +После этого вы получите токен. ![Скриншот](../../../en/adapterref/iobroker.telegram/img/chat.png) -Пароль для связи необходимо установить в диалоге конфигурации. После этого запустите адаптер. +В диалоге конфигурации необходимо задать пароль для связи. После этого запустите адаптер. -Чтобы начать разговор с вашим ботом, вам необходимо аутентифицировать пользователя с помощью `/password phrase`, где **`phrase`** — это настроенный вами пароль. Итак, откройте новый разговор с созданным вами ботом в Telegram, а затем вам нужно будет ввести пароль в качестве первой команды. +Чтобы начать разговор с вашим ботом, вам нужно аутентифицировать пользователя с помощью `/password phrase`, где **`phrase`** — ваш настроенный пароль. Поэтому откройте новый разговор с вашим сгенерированным ботом в Telegram, а затем вам нужно ввести пароль в качестве первой команды. **Примечание:** вы можете использовать краткую форму `/p phrase`. -Чтобы добавить красивую картинку аватара, введите `/setuserpic` в чат **BotFather** и загрузите ему нужную картинку (512x512 пикселей), например, [логотип](img/logo.png). +Чтобы добавить красивую картинку аватара, введите `/setuserpic` в чате **BotFather** и загрузите ему желаемую картинку (512x512 пикселей), например, эту [логотип](img/logo.png). Вы можете отправить сообщение всем аутентифицированным пользователям через messageBox `sendTo('telegram', 'Test message')` или конкретному пользователю `sendTo('telegram', '@userName Test message')`. -Пользователь должен пройти аутентификацию заранее. +Пользователь должен быть аутентифицирован заранее. Вы также можете указать пользователя таким образом: @@ -45,12 +45,11 @@ sendTo('telegram', {user: 'UserName', text: 'Test message'}, function (res) { }); ``` -Если вы используете приведенный выше пример, имейте в виду, что вам необходимо заменить «Имя пользователя» либо именем, либо именем пользователя Public-Telegram пользователя, которому вы хотите отправить сообщение. (Зависит от того, включена ли в настройках адаптера опция «Сохранять имя пользователя, а не имя»). Если опция установлена, а пользователь не указал общедоступное имя пользователя в своей учетной записи Telegram, то адаптер продолжит использовать имя пользователя. Пользователь. Имейте в виду, что если пользователь позже установит общедоступное имя пользователя (после аутентификации в вашем боте), сохраненное имя будет заменено именем пользователя в следующий раз, когда пользователь отправит сообщение боту. +Если вы используете пример выше, имейте в виду, что вам нужно заменить «UserName» либо на имя, либо на Public-Telegram-Username пользователя, которому вы хотите отправить сообщение. (Зависит от того, включена ли настройка «Store username not firstname» в настройках адаптера или нет) Если эта опция установлена и пользователь не указал публичное имя пользователя в своей учетной записи Telegram, то адаптер продолжит использовать имя пользователя. Имейте в виду, что если пользователь позже задаст публичное имя пользователя (после аутентификации в вашем боте), сохраненное имя будет заменено на имя пользователя при следующей отправке сообщения боту. -Можно указать более одного получателя (просто разделите имена пользователей запятой). -Например, получатель: «Пользователь1,Пользователь4,Пользователь5». +Можно указать более одного получателя (просто разделите имена пользователей запятой). Например, получатель: "User1,User4,User5" -Вы также можете отправить сообщение через состояние, просто установите состояние *"telegram.INSTANCE.communicate.response"* со значением *"@userName Test message"* или с помощью объекта JSON: +Вы также можете отправить сообщение через состояние, просто задайте состояние *"telegram.INSTANCE.communication.response"* со значением *"@userName Test message"* или с помощью объекта JSON: ```json { @@ -58,7 +57,7 @@ sendTo('telegram', {user: 'UserName', text: 'Test message'}, function (res) { } ``` -Синтаксис JSON также позволяет добавлять параметры из [API ботов Telegram](https://core.telegram.org/bots/api), а также устанавливать идентификатор пользователя или чата: +Синтаксис JSON также позволяет добавлять параметры из [API телеграмм-ботов](https://core.telegram.org/bots/api), а также устанавливать идентификатор пользователя или чата: ```json { @@ -83,20 +82,19 @@ sendTo('telegram', {user: 'UserName', text: 'Test message, but with setState('telegram.0.communicate.response', 'Test message, but with *bold*'); ``` -Чтобы отправлять сообщения в группы, вам необходимо пригласить бота в группу, в которой вы хотите, чтобы бот публиковал сообщения. -Предоставляя `chat_id` в полезные данные сообщения JSON, вы действительно можете отправлять сообщения этим группам. +Чтобы отправлять сообщения в группы, вам нужно пригласить бота в группу, в которой вы хотите, чтобы бот публиковал сообщения. Добавив `chat_id` в полезную нагрузку сообщения JSON, вы фактически можете отправлять сообщения в эти группы. -Чтобы узнать `chat_id`, вам необходимо установить уровень журнала адаптера на `debug`. -Затем вы можете просто пропинговать своего бота в группах, которым вы хотите, чтобы бот отправлял сообщения. -Обязательно поместите `/` перед сообщением, чтобы бот увидел сообщение ([если конфиденциальность бота включена](#How-to-receive-messages-in-group-chats-using-telegram-adapter)). +Чтобы узнать `chat_id`, вам нужно установить уровень журнала адаптера на `debug`. +Затем вы можете просто пинговать своего бота в группах, в которые вы хотите, чтобы бот отправлял сообщения. +Убедитесь, что вы поставили `/` перед сообщением, чтобы бот увидел сообщение ([если включена конфиденциальность бота](#How-to-receive-messages-in-group-chats-using-telegram-adapter)). Затем журнал iobroker покажет вам идентификатор чата в журналах. ## Использование -Вы можете использовать Telegram с адаптером [текст2команда](https://github.com/ioBroker/ioBroker.text2command). Существует предопределенная схема связи, и вы можете отправить домой команду в текстовой форме. +Вы можете использовать телеграмму с адаптером [текст2команда](https://github.com/ioBroker/ioBroker.text2command). Существует предопределенная схема связи, и вы можете отдавать команды домой в текстовой форме. Чтобы отправить фотографию, просто отправьте путь к файлу вместо текста или URL: `sendTo('telegram', 'absolute/path/file.png')` или `sendTo('telegram', 'https://telegram.org/img/t_logo.png')`. -Пример как отправить скриншот с веб-камеры в Telegram: +Пример отправки скриншота с веб-камеры в Telegram: ```javascript function sendImage() { @@ -109,7 +107,7 @@ function sendImage() { sendTo('telegram.0', 'send', { text: tempFilePath, caption: 'A wonderful adapter', - user: 'yourUsername', + user: 'yourUserName1,yourUserName2', }); } }); @@ -131,18 +129,18 @@ on('0_userdata.0.someState', (obj) => { - *печатает* - для текстовых сообщений, - *upload_photo* - для фотографий, - *upload_video* - для видео, -- *record_video* — для видео, -- *record_audio* — для звука, +- *record_video* - для видео, +- *record_audio* - для аудио, - *upload_audio* - для аудио, - *upload_document* - для документов, -- *find_location* — для данных о местоположении +- *find_location* - для данных о местоположении -В этом случае будет отправлена команда действия. +В этом случае будет отправлена команда на действие. -Описание API Telegram можно найти [здесь](https://core.telegram.org/bots/api), и вы можете использовать все параметры, определенные в этом API, просто включив их в объект отправки. Например.: +Описание API Telegram можно найти в [здесь](https://core.telegram.org/bots/api), и вы можете использовать все параметры, определенные в этом API, просто включив их в объект send. Например: ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { text: '/tmp/snap.jpg', caption: 'Snapshot', disable_notification: true @@ -151,35 +149,46 @@ sendTo('telegram.0', { **Возможные варианты**: -- *disable_notification*: отправляет сообщение без звука. Пользователи iOS не получат уведомление, пользователи Android получат уведомление без звука. (все типы) -- *parse_mode*: отправьте Markdown или HTML, если вы хотите, чтобы приложения Telegram отображали жирный, курсив, текст фиксированной ширины или встроенные URL-адреса в сообщении вашего бота. Возможные значения: «Markdown», «MarkdownV2», «HTML» (сообщение). -- *disable_web_page_preview*: отключает предварительный просмотр ссылок в этом сообщении (сообщении). -- *подпись*: подпись к документу, фото или видео, 0–200 символов (видео, аудио, фото, документ). -- *длительность*: продолжительность отправленного видео или аудио в секундах (аудио, видео) +- *disable_notification*: Отправляет сообщение без звука. Пользователи iOS не получат уведомление, пользователи Android получат уведомление без звука. (все типы) +- *parse_mode*: Отправьте Markdown или HTML, если вы хотите, чтобы приложения Telegram отображали жирный, курсивный, фиксированной ширины текст или встроенные URL-адреса в сообщении вашего бота. Возможные значения: "Markdown", "MarkdownV2", "HTML" (сообщение) +- *disable_web_page_preview*: Отключает предварительный просмотр ссылок в этом сообщении (сообщении) +- *подпись*: Подпись к документу, фото или видео, 0-200 символов (видео, аудио, фото, документ) +- *продолжительность*: Продолжительность отправленного видео или аудио в секундах (аудио, видео) - *исполнитель*: Исполнитель аудиофайла (аудио) -- *title*: название дорожки аудиофайла (аудио) -- *ширина*: ширина видео (видео) -- *height*: высота видео (видео) +- *title*: Название трека аудиофайла (аудио) +- *ширина*: Ширина видео (видео) +- *высота*: Высота видео (видео) -Адаптер пытается определить тип сообщения (фото, видео, аудио, документ, наклейка, действие, местоположение). В зависимости от текста в сообщении. Если текст является путем к существующему файлу, он будет отправлен в соответствии с типом. +Адаптер пытается определить тип сообщения (фото, видео, аудио, документ, наклейка, действие, местоположение) в зависимости от текста в сообщении. Если текст представляет собой путь к существующему файлу, он будет отправлен в соответствии с типом. -Местоположение будет определяться по атрибуту широты: +Местоположение будет определено по широте и долготе атрибута: ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { latitude: 52.522430, longitude: 13.372234, disable_notification: true }); ``` +Место проведения будет определено по широте, долготе, названию и адресу: + +```javascript +sendTo('telegram.0', 'send', { + latitude: 52.51630462381893, + longitude: 13.37770039691943, + title: 'Brandenburger Tor', + address: 'Pariser Platz 8, 10117 Berlin', +}); +``` + ### Явные типы сообщений У вас есть возможность дополнительно определить тип сообщения, если вы хотите отправить данные в виде буфера. Возможны следующие типы: *стикер*, *видео*, *документ*, *аудио*, *фото*. ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { text: fs.readFileSync('/opt/path/picture.png'), type: 'photo' }); @@ -189,8 +198,8 @@ sendTo('telegram.0', { Вы можете отобразить клавиатуру **ReplyKeyboardMarkup** в клиенте: ```javascript -sendTo('telegram.0', { - text: 'Press button', +sendTo('telegram.0', 'send', { + text: 'Press button', reply_markup: { keyboard: [ ['Line 1, Button 1', 'Line 1, Button 2'], @@ -202,13 +211,13 @@ sendTo('telegram.0', { }); ``` -Вы можете прочитать больше [здесь](https://core.telegram.org/bots/api#replykeyboardmarkup) и [здесь](https://core.telegram.org/bots#keyboards). +Подробнее можно прочитать [здесь](https://core.telegram.org/bots/api#replykeyboardmarkup) и [здесь](https://core.telegram.org/bots#keyboards). Вы можете отобразить клавиатуру **InlineKeyboardMarkup** в клиенте: ```javascript -sendTo('telegram', { - user: user, +sendTo('telegram', 'send', { + user: 'my_username;username2', // optional. Separator could be ";" or "," or space text: 'Click the button', reply_markup: { inline_keyboard: [ @@ -219,17 +228,17 @@ sendTo('telegram', { }); ``` -Вы можете прочитать больше [здесь](https://core.telegram.org/bots/api#inlinekeyboardmarkup) и [здесь](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating). +Подробнее можно прочитать [здесь](https://core.telegram.org/bots/api#inlinekeyboardmarkup) и [здесь](https://core.telegram.org/bots#inline-keyboards-and-on-the-fly-updating). -**ПРИМЕЧАНИЕ.** *После того, как пользователь нажмет кнопку обратного вызова, клиенты Telegram будут отображать индикатор выполнения, пока вы не вызовете ответCallbackQuery. Поэтому необходимо отреагировать вызовом метода AnswerCallbackQuery, даже если уведомление пользователя не требуется (например, без указания каких-либо дополнительных параметров).* +**ПРИМЕЧАНИЕ:** *После того, как пользователь нажмет кнопку обратного вызова, клиенты Telegram будут отображать индикатор выполнения, пока вы не вызовете answerCallbackQuery. Поэтому необходимо отреагировать вызовом answerCallbackQuery, даже если уведомление пользователю не требуется (например, без указания каких-либо дополнительных параметров).* -### ОтветCallbackQuery -Используйте этот метод для отправки ответов на запросы обратного вызова, отправленные со встроенной клавиатуры. Ответ будет отображаться пользователю в виде уведомления вверху экрана чата или в виде оповещения. В случае успеха возвращается *True*. +### ОтветОбратныйВызовЗапрос +Используйте этот метод для отправки ответов на запросы обратного вызова, отправленные с помощью встроенных клавиатур. Ответ будет показан пользователю в виде уведомления в верхней части экрана чата или в виде оповещения. В случае успеха возвращается *True*. ```javascript if (command === '1_2') { - sendTo('telegram', { - user: user, + sendTo('telegram', 'send', { + user: 'my_username username2', // optional. Separator could be ";" or "," or space answerCallbackQuery: { text: 'Pressed!', showAlert: false, // Optional parameter @@ -238,11 +247,11 @@ if (command === '1_2') { } ``` -Вы можете прочитать больше [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegrambotanswercallbackquerycallbackqueryid-text-showalert-options--promise). +Подробнее можно прочитать [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegrambotanswercallbackquerycallbackqueryid-text-showalert-options--promise). ### Вопрос -Вы можете отправить в Telegram сообщение, и следующий ответ будет возвращен в обратном вызове. -Таймаут может быть установлен в конфигурации и по умолчанию составляет 60 секунд. +Вы можете отправить сообщение в Telegram, и следующий ответ будет возвращен в обратном вызове. +Тайм-аут можно установить в конфигурации экземпляра (по умолчанию 60 секунд). ```javascript sendTo('telegram.0', 'ask', { @@ -264,14 +273,28 @@ sendTo('telegram.0', 'ask', { Начиная с версии 0.4.0 вы можете использовать идентификатор чата для отправки сообщений в чат. ```javascript -sendTo('telegram.0', {text: 'Message to chat', chatId: 'SOME-CHAT-ID-123'}); +sendTo('telegram.0', 'send', { + text: 'Message to chat', + chatId: 'SOME-CHAT-ID-123' +}); +``` + +## Идентификатор темы +Вы также можете задать идентификатор потока для супергрупп. + +```javascript +sendTo('telegram.0', 'send', { + text: 'Message to chat', + chatId: 'SOME-CHAT-ID-123', + message_thread_id: 7, +}); ``` ## Обновление сообщений -Следующие методы позволяют изменить существующее сообщение в истории сообщений вместо отправки нового с результатом действия. Это наиболее полезно для сообщений с *встроенной клавиатурой* с использованием запросов обратного вызова, но также может помочь уменьшить беспорядок в разговорах с обычными чат-ботами. +Следующие методы позволяют вам изменить существующее сообщение в истории сообщений вместо отправки нового с результатом действия. Это наиболее полезно для сообщений со *встроенными клавиатурами*, использующими запросы обратного вызова, но также может помочь уменьшить беспорядок в разговорах с обычными чат-ботами. -### РедактироватьТекстСообщения -Используйте этот метод для редактирования текста, отправленного ботом или через него (для встроенных ботов). В случае успеха, если отредактированное сообщение отправляется ботом, отредактированное сообщение возвращается; в противном случае возвращается *True*. +### EditMessageText +Используйте этот метод для редактирования текста, отправленного ботом или через бота (для встроенных ботов). В случае успеха, если отредактированное сообщение отправлено ботом, возвращается отредактированное сообщение; в противном случае возвращается *True*. ```javascript if (command === '1_2') { @@ -294,7 +317,7 @@ if (command === '1_2') { } ``` -*или новый текст последнего сообщения:* +*или новый текст для последнего сообщения:* ```javascript if (command === '1_2') { @@ -311,11 +334,11 @@ if (command === '1_2') { } ``` -Вы можете прочитать больше [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagetexttext-options--promise). +Подробнее можно прочитать [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagetexttext-options--promise). -### РедактироватьMessageCaption -Используйте этот метод для редактирования заголовка сообщения, отправленного ботом или через него (для встроенных ботов). -В случае успеха, если отредактированное сообщение отправляется ботом, отредактированное сообщение возвращается; в противном случае возвращается *True*. +### EditMessageCaption +Используйте этот метод для редактирования заголовка сообщения, отправленного ботом или через бота (для встроенных ботов). +В случае успеха, если отредактированное сообщение отправлено ботом, возвращается отредактированное сообщение; в противном случае возвращается *True*. ```javascript if (command === '1_2') { @@ -332,11 +355,11 @@ if (command === '1_2') { } ``` -Вы можете прочитать больше [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagetexttext-options--promise). +Подробнее можно прочитать [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagetexttext-options--promise). ### EditMessageMedia -Используйте этот метод для редактирования изображения сообщения, отправленного ботом или через него (для встроенных ботов). -В случае успеха, если отредактированное сообщение отправляется ботом, отредактированное сообщение возвращается, в противном случае возвращается *True*. +Используйте этот метод для редактирования изображения сообщения, отправленного ботом или через бота (для встроенных ботов). +В случае успеха, если отредактированное сообщение отправлено ботом, возвращается отредактированное сообщение; в противном случае возвращается *True*. ```javascript if (command === '1_2') { @@ -355,10 +378,10 @@ if (command === '1_2') { Поддерживаются следующие типы носителей: `photo`, `animation`, `audio`, `document`, `video`. -Вы можете прочитать больше [здесь](https://core.telegram.org/bots/api#editmessagemedia). +Подробнее можно прочитать [здесь](https://core.telegram.org/bots/api#editmessagemedia). ### EditMessageReplyMarkup -Используйте этот метод, чтобы редактировать только разметку ответа сообщений, отправленных ботом или через него (для встроенных ботов). В случае успеха, если отредактированное сообщение отправляется ботом, отредактированное сообщение возвращается; в противном случае возвращается *True*. +Используйте этот метод для редактирования только ответной разметки сообщений, отправленных ботом или через бота (для встроенных ботов). В случае успеха, если отредактированное сообщение отправлено ботом, возвращается отредактированное сообщение; в противном случае возвращается *True*. ```javascript if (command === '1_2') { @@ -381,10 +404,10 @@ if (command === '1_2') { } ``` -Вы можете прочитать больше [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagereplymarkupreplymarkup-options--promise). +Подробнее можно прочитать [здесь](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagereplymarkupreplymarkup-options--promise). -### Удаленное сообщение -Используйте этот метод для удаления сообщения, включая служебные, со следующими ограничениями: +### УдалитьСообщение +Используйте этот метод для удаления сообщения, включая служебные сообщения, со следующими ограничениями: - Сообщение можно удалить только в том случае, если оно было отправлено менее 48 часов назад. @@ -404,14 +427,17 @@ if (command === 'delete') { } ``` -Вы можете прочитать больше [здесь](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/api.md#TelegramBot+deleteMessage). +Подробнее можно прочитать [здесь](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/api.md#TelegramBot+deleteMessage). -## Реакция на ответы/сообщения пользователей -Предположим, вы используете только JavaScript без `text2command`. Вы уже отправили сообщение/вопрос своему пользователю, используя `sendTo()`, как описано выше. Пользователь отвечает на это нажатием кнопки или написанием сообщения. Вы можете извлечь команду и оставить отзыв своему пользователю, выполнить команды или переключить состояния в iobroker. +## Реагирование на ответы/сообщения пользователей +Предположим, вы используете только JavaScript без `text2command`. +Вы уже отправили сообщение/вопрос своему пользователю с помощью `sendTo()`, как описано выше. +Пользователь отвечает на это, нажимая кнопку или написав сообщение. +Вы можете извлечь команду и дать обратную связь своему пользователю, выполнить команды или переключить состояния в iobroker. - - Telegram.0 — это экземпляр Telegram вашего iobroker, который вы хотите использовать. - - пользователь — зарегистрированный у вас TelegramBot, который отправил сообщение - - команда — это команда, которую получил ваш TelegramBot +- telegram.0 — это ваш экземпляр Telegram iobroker, который вы хотите использовать +- пользователь - это зарегистрированный у вас пользователь TelegramBot, который отправил сообщение +- command — это команда, которую получил ваш TelegramBot ```javascript on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) { @@ -433,16 +459,16 @@ on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) { ``` ## Специальные команды -### /statestateName — прочитать значение состояния -Вы можете запросить значение состояния, если теперь у вас есть идентификатор: +### /state stateName - прочитать значение состояния +Вы можете запросить значение состояния, если знаете идентификатор: ``` /state system.adapter.admin.0.memHeapTotal > 56.45 ``` -### /statestateName value — установить значение состояния -Вы можете установить значение состояния, если теперь у вас есть идентификатор: +### /state stateName значение - установить значение состояния +Вы можете установить значение состояния, если знаете идентификатор: ``` /state hm-rpc.0.JEQ0ABCDE.3.STOP true @@ -450,37 +476,37 @@ on({id: 'telegram.0.communicate.request', change: 'any'}, function (obj) { ``` ## Режим опроса или сервера -Если используется режим опроса, адаптер по умолчанию каждые 300 мс опрашивает сервер Telegram на наличие обновлений. Он использует трафик, и сообщения могут быть задержаны на период до интервала опроса. Интервал опроса можно определить в конфигурации адаптера. +Если используется режим опроса, адаптер по умолчанию опрашивает сервер Telegram каждые 300 мс на предмет обновлений. Он использует трафик, и сообщения могут задерживаться на время до интервала опроса. Интервал опроса можно определить в конфигурации адаптера. -Чтобы использовать режим сервера, ваш экземпляр ioBroker должен быть доступен из Интернета (например, с помощью службы динамического DNS `noip.com`). +Для использования режима сервера экземпляр ioBroker должен быть доступен из Интернета (например, с помощью динамической службы DNS `noip.com`). -Telegram может работать только с HTTPS-серверами, но вы можете использовать сертификаты **давайте зашифруем**. +Telegram может работать только с HTTPS-серверами, но вы можете использовать сертификаты **let's encrypt**. Для режима сервера необходимо указать следующие настройки: -- URL - в формате https://вашдомен.com:8443. -- IP - IP адрес, к которому будет привязан сервер. По умолчанию 0.0.0.0. Не меняйте его, если вы не уверены. -- Порт - на самом деле Telegram поддерживает только порты 443, 80, 88, 8443, но вы можете перенаправить порты кому угодно через свой роутер. -- Публичный сертификат - требуется, если отключена опция **давайте зашифровать**. -- Закрытый ключ - требуется, если отключена функция **зашифровать**. -- Сертификат цепи (по желанию) -- Параметры шифрования. Настроить сертификаты **зашифрования** очень просто. Пожалуйста, прочитайте об этом [здесь](https://github.com/ioBroker/ioBroker.admin#lets-encrypt-certificates). +- URL - в формате https://yourdomain.com:8443. +- IP - IP-адрес, к которому будет привязан сервер. По умолчанию 0.0.0.0. Не меняйте его, если не уверены. +- Порт - на самом деле Telegram поддерживает только порты 443, 80, 88, 8443, но вы можете перенаправить порты кому угодно через свой маршрутизатор. +- Публичный сертификат - требуется, если **let's encrypt** отключен. +- Закрытый ключ - требуется, если **let's encrypt** отключен. +- Сертификат цепочки (необязательно) +- Параметры Let's encrypt - Очень просто настроить сертификаты **let's encrypt**. Пожалуйста, прочтите [здесь](https://github.com/ioBroker/ioBroker.admin#lets-encrypt-certificates) об этом. ## Расширенная безопасность -Аутентификацию пользователей можно отключить. Поэтому никто новый не сможет аутентифицироваться. +Аутентификация пользователей может быть отключена. Так что никто новый не сможет аутентифицироваться. Чтобы создать список доверенных пользователей, сначала отключите опцию «Не аутентифицировать новых пользователей» и аутентифицируйте всех пользователей, которые должны быть в списке доверенных, отправив сообщение `/password `. -Пользователи, отправившие действительный пароль, будут сохранены в списке доверенных. +Пользователи, отправившие действительный пароль, будут сохранены в доверенном списке. -После этого опция «Не аутентифицировать новых пользователей» может быть активирована, и новые пользователи не смогут аутентифицироваться. +После этого может быть активирована опция «Не аутентифицировать новых пользователей», и новые пользователи не смогут пройти аутентификацию. -Чтобы использовать эту опцию, необходимо активировать опцию «Запоминать аутентифицированных пользователей». +Для использования этой опции необходимо активировать опцию «Запоминать аутентифицированных пользователей». -## Звонки через Telegram -Благодаря API [callmebot](https://www.callmebot.com/) вы можете позвонить на свою учетную запись Telegram, и некоторый текст будет прочитан через механизм TTS. +## Звонки через телеграмм +Благодаря API [callmebot](https://www.callmebot.com/) вы можете совершить звонок на свой аккаунт Telegram, и часть текста будет прочитана с помощью движка TTS. -Чтобы сделать это из адаптера JavaScript, просто позвоните: +Чтобы сделать это из адаптера JavaScript, просто вызовите: ```javascript sendTo('telegram.0', 'call', 'Some text'); @@ -515,173 +541,173 @@ sendTo('telegram.0', 'call', { }); ``` -Возможные значения языка: +Возможные значения для языка: -- `ar-XA-Standard-A` - арабский (женский голос) -- `ar-XA-Standard-B` - арабский (мужской голос) -- `ar-XA-Standard-C` - арабский (мужской 2 голоса) -- `cs-CZ-Standard-A` - Чешский (Чехия) (Женский голос) +- `ar-XA-Standard-A` - Арабский (Женский голос) +- `ar-XA-Standard-B` - Арабский (Мужской голос) +- `ar-XA-Standard-C` - Арабский (Мужской 2 голос) +- `cs-CZ-Standard-A` - Чешский (Чешская Республика) (Женский голос) - `da-DK-Standard-A` - датский (Дания) (женский голос) -- `nl-NL-Standard-A` — голландский (Нидерланды) (женский голос — будет использоваться, если системный язык — NL и язык не указан) +- `nl-NL-Standard-A` - голландский (Нидерланды) (женский голос - будет использоваться, если системный язык - NL и язык не был указан) - `nl-NL-Standard-B` - голландский (Нидерланды) (мужской голос) -- `nl-NL-Standard-C` - голландский (Нидерланды) (мужской 2 голоса) -- `nl-NL-Standard-D` - голландский (Нидерланды) (женский 2 голоса) -- `nl-NL-Standard-E` - голландский (Нидерланды) (женский 3 голос) -- `en-AU-Standard-A` - английский (Австралия) (женский голос) -- `en-AU-Standard-B` - английский (Австралия) (мужской голос) -- `en-AU-Standard-C` - английский (Австралия) (женский 2 голоса) +- `nl-NL-Standard-C` - голландский (Нидерланды) (мужской 2 голос) +- `nl-NL-Standard-D` - голландский (Нидерланды) (женский 2-й голос) +- `nl-NL-Standard-E` - голландский (Нидерланды) (женский 3-й голос) +- `en-AU-Standard-A` - Английский (Австралия) (Женский голос) +- `en-AU-Standard-B` - Английский (Австралия) (Мужской голос) +- `en-AU-Standard-C` - Английский (Австралия) (Женский 2-й голос) - `en-AU-Standard-D` - английский (Австралия) (мужской 2 голоса) -- `en-IN-Standard-A` - английский (Индия) (женский голос) -- `en-IN-Standard-B` - английский (Индия) (мужской голос) -- `en-IN-Standard-C` - английский (Индия) (мужской 2 голоса) -- `en-GB-Standard-A` - английский (Великобритания) (женский голос - будет использоваться, если системным языком является EN и язык не указан) -- `en-GB-Standard-B` - английский (Великобритания) (мужской голос) -- `en-GB-Standard-C` - английский (Великобритания) (женский 2 голоса) -- `en-GB-Standard-D` - английский (Великобритания) (мужской 2 голоса) -- `en-US-Standard-B` - английский (США) (мужской голос) -- `en-US-Standard-C` - английский (США) (женский голос) -- `en-US-Standard-D` - английский (США) (мужской 2 голоса) -- `en-US-Standard-E` - английский (США) (женский 2 голоса) -- `fil-PH-Standard-A` - филиппинский (Филиппины) (женский голос) -- `fi-FI-Standard-A` - финский (Финляндия) (женский голос) -- `fr-CA-Standard-A` - французский (Канада) (женский голос) +- `en-IN-Standard-A` - Английский (Индия) (Женский голос) +- `en-IN-Standard-B` - Английский (Индия) (Мужской голос) +- `en-IN-Standard-C` - Английский (Индия) (Мужской 2 голос) +- `en-GB-Standard-A` - английский (Великобритания) (женский голос - будет использоваться, если системный язык - EN и язык не указан) +- `en-GB-Standard-B` - Английский (Великобритания) (Мужской голос) +- `en-GB-Standard-C` - Английский (Великобритания) (Женский 2-й голос) +- `en-GB-Standard-D` - Английский (Великобритания) (Мужской 2 голос) +- `en-US-Standard-B` - Английский (США) (Мужской голос) +- `en-US-Standard-C` - Английский (США) (Женский голос) +- `en-US-Standard-D` - Английский (США) (Мужской 2 голос) +- `en-US-Standard-E` - Английский (США) (Женский 2-й голос) +- `fil-PH-Standard-A` - Филиппинский (Филиппины) (Женский голос) +- `fi-FI-Standard-A` - финский (Финляндия) (Женский голос) +- `fr-CA-Standard-A` - Французский (Канада) (Женский голос) - `fr-CA-Standard-B` - французский (Канада) (мужской голос) -- `fr-CA-Standard-C` - французский (Канада) (женский 2 голоса) -- `fr-CA-Standard-D` - французский (Канада) (мужской 2 голоса) -- `fr-FR-Standard-A` — французский (Франция) (женский голос — будет использоваться, если системным языком является FR и язык не указан) +- `fr-CA-Standard-C` - французский (Канада) (женский 2-й голос) +- `fr-CA-Standard-D` - французский (Канада) (мужской 2 голос) +- `fr-FR-Standard-A` - французский (Франция) (женский голос - будет использоваться, если системный язык - FR и язык не был указан) - `fr-FR-Standard-B` - французский (Франция) (мужской голос) -- `fr-FR-Standard-C` - французский (Франция) (женский 2 голоса) -- `fr-FR-Standard-D` - французский (Франция) (мужской 2 голоса) -- `de-DE-Standard-A` - немецкий (Германия) (женский голос - будет использоваться, если системный язык DE и язык не указан) -- `de-DE-Standard-B` - немецкий (Германия) (мужской голос) -- `el-GR-Standard-A` - греческий (Греция) (женский голос) +- `fr-FR-Standard-C` - французский (Франция) (женский 2-й голос) +- `fr-FR-Standard-D` - французский (Франция) (мужской 2 голос) +- `de-DE-Standard-A` - немецкий (Германия) (женский голос - будет использоваться, если системный язык - DE и язык не указан) +- `de-DE-Standard-B` - немецкий (Германия) (Мужской голос) +- `el-GR-Standard-A` - Греческий (Греция) (Женский голос) - `hi-IN-Standard-A` - Хинди (Индия) (Женский голос) -- `hi-IN-Standard-B` - Хинди (Индия) (мужской голос) -- `hi-IN-Standard-C` - Хинди (Индия) (мужской 2 голоса) +- `hi-IN-Standard-B` - Хинди (Индия) (Мужской голос) +- `hi-IN-Standard-C` - Хинди (Индия) (Мужской 2 голос) - `hu-HU-Standard-A` - венгерский (Венгрия) (женский голос) -- `id-ID-Standard-A` - индонезийский (Индонезия) (женский голос) -- `id-ID-Standard-B` - индонезийский (Индонезия) (мужской голос) -- `id-ID-Standard-C` - индонезийский (Индонезия) (мужской 2 голоса) +- `id-ID-Standard-A` - Индонезийский (Индонезия) (Женский голос) +- `id-ID-Standard-B` - Индонезийский (Индонезия) (Мужской голос) +- `id-ID-Standard-C` - Индонезийский (Индонезия) (Мужской 2 голос) - `it-IT-Standard-A` - итальянский (Италия) (женский голос - будет использоваться, если системным языком является IT и язык не указан) -- `it-IT-Standard-B` - итальянский (Италия) (женский 2 голос) -- `it-IT-Standard-C` - итальянский (Италия) (мужской голос) -- `it-IT-Standard-D` - итальянский (Италия) (мужской 2 голоса) -- `ja-JP-Standard-A` - японский (Япония) (женский голос) -- `ja-JP-Standard-B` - японский (Япония) (женский 2 голоса) -- `ja-JP-Standard-C` - японский (Япония) (мужской голос) -- `ja-JP-Standard-D` - японский (Япония) (мужской 2 голоса) +- `it-IT-Standard-B` - Итальянский (Италия) (Женский 2 голос) +- `it-IT-Standard-C` - Итальянский (Италия) (Мужской голос) +- `it-IT-Standard-D` - Итальянский (Италия) (Мужской 2 голос) +- `ja-JP-Standard-A` - Японский (Япония) (Женский голос) +- `ja-JP-Standard-B` - Японский (Япония) (Женский 2-й голос) +- `ja-JP-Standard-C` - Японский (Япония) (Мужской голос) +- `ja-JP-Standard-D` - Японский (Япония) (Мужской 2 голос) - `ko-KR-Standard-A` - корейский (Южная Корея) (женский голос) - `ko-KR-Standard-B` - корейский (Южная Корея) (женский 2 голос) -- `ko-KR-Standard-C` — корейский (Южная Корея) (мужской голос) -- `ko-KR-Standard-D` - корейский (Южная Корея) (мужской 2 голоса) -- `cmn-CN-Standard-A` - китайский (женский голос) -- `cmn-CN-Standard-B` - китайский (мужской голос) -- `cmn-CN-Standard-C` - китайский (мужской 2 голос) -- `nb-NO-Standard-A` - норвежский (Норвегия) (женский голос) -- `nb-NO-Standard-B` - норвежский (Норвегия) (мужской голос) -- `nb-NO-Standard-C` - норвежский (Норвегия) (женский 2 голос) -- `nb-NO-Standard-D` - норвежский (Норвегия) (мужской 2 голоса) -- `nb-no-Standard-E` - Норвежский (Норвегия) (Женский 3 голос) -- `pl-PL-Standard-A` — польский (Польша) (женский голос — будет использоваться, если системным языком является PL и язык не указан) -- `pl-PL-Standard-B` - польский (Польша) (мужской голос) -- `pl-PL-Standard-C` - польский (Польша) (мужской 2 голоса) -- `pl-PL-Standard-D` - польский (Польша) (женский 2 голоса) -- `pl-PL-Standard-E` - польский (Польша) (женский 3 голос) -- `pt-BR-Standard-A` — португальский (Бразилия) (женский голос — будет использоваться, если системным языком является PT и язык не указан) -- `pt-PT-Standard-A` - португальский (Португалия) (женский голос) -- `pt-PT-Standard-B` - португальский (Португалия) (мужской голос) -- `pt-PT-Standard-C` - португальский (Португалия) (мужской 2 голоса) -- `pt-PT-Standard-D` - португальский (Португалия) (женский 2 голоса) -- `ru-RU-Standard-A` - Русский (Россия) (Женский голос - будет использоваться, если системный язык RU и язык не указан) +- `ko-KR-Standard-C` - корейский (Южная Корея) (мужской голос) +- `ko-KR-Standard-D` - корейский (Южная Корея) (Мужской 2 голос) +- `cmn-CN-Standard-A` - Мандаринский китайский (женский голос) +- `cmn-CN-Standard-B` - Мандаринский китайский (мужской голос) +- `cmn-CN-Standard-C` - Мандаринский китайский (мужской 2-й голос) +- `nb-NO-Standard-A` - Норвежский (Норвегия) (Женский голос) +- `nb-NO-Standard-B` - Норвежский (Норвегия) (Мужской голос) +- `nb-NO-Standard-C` - Норвежский (Норвегия) (Женский 2-й голос) +- `nb-NO-Standard-D` - Норвежский (Норвегия) (Мужской 2 голос) +- `nb-no-Standard-E` - Норвежский (Норвегия) (Женский 3-й голос) +- `pl-PL-Standard-A` - польский (Польша) (женский голос - будет использоваться, если системным языком является PL и язык не указан) +- `pl-PL-Standard-B` - Польский (Польша) (Мужской голос) +- `pl-PL-Standard-C` - Польский (Польша) (Мужской 2 голос) +- `pl-PL-Standard-D` - Польский (Польша) (Женский 2 голос) +- `pl-PL-Standard-E` - Польский (Польша) (Женский 3 голос) +- `pt-BR-Standard-A` - португальский (Бразилия) (женский голос - будет использоваться, если системным языком является португальский язык и язык не указан) +- `pt-PT-Standard-A` - Португальский (Португалия) (Женский голос) +- `pt-PT-Standard-B` - Португальский (Португалия) (Мужской голос) +- `pt-PT-Standard-C` - Португальский (Португалия) (Мужской 2 голос) +- `pt-PT-Standard-D` - Португальский (Португалия) (Женский 2-й голос) +- `ru-RU-Standard-A` - русский (Россия) (Женский голос - будет использоваться, если системный язык - RU и язык не указан) - `ru-RU-Standard-B` - Русский (Россия) (Мужской голос) - `ru-RU-Standard-C` - Русский (Россия) (Женский 2 голос) - `ru-RU-Standard-D` - Русский (Россия) (Мужской 2 голос) -- `sk-SK-Standard-A` - словацкий (Словакия) (женский голос) -- `es-ES-Standard-A` — испанский (Испания) (женский голос — будет использоваться, если системным языком является ES и язык не указан) +- `sk-SK-Standard-A` - словацкий (Словакия) (Женский голос) +- `es-ES-Standard-A` - испанский (Испания) (женский голос - будет использоваться, если системный язык - ES и язык не указан) - `sv-SE-Standard-A` - Шведский (Швеция) (Женский голос) -- `tr-TR-Standard-A` - Turkish (Турция) (Женский голос) +- `tr-TR-Standard-A` - Турецкий (Турция) (Женский голос) - `tr-TR-Standard-B` - Турецкий (Турция) (Мужской голос) -- `tr-TR-Standard-C` - Турецкий (Турция) (женский 2 голоса) +- `tr-TR-Standard-C` - Турецкий (Турция) (Женский 2 голос) - `tr-TR-Standard-D` - Турецкий (Турция) (Женский 3 голос) -- `tr-TR-Standard-E` - Turkish (Турция) (мужской голос) +- `tr-TR-Standard-E` - Турецкий (Турция) (Мужской голос) - `uk-UA-Standard-A` - Украинский (Украина) (Женский голос) - `vi-VN-Standard-A` - вьетнамский (Вьетнам) (женский голос) - `vi-VN-Standard-B` - вьетнамский (Вьетнам) (мужской голос) -- `vi-VN-Standard-C` - вьетнамский (Вьетнам) (женский 2 голоса) -- `vi-VN-Standard-D` - вьетнамский (Вьетнам) (мужской 2 голоса) +- `vi-VN-Standard-C` - вьетнамский (Вьетнам) (женский 2-й голос) +- `vi-VN-Standard-D` - вьетнамский (Вьетнам) (мужской 2 голос) -ДЕЛАТЬ: +ТО, ЧТО ДЕЛАТЬ: - место проведения -## Автоматическая вставка клавиатуры на основе настроек администратора (Easy-Keyboard) +## Автоматическая встроенная клавиатура на основе настроек администратора (Easy-Keyboard) Для каждого состояния можно включить дополнительные настройки: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings.png) -При вводе `/cmds` в телеграмме отобразится следующая клавиатура: +При вводе `/cmds` в Telegram отобразится следующая клавиатура: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings1.png) -`/cmds` можно заменить любым текстом (например, «?») в диалоге настройки адаптера Telegram. +`/cmds` можно заменить любым текстом (например, «?») в диалоговом окне конфигурации адаптера Telegram. -Если в диалоговом окне конфигурации адаптера Telegram включена опция **Использовать комнаты в команде с клавиатуры**, то на первом этапе будет показан список комнат. ***Еще не реализовано*** +Если в диалоговом окне конфигурации адаптера Telegram включена опция **Использовать комнаты в клавиатурных командах**, то на первом этапе будет показан список комнат. ***Еще не реализовано*** -###Настройки в штате -Сначала необходимо активировать конфигурацию. +### Настройки в состоянии +Во-первых, конфигурация должна быть включена. #### Псевдоним -Название устройства. Если имя пустое, имя будет взято из объекта. -При вводе «Дверной светильник» отображается следующее меню для логического состояния. +Имя устройства. Если имя пустое, имя будет взято из объекта. +При вводе «Дверной светильник» будет показано следующее меню для булевого состояния. ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings2.png) -Вы можете включить устройство, выключить его или запросить состояние. +Вы можете включить устройство, выключить устройство или запросить состояние. Если вы нажмете `Door lamp ?`, вы получите `Door lamp => switched off`. -### Только чтение -Если эта функция активирована, кнопки ВКЛ/ВЫКЛ не будут отображаться, а только `Door lamp ?`. +### Только для чтения +Если эта функция активирована, кнопки ВКЛ/ВЫКЛ отображаться не будут, будет отображаться только `Door lamp ?`. ### Сообщить об изменениях -Если статус устройства изменился (например, кто-то физически включил лампу), новый статус будет доставлен в Telegram. -Например. `Door lamp => switched on`. +Если статус устройства изменился (например, кто-то физически включил лампу), новый статус будет отправлен в Telegram. +Например, `Door lamp => switched on`. -### Кнопки в строке +### Кнопки в линию Сколько кнопок должно быть показано в строке для одного устройства. -Из-за длинного названия, возможно, лучше показывать в строке только 2 (или даже одну) кнопки. +Из-за длинного названия, возможно, лучше показать только 2 (или даже только одну) кнопки в строке. ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings3.png) -### Только запись -Если эта функция активирована, кнопка запроса статуса (`Door lamp ?`) не будет отображаться. +### Только для записи +Если активировано, кнопка запроса статуса (`Door lamp ?`) не будет отображаться. ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings4.png) -### По команде -Какой текст будет отображаться на кнопке `ON`. -Как здесь: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings5.png) +### Команда ВКЛ +Какой текст будет показан на кнопке `ON`. +Например, здесь: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings5.png) -Произведет следующую клавиатуру: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings6.png). +Будет создана следующая клавиатура: ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings6.png) ### ВКЛ Текст -Текст, который будет показан в государственном отчете. -Например. `Door lamp => activated`, если состояние устройства изменилось на true и **Текст ON** равен `activated` +Текст, который будет показан в отчете о состоянии. +Например, `Door lamp => activated`, если состояние устройства изменилось на true, а **Текст ВКЛ** — `activated` -Тексты ВКЛ/ВЫКЛ будут отображаться только в том случае, если активирован **Отчет об изменениях**. +Тексты ВКЛ/ВЫКЛ будут отображаться только в том случае, если активирована функция **Сообщать об изменениях**. ### Команда ВЫКЛ. То же, что и **Команда ВКЛ**, но для ВЫКЛ. -### ВЫКЛ. Текст -То же, что и **ВКЛ. Текст**, но для ВЫКЛ. -Например. `Door lamp => deactivated`, если состояние устройства изменилось на ложное, а **Текст ВЫКЛ** равен `deactivated` +### ВЫКЛ Текст +То же, что и **Текст ВКЛ**, но для ВЫКЛ. +Например, `Door lamp => deactivated`, если состояние устройства изменилось на false, а **Текст ВЫКЛ** — `deactivated` ### Только правда -Например, у кнопок нет состояния ВЫКЛ. В этом случае кнопка ВЫКЛ не будет отображаться. +Например, для кнопок, у них нет состояния ВЫКЛ. В этом случае кнопка ВЫКЛ не будет показана. ![настройки](../../../en/adapterref/iobroker.telegram/img/stateSettings7.png) ## Как получать сообщения в групповых чатах с помощью адаптера Telegram Если бот Telegram получает сообщения, отправленные пользователем боту в приватных чатах, но не получает сообщения, отправленные пользователями в групповых чатах. -В этом случае вам необходимо поговорить с `@botfather` и отключить режим конфиденциальности. +В этом случае вам необходимо поговорить с `@botfather` и отключить режим приватности. Чат BotFather: @@ -704,9 +730,9 @@ BotFather: Success! The new status is: DISABLED. /help ``` ## Как отправлять сообщения через node-red -Для простых текстовых сообщений всем пользователям просто поместите текст в полезные данные сообщения и отправьте его в состояние ioBroker `telegram.INSTANCE.communicate.response`. +Для простых текстовых сообщений всем пользователям просто поместите текст в полезную нагрузку сообщения и отправьте его в состояние ioBroker `telegram.INSTANCE.communicate.response`. -Если вы хотите установить дополнительные параметры, заполните полезную нагрузку объектом JSON, например: +Если вы хотите задать дополнительные параметры, заполните полезную нагрузку объектом JSON, например: ```javascript msg.payload = { @@ -719,34 +745,28 @@ msg.payload = { } ``` -Прежде чем отправить его на `telegram.INSTANCE.communicate.responseJson you need to stringify the object!` +Перед отправкой в `telegram.INSTANCE.communicate.responseJson you need to stringify the object!` ## Changelog -### **WORK IN PROGRESS** -* (klein0r) Removed default / shadow fiel from Blockly block ask +### 3.9.0 (2024-07-22) +* (klein0r) Added option to send venue (with title and address) -### 3.6.0 (2024-06-19) -* (klein0r) Save videos which have been recorded with telegram (video_note) -* (klein0r) Added answer timeout to instance configuration -* (klein0r) Added option to send status updates to specific users -* (klein0r) Added states for thread id (of supergroups) +### 3.8.2 (2024-07-16) +* (bluefox) Username can consist of more than one user. The separator is comma, semicolon or space. -### 3.5.3 (2024-06-18) -* (foxriver76) escape all unallowed characters when sending with notification manager +### 3.8.0 (2024-07-14) +* (bluefox) Migrated GUI for Admin 7 -### 3.5.2 (2024-06-16) -* (foxriver76) escape more unallowed characters when sending with notification manager +### 3.7.1 (2024-07-03) +* (klein0r) Restored translations for messages -### 3.5.1 (2024-06-12) -* (klein0r) Fixed file handling for voice files -* (klein0r) Updated dependencies - -### 3.5.0 (2024-06-12) -* (klein0r) Added option to save media files into ioBroker file system (files tab) +### 3.7.0 (2024-07-03) +* (klein0r) Removed default / shadow fiel from Blockly block ask +* (klein0r) Added state to answer last request (same chat) ## License @@ -771,4 +791,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.tibberlink/README.md b/docs/ru/adapterref/iobroker.tibberlink/README.md index a3914dcdb..b5123b28f 100644 --- a/docs/ru/adapterref/iobroker.tibberlink/README.md +++ b/docs/ru/adapterref/iobroker.tibberlink/README.md @@ -1,99 +1,169 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.tibberlink/README.md title: ioBroker.tibberlink -hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= +hash: K8hWv/0WbiSbPH9kxOdbE6JQPnr5DYtafIVCabwcbKs= --- ![Логотип](../../../en/adapterref/iobroker.tibberlink/admin/tibberlink.png) -![НПМ-версия](https://img.shields.io/npm/v/iobroker.tibberlink?style=flat-square) +![версия НПМ](https://img.shields.io/npm/v/iobroker.tibberlink?style=flat-square) ![Загрузки](https://img.shields.io/npm/dm/iobroker.tibberlink?label=npm%20downloads&style=flat-square) ![узел-lts](https://img.shields.io/node/v-lts/iobroker.tibberlink?style=flat-square) ![Статус зависимости Libraries.io для последней версии](https://img.shields.io/librariesio/release/npm/iobroker.tibberlink?label=npm%20dependencies&style=flat-square) ![GitHub](https://img.shields.io/github/license/hombach/iobroker.tibberlink?style=flat-square) ![Размер репозитория GitHub](https://img.shields.io/github/repo-size/hombach/iobroker.tibberlink?logo=github&style=flat-square) -![Действия по фиксации GitHub](https://img.shields.io/github/commit-activity/m/hombach/iobroker.tibberlink?logo=github&style=flat-square) +![Активность коммита GitHub](https://img.shields.io/github/commit-activity/m/hombach/iobroker.tibberlink?logo=github&style=flat-square) ![Последний коммит GitHub](https://img.shields.io/github/last-commit/hombach/iobroker.tibberlink?logo=github&style=flat-square) ![Проблемы с GitHub](https://img.shields.io/github/issues/hombach/iobroker.tibberlink?logo=github&style=flat-square) -![Статус рабочего процесса GitHub](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.tibberlink/test-and-release.yml?branch=main&logo=github&style=flat-square) -![Аппвейор-CI](https://ci.appveyor.com/api/projects/status/github/hombach/ioBroker.tibberlink?branch=master&svg=true) +![Статус рабочего процесса GitHub](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.tibberlink/test-and-release.yml?branch=master&logo=github&style=flat-square) +![Appveyor-CI](https://ci.appveyor.com/api/projects/status/github/hombach/ioBroker.tibberlink?branch=master&svg=true) ![Известные уязвимости SNYK](https://snyk.io/test/github/hombach/ioBroker.tibberlink/badge.svg) ![Бета](https://img.shields.io/npm/v/iobroker.tibberlink.svg?color=red&label=beta) ![Стабильный](https://iobroker.live/badges/tibberlink-stable.svg) -![Установлен](https://iobroker.live/badges/tibberlink-installed.svg) +![Установлено](https://iobroker.live/badges/tibberlink-installed.svg) ![НПМ](https://nodei.co/npm/iobroker.tibberlink.png?downloads=true) # IoBroker.tibberlink -[![CodeQL] (https://github.com/hombach/ioBroker.tibberlink/actions/workflows/codeql-anasis.yml/badge.svg)](https://github.com/hombach/ioBroker.tibberlink/actions/workflows/codeql-analysis.yml) +[![CodeQL](https://github.com/hombach/ioBroker.tibberlink/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hombach/ioBroker.tibberlink/actions/workflows/codeql-analysis.yml) ## Версии ## Адаптер для использования данных об энергии TIBBER в ioBroker -Этот адаптер облегчает подключение данных из API вашей учетной записи Tibber для использования в ioBroker, будь то для одного дома или нескольких домов. +Этот адаптер облегчает подключение данных из API вашей учетной записи Tibber для использования в ioBroker, как для одного дома, так и для нескольких домов. +Новая функция: адаптер теперь поддерживает прямое локальное считывание импульсного датчика Tibber через вашу домашнюю сеть, что позволяет осуществлять мониторинг и сбор данных в режиме реального времени, не полагаясь исключительно на облачный API. -Если вы в настоящее время не являетесь пользователем Tibber, я был бы очень признателен, если бы вы использовали мою реферальную ссылку: [Реферальная ссылка Тиббера](https://invite.tibber.com/mu8c82n5). +Если вы в настоящее время не являетесь пользователем Tibber, я был бы очень признателен, если бы вы могли воспользоваться моей реферальной ссылкой: [Реферальная ссылка Тиббера](https://invite.tibber.com/mu8c82n5). ## Стандартная конфигурация - Начните с создания нового экземпляра адаптера. -- Вам также потребуется токен API от Tibber, который вы можете получить здесь: [Tibber Developer API](https://developer.tibber.com). -- Введите свой токен API Tibber в стандартных настройках и настройте хотя бы одну строку для настроек прямой трансляции (выберите «Нет доступно»). -- Сохраните настройки и выйдите из конфигурации, чтобы перезагрузить адаптер; этот шаг позволяет в первый раз запросить ваш дом(а) с сервера Tibber. -- Вернитесь на экран конфигурации и выберите дома, из которых вы хотите получать данные в реальном времени с помощью Tibber Pulse. Вы также можете выбрать дома и отключить ленту (Примечание: это работает, только если оборудование установлено и сервер Tibber проверил соединение с Pulse). -- Примечание. Если в вашей учетной записи Tibber активно активен более одного дома, вам необходимо добавить их все, чтобы избавиться от сообщения об ошибке, вызванного потенциально ненужными домами. Добавьте их все и отключите параметры. +- Вам также потребуется токен API от Tibber, который можно получить здесь: [Tibber Developer API](https://developer.tibber.com). +- Введите свой токен API Tibber в стандартных настройках и настройте хотя бы одну строку для параметров прямой трансляции (выберите «Нет доступных»). +- Сохраните настройки и выйдите из конфигурации, чтобы перезапустить адаптер; этот шаг позволит вашему дому(ам) впервые получить запрос с сервера Tibber. +- Вернитесь на экран конфигурации и выберите дома, из которых вы хотите получать данные в реальном времени с помощью Tibber Pulse. Вы также можете выбрать дома и отключить канал (Примечание: это работает только в том случае, если установлено оборудование и сервер Tibber проверил подключение к Pulse). +- Примечание: Если в вашей учетной записи Tibber активно более одного дома, вам придется добавить их все, чтобы избавиться от сообщения об ошибке, вызванной потенциально ненужными домами. Добавьте их все и отключите опции. - У вас есть возможность отключить получение данных о ценах на сегодня и завтра, например, если вы собираетесь использовать только прямые трансляции Pulse. -- При желании вы можете включить получение исторических данных о потреблении. Укажите количество наборов данных для часов, дней, недель, месяцев и лет. Вы можете использовать «0», чтобы отключить один или несколько из этих интервалов в зависимости от ваших предпочтений. -- Примечание. Очень важно помнить о размере набора данных, поскольку слишком большие запросы могут привести к отсутствию ответа от сервера Tibber. Мы рекомендуем поэкспериментировать с размером набора данных, чтобы обеспечить оптимальную функциональность. Настройка интервалов и количества наборов данных может помочь найти правильный баланс между получением ценных данных и поддержанием скорости реагирования сервера. Например. 48 — вполне хорошая сумма для часов. +- При желании вы можете включить извлечение исторических данных о потреблении. Укажите количество наборов данных для часов, дней, недель, месяцев и лет. Вы можете использовать «0», чтобы отключить один или несколько из этих интервалов в зависимости от ваших предпочтений. +- Примечание: важно помнить о размере набора данных, так как чрезмерно большие запросы могут привести к отсутствию ответа от сервера Tibber. Мы рекомендуем поэкспериментировать с размером набора данных, чтобы обеспечить оптимальную функциональность. Настройка интервалов и номеров наборов данных может помочь найти правильный баланс между получением содержательных данных и поддержанием отзывчивости сервера. Например, 48 — это довольно хорошее количество для часов. - Сохраните настройки. ## Конфигурация калькулятора - Теперь, когда соединение Tibber установлено и работает, вы также можете использовать калькулятор для включения дополнительных функций автоматизации в адаптер TibberLink. - Калькулятор работает с использованием каналов, каждый из которых связан с выбранным домом. -- Эти каналы можно активировать или деактивировать в зависимости от соответствующих состояний. -— Эти состояния предназначены для использования в качестве внешних динамических входных данных для TibberLink, что позволяет вам, например, корректировать предельную стоимость («TriggerPrice») из внешнего источника или отключать канал калькулятора («Активный»). -- Состояния канала калькулятора располагаются рядом с исходными состояниями и называются в соответствии с номером канала. При этом здесь отображается имя канала, выбранное на экране администратора, чтобы лучше идентифицировать ваши конфигурации. +- Эти каналы могут быть активированы или деактивированы в зависимости от соответствующих состояний. +- Эти состояния предназначены для использования в качестве внешних динамических входов для TibberLink, позволяя, например, корректировать предельную стоимость («TriggerPrice») из внешнего источника или отключать канал калькулятора («Active»). +- Состояния канала калькулятора располагаются рядом с домашними состояниями и именуются в соответствии с номером канала. Таким образом, имя канала, выбранное на экране администратора, отображается здесь для лучшей идентификации ваших конфигураций. - ![Состояния калькулятора](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStates.png) + ![Калькулятор Состояния](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStates.png) - Поведение каждого канала определяется его типом: «лучшая стоимость (LTF)», «лучшие отдельные часы (LTF)», «лучший блок часов (LTF)» или «умный буфер батареи». -- Каждый канал заполняет одно или два внешних состояния в качестве выхода, которые необходимо выбрать на вкладке настроек. Например, это состояние может быть «0_userdata.0.example_state» или любым другим доступным для записи внешним состоянием. -- Если состояние внешнего выхода не выбрано, будет создано внутреннее состояние в пределах диапазона канала. -- Значения, которые должны быть записаны в выходное состояние, могут быть определены в «значении ДА» и «значении НЕТ», например «истина» для логических состояний или числа или текста для записи. +- Каждый канал заполняет одно или два внешних состояния в качестве выходных данных, которые должны быть выбраны на вкладке настроек. Например, это состояние может быть "0_userdata.0.example_state" или любое другое записываемое внешнее состояние. +- Если внешнее выходное состояние не выбрано, будет создано внутреннее состояние в диапазоне канала. +- Значения, которые должны быть записаны в выходное состояние, могут быть определены как «значение ДА» и «значение НЕТ», например, «истина» для логических состояний или число или текст, которые должны быть записаны. - Выходы: - - «Лучшая стоимость»: использует состояние «TriggerPrice» в качестве входных данных, выдавая выходной сигнал «ДА» каждый час, когда текущая стоимость энергии Tibber ниже триггерной цены. - - «Лучшие отдельные часы»: генерирует вывод «ДА» в течение наименее дорогих часов с числом, определенным в состоянии «AmountHours». - - «Блок лучших часов»: выводит «ДА» в течение наиболее экономически эффективного блока часов с количеством часов, указанным в состоянии «AmountHours». +- «Лучшая стоимость»: использует состояние «TriggerPrice» в качестве входных данных, создавая выход «ДА» каждый час, когда текущая стоимость энергии Tibber ниже цены триггера. +- «Лучшие отдельные часы»: генерирует вывод «ДА» в течение наименее дорогих часов с числом, указанным в состоянии «AmountHours». +- «Блок лучших часов»: выводит «ДА» в течение наиболее экономически эффективного блока часов с количеством часов, указанным в состоянии «AmountHours». - Кроме того, средняя общая стоимость в определенном блоке записывается в состояние «AverageTotalCost» рядом с входными состояниями этого канала. Также в результате расчета в «BlockStartFullHour» и «BlockEndFullHour» записывается начальный и конечный час блока. +Дополнительно, средняя общая стоимость в определенном блоке записывается в состояние "AverageTotalCost" рядом с входными состояниями этого канала. Также начальный и конечный час блока записывается в "BlockStartFullHour" и "BlockEndFullHour" как результат расчета. - - «Лучшая стоимость LTF»: «Лучшая стоимость» в течение ограниченного периода времени (LTF). - - «Лучшие отдельные часы LTF»: «Лучшие отдельные часы» в течение ограниченного периода времени (LTF). - - «Блок лучших часов LTF»: «Блок лучших часов» в течение ограниченного периода времени (LTF). - - «Smart Battery Buffer»: используйте параметр «EfficiencyLoss», чтобы указать потерю эффективности аккумуляторной системы. Параметр «EfficiencyLoss» может принимать значения от 0 до 1, где 0 означает отсутствие потери эффективности, а 1 — полную потерю эффективности. Например, значение 0,25 указывает на потерю эффективности на 25 % за цикл зарядки/разрядки. +- «Лучшая стоимость LTF»: «Лучшая стоимость» в течение ограниченного периода времени (LTF). +- «Лучшие отдельные часы LTF»: «Лучшие отдельные часы» в течение ограниченного периода времени (LTF). +- «Блок лучших часов LTF»: «Блок лучших часов» в течение ограниченного периода времени (LTF). +- "Smart Battery Buffer": используйте параметр "EfficiencyLoss", чтобы указать потерю эффективности аккумуляторной системы. Параметр "EfficiencyLoss" может иметь значение от 0 до 1, где 0 означает отсутствие потери эффективности, а 1 означает полную потерю эффективности. Например, значение 0,25 указывает на потерю эффективности 25% для цикла заряда/разряда. - Используйте параметр «AmountHours», чтобы ввести желаемое количество часов для зарядки аккумулятора. Калькулятор активирует зарядку аккумулятора («значение ДА») и отключит питание аккумулятора («значение 2 НЕТ») в течение указанных «AmountHours» самых дешевых часов. И наоборот, он отключит зарядку аккумулятора («значение НЕТ») и активирует питание аккумулятора («значение 2 ДА») в часы с наибольшей стоимостью, при условии, что стоимость выше, чем самая высокая общая цена среди дешевых часов. В остальные обычные часы, когда буферизация энергии с помощью аккумулятора экономически нецелесообразна, оба выхода будут отключены. +Используйте параметр "AmountHours" для ввода желаемого количества часов для зарядки аккумулятора. Калькулятор активирует зарядку аккумулятора ("значение ДА") и деактивирует питание аккумулятора ("значение 2 НЕТ") в течение указанных "AmountHours" самых дешевых часов. И наоборот, он деактивирует зарядку аккумулятора ("значение НЕТ") и активирует питание аккумулятора ("значение 2 ДА") в часы с самой высокой стоимостью, при условии, что стоимость выше самой высокой общей цены среди дешевых часов. В оставшиеся обычные часы, когда буферизация энергии аккумулятором экономически нецелесообразна, оба выхода будут отключены. -- Каналы LTF: функционируют аналогично стандартным каналам, но работают только в пределах временного интервала, определенного объектами состояния «StartTime» и «StopTime». После «StopTime» канал деактивируется. «StartTime» и «StopTime» могут охватывать несколько дней. Состояния должны быть заполнены строкой даты и времени в формате ISO-8601 со смещением часового пояса, например: «2024-01-17T21:00:00.000+01:00». Кроме того, у каналов появился новый параметр состояния под названием «RepeatDays», для которого по умолчанию установлено значение 0. Если для параметра «RepeatDays» установлено положительное целое значение, канал будет повторять свой цикл, увеличивая StartTime и StopTime на количество дней, указанное в «RepeatDays», после достижения StopTime. Например. Для ежедневного повторения установите для параметра «RepeatDays» значение 1». +- Каналы LTF: функционируют аналогично стандартным каналам, но работают только в пределах временного интервала, определяемого объектами состояний "StartTime" и "StopTime". После "StopTime" канал деактивируется. "StartTime" и "StopTime" могут охватывать несколько дней. Состояния должны быть заполнены строкой даты и времени в формате ISO-8601 со смещением часового пояса, например: "2024-01-17T21:00:00.000+01:00". Кроме того, у каналов есть новый параметр состояния, называемый "RepeatDays", который по умолчанию равен 0. Если "RepeatDays" установлен на положительное целое число, канал будет повторять свой цикл, увеличивая как StartTime, так и StopTime на количество дней, указанное в "RepeatDays", после достижения StopTime. Например, для ежедневного повторения установите "RepeatDays" на 1. ### Подсказки #### Обратное использование -Чтобы получить, например, часы пик вместо оптимальных часов, просто поменяйте местами использование и параметры: ![Состояния калькулятора обратные](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStatesInverse.png) Поменяв местами true <-> false, вы получите true с низкой стоимостью в первой строке и true в высокая стоимость во второй строке (названия каналов не являются триггерами и по-прежнему свободны в выборе). +Чтобы получить, например, часы пик вместо оптимальных часов, просто поменяйте местами использование и параметры: ![Калькулятор Состояния Обратные](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStatesInverse.png) Поменяв местами true <-> false, вы получите true с низкой стоимостью в первой строке и true с высокой стоимостью во второй строке (названия каналов не являются триггерами и по-прежнему могут быть выбраны). -Внимание: для отдельных часов пиковой нагрузки, как в примере, вам также необходимо отрегулировать количество часов. Исходное значение: 5 -> Обратное (24-5) = 19 -> Вы получите истинный результат в течение 5 часов пик. +Внимание: Для пиковых отдельных часов, таких как в примере, вам также необходимо скорректировать количество часов. Исходное: 5 -> Обратное (24-5) = 19 -> Вы получите истинный результат в течение 5 пиковых часов. #### LTF-каналы -Расчет производится для «многодневных» данных. Поскольку у нас есть информация только на «сегодня» и «завтра» (доступна примерно после 13:00), временной диапазон фактически ограничен максимум 35 часами. Однако очень важно помнить об этом поведении, поскольку расчетный результат может измениться около 13:00, когда станут доступны новые данные о завтрашних ценах. +Расчет выполняется для «многодневных» данных. Поскольку у нас есть только информация на «сегодня» и «завтра» (доступная примерно после 13:00), временной диапазон фактически ограничен максимум 35 часами. Однако крайне важно помнить об этом поведении, поскольку рассчитанный результат может/изменится около 13:00, когда станут доступны новые данные о завтрашних ценах. -Чтобы наблюдать за этим динамическим изменением временного интервала для стандартного канала, вы можете выбрать ограниченный временной интервал (LTF), охватывающий несколько лет. Это особенно полезно для сценария «Лучший LTF за один час». +Чтобы наблюдать это динамическое изменение временного диапазона для стандартного канала, вы можете выбрать Ограниченный временной интервал (LTF), охватывающий несколько лет. Это особенно полезно для сценария «Лучшие отдельные часы LTF». + +## Прямой локальный опрос данных Pulse +Чтобы это заработало, вам нужно изменить веб-интерфейс Bridge, чтобы он оставался постоянно включенным. +marq24 описал, как это сделать превосходно для своей интеграции HomeAssistant здесь: + +https://github.com/marq24/ha-tibber-pulse-local + +Если все работает правильно, данные счетчика будут записываться в состояния ioBroker каждые 2 секунды. ## Часовой -Этот адаптер использует библиотеки 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: ## Changelog -! Note that missing version entries are typically dependency updates for improved security. +### 3.4.8 (2024-08-xx) + +- (HombachC) updated axios because of vulnerability +- (HombachC) added tests for Node.js 22 + +### 3.4.7 (2024-08-10) + +- (HombachC) adapter checker detected optimizations (#493) +- (HombachC) improved error message (#490) + +### 3.4.6 (2024-08-07) + +- (HombachC) Catch wrong OBIS Codes, probably caused by Pulse communication errors +- (HombachC) code cleanup + +### 3.4.5 (2024-07-31) + +- (HombachC) decode meter mode 4 for local Tipper Pulse poll (#477) +- (HombachC) decode meter mode 1 for local Tipper Pulse poll (#478) +- (HombachC) fixed wrong Pulse local status names (voltage) +- (HombachC) add docu on local Pulse poll config screen (#479) +- (HombachC) code cleanup +- (HombachC) bump dependencies + +### 3.4.4 (2024-07-28) + +- (HombachC) local poll of data - change units Wh to kWh and round to 0,1kWh (#469) + +### 3.4.3 (2024-07-14) + +- (HombachC) added unit to Pulse temperature and round to 0,1°C +- (HombachC) added unit to Pulse battery voltage and round to 100mV +- (HombachC) added unit to Pulse uptime +- (HombachC) added state with Pulse uptime as human readable string +- (HombachC) reinitialize some TibberLocal states upon adapter startup +- (HombachC) code optimisation +- (HombachC) bump dependencies + +### 3.4.2 (2024-07-13) + +- (HombachC) fix typos in units +- (HombachC) fix type mismatch for state objects (#455) +- (HombachC) code optimisation + +### 3.4.1 (2024-07-13) + +- (HombachC) fix logging error +- (HombachC) bump dependencies + +### 3.4.0 (2024-07-12) + +- (HombachC) add mode for local poll of Pulse data (#201) + +### 3.3.3 (2024-07-04) + +- (HombachC) fix sentry notified possible error +- (HombachC) try to fix startup error (#444) + +### 3.3.2 (2024-06-21) + +- (HombachC) fix 2 security issues in dependencies +- (HombachC) fix sentry notified possible error ### 3.3.1 (2024-06-13) @@ -274,4 +344,4 @@ hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= GNU General Public License v3.0 only -Copyright (c) 2023-2024 C.Hombach +Copyright (c) 2023-2024 C.Hombach \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.tractive-gps/README.md b/docs/ru/adapterref/iobroker.tractive-gps/README.md index 6d6001420..693d53b9a 100644 --- a/docs/ru/adapterref/iobroker.tractive-gps/README.md +++ b/docs/ru/adapterref/iobroker.tractive-gps/README.md @@ -1,70 +1,98 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.tractive-gps/README.md title: ioBroker.tractive-gps -hash: 4uj6KfEOqKYXoYZcri3HeySvkq0C4u6UmhrWQuNmORw= +hash: UK0rDDy+fjpro8mYDetaov7yQYXMGOmdZb5XkbGVoO8= --- ![Логотип](../../../en/adapterref/iobroker.tractive-gps/admin/tractive-gps.png) ![Лицензия GitHub](https://img.shields.io/github/license/iobroker-community-adapters/ioBroker.tractive-gps) ![Загрузки](https://img.shields.io/npm/dm/iobroker.tractive-gps.svg) ![Размер репозитория GitHub](https://img.shields.io/github/repo-size/iobroker-community-adapters/ioBroker.tractive-gps) -![Действия по фиксации GitHub](https://img.shields.io/github/commit-activity/m/iobroker-community-adapters/ioBroker.tractive-gps) -![GitHub фиксирует с момента последнего выпуска (по дате)](https://img.shields.io/github/commits-since/iobroker-community-adapters/ioBroker.tractive-gps/latest) +![Активность коммита GitHub](https://img.shields.io/github/commit-activity/m/iobroker-community-adapters/ioBroker.tractive-gps) +![Коммиты GitHub с момента последнего релиза (по дате)](https://img.shields.io/github/commits-since/iobroker-community-adapters/ioBroker.tractive-gps/latest) ![Последний коммит GitHub](https://img.shields.io/github/last-commit/iobroker-community-adapters/ioBroker.tractive-gps) ![Проблемы с GitHub](https://img.shields.io/github/issues/iobroker-community-adapters/ioBroker.tractive-gps) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.tractive-gps.svg) -![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/tractive-gps-stable.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.tractive-gps.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/tractive-gps-stable.svg) ![Количество установок](https://iobroker.live/badges/tractive-gps-installed.svg) # IoBroker.tractive-gps -[![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/tractive-gps/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)

**Версия:**

**Тесты:**
[![Тестирование и выпуск] (https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml) [![CodeQL](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml) +[![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/tractive-gps/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
-##адаптер tractive-gps для ioBroker +**Версия:** + +**Тесты:** + +[![Тестирование и выпуск](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml) [![CodeQL](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml) + +## Адаптер tractive-gps для ioBroker ### ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ -Все названия и логотипы продуктов и компаний являются товарными знаками™ или зарегистрированными® товарными знаками соответствующих владельцев. Их использование не подразумевает какой-либо принадлежности или одобрения со стороны них или связанных с ними аффилированных лиц! Этот личный проект реализуется в развлекательных целях и не преследует никаких деловых целей. **[тяговый](https://tractive.com/de/)** является товарным знаком **Tractive GmbH**. +Все названия продуктов и компаний или логотипы являются товарными знаками Trademarks™ или Registered® товарными знаками их соответствующих владельцев. +Их использование не подразумевает какой-либо аффилированности или одобрения ими или связанными с ними аффилированными лицами! Этот личный проект осуществляется на развлекательной основе и не имеет коммерческих целей. +**[Тяговый](https://tractive.com/de/)** является товарным знаком **Tractive GmbH**. ### Часовой -**Этот адаптер использует библиотеки 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. ### Кредиты -Этот адаптер был бы невозможен без огромной работы @xXBJXx (https://github.com/xXBJXx), который создал этот адаптер и, надеюсь, будет поддерживать его снова в ближайшем будущем. +Этот адаптер был бы невозможен без замечательной работы @xXBJXx (https://github.com/xXBJXx), который его создал. ### Описание -Этот адаптер позволяет вам подключиться к службе Tractive GPS и определить местоположение ваших домашних животных.\ Адаптер создает устройство для каждого домашнего животного и статус для каждого местоположения.\ Адаптер также создает статус уровня заряда батареи трекера и многое другое. статусы, предоставляемые API. +Этот адаптер позволяет вам подключаться к сервису Tractive GPS и получать местоположение ваших питомцев. +Адаптер создает устройство для каждого питомца и статус для каждого местоположения. +Адаптер также создает статус для уровня заряда батареи трекера и многие другие статусы, предоставляемые API. -### Предварительные условия -Чтобы использовать этот адаптер, у вас должна быть учетная запись Tractive и трекер для вашего питомца (см. [тяговый](https://tractive.com/de/)) (**Внимание:** Ежемесячная/годовая плата за использование услуги Tractive) +### Предпосылки +Для использования этого адаптера у вас должна быть учетная запись Tractive и трекер для вашего питомца (см. [Тяговый](https://tractive.com/de/)) (**Внимание:** ежемесячная/ежегодная плата за использование сервиса Tractive) -### Монтаж -Адаптер устанавливается через диспетчер адаптеров ioBroker.\ **Внимание:** Для адаптера требуется как минимум Node.js >= 16, js-controller 3.3.22 и admin >=6! После установки вам необходимо войти в свою учетную запись Tractive и установить интервал опроса.\ Затем адаптер получит токен из API Tractive и сохранит его в конфигурации. Этот токен имеет срок действия, который будет автоматически продлен по истечении срока действия. +### Установка +Адаптер устанавливается через менеджер адаптеров ioBroker. +После установки вам необходимо войти в систему с помощью своей учетной записи Tractive и задать интервал опроса. +Затем адаптер извлечет токен из API Tractive и сохранит его в конфигурации. +У этого токена есть срок действия, который будет автоматически продлен по истечении срока действия. ### Конфигурация В конфигурации адаптера есть два варианта настройки: * **Авторизоваться**. - 1. здесь вы можете войти под своей учетной записью Tractive.\ - 2. установите интервал опроса.\ - 3. вручную перевыпустить токен.\ +1. здесь вы можете войти в систему, используя свою учетную запись Tractive. +2. установить интервал опроса. +3. вручную перевыпустить токен. ![экземпляры-tractive-gps-login.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-login.png) -* **Все устройства** — здесь отображается список всех устройств, обнаруженных адаптером. Вы можете изменить имя устройства в списке. +* **Все устройства** - Здесь отображается список всех устройств, найденных адаптером. Вы можете изменить имя устройства в списке. -затем оно также будет отображаться в объектах.\ ![экземпляры-tractive-gps-allDevices-table.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-table.png), чтобы изменить имя, щелкните значок карандаша и введите новое имя. -![экземпляры-tractive-gps-allDevices-modal.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-modal.png) +это также будет отображаться в объектах. +![экземпляры-tractive-gps-allDevices-table.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-table.png) чтобы изменить имя, нажмите на значок карандаша и введите новое имя. +![экземпляры-тяговой-gps-allDevices-модальный.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-modal.png) ### Вкладка -Во вкладке отображаются все найденные устройства с картой и некоторой информацией об устройстве.\ ![tab-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ftab-tractive-gps.png) Изображение также можно заменить на собственное изображение животного.\ Для этого создается PNG-файл с названием трекера. (например, ZSDLINVD.png) необходимо поместить в папку **iobroker-data/files/tractive-gps**. -Или вы можете использовать вкладку **файлы**, чтобы загрузить файл. (см. изображение ниже)\ **Рекомендуемый размер изображения — 1920x1080 пикселей.**\ ![файлы-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ffiles-tractive-gps.png) +На вкладке отображаются все найденные устройства с картой и некоторой информацией об устройстве. +![tab-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ftab-tractive-gps.png) Изображение также можно заменить на собственное изображение животного. +Для этого необходимо поместить PNG-файл с названием трекера (например, ZSDLINVD.png) в папку **iobroker-data/files/tractive-gps**. +Или вы можете использовать вкладку **files** для загрузки файла. (см. изображение ниже) **Рекомендуемый размер изображения — 1920x1080 пикселей.** ![файлы-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ffiles-tractive-gps.png) ## Changelog +### 2.0.1 (2024-08-20) +* (bluefox) Fixing encryption of the access token + +### 2.0.0 (2024-08-18) +* (bluefox) BREAKING CHANGE: You must enter your credentials again +* (bluefox) Old code has been removed and GUI has been rewritten +* (bluefox) Dependencies have been updated + +### 1.2.0 (2024-04-28) +* (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now +* (mcm1957) Dependencies have been updated + ### 1.1.0 (2023-11-05) * (Scrounger) Bugfix: objects will be created only if necessary * (Scrounger) Bugfix for excessive number of warnings has been added @@ -74,19 +102,10 @@ hash: 4uj6KfEOqKYXoYZcri3HeySvkq0C4u6UmhrWQuNmORw= * (mcm1957) Adapter has been moved into iobroker-community-adapters organisation * (mcm1957) Dependencies have been updated -### 0.1.2 (2023-02-24) -* (xXBJXx) Dependencies updated -* (xXBJXx) UI updated - -### 0.1.1 (2023-02-05) -* (xXBJXx) Dependencies updated - -### 0.1.0 (2023-02-05) -* (xXBJXx) first release - ## License MIT License +Copyright (c) 2023-2024 ioBroker Community Developers Copyright (c) 2023 xXBJXx Permission is hereby granted, free of charge, to any person obtaining a copy @@ -105,4 +124,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.vis-2-widgets-inventwo/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-inventwo/README.md index 0240dbbd9..d0d3cd4b3 100644 --- a/docs/ru/adapterref/iobroker.vis-2-widgets-inventwo/README.md +++ b/docs/ru/adapterref/iobroker.vis-2-widgets-inventwo/README.md @@ -1,49 +1,67 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2-widgets-inventwo/README.md -title: inventwo Виджеты для ioBroker.vis 2.0 -hash: 1udj/7fAB/xLRg+chT0pVlnDVsVOk2BzBWVe/IbGXZc= +title: Виджеты inventtwo для ioBroker.vis 2.0 +hash: 7zOWdVk5ONHUBzdmQC97Qu8Litfu07Yl94t4DgEh9Yo= --- ![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/admin/vis-2-widgets-inventwo.png) ![Количество установок](http://iobroker.live/badges/vis-2-widgets-inventwo-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.vis-2-widgets-inventwo.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2-widgets-inventwo.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-inventwo.svg) ![НПМ](https://nodei.co/npm/iobroker.vis-2-widgets-inventwo.png?downloads=true) -# Виджеты inventwo для ioBroker.vis 2.0 +# Inventtwo Виджеты для ioBroker.vis 2.0 ## О Добавляет переключатели, кнопки, ползунки и многое другое в качестве виджетов для ioBroker VIS 2.0. ## Содержание -Различные виджеты для переключения, навигации и прочего. +Различные виджеты для переключения, навигации и многого другого. ![Универсальный и мультивиджет Vorschau](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_universal_widget.png) Различные типы контента -![Выбор цвета Воршау](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_content_types.png) +![Vorschau Colorpicker](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_content_types.png) Выбор цвета -![Выбор цвета Воршау](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_colorpicker.png) +![Vorschau Colorpicker](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_colorpicker.png) Слайдер -![Выбор цвета Воршау](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_sliders.png) +![Vorschau Colorpicker](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_sliders.png) Переключатели -![Выбор цвета Воршау](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_switches.png) +![Vorschau Colorpicker](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_switches.png) -#### Дальше будет больше... +#### Продолжение следует... ## Changelog +### 0.1.11 (2024-07-18) +* Fixed issues mentioned by eslint + +### 0.1.10 (2024-07-18) +* Removed styles libraries as they are not compatible with vis 2.0 +* Fixed compare by for widget type view in dialog (#24) +* Fixed text color not working in slider and added other font styles (#25) +* Fixed switch doesn't toggle without defining values (#28) + +### 0.1.9 (2024-05-24) +* Fixed missing object id if a type is nav (#14) +* Fixed content color for icons not working (#22) + +### 0.1.7 (2024-05-22) +* Fixed missing object id if a type is nav (#14) +* Fixed image aspect ratio (#15) +* Added options to customize dialog + ### 0.1.5 (2024-04-14) * Added optional button click feedback options * Added widget type to send http requests and open urls @@ -117,4 +135,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.vis-2-widgets-jaeger-design/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md index 783d7bc19..32c64919e 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 @@ -1,30 +1,34 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +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: FlPUifv8rJ+ON3PymwZF9EU/ZyLAHFAES1n06U4TTIA= +hash: qJeEJ8ncgCfZoYvL/D1Bmfqc3k6U9lmz+R4Pxc9Lzm0= --- ![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/admin/vis-2-widgets-jaeger-design.png) ![Количество установок](http://iobroker.live/badges/vis-2-widgets-jaeger-design-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.vis-2-widgets-jaeger-design.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2-widgets-jaeger-design.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-jaeger-design.svg) ![НПМ](https://nodei.co/npm/iobroker.vis-2-widgets-jaeger-design.png?downloads=true) # Специальные виджеты Jaeger Design для ioBroker.vis 2.0 -![YouTube](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/img/youtube.png) +![ютуб](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/img/youtube.png) -Вы можете найти видео, как использовать виджеты [здесь](https://www.youtube.com/watch?v=4bctUvfpPuQ) (на немецком языке). +Видеоролик об использовании виджетов можно найти [здесь](https://www.youtube.com/watch?v=4bctUvfpPuQ) (на немецком языке). + +**Важно: для виджетов требуется платная лицензия, которую можно заказать по адресу [iobroker.net](https://iobroker.net/www/pricing#commercial/iobroker.vis-2-widgets-jaeger-design)** Видео с виджетами можно найти [здесь](https://www.youtube.com/watch?v=4bctUvfpPuQ). +Das Video wie man die Widgets benutzt kann man [здесь](https://youtu.be/Rplr2Ba-G7o) (на немецком языке) (TEIL2) + ## Виджеты ### Кнопки и переключатели ### Актуальные новости ![Актуальные новости](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/img/news.png) -Чтобы использовать этот виджет, вам необходимо создать небольшой скрипт в адаптере Javascript: +Для использования этого виджета вам необходимо создать небольшой скрипт в адаптере Javascript: ``` const axios = require('axios'); @@ -42,11 +46,27 @@ createState('javascript.0.rss', {type: 'string'}, () => { А затем используйте объект `javascript.0.rss` в этом виджете. - +### **РАБОТА В ХОДЕ** --> ## Changelog +### 1.2.7 (2024-07-17) +* (bluefox) allowed multi-line buttons for the thermostat + +### 1.2.6 (2024-07-16) +* (bluefox) Corrected the power state of the thermostat + +### 1.2.5 (2024-07-12) +* (bluefox) Added possibility to control other IDs with memory buttons (Dimmer, Shutter) +* (bluefox) Added the power option for thermostat +* (bluefox) Implemented the writing of specific values for state widget +* (bluefox) Added label to state widget + +### 1.2.1 (2024-07-07) +* (bluefox) Removed withStyles usage +* (bluefox) Added confirmation dialog + ### 1.1.27 (2024-05-27) * (bluefox) Added descriptions @@ -190,4 +210,4 @@ createState('javascript.0.rss', {type: 'string'}, () => { ## License Copyright (c) 2022-2024 bluefox -All rights reserved. +All rights reserved. \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/README.md new file mode 100644 index 000000000..6bf748b05 --- /dev/null +++ b/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/README.md @@ -0,0 +1,236 @@ +--- +translatedFrom: en +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/README.md +title: Vis 2 (o)различные виджеты +hash: 9kE+Av1tIRAcEsL/crz1sRamAiY2YQUNh6SxcJx9+/k= +--- +![Количество установок](http://iobroker.live/badges/vis-2-widgets-ovarious-stable.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2-widgets-ovarious.svg) +![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-ovarious.svg) +![НПМ](https://nodei.co/npm/iobroker.vis-2-widgets-ovarious.png?downloads=true) + + + +# Вид 2 (о)различных виджетов +![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png) + +Этот адаптер содержит различные виджеты vis-2. + +Хорошо, на самом деле есть только один виджет vis-2, но в моих планах еще несколько. + +## Виджет шаблона JSON +Используя этот виджет, можно отобразить любую точку данных с данными JSON по желанию. +Отображение выполняется с использованием формата шаблона, который можно рассматривать как комбинированную форму HTML-кода + JavaScript + специальных тегов, которые управляют отображением атрибутов JSON. + +### Атрибут точки данных JSON +Выбор точки данных с соответствующими данными JSON. + +#### Шаблон атрибута +Шаблон можно использовать для определения внешнего вида данных JSON. Все допустимые теги HTML (включая атрибуты CSS в тегах стилей) можно использовать в шаблоне. +Также существуют специальные теги, в которых отображаются данные JSON и могут выполняться инструкции JavaScript. + +Система шаблонов работает с определенными тегами. +Используемые теги имеют следующее значение + +| `tag` | описание | +| ----- | ------------------------------------------------------------------- | +| <%= | Содержимое содержащегося выражения/переменной будет экранировано. | +| <%- | Содержимое содержащегося выражения/переменной неэкранировано. | +| <% | Нет вывода, используется для вложенных инструкций JavaScript | +| %> | — это обычно закрывающий тег, который завершает один из предыдущих | + +Все, что находится за пределами этих тегов, отображается точно так, как есть, или, если это HTML, интерпретируется как HTML. (см., например, p-tag, div-tag, small-tag). В шаблоне вам доступны 2 предопределенные переменные + +Данные JSON передаются в шаблон с префиксом data. Кроме того, текущий widgetID также доступен как переменная, так что его можно указать в отдельных инструкциях CSS. + +##### Пример объекта +```json +{ + "onearray": ["one", "two"], + "oneobject": { + "attribute1": 1, + "attribute2": 2 + }, + "onenumber": 123, + "onetext": "onetwothree" +} +``` + +В приведенном выше примере атрибуты могут быть выведены следующим образом: + +```html +<%- data.onenumber %> <%- data.onetext %> +``` + +**Результат** + +```html +123 onetwothree +``` + +Массивы могут быть доступны через индекс. Индекс всегда начинается с 0. Однако существуют также фейковые массивы, где индекс не начинается с 0 или даже состоит из текста. Здесь применяются правила для объектов. В примере выше это будет + +```html +<%- data.onearray[0] %> <%- data.onearray[1] %> +``` + +##### Результат +```html +one two +``` + +Если вы попытаетесь вывести массив напрямую без индекса, шаблон выведет все элементы, разделенные запятыми. + +```html +<%- data.onearray %> +``` + +**Результат** + +```html +one,two +``` + +Массивы также могут состоять из коллекции объектов. В данном примере представлен только простой массив. Пример массивов с объектами будет приведен позже. + +```html +<% for (var i = 0; i < data.onearray.length ; i++ ) { %> <%- data.onearray[i] %> <% } %> +``` + +**Результат** + +```html +one two +``` + +**Объекты** могут содержать отдельные атрибуты, массивы или объекты снова. Это означает, что данные JSON могут быть вложены на любую глубину. + +Атрибуты объекта могут быть адресованы с помощью точечной нотации или скобочной нотации. Точечная нотация работает только в том случае, если атрибут соответствует определенным соглашениям об именовании (первый символ должен быть буквой, остальные цифры или буквы или подчеркивание). +Скобочная нотация также работает для атрибутов, которые не соответствуют соглашению об именовании. + +**Точечная нотация** + +```html +<%- data.oneobject.attribute1 %> +``` + +**Обозначение скобок** + +```html +<%- data.oneobject["attribute1"] %> +``` + +**Результат для обоих примеров** + +```html +1 +``` + +Перебрать атрибуты объекта + +```html +<% for (var prop in data.oneobject) { %> <%- "data.oneobject." + prop + " = " + data.oneobject[prop] %> <% } %> +``` + +**Результат** + +```html +data.oneobject.attribute1 = 1 data.oneobject.attribute2 = 2 +``` + +**Расширенный вариант использования** + +В приведенных выше примерах был охвачен только чистый вывод. Шаблон теперь также может быть обогащен тегами HTML для достижения определенного макета. Вот пример: + +```html +

Output

+ +<% for (var prop in data.oneobject) { %> +
+ <%- "data.oneobject." + prop + " = " %> + <%- data.oneobject[prop] %> +
+<% } %> +``` + +**Результат** + +```html +data.oneobject.attribute1 = 1 data.oneobject.attribute2 = 2 +``` + +## Changelog + + +### 0.1.8 (2024-07-28) + +- improve icon +- remove versions from io-package.json + +### 0.1.7 (2024-07-28) + +- fix widget addressing + +### 0.1.6 (2024-07-28) + +- fix widget addressing + +### 0.1.5 (2024-07-28) + +- fix adapter checker issues + +### 0.1.4 (2024-07-28) + +- fix things from adapter checker + +### 0.1.3 (2024-07-27) + +- add icon +- add documentation + +### 0.1.2 (2024-07-27) + +- prepare release + +### 0.1.1 (2024-07-27) + +- fix widget addressing + +### 0.1.0 (2024-07-27) + +- initial Release + +## License + +The MIT License (MIT) + +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 +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.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png b/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png new file mode 100644 index 000000000..92eda1998 Binary files /dev/null and b/docs/ru/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png differ diff --git a/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/README.md b/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/README.md new file mode 100644 index 000000000..9883b262b --- /dev/null +++ b/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/README.md @@ -0,0 +1,113 @@ +--- +translatedFrom: en +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/README.md +title: Виджеты RSS-канала Vis 2 +hash: ErMD6x59cwdqkbwLVYUsR8GHNYdPgIHmHAi5lW7uc98= +--- +![Логотип](../../../en/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png) + +![Количество установок](http://iobroker.live/badges/vis-2-widgets-rssfeed-stable.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2-widgets-rssfeed.svg) +![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-rssfeed.svg) +![НПМ](https://nodei.co/npm/iobroker.vis-2-widgets-rssfeed.png?downloads=true) + +# Виджеты RSS-каналов Vis 2 +этот адаптер содержит только виджеты vis-2 для адаптера rssfeed. + +Подробное описание виджетов и функционала смотрите в разделе Адаптер RSS-канала. + +## Changelog + + +### 0.3.5 (2024-08-09) + +- improve link styling in the marquee widget +- fix key and group handling +- fix issues from adapter checker + +### 0.3.3 (2024-07-25) + +- fix widgeturl from debug to productive + +### 0.3.2 (2024-07-25) + +- introduce innerhtml component that is capable to execute raw javascript and improve links for the marquee widget +- fix translation + +### 0.3.1 (2024-07-24) + +- fix widget access url + +### 0.3.0 (2024-07-24) + +- intoroduction of the rss multi feed widget +- update icons for light and dark theme +- improved translation + +### 0.2.4 (2024-06-25) + +- fix github commands to non deprecated + +### 0.2.3 (2024-06-25) + +- switch nodeversion in github actions +- change upload to v4 +- upgrade github commands to non deprecated +- adjust copy commands in gulpfile + +### 0.2.2 (2024-06-25) + +- remove withstyles +- translate some missing keys + +### 0.2.1 (2024-06-24) + +- set node to 20 in deploy task + +### 0.2.0 (2024-06-24) + +- fine tuning + +### 0.1.3 (2024-06-22) + +- add ace build files to gulp + +### 0.1.2 (2024-06-22) + +- move library to ace/ejs lib to dependency + +### 0.1.1 (2024-06-22) + +- reverte timepout in tests + +### 0.1.0 (2024-06-22) + +- Erstes Testrelease + +## License + +The MIT License (MIT) + +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 +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.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png b/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png new file mode 100644 index 000000000..a389a5ef3 Binary files /dev/null and b/docs/ru/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png differ diff --git a/docs/ru/adapterref/iobroker.vis-2/README.md b/docs/ru/adapterref/iobroker.vis-2/README.md index c18cafd14..07a09892c 100644 --- a/docs/ru/adapterref/iobroker.vis-2/README.md +++ b/docs/ru/adapterref/iobroker.vis-2/README.md @@ -1,41 +1,41 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-2/README.md -title: Визуализация нового поколения для ioBroker: vis-2 -hash: +1fddSVtqwpfVYHmbGCNW3hoPgPwDPyjK/kA/lN2bfw= +title: Визуализация следующего поколения для ioBroker: vis-2 +hash: RttxszkZBkPktx1h3S4c1CTM4MNtGAultzO499yhV3k= --- ![Логотип](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/admin/vis-2.png) ![Количество установок](http://iobroker.live/badges/vis-2-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.vis-2.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-2.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-2.svg) ![НПМ](https://nodei.co/npm/iobroker.vis-2.png?downloads=true) -# Визуализация нового поколения для ioBroker: vis-2 +# Визуализация следующего поколения для ioBroker: vis-2 WEB-визуализация для платформы ioBroker. ## Обзор -- [Лицензионные требования](#license-requirements) -- [Установка и документация](#installation--документация) -- [Привязки объектов](#привязки-объектов) +- [Требования к лицензии](#license-requirements) +- [Установка и документация](#installation--documentation) +- [Привязки объектов](#bindings-of-objects) - [Фильтры](#фильтры) - [Интерфейс управления](#control-interface) - [Вид по умолчанию](#default-view) - [Система разрешений](#permissions-system) -- [Настройки](#settings) -- [SVG и currentColor](#svg-and-currentcolor) +- [Настройки](#настройки) +- [SVG и текущий цвет](#svg-and-currentcolor) ## Установка и документация -![Демо-интерфейс](packages/iobroker.vis-2/img/user0.png) ![Демо-интерфейс](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/img/user7.png) +![Демонстрационный интерфейс](packages/iobroker.vis-2/img/user0.png) ![Демонстрационный интерфейс](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/img/user7.png) -[Онлайн-демо](https://iobroker.click/) +[Онлайн-демонстрации](https://iobroker.click/) ## Привязки объектов Обычно большинство виджетов имеют атрибут ObjectID, и этот атрибут может быть связан с некоторым значением идентификатора объекта. -Но есть другой вариант привязки *любого* атрибута виджета к некоторому ObjectID. +Но есть и другой вариант, как связать *любой* атрибут виджета с некоторым ObjectID. -Просто напишите в атрибут `{object.id}`, например. `{hm-rpc.0.OEQ1880105.4.ACTUAL_TEMPERATURE}`, и он будет привязан к значению этого объекта. +Просто запишите в атрибут `{object.id}`, например, `{hm-rpc.0.OEQ1880105.4.ACTUAL_TEMPERATURE}`, и он будет привязан к значению этого объекта. Если вы используете специальный формат, вы даже можете выполнять с ним некоторые простые операции, например, умножение или форматирование. Например, чтобы вычислить гипотенузу треугольника: @@ -54,11 +54,11 @@ value = await (async function () { `{h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;h*w}` просто умножит высоту на ширину. -Вы можете использовать *любые* функции Javascript (браузера). Аргументы должны быть определены с помощью ':', в противном случае они будут интерпретироваться как формула. +Вы можете использовать *любые* функции javascript (браузера). Аргументы должны быть определены с помощью ':', в противном случае они будут интерпретироваться как формула. -Позаботьтесь о типах. Все они определены как строки. Чтобы быть уверенным, что это значение будет рассматриваться как число, используйте функцию parseFloat. +Будьте осторожны с типами. Все они определены как строки. Чтобы быть уверенным, что значение будет обработано как число, используйте функцию parseFloat. -Итак, наш расчет гипотенузы будет: +Таким образом, наш расчет гипотенузы будет следующим: ``` {h:javascript.0.myCustom.height;w:javascript.0.myCustom.width;Math.max(20, Math.sqrt(Math.pow(parseFloat(h), 2) + Math.pow(parseFloat(w), 2)))} @@ -73,31 +73,31 @@ value = await (async function () { Поддерживаются следующие операции: -- `*` - умножение. Аргумент должен быть в скобках, например «*(4)». В этом примере мы умножаем значение на 4. -- `+` - доп. Аргумент должен быть в скобках, например «+(4.5)». В этом примере мы добавляем значение 4,5. -- `-` - вычесть. Аргумент должен быть в скобках, например «-(-674,5)». В этом примере мы вычитаем из значения -674,5. -- `/` - деление. Аргумент должен быть в скобках, например «/(0,5)». В этом примере мы делим значение на 0,5. -- `%` - по модулю. Аргумент должен быть в скобках, например «%(5)». В этом примере мы берем по модулю 5. +- `*` - умножение. Аргумент должен быть в скобках, например "*(4)". В этом примере мы умножаем значение на 4. +- `+` - сложение. Аргумент должен быть в скобках, например "+(4.5)". В этом примере мы прибавляем к значению 4.5. +- `-` - вычитание. Аргумент должен быть в скобках, например "-(-674.5)". В этом примере мы вычитаем из значения -674.5. +- `/` - деление. Аргумент должен быть в скобках, например "/(0.5)". В этом примере мы делим значение на 0.5. +- `%` - по модулю. Аргумент должен быть в скобках, например "%(5)". В этом примере мы берем по модулю 5. - `round` - округлить значение. -- `round(N)` - округлить значение на N знаков после точки, например, 34.678;round(1) => 34.7 -- `hex` - преобразовать значение в шестнадцатеричное значение. Все буквы в нижнем регистре. -- `hex2` - преобразовать значение в шестнадцатеричное значение. Все буквы в нижнем регистре. Если значение меньше 16, будет добавлен ведущий ноль. -- `HEX` - то же, что и шестнадцатеричное, но в верхнем регистре. -- `HEX2` - то же, что hex2, но в верхнем регистре. -- `date` - форматировать дату в соответствии с заданным форматом. Формат такой же, как в [iobroker.javascript](https://github.com/iobroker/iobroker.javascript/blob/master/README.md#formatdate). -- `min(N)` - если значение меньше N, взять N, иначе значение -- `max(M)` - если значение больше M, взять M, иначе значение +- `round(N)` - округлить значение до N знаков после точки, например, 34,678; round(1) => 34,7 +- `hex` - преобразовать значение в шестнадцатеричное значение. Все буквы строчные. +- `hex2` - преобразовать значение в шестнадцатеричное значение. Все буквы строчные. Если значение меньше 16, то будет добавлен начальный ноль. +- `HEX` - то же, что и hex, но в верхнем регистре. +- `HEX2` - то же, что и hex2, но в верхнем регистре. +- `date` - форматировать дату согласно заданному формату. Формат такой же, как в [iobroker.javascript](https://github.com/iobroker/iobroker.javascript/blob/master/README.md#formatdate) +- `min(N)` - если значение меньше N, берется N, иначе значение +- `max(M)` - если значение больше M, берется M, иначе значение - `sqrt` - квадратный корень -- `pow(n)` - степень N. -- `pow` - степень 2. -- `floor` - Math.floor -- `ceil` - Math.ceil -- `json` — операция получения json или свойства объекта. Например, `{id;json(common.name.en)}` -- `random(R)` - Math.random() * R или просто Math.random(), если нет аргумента -- `formatValue(decimals)` - форматировать значение в соответствии с настройками системы и использовать десятичные дроби. -- `date(format)` - форматировать значение как дату. Формат такой: «ГГГГ-ММ-ДД чч:мм:сс.сс». -— `momentDate(format, useTodayOrYesterday)` — форматирует значение как дату с помощью Moment.js. [Утвержденные форматы необходимо вводить в соответствии с библиотекой moment.js](https://momentjs.com/docs/#/displaying/format/). При использовании `useTodayOrYesterday=true` формат `moment.js` `ddd`/`dddd` заменяется на сегодня/вчера. -- `array(element1,element2[,element3,element4])` - возвращает элемент индекса. например: `{id.ack;array(ack ложно,ack истинно)}` +- `pow(n)` - степень числа N. +- `pow` - степень двойки. +- `этаж` - Математика.этаж +- `ceil` - Математика.ceil +- `json` - операция для получения json или свойства объекта. Например, `{id;json(common.name.en)}` +- `random(R)` - Math.random() * R, или просто Math.random(), если нет аргумента +- `formatValue(decimals)` - форматировать значение в соответствии с настройками системы и использовать десятичные знаки +- `date(format)` - форматировать значение как дату. Формат такой: "YYYY-MM-DD hh:mm:ss.sss" +- `momentDate(format, useTodayOrYesterday)` - форматировать значение как дату с помощью Moment.js. [Утвержденные форматы должны быть введены в соответствии с библиотекой moment.js](https://momentjs.com/docs/#/displaying/format/). При использовании `useTodayOrYesterday=true` формат `moment.js` `ddd`/`dddd` перезаписывается на сегодня / вчера +- `array(element1,element2[,element3,element4])` - возвращает элемент индекса. например: `{id.ack;array(ack is false,ack is true)}` Вы можете использовать этот шаблон в любом тексте, например @@ -105,13 +105,13 @@ value = await (async function () { My calculations with {objectID1;operation1;operation2;...} are {objectID2;operation3;operation4;...} ``` -или цветовые расчеты: +или расчеты цвета: ``` #{objectRed;/(100);*(255);HEX2}{objectGreen;HEX2}{objectBlue;HEX2} ``` -Чтобы показать временную метку объекта, напишите `.ts` или `.lc` (для последнего изменения) в конце идентификатора объекта, например: +Чтобы отобразить временную метку объекта, напишите `.ts` или `.lc` (для последнего изменения) в конце идентификатора объекта, например: ``` Last change: {objectRed.lc;date(hh:mm)} @@ -120,18 +120,18 @@ Last change: {objectRed.lc;date(hh:mm)} ### Специальные крепления Существует ряд различных внутренних привязок для предоставления дополнительной информации в представлениях: -* `username` — показывает вошедшего в систему пользователя -* `view` - имя фактического просмотра -* `wname` — имя виджета -* `widget` - объект со всеми данными виджета. Может использоваться только в части JS, например `{a:a;widget.data.name}` -* `widgetOid` — используйте oid виджета для присвоения значения виджетам в разделе назначения, например `{t:widgetOid.val;t}` -* `wid` - имя актуального виджета -* `язык` - может быть `de`, `en` или `ru`. -* `instance` — экземпляр браузера -* `login` - требуется ли вход в систему (например, чтобы показать/скрыть кнопку выхода из системы) -* `local_*` - если имя состояния начинается с `local_`, об этом не будет сообщено ioBroker, но будут обновлены все виджеты, которые зависят от этого состояния. (Локальная переменная для текущего сеанса браузера) +* `username` - показывает вошедшего в систему пользователя +* `view` - имя актуального вида +* `wname` - имя виджета +* `widget` - это объект со всеми данными виджета. Может использоваться только в части JS, как `{a:a;widget.data.name}` +* `widgetOid` - используйте OID виджета для назначения значения виджета в разделе назначения, например `{t:widgetOid.val;t}` +* `wid` - имя фактического виджета +* `language` - может быть `de`, `en` или `ru`. +* `instance` - экземпляр браузера +* `login` - требуется ли вход в систему или нет (например, чтобы показать/скрыть кнопку выхода) +* `local_*` - если имя состояния начинается с `local_`, оно не будет передано в ioBroker, но обновит все виджеты, зависящие от этого состояния. (Локальная переменная для текущего сеанса браузера) -Примечание. Чтобы использовать «:» в вычислениях (например, в строковых формулах), используйте вместо этого «::». +Примечание: чтобы использовать «:» в вычислениях (например, в строковой формуле), используйте вместо этого «::». **Помните**, что определения стилей будут интерпретироваться как привязки, поэтому используйте `{{style: value}}` или просто @@ -144,106 +144,103 @@ Last change: {objectRed.lc;date(hh:mm)} для этого. ## Фильтры -Чтобы визуализировать в одном представлении все количество виджетов, вы можете использовать фильтры, чтобы уменьшить количество виджетов, одновременно отображаемых в представлении. +Чтобы визуализировать на одном экране все количество виджетов, вы можете использовать фильтры, чтобы уменьшить количество виджетов, одновременно отображаемых на экране. -У каждого виджета есть поле `filter`. Если вы установите для него какое-то значение, например. `light`, поэтому вы можете использовать другой виджет `(bars - filters, filter - dropdown)`, чтобы контролировать, какой фильтр на самом деле активен. +Каждый виджет имеет поле `filter`. Если вы установите для него какое-либо значение, например, `light`, то вы сможете использовать другой виджет `(bars - filters, filter - dropdown)`, чтобы контролировать, какой фильтр на самом деле активен. ## Интерфейс управления Vis создает 3 переменные: -- `control.instance` - Здесь должен быть написан экземпляр браузера или `FFFFFFFF`, если необходимо контролировать каждый браузер. -- `control.data` — параметр для команды. См. описание конкретной команды. -- `control.command` — имя команды. Запись этой переменной запускает команду. Это означает, что перед записью команды «экземпляр» и «данные» должны быть подготовлены с данными. +- `control.instance` - Здесь следует указать экземпляр браузера или `FFFFFFFF`, если необходимо контролировать каждый браузер. +- `control.data` - Параметр для команды. Смотрите описание конкретной команды. +- `control.command` - Имя команды. Запись этой переменной запускает команду. Это означает, что перед тем, как команда будет записана, "instance" и "data" должны быть подготовлены с данными. Команды: -* `alert` — показать окно оповещения в vis-2. «control.data» имеет следующий формат «сообщение;заголовок;jquery-значок». Название и значок jquery не являются обязательными. Названия значков можно найти [здесь](http://jqueryui.com/themeroller/). Чтобы отобразить значок «ui-icon-info», напишите `Message;;info`. -* `changeView` — переключиться на нужный вид. «control.data» должно иметь имя представления. Вы также можете указать имя проекта как «project/view». Проект по умолчанию — «main». -* `refresh` — перезагрузить vis-2, например, после изменения проекта для перезагрузки во всех браузерах. -* `reload` - то же, что и обновление. -* `dialog` - Показать диалоговое окно. Диалог должен существовать на виду. Один из: +* `alert` - показать окно оповещения в vis-2. "control.data" имеет следующий формат "message;title;jquery-icon". Title и jquery-icon необязательны. Имена иконок можно найти [здесь](http://jqueryui.com/themeroller/). Чтобы показать иконку "ui-icon-info", напишите `Message;;info`. +* `changeView` - переключиться на желаемый вид. "control.data" должен иметь имя вида. Вы также можете указать имя проекта как `project/view`. Проект по умолчанию - `main`. +* `refresh` - перезагрузка vis-2, например, после изменения проекта для перезагрузки во всех браузерах. +* `reload` - то же, что и refresh. +* `dialog` - Показать диалоговое окно. Диалог должен существовать в представлении. Один из: - - `статический - HTML - Диалог`, - - `статический - Значок - Диалог`, - - `контейнер - HTML - просмотр в диалоговом окне jqui`, - - `контейнер - ext cmd - просмотр в диалоге jqui`, - - `контейнер - Значок - просмотр в диалоге jqui`, - - `контейнер - Кнопка - просмотр в диалоге jqui`. +- `статичный - HTML - Диалог`, +- `статичный - Значок - Диалог`, +- `контейнер - HTML - просмотр в диалоге jqui`, +- `контейнер - ext cmd - просмотр в диалоге jqui`, +- `контейнер - значок - просмотр в диалоговом окне jqui`, +- `контейнер - кнопка - просмотр в диалоге jqui`. - `control.data` должен иметь идентификатор виджета диалога, например. `w00056`. +`control.data` должен иметь идентификатор диалогового виджета, например, `w00056`. -* `диалогЗакрыть` -* `popup` — открывает новое окно браузера. Ссылка должна быть указана в `control.data`, например, http://google.com. +* `dialogClose` +* `popup` - открывает новое окно браузера. Ссылку необходимо указать в `control.data`, например, http://google.com * `playSound` - воспроизвести звуковой файл. Ссылка на файл указывается в `control.data`, например, http://www.modular-planet.de/fx/marsians/Marsiansrev.mp3. -Вы можете загрузить свой собственный файл в vis-2 и позволить ему воспроизводиться, например, `/vis-2.0/main/img/myFile.mp3`. -**Важно** Браузер не может воспроизводить аудио до тех пор, пока пользователь не щелкнет по странице хотя бы один раз. Это политика безопасности браузера. [Здесь](https://github.com/Hugo22O/chrome-autoplay) вы можете прочитать больше. +Вы можете загрузить свой собственный файл в vis-2 и воспроизвести его, например, как `/vis-2.0/main/img/myFile.mp3`. +**Важно** браузер не может воспроизводить аудио, пока пользователь не нажмет хотя бы один раз на странице. Это политика безопасности браузера. [Здесь](https://github.com/Hugo22O/chrome-autoplay) вы можете прочитать больше. -Если пользователь меняет представление или в начале, переменные будут заполнены vis-2 с помощью +Если пользователь изменит вид или в начале, переменные будут заполнены vis-2 с - `control.instance`: экземпляр браузера и `ack=true` -- `control.data`: имя проекта и представления в форме `project/view`, например. `main/view` (и `ack=true`) +- `control.data`: имя проекта и представления в форме `project/view`, например `main/view` (и `ack=true`) - `control.command`: `changedView` и `ack=true` Вы можете записать строку JSON или объект в `control.command` как `{instance: 'AABBCCDD', command: 'cmd', data: 'ddd'}`. В этом случае экземпляр и данные будут взяты из объекта JSON. -Пример адаптера JavaScript: +Пример для адаптера JavaScript: ```js setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ''}); ``` -Если вы пишете JSON в виде строки, убедитесь, что он доступен для анализа, например. `{"instance": "*", "command": "refresh", "data": ""}`, обратите внимание на `"`. +Если вы записываете JSON в виде строки, убедитесь, что ее можно проанализировать, например, `{"instance": "*", "command": "refresh", "data": ""}`, обратите внимание на `"`. ## Вид по умолчанию -Вы можете определить для каждого вида желаемое разрешение (Меню=>Инструменты=>Разрешение). -Это всего лишь визуальная граница в режиме редактирования, показывающая размер экрана на определенном устройстве. В режиме реального времени она не будет видна и будут видны все виджеты за пределами границы. +Вы можете определить для каждого вида желаемое разрешение (Меню=>Инструменты=>Разрешение). Это только визуальная граница в режиме редактирования, чтобы показать вам размер экрана на определенном устройстве. В режиме реального времени она не будет видна, и все виджеты за пределами границы будут видны. -Кроме того, вы можете определить, должно ли это представление использоваться по умолчанию для этого разрешения. +Кроме того, вы можете определить, следует ли использовать этот вид по умолчанию для данного разрешения. -Таким образом, каждый раз, когда вызывается `index.html` (без `#viewName`), будет открываться наиболее подходящий для данного разрешения вид. -Если только один вид имеет флаг *"По умолчанию"*, то этот вид будет открыт независимо от разрешения или ориентации экрана. +Таким образом, каждый раз, когда вызывается `index.html` (без `#viewName`), будет открываться наиболее подходящий для этого разрешения вид. +Если только один вид имеет флаг *"По умолчанию"*, то этот вид будет открываться независимо от разрешения экрана или ориентации. -Например, вы можете создать два вида «Альбомный-мобильный» и «Портрет-мобильный», и эти два вида будут автоматически переключаться при изменении ориентации или размера экрана. +Например, вы можете создать два вида: «Альбомный-Мобильный» и «Портретный-Мобильный», и эти два вида будут автоматически переключаться при изменении ориентации или размера экрана. -Существует вспомогательный виджет «Основное - Разрешение экрана», который показывает фактическое разрешение экрана и наиболее подходящий вид по умолчанию для этого разрешения. +Существует вспомогательный виджет «basic - Screen Resolution», который показывает фактическое разрешение экрана и наиболее подходящий вид по умолчанию для этого разрешения. ## Система разрешений ### Проект В диалоговом окне управления проектом вы можете настроить разрешения `read` и `write` для каждого пользователя ioBroker. -Флаг `read` означает, что проект доступен этому пользователю во время выполнения. -Флаг `write` означает, что проект доступен этому пользователю в режиме редактирования. +Флаг `read` означает, что проект доступен для этого пользователя в среде выполнения. +Флаг `write` означает, что проект доступен для этого пользователя в режиме редактирования. -Когда новый пользователь создается через адаптер администратора ioBroker, по умолчанию он будет иметь оба разрешения. +При создании нового пользователя с помощью адаптера ioBroker Admin он по умолчанию будет иметь оба разрешения. ### Вид -Вы также можете указать, к каким представлениям пользователю разрешен доступ во время выполнения и режиме редактирования. -Если одно из прав доступа не предоставлено на уровне проекта, его указание на уровне представления не имеет никакого эффекта, поскольку проект в целом не будет доступен. +Вы также можете указать, к каким представлениям пользователю разрешен доступ для режима выполнения и редактирования. +Если одно из прав доступа не предоставлено на уровне проекта, указание их на уровне представления не имеет никакого эффекта, поскольку проект в целом не будет доступен. -Обратите внимание: всякий раз, когда вы пытаетесь получить доступ к представлению, на которое у текущего пользователя нет разрешения, вместо этого пользователь увидит панель выбора проекта. +Обратите внимание, что всякий раз, когда вы пытаетесь получить доступ к представлению, на которое у текущего пользователя нет прав, вместо этого пользователь увидит панель выбора проекта. ### Виджет -Если у пользователя нет разрешений `read`, виджет не будет отображаться во время выполнения. Если у пользователя нет разрешений `write`, виджет не будет отображаться в режиме редактирования. +Если у пользователя нет разрешений `read`, виджет не будет отображаться в среде выполнения. Если у пользователя нет разрешений `write`, виджет не будет отображаться в режиме редактирования. ## Настройки -### Перезагрузить, если спит дольше, чем -Существует правило, что после некоторого периода отключения вся страница VIS будет перезагружена для синхронизации проекта. -Настроить это можно в меню «Настройки...». Если вы установите интервал «никогда», страница никогда не будет перезагружаться. +### Перезагрузить, если сон дольше, чем +Существует правило, что после некоторого периода отключения вся страница VIS будет перезагружена для синхронизации проекта. Вы можете настроить это в меню «Настройки...». Если вы установите интервал на «никогда», то страница никогда не будет перезагружена. ### Интервал повторного подключения -Установите интервал между попытками подключения в случае отключения. Если вы установите 2 секунды, соединение будет пытаться установить каждые 2 секунды. +Установите интервал между попытками подключения в случае отключения. Если вы установите 2 секунды, он будет пытаться установить соединение каждые 2 секунды. ### Темный экран повторного подключения -Иногда (ночью) требуется темный экран загрузки. С помощью этой опции вы можете установить его. +Иногда (ночью) требуется тёмный экран загрузки. С помощью этой опции вы можете это настроить. Обратите внимание, что эти настройки действительны только для повторного подключения, а не для первого подключения. ![Темный](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/img/dark_screen.png) -## SVG и currentColor -Ключевое слово currentColor в CSS позволяет элементам наследовать текущий цвет текста от родительского элемента. -Это может быть особенно полезно в SVG (масштабируемой векторной графике), поскольку обеспечивает более динамичное оформление и более простую интеграцию с HTML-контентом. +## SVG и текущий цвет +Ключевое слово currentColor в CSS позволяет элементам наследовать текущий цвет текста от родительского элемента. Это может быть особенно полезно в SVG (масштабируемая векторная графика), поскольку обеспечивает более динамичную стилизацию и более простую интеграцию с содержимым HTML. Вы можете использовать ключевое слово currentColor вместо определенного значения цвета для любого свойства внутри SVG, которое принимает значение цвета. Вот простой пример с кругом в SVG: @@ -254,15 +251,63 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' ``` -В этом случае SVG принимает цвет родительского элемента. -Например, если он использовался в меню и меню красного цвета, кружок будет красным. +В этом случае, если SVG принимает цвет родительского элемента. Например, если он использовался в меню, а меню красное, круг будет красным. -## Делать - +1. создайте форк репозитория iobroker/iobroker.vis-2 в своей учетной записи через пользовательский интерфейс GitHub + +2. клонируйте репозиторий в каталог. скопируйте URL-адрес из вашего репозитория GitHub. Команда выглядит так: + +``` +git clone https://github.com//ioBroker.vis-2.git +``` + +3. откройте загруженный репозиторий с помощью вашей IDE + +4. Чтобы установить и загрузить все необходимые библиотеки, выполните следующую команду в терминале в корневом каталоге репозитория + +``` +npm run install-monorepo +``` + +5. Чтобы запустить редактор в браузере, выполните следующую команду. + +Отдельно запущенный экземпляр сервера iobroker должен быть доступен на порту 8082. + +``` +npm run start +``` + +- Отладка доступна в браузере, например Chrome F12 +- при изменении файла поддерживается автоматическая перезагрузка редактора + +## То, что нужно сделать + ## Changelog +### 2.10.7 (2024-07-23) +* (bluefox) Optimization of the module federation + +### 2.10.6 (2024-07-20) +* (bluefox) Improved the typing in typescript + +### 2.10.4 (2024-07-16) +* (bluefox) Corrected the jumping by object selection +* (bluefox) Implemented swipe widget + +### 2.10.3 (2024-07-11) +* (bluefox) Converted the CanJSWidget to typescript +* (bluefox) Added "clone" button to the attribute groups + +### 2.10.2 (2024-07-10) +* (bluefox) Removed incompatible package for styles +* (bluefox) All widgets must be updated +* (bluefox) The basic input value widget was migrated to ReactJS + ### 2.9.64 (2024-05-23) * (bluefox) Added possibility to clear a text field by button @@ -376,7 +421,7 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' * (foxriver76) added select box to dimension attributes if multiple widgets selected ### 2.9.18 (2024-01-15) -* (foxriver76) fixed issue, that old attributes value is shown in some scenarios +* (foxriver76) fixed issue that old attributes value is shown in some scenarios * (foxriver76) dedicated permission system extended to view level ### 2.9.17 (2024-01-13) @@ -391,14 +436,14 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' ### 2.9.14 (2024-01-09) * (foxriver76) fixed last change y-offset for some widgets * (foxriver76) fixed issue where JquiState did not respect data type -* (foxriver76) fixed issues with BulkEdtior (dialog not closing and other dialog showing wrong button) +* (foxriver76) fixed issues with BulkEdtior (dialog not closing and other dialog showing the wrong button) * (foxriver76) implemented workaround resize bug for https://github.com/devbookhq/splitter/issues/15 ### 2.9.13 (2024-01-08) * (foxriver76) correctly detect IDs in bindings when they contain hash character * (foxriver76) fix crash when multiple JquiState widgets selected -* (foxriver76) prevent showing widget in group after it is already cut out -* (foxriver76) prevent usage of widgets which are not in group for calculating rulers on group view +* (foxriver76) prevent showing widget in a group after it is already cut out +* (foxriver76) prevent usage of widgets which are not in a group for calculating rulers on group view ### 2.9.12 (2024-01-04) * (foxriver76) optimized copy/paste/cut in groups @@ -407,10 +452,10 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' * (foxriver76) fixed bug with visibility calculation ### 2.9.10 (2024-01-02) -* (foxriver76) remove accidentally added script file, which lead to crash +* (foxriver76) remove accidentally added script file, which leads to crash ### 2.9.9 (2024-01-01) -* (foxriver76) allow to import views without attribute `activeWidgets` +* (foxriver76) allow importing views without attribute `activeWidgets` * (foxriver76) make BasicBulb behave more like its old version * (foxriver76) fixed issue that data of different widget is displayed in edit mode * (foxriver76) fixed issue that every state update is used for visibility calculation @@ -423,7 +468,7 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' * (foxriver76) fixed issue on theme switch ### 2.9.7 (2023-12-19) -* (bluefox) Allowed the read only flag for Styled/Input +* (bluefox) Allowed the read-only flag for Styled/Input ### 2.9.6 (2023-12-14) * (foxriver76) fixed issues with the BulkEditor @@ -450,7 +495,7 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' * (foxriver76) fixed import of views, which were inside a folder * (foxriver76) fixed theme also applied in iframe * (foxriver76) do not simply reuse widget ids when importing or copying views -* (foxriver76) implemented basic bulb widget as react widget +* (foxriver76) implemented basic bulb widget as React widget * (foxriver76) made script tags work in basic html widget ### 2.9.2 (2023-11-29) @@ -461,19 +506,19 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' ### 2.9.1 (2023-11-28) * (foxriver76) recalculate fields after moving widgets -* (foxriver76) fixed pasting group on other view +* (foxriver76) fixed a pasting group on other view * (foxriver76) fixed theme also applied in iframe -* (bluefox) implemented Basic Image as react widget +* (bluefox) implemented Basic Image as React widget ### 2.9.0 (2023-11-27) * (bluefox) implemented SVG shape and Screen Resolution widgets natively -* (bluefox) implemented Basic iFrame as react widget +* (bluefox) implemented Basic iFrame as React widget * (foxriver76) only allow zip files at project import * (foxriver76) fix overflow being overwritten * (foxriver76) sort pages and projects alphabetically * (foxriver76) fixed problem on saving * (foxriver76) fixed problem with groups when `always render` is activated -* (foxriver76) allow to change color and write lowercase in tabs component +* (foxriver76) allow changing color and write lowercase in a tabs component * (foxriver76) fixed problem that navigation from a alwaysRender page is shown on different page ### 2.8.0 (2023-11-24) @@ -624,4 +669,4 @@ Additionally, you need a license to use the adapter. The following license editi Short content: Licensees may copy, distribute, display and perform the work and make derivative works based on it only if they give the author or licensor the credits in the manner specified by these. Licensees may copy, distribute, display, and perform the work and make derivative works based on it only for noncommercial purposes. -(Free for non-commercial use). +(Free for non-commercial use). \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.vis-homekittiles/README.md b/docs/ru/adapterref/iobroker.vis-homekittiles/README.md index 6b77a5627..38bd47b57 100644 --- a/docs/ru/adapterref/iobroker.vis-homekittiles/README.md +++ b/docs/ru/adapterref/iobroker.vis-homekittiles/README.md @@ -1,48 +1,78 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-homekittiles/README.md title: ioBroker.vis-homekittiles -hash: DtHtYJQ2qVyk4C1ID1E1wTG7erQXaiviSwWgbin6eFM= +hash: fJIjdt/wr8vFhhwFuJOLv5/3Zr5jevRq07RH7Nbrz9I= --- # IoBroker.vis-homekittiles -![НПМ-версия](https://img.shields.io/npm/v/iobroker.vis-homekittiles.svg) +![версия НПМ](https://img.shields.io/npm/v/iobroker.vis-homekittiles.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-homekittiles.svg) ![Количество установок](https://iobroker.live/badges/vis-homekittiles-installed.svg) -![Текущая версия в стабильном репозитории.](https://iobroker.live/badges/vis-homekittiles-stable.svg) +![Текущая версия в стабильном репозитории](https://iobroker.live/badges/vis-homekittiles-stable.svg) ![НПМ](https://nodei.co/npm/iobroker.vis-homekittiles.png?downloads=true) -**Тесты:** ![Тестирование и выпуск](https://github.com/Standarduser/ioBroker.vis-homekittiles/workflows/Test%20and%20Release/badge.svg) +**Тесты:** ![Тест и выпуск](https://github.com/Standarduser/ioBroker.vis-homekittiles/workflows/Test%20and%20Release/badge.svg) -## HomeKit-Tiles для ioBroker-VIS +## HomeKit-плитки для ioBroker-VIS Homekit Tiles — это набор виджетов, основанный на дизайне Apple HomeKit. -Особенностью виджетов является то, что они не содержат элементов фиксированного стиля, а все форматируется с помощью CSS. В результате в редакторе VIS нет отдельных настроек положения и/или размера значков, надписей и т.п. Дизайн корректируется путем изменения CSS-кода. Для этого в качестве шаблона можно использовать CSS-код из файла `/widgets/homekittiles/css/style.css`. Код вставляется во вкладку CSS в редакторе VIS и может быть настроен по желанию. Также можно добавить свои собственные классы CSS через редактор VIS в разделе виджетов «Общие». +Особенностью виджетов является то, что они не содержат никаких фиксированных элементов стиля, а все форматируется с помощью CSS. В результате в редакторе VIS нет отдельных настроек для положения и/или размера иконок, надписей и т. д. Дизайн корректируется путем изменения кода CSS. Для этого в качестве шаблона можно использовать код CSS из файла `/widgets/homekittiles/css/style.css`. Код вставляется во вкладку CSS в редакторе VIS и может быть настроен по желанию. Также можно добавлять собственные классы CSS через редактор VIS в разделе «Общие» виджетов. -Виджеты предназначены для VIS 1.x. +Виджеты разработаны для VIS 1.x. -**Примечание.** По причинам лицензирования в этот адаптер не включены значки. Очень хорошие источники иконок: +**Примечание:** По причинам лицензирования в комплект этого адаптера не входят иконки. Очень хорошие источники иконок: * [https://www.flaticon.com](https://www.flaticon.com) * [https://icons8.com](https://icons8.com) [🇩🇪 Документация](doc/homekittiles-de.md) [🇺🇸 Документация](doc/homekittiles-en.md) -## Дела, которые необходимо сделать -* создать кнопку Simpe со значком -* создать мини-медиаплеер -* создать Select-тайл -* создать кнопку подменю -* Радиокнопка: новое свойство «деление» с выбираемыми значениями (1:1; 3:4). -* Выбор даты: динамические значки дня/месяца. +## Чем заняться +* создать Мини-медиаплеер +* создать Select-плитку +* создать флажок для Sonos Group +* Выбор даты: динамические значки дня/месяца +* новый виджет: пинпад (РАБОТА В ПРОЦЕССЕ) +* Плитки: добавить кнопку для диалога ## Changelog +### **WORK IN PROGRESS** + +* Added option to show icons colored on tiles and radio +* Added new styles "big", "small" and "only icon" for all tiles + +### 0.3.1 (2024-07-12) + +* Added submenu widget + +### 0.2.7 (2024-07-10) + +* repaired Thermostat dialog tile widget + +### 0.2.6 (2024-07-05) + +* Block operation: added ability to show widget disabled +* Added JSON Table +* Navigation-Button-Set: fixed notification arrangement +* Dynamization of some input fields + +### 0.1.1 (2024-07-02) + +* Added missing translations +* Added new style "indicator" for all tiles (IF YOUR TILES LOOK BROKEN AFTER UPDATE: SELECT EVERY TILE IN EDITOR - JUST CLICK ON IT. Sorry for that.) +* Radiobutton: new property "division" with selectable values +* Radiobutton: change size automatically if direction was changed +* Signal pictures: repaired comparision with number (<=nn) +* Signal pictures: checkbox for show/not show in editor +* Thermostat dialog: sort order of attributes (dialog attrs one up) + ### 0.0.16 (2024-06-08) * (Standarduser) thermostat: fixed window-sizing @@ -143,4 +173,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.vis-map/README.md b/docs/ru/adapterref/iobroker.vis-map/README.md index 6eed36760..0844af604 100644 --- a/docs/ru/adapterref/iobroker.vis-map/README.md +++ b/docs/ru/adapterref/iobroker.vis-map/README.md @@ -1,38 +1,45 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.vis-map/README.md title: ioBroker.vis-карта -hash: AuN4FwNGTj3kE9XUp7CpFeo9c3fj97QGvtmTjLa72nk= +hash: wrWX5vCEa+TyCgDVUkiRLNIyI2SdtOdQd4cOyJHlgv4= --- ![Логотип](../../../en/adapterref/iobroker.vis-map/admin/vis-map.png) ![Количество установок](http://iobroker.live/badges/vis-map-stable.svg) -![НПМ-версия](http://img.shields.io/npm/v/iobroker.vis-map.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.vis-map.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.vis-map.svg) ![НПМ](https://nodei.co/npm/iobroker.vis-map.png?downloads=true) -# IoBroker.vis-map +# IoBroker.vis-карта ![Скриншот](../../../en/adapterref/iobroker.vis-map/img/widgets.png) -Виджеты, отображающие координаты на карте. -Фактически поддерживаются только Open Street Maps и Google. Чтобы использовать Карты Google, вам необходимо получить ключ API для Карт Google. -Вы можете получить его [здесь](https://console.developers.google.com/flows/enableapi?apiid=maps_backend,geocoding_backend,directions_backend,distance_matrix_backend,elevation_backend&keyType=CLIENT_SIDE&reusekey=true) +Виджеты, которые могут показывать координаты на карте. +Фактически поддерживаются только Open Street Maps и Google. Чтобы использовать Google Maps, вам необходимо получить API Key для Google Maps. +Вы можете получить его [здесь](https://developers.google.com/maps/documentation/javascript/get-api-key) ## Использование -Вы можете связать долготу и широту отдельно или просто поместить в **longitude** идентификатор объекта со следующим значением: +Вы можете связать долготу и широту отдельно или просто поместить в **долготу** идентификатор объекта со значением, как показано ниже: -- 7.0001;49.0000 (долгота; широта) -- 7,0001;49,0000 (долгота; широта) +- 7.0001;49.0000 (долгота ; широта) +- 7,0001;49,0000 (долгота ; широта) - 7.0001,49.0000 (долгота, широта) - 49.0000,7.0001 (широта, долгота + флаг замены) -- 49.0000;7.0001 (широта; долгота + флаг замены) +- 49.0000;7.0001 (широта ; долгота + флаг замены) - +### **РАБОТА В ХОДЕ** --> ## Changelog +### 1.1.2 (2024-07-12) +- fix datapoint handling for lat/lan +- Make data points in 0_userdata work again + +### 1.1.0 (2024-03-07) +- (bluefox) Removed dependency to `iobroker.vis`. Only show the message if vis is not installed + ### 1.0.5 (2024-01-14) - (bluefox) Added vis-2 to the restart by installation @@ -65,4 +72,4 @@ hash: AuN4FwNGTj3kE9XUp7CpFeo9c3fj97QGvtmTjLa72nk= ## License Copyright (c) 2016-2024 bluefox - MIT + MIT \ No newline at end of file diff --git a/docs/ru/adapterref/iobroker.wifilight/README.md b/docs/ru/adapterref/iobroker.wifilight/README.md index 4a21e3a78..0b0605607 100644 --- a/docs/ru/adapterref/iobroker.wifilight/README.md +++ b/docs/ru/adapterref/iobroker.wifilight/README.md @@ -1,20 +1,20 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.wifilight/README.md title: ioBroker.wifilight -hash: 0s+GfsnvdScrPZYX+N3JjBu9Z/g9LtFF6NewlDXsDlc= +hash: 7c2nJoRfY/j3XWOssHmvFNnG3HeclP8bAs9OJXfF87Q= --- ![Логотип](../../../en/adapterref/iobroker.wifilight/admin/wifilight.png) ![Количество установок](http://iobroker.live/badges/wifilight-stable.svg) -![версия NPM](http://img.shields.io/npm/v/iobroker.wifilight.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.wifilight.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.wifilight.svg) # IoBroker.wifilight -![Тестируйте и выпускайте](https://github.com/iobroker-community-adapters/iobroker.wifilight/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/wifilight/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +![Тест и выпуск](https://github.com/iobroker-community-adapters/iobroker.wifilight/workflows/Test%20and%20Release/badge.svg) [![Статус перевода](https://weblate.iobroker.net/widgets/adapters/-/wifilight/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**Этот адаптер использует библиотеки 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. ## Описание Адаптер ioBroker для WiFi Light @@ -24,13 +24,13 @@ hash: 0s+GfsnvdScrPZYX+N3JjBu9Z/g9LtFF6NewlDXsDlc= Добавлена поддержка Mi-Light/LimitlessLED RGBW. ## Первоначальное создание -Этот адаптер изначально был создан @soef по адресу https://github.com/soef/ioBroker.wifilight, но больше не поддерживается, поэтому мы переместили его в сообщество iobroker, чтобы можно было исправить ошибки. спасибо @soef за его работу. +Этот адаптер изначально был создан @soef на https://github.com/soef/ioBroker.wifilight, но больше не поддерживается, поэтому мы переместили его в iobroker-community, чтобы можно было исправить ошибки. Спасибо @soef за его работу. -### Как использовать состояние команды: -+ Возможные идентификаторы: ``red, r, green, g, blue, b, bri, sat, transition, on, off`` + Строка может быть в формате JSON с круглыми скобками или без них. -+ Вы также можете присвоить значение с помощью = + Диапазон цветов: ```0..255``` + Диапазон bri: ``0..100`` +### Как использовать команду state: ++ Возможные идентификаторы: ``red, r, green, g, blue, b, bri, sat, transition, on, off`` + Строка может быть JSON с скобками или без них. ++ Вы также можете назначить значение с помощью = + Диапазон цветов: `0..255` + Диапазон bri: `0..100` -Несколько примеров: +Некоторые примеры: ``` r = 100; g = 250, b = 100 @@ -43,31 +43,38 @@ on ``` Чтобы изменить цвет, вам не обязательно использовать все три значения. -Например, ``` red = 0 ```, синий и зеленый останутся без изменений. +Например, `red = 0`, синий и зеленый останутся неизменными. -### R, g, b, w Состояния: +### R, g, b, w Штаты: + Значения 0..255 + \#rrggbb[ww] -## Установка -Используйте панель адаптера в iobroker, чтобы добавить экземпляр. +## Changelog + +### 1.3.2 (2024-08-12) +* (mcm1957) files section has been fixed -Если не существует, выполните следующую команду в корневом каталоге iobroker (например, в /opt/iobroker). +### 1.3.1 (2024-08-12) +* (p-kehling) Added ignorance of acknowledgement messages for on/off commands +* (bluefox) refactoring -``` -npm install iobroker.wifilight -``` +### 1.2.2 (2024-04-15) +* (mcm1957) Fix js-controller dependency -### Исправление ошибок -Если не работает, попробуйте установить пакет soef npm. +### 1.2.1 (2024-04-13) +* (mcm1957) Dependencies have been updated -``` -cd /opt/iobroker/node_modules/iobroker.wifilight -sudo npm install soef -``` +### 1.2.0 (2024-04-13) +* (mcm1957) Adapter requires node.js 18 and js-controller >= 5 now +* (mcm1957) Dependencies have been updated + +### 1.1.4 (2022-06-17) +* (Apollon77) Prevent a crash case reported by sentry -## Changelog ### 1.1.3 (2022-04-27) -* (Apollon77) Prevent crash case reported by sentry +* (Apollon77) Prevent a crash case reported by sentry ### 1.1.2 (2022-04-19) * (Apollon77) Prevent crashes when states are controlled with null as value @@ -85,6 +92,7 @@ sudo npm install soef ## License The MIT License (MIT) +Copyright (c) 2024 iobroker-community-adapters Copyright (c) 2020-2022 ioBroker Community Developers, 2019-2020 soef , Permission is hereby granted, free of charge, to any person obtaining a copy @@ -103,4 +111,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.worx/img/instance.png b/docs/ru/adapterref/iobroker.worx/img/instance.png index e60f1e8a1..74eaea40c 100644 Binary files a/docs/ru/adapterref/iobroker.worx/img/instance.png and b/docs/ru/adapterref/iobroker.worx/img/instance.png differ diff --git a/docs/ru/adapterref/iobroker.worx/img/mower_1.png b/docs/ru/adapterref/iobroker.worx/img/mower_1.png index 37b4e8305..42bcdf7a5 100644 Binary files a/docs/ru/adapterref/iobroker.worx/img/mower_1.png and b/docs/ru/adapterref/iobroker.worx/img/mower_1.png differ diff --git a/docs/ru/adapterref/iobroker.worx/img/mower_2.png b/docs/ru/adapterref/iobroker.worx/img/mower_2.png index 738e93382..2f754b9cd 100644 Binary files a/docs/ru/adapterref/iobroker.worx/img/mower_2.png and b/docs/ru/adapterref/iobroker.worx/img/mower_2.png differ diff --git a/docs/ru/adapterref/iobroker.worx/img/mower_3.png b/docs/ru/adapterref/iobroker.worx/img/mower_3.png index 0b1f38ae3..c32679fad 100644 Binary files a/docs/ru/adapterref/iobroker.worx/img/mower_3.png and b/docs/ru/adapterref/iobroker.worx/img/mower_3.png differ diff --git a/docs/ru/adapterref/iobroker.worx/img/mower_4.png b/docs/ru/adapterref/iobroker.worx/img/mower_4.png index 536d8eccd..bf7b40643 100644 Binary files a/docs/ru/adapterref/iobroker.worx/img/mower_4.png and b/docs/ru/adapterref/iobroker.worx/img/mower_4.png differ diff --git a/docs/ru/adapterref/iobroker.yahka/README.md b/docs/ru/adapterref/iobroker.yahka/README.md index 37aefa323..dea7e37bb 100644 --- a/docs/ru/adapterref/iobroker.yahka/README.md +++ b/docs/ru/adapterref/iobroker.yahka/README.md @@ -1,45 +1,49 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/adapterref/iobroker.yahka/README.md title: iobroker.yahka -hash: SsZqL6Zf+r1aOVnFbH3rE1PbMBkxdSQtGk2UXpKue6E= +hash: 5kS1aNzjVYFZ7GMXeZQp0GDoEU84l7z6x91GrxmtWbQ= --- ![Логотип](../../../en/adapterref/iobroker.yahka/admin/yahka.png) ![Количество установок](http://iobroker.live/badges/yahka-stable.svg) -![версия NPM](http://img.shields.io/npm/v/iobroker.yahka.svg) +![версия НПМ](http://img.shields.io/npm/v/iobroker.yahka.svg) ![Загрузки](https://img.shields.io/npm/dm/iobroker.yahka.svg) ![Тесты](https://travis-ci.org/ioBroker/ioBroker.yahka.svg?branch=master) ![Пожертвовать](https://img.shields.io/badge/Donate-PayPal-green.svg) -#iobroker.yahka +# Iobroker.yahka ## Установка и использование -Подробнее об установке и настройке этого адаптера см. в [Вики](https://github.com/jensweigele/ioBroker.yahka/wiki) +Подробную информацию об установке и настройке этого адаптера см. в разделе [Вики](https://github.com/jensweigele/ioBroker.yahka/wiki) ## Предпосылки Прежде чем вы сможете установить адаптер, вам необходимо установить несколько пакетов (для Linux): `sudo apt-get install libavahi-compat-libdnssd-dev` -## Установите последнюю **выпуск** -Просто нажмите кнопку «+» рядом с «Адаптер Homekit yahka» в панели администратора ioBroker на странице «Адаптер». +## Установите последнюю **версию** +Просто нажмите кнопку «+» рядом с «Homekit yahka adapter» в панели администратора ioBroker на странице «Адаптер». -## Установите последнюю **бета-версию** +## Установите последнюю **Бета** Если вы хотите быть в курсе последних событий и протестировать последнюю бета-версию, вы можете установить адаптер через URL-адрес GitHub. (Иногда требуется дополнительная загрузка (например, `iobroker upload yahka`) и перезапуск адаптера) -## Восстановления резервной копии -Внимание: Чтобы иметь возможность восстановить `ioBroker.yahka` в другой системе, в дополнение к обычным `iobroker backup` и `iobroker restore` также необходимо сделать резервную копию папки `yahka.X.hapdata` в `/opt/iobroker/iobroker-data` и, при необходимости, реставрируется. [Wiki](https://github.com/jensweigele/ioBroker.yahka/wiki/ioBroker.yahka-auf-ein-anderes-System-umziehen) / [Выпуск](https://github.com/jensweigele/ioBroker.yahka/issues/176) +## Резервное копирование и восстановление +Внимание: Чтобы иметь возможность восстановить `ioBroker.yahka` в другой системе, в дополнение к обычным `iobroker backup` и `iobroker restore`, папка `yahka.X.hapdata` в `/opt/iobroker/iobroker-data` также должна быть зарезервирована и, при необходимости, восстановлена. [Wiki](https://github.com/jensweigele/ioBroker.yahka/wiki/ioBroker.yahka-auf-ein-anderes-System-umziehen) / [Проблема](https://github.com/jensweigele/ioBroker.yahka/issues/176) + +Другим вариантом для резервного копирования и восстановления является адаптер [Резервное копирование](https://github.com/simatec/ioBroker.backitup/blob/master/README.md). Он автоматически создает резервную копию папки `yahka.X.hapdata`. Восстановление также возможно через графический интерфейс BackItUp. + +Подробное описание вы можете найти [здесь](https://github.com/simatec/ioBroker.backitup/wiki/ioBroker.backitup-Wiki-Deutsch#yahka-backup). ## Поиск неисправностей ### Мост не работает или устройство не отвечает Попробуйте изменить MAC/имя пользователя моста или активировать рекламодателя ciao. -### Доступны не все новые функции: -Если после обновления yahka доступны не все новые функции, попробуйте выполнить загрузку (например, `iob upload yahka`) и перезапустите адаптер. +### Не все новые функции доступны: +Если после обновления yahka не все новые функции доступны, попробуйте выполнить загрузку (например, `iob upload yahka`) и перезапустить адаптер. ### Отсутствует демон Avahi (linux) -Если у вас есть следующая ошибка в журнале: +Если в журнале обнаружена следующая ошибка: ``` Error: 2016-07-26 18:57:17.989 error at Error (native) @@ -47,9 +51,9 @@ Error: 2016-07-26 18:57:17.989 error dns service error: unknown uncaught 2016-07-26 18:57:17.985 error exception: dns service error: unknown ``` -Вы должны сделать несколько дополнительных шагов: +Вам необходимо выполнить некоторые дополнительные шаги: -* установить демон avahi: +* установка демона avahi: `sudo apt-get install avahi-daemon -y` @@ -57,7 +61,7 @@ uncaught 2016-07-26 18:57:17.985 error exception: dns service error: unknown `sudo nano avahi-daemon.conf ` -изменить следующие переменные: +измените следующие переменные: ``` host-name=\ @@ -68,38 +72,38 @@ enable-dbus=yes ``` ### Отсутствует пакет pam-devel (linux) -Если у вас есть следующая ошибка в журнале: +Если в журнале обнаружена следующая ошибка: ``` ../authenticate_pam.cc:30:31: fatal error: security/pam_appl.h: Datei oder Verzeichnis nicht gefunden #include ``` -Вы должны установить пакет pam-devel: +Вам необходимо установить пакет pam-devel: -* установить демон avahi: +* установка демона avahi: `sudo apt-get install pam-devel -y` -### Отсутствует bonjour (windows) +### Отсутствует бонжур (окна) - Скачать: `https://www.samuelattard.com/files/bonjourcore2.msi` -- Выполнить: `msiexec/i bonjourcore2.msi/qn` +- Выполнить: `msiexec /i bonjourcore2.msi /qn` - удалить: `del bonjourcore2.msi` - Скачать: `https://www.samuelattard.com/files/bonjoursdksetup.exe` -- Выполнить: `bonjoursdksetup.exe /quiet` +- Выполните: `bonjoursdksetup.exe /quiet` - Удалить: `del bonjoursdksetup.exe` - Установить: `set BONJOUR_SDK_HOME=C:\Program Files\Bonjour SDK` -И после этого установить адаптер yahka. +И после этого установите адаптер yahka. ## Несколько слов о HomeKit Архитектура HomeKit выглядит следующим образом: -Есть **устройства** как логические объекты. Каждое устройство может иметь несколько **служб**, и каждая служба имеет несколько **характеристик**. +Есть **устройства** как логические сущности. Каждое устройство может иметь несколько **сервисов**, а каждая услуга имеет несколько **характеристик**. -В конце концов, характеристика — это конечная точка, из которой можно считывать или записывать значения. +В конечном итоге характеристика представляет собой конечную точку, из которой можно считывать или в которую можно записывать значения. -Какие характеристики может иметь служба, определяются Apple/HomeKit и определяются типом службы. Типы служб также определяются Apple/HomeKit. +Какие характеристики может иметь услуга, определяется Apple/HomeKit и определяется типом услуги. Типы услуг также определяются Apple/HomeKit. Пример: @@ -108,85 +112,96 @@ enable-dbus=yes 1. Устройство открывания гаражных ворот 2. Свет -Сама служба открывания гаражных ворот может иметь различные характеристики, например: CurrentDoorState, TargetDoorState и многие другие. +Сама служба открывания гаражных ворот может иметь различные характеристики, такие как: CurrentDoorState, TargetDoorState и многие другие. -Кроме того, Light Service может иметь различные характеристики, такие как: On (и многие другие для изменения цвета света и т. д.) +Кроме того, служба освещения может иметь различные характеристики, например: Вкл. (и многие другие для изменения цвета освещения и т. д.) ## Что делает Яхка С помощью Yahka можно сопоставить точку данных ioBroker с характеристикой HomeKit. -Поскольку иногда необходимы сопоставления (например, значения «Состояние» гаражных ворот различаются между HomeKit и другими системами), также есть возможность указать Функции для преобразования значений. Это описано ниже. +Поскольку иногда необходимы сопоставления (например, значения «Состояния» гаражных ворот различаются между HomeKit и другими системами), также есть возможность указать Функции для преобразования значений. Это описано ниже. -Чтобы избежать слишком большой работы по администрированию, все Устройства, которые вы создаете в Yahka, находятся за так называемым «Мостом». С этим мостом вам нужно только соединить мост с вашим устройством iOS, чтобы получить доступ ко всем устройствам. В противном случае вам потребуется выполнить сопряжение каждого устройства Yahka с Homekit. +Чтобы избежать лишней работы по администрированию, все устройства, которые вы создаете в Yahka, находятся за так называемым «мостом». С этим мостом вам нужно только соединить мост с вашим устройством iOS, чтобы получить доступ ко всем устройствам. В противном случае вам нужно будет соединить каждое устройство Yahka с Homekit. ## Настройте мост и создайте устройства и службы -Каждому устройству, которое должно быть сопряжено с Homekit, требуется «имя пользователя», которое имеет форму mac-адреса. Yahka автоматически генерирует случайное имя пользователя для каждого экземпляра yahka. +Каждому устройству, которое должно быть сопряжено с Homekit, необходимо «имя пользователя», которое имеет форму mac-адреса. Yahka автоматически генерирует случайное имя пользователя для каждого экземпляра yahka. **Важно: если вы измените имя пользователя после сопряжения Yahka с HomeKit, вам необходимо перенастроить все устройства в iOS (назначение комнаты, положение и т. д.). Изменение имени пользователя означает для iOS, что это совершенно новое устройство!** -Помимо имени пользователя необходимо указать PIN-код, который необходимо ввести на устройстве iOS. -Все это можно указать, нажав «:yahka.0» в панели администратора Yahka. (Разверните панель справа после нажатия на запись в списке). Там же могло быть изменено и название моста. +Помимо имени пользователя, вам необходимо указать PIN-код, который необходимо ввести на устройстве iOS. +Все это можно указать, нажав на ":yahka.0" в панели администратора Yahka. (Разверните панель справа после нажатия на запись в списке). Там же можно изменить имя моста. -После настройки моста вы можете добавить понравившиеся устройства с помощью кнопки «Добавить устройство» вверху. -После того, как устройство добавлено/выбрано, вы можете добавить службы к этому устройству. +После настройки моста вы можете добавить нужные вам устройства с помощью кнопки «Добавить устройство» вверху. +После добавления/выбора устройства вы можете добавить службы к этому устройству. -Необходимо указать имя службы и тип службы. +Необходимо указать название услуги и тип услуги. -В зависимости от типа услуги меняется список доступных характеристик. +В зависимости от типа услуги список доступных характеристик меняется. ## Настройка характеристик -Если вы хотите поддерживать какую-либо характеристику, вам необходимо установить флажок «включено» в левой части характеристики. -Для каждой характеристики можно указать следующие свойства: +Если вы хотите поддержать характеристику, вам необходимо поставить галочку в поле «включено» слева от характеристики. +Для каждой характеристики вы можете указать следующие свойства: -- InOutFunction: вы можете указать предопределенную функцию, которая отвечает за передачу значений из HomeKit в ioBroker и наоборот. -- InOutParameter: здесь вы можете указать параметры для выбранной InOutFunction. Доступные/ожидаемые параметры зависят от выбранной функции. Краткий обзор функций и параметров приведен ниже. -- ConversionFunction: в дополнение к InOutFunction вы также можете указать функцию, которая преобразует значение, поступающее из HomeKit в ioBroker (и наоборот) -- ConversionParameter: то же, что и InOutParameter - доступные/ожидаемые параметры зависят от выбранной функции. +- InOutFunction: можно указать предопределенную функцию, которая отвечает за передачу значений из HomeKit в ioBroker и наоборот. +- InOutParameter: здесь вы можете указать параметры для выбранной InOutFunction. Доступные/ожидаемые параметры зависят от выбранной функции. Ниже приведен краткий обзор функций и параметров. +- ConversionFunction: в дополнение к InOutFunction вы также можете указать функцию, которая преобразует значение, поступающее из HomeKit, в ioBroker (и наоборот) +- ConversionParameter: то же, что и InOutParameter — доступные/ожидаемые параметры зависят от выбранной функции. -## Обзор функций InOut +## Обзор InOut-функций | Функция | Ожидаемый параметр | Описание | |------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| константа | Значение | Функция const всегда передает значение, указанное в «InOutParameter», в функцию преобразования, если HomeKit считывает значение. Если HomeKit хочет записать значение, это действие отклоняется | -| ioBroker.State | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Все операции выполняются сразу, без буферизации и фильтрации (значения передаются в указанные функции преобразования) | -| ioBroker.State.Defered | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Операции записи из HomeKit напрямую передаются в функцию преобразования. Изменения от ioBroker отклоняются в течение 150 мс — это означает, что значение передается в HomeKit только в том случае, если в течение 150 мс не произошло никаких других изменений. | -| ioBroker.State.OnlyACK | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Операции записи из HomeKit напрямую передаются в функцию преобразования. Изменения от ioBroker пересылаются в HomeKit только в том случае, если для значения установлен флаг «Подтверждено». В противном случае последнее подтвержденное значение передается в HomeKit | -| ioBroker.homematic.
WindowCovering.TargetPosition | Идентификатор точки данных уровня HomeMatic
или
Строковый массив с идентификатором точки данных уровня и идентификатором рабочей точки данных | Эта функция предназначена специально для управления оконным покрытием HomeMatic. Эта функция откладывает передачу значений в HomeKit во время движения оконного покрытия. Это необходимо, чтобы избежать мерцания ползунка закрытия окна в iOS | +| const | Значение | Функция const всегда передает значение, указанное в "InOutParameter", в функцию преобразования, если HomeKit считывает значение. Если HomeKit хочет записать значение, это действие отклоняется | +| ioBroker.State | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Все операции выполняются немедленно без буферизации или фильтрации (значения передаются указанным функциям преобразования) | +| ioBroker.State.Deferred | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Операции записи из HomeKit напрямую передаются в функцию преобразования. Изменения из ioBroker отменяются в течение 150 мс — это означает, что значение передается в HomeKit только в том случае, если в течение 150 мс не произошло никаких других изменений. | +| ioBroker.State.OnlyACK | имя точки данных ioBroker | С помощью этой функции адаптер использует указанную точку данных ioBroker для операций чтения и записи. Операции записи из HomeKit напрямую передаются в функцию преобразования. Изменения из ioBroker пересылаются в HomeKit только в том случае, если установлен флаг "Acknowledged" значения. В противном случае последнее подтвержденное значение передается в HomeKit | +| ioBroker.homematic.
WindowCovering.TargetPosition | Идентификатор точки данных уровня HomeMatic
или
Массив строк с идентификатором точки данных уровня и идентификатором рабочей точки данных | Эта функция специально предназначена для управления HomeMatic Window Covering. Эта функция откладывает передачу значений в HomeKit во время перемещения оконного покрытия. Это необходимо для предотвращения мерцания ползунка оконного покрытия в iOS | ## Обзор функций преобразования | Функция | Ожидаемый параметр | Описание | -|-------------------------------------------------------|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| сквозной | \<нет\> | Значение от ioBroker передается в HomeKit без преобразования (и наоборот) | -| ГлавнаяmaticDirectionTo
HomekitPositionState | \ | Эта функция сопоставляет перечисление направления покрытия окна Homematic с перечислением PositionState HomeKit (и обратно) | -| HomematicControlModeTo
HomekitHeathingCoolingState | \ | Эта функция сопоставляет перечисление ControlMode Homematic с перечислением HeathingCoolingState HomeKit (и обратно) | -| уровень 255 | \ | Эта функция масштабирует значение ioBroker с диапазоном значений от 0 до 255 до значения HomeKit с диапазоном значений от 0 до 100 (и обратно).
**Пример:** 255 в ioBroker преобразуется в 100 для HomeKit. | -| масштабInt
шкалаПоплавок | `{ "homekit.min": , "homekit.max": , "iobroker.min": , "iobroker.max": }` | Эта функция похожа на "level255", но она более общая. Он преобразует значение ioBroker с диапазоном от «iobroker.min» (0, если опущено) до «iobroker.max» в значение HomeKit с диапазоном значений от «homekit.min» (0, если опущено) до «homekit.max». (и назад).
**Пример:** Если поле параметра: `{ "homekit.max": 500, "iobroker.max": 250}`
фактически значение ioBroker умножается на 2 перед отправкой в HomeKit.
**Мин-параметры доступны только в версии 0.8.0 и выше** | -| оттенок | \<нет\> | Эта функция является специализированной версией scaleInt с параметрами `iobroker.max=65535` и `homekit.max=360`. | -| оттенок | \<нет\> | Эта функция является специализированной версией scaleInt с параметрами iobroker.max=65535 и homekit.max=360. | - -## Привод для жалюзи Homematic \ Оконное покрытие -Для интеграции приводов жалюзи Homematic (таких как HM-LC-Bl1PBU-FM) необходимы следующие настройки: +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| passthrough | \ | Значение из ioBroker передается в HomeKit без преобразования (и наоборот) | +| HomematicDirectionTo
HomekitPositionState | \ | Эта функция сопоставляет перечисление direction оконного покрытия Homematic с перечислением PositionState HomeKit (и обратно) | +| HomematicControlModeTo
HomekitОтоплениеОхлаждениеСостояние | \ | Эта функция сопоставляет перечисление ControlMode Homematic с перечислением HeathingCoolingState HomeKit (и обратно) | +| уровень255 | \ | Эта функция масштабирует значение ioBroker с диапазоном значений от 0 до 255 до значения HomeKit с диапазоном значений от 0 до 100 (и обратно).
**Пример:** 255 в ioBroker преобразуется в 100 для HomeKit. | +| масштабInt
scaleFloat | `{ "homekit.min": , "homekit.max": , "iobroker.min": , "iobroker.max": }` | Эта функция похожа на "level255", но она более общая. Она преобразует значение ioBroker с диапазоном от "iobroker.min" (0, если пропущено) до "iobroker.max" в значение HomeKit с диапазоном значений от "homekit.min" (0, если пропущено) до "homekit.max" (и обратно).
**Пример:** Если поле параметра: `{ "homekit.max": 500, "iobroker.max": 250}`
значение ioBroker фактически умножается на 2 перед отправкой в HomeKit.
**Мин-параметры доступны только в версии 0.8.0 и выше** | +| hue | \ | Эта функция является специализированной версией scaleInt с параметрами `iobroker.max=65535` и `homekit.max=360`. | +| hue | \ | Эта функция является специализированной версией scaleInt с параметрами `iobroker.max=65535` и `homekit.max=360`. | + +## Homematic Blind Actuator \ Оконные покрытия +Для интеграции активаторов жалюзи Homematic (например, HM-LC-Bl1PBU-FM) необходимы следующие настройки: * Добавить услугу на устройство -* Установите имя службы на какое-либо имя и тип службы на "WindowCovering". Подтип услуги можно оставить пустым +* Установите Service Name на какое-либо имя и service type на "WindowCovering". Service subtype можно оставить пустым * Включите и заполните следующие характеристики: -| Имя характеристики | 1: Функция входа/выхода
2: Функция преобразования | 1: Входные параметры
2: Параметры преобразования | +| Название характеристики | 1: Функция InOut
2: Функция преобразования | 1: Параметры InOut
2: Параметры преобразования | |---------------------|---------------------------------------------------------------------------|----------------------------------------------------------------| | Текущая позиция | 1: ioBroker.State.OnlyACK
2: сквозной | 1: _\ _.1.УРОВЕНЬ
2: \ | -| ПозицияСтат | 1: ioBroker.State.OnlyACK
2: HomematicDirectionToHomekitPositionState | 1: _\ _.1.НАПРАВЛЕНИЕ
2: \ | -| целевая позиция | 1: ioBroker.homematic.WindowCovering.TargetPosition
2: сквозной | 1: _\ _.1.УРОВЕНЬ
2: \ | +| PositionState | 1: ioBroker.State.OnlyACK
2: HomematicDirectionToHomekitPositionState | 1: _\ _.1.НАПРАВЛЕНИЕ
2: \ | +| TargetPosition | 1: ioBroker.homematic.WindowCovering.TargetPosition
2: сквозной | 1: _\ _.1.УРОВЕНЬ
2: \ | + +Значение _\<путь к объекту Homematic\>_ необходимо заменить на фактический путь к устройству (например, hm-rpc.0.NEQ0012345) -Значение _\<путь к объекту Homematic\>_ необходимо заменить фактическим путем к устройству (например, hm-rpc.0.NEQ0012345). +Для получения общей информации о маске конфигурации см.: TODO -Общие сведения о маске конфигурации см. в TODO. +Для получения дополнительной информации о конфигурации, функциях InOut и функциях преобразования см.: [Вики](https://github.com/jensweigele/ioBroker.yahka/wiki/Configuration,-InOut-Functions-and-Conversion-Functions) -Для получения дополнительной информации о конфигурации, функциях входа и выхода и функциях преобразования см.: [Вики](https://github.com/jensweigele/ioBroker.yahka/wiki/Configuration,-InOut-Functions-and-Conversion-Functions) +## Заметки для разработчиков +Этот репозиторий включает один подмодуль, поэтому перед сборкой вам также необходимо закрыть/инициализировать его, например, использовать `git submodule update --init --recursive` для обновления и извлечения его содержимого. +### **РАБОТА В ХОДЕ** --> ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Revert renaming of states back: `HomematicControlModeToHomekitHeatingCoolingState => HomematicControlModeToHomekitHeathingCoolingState, Deferred => Defered` + +### 1.0.4 (2024-08-12) +* (Apollon77) Important: js-controller 5.0 is required at least +* (tarikweiss) Rewrote community types from submodule (js) to typescript +* (tarikweiss) Added the ability to set an ioBroker state for the availability indication in HomeKit + ### 1.0.3 (2023-03-29) * (TA2K) Corrected empty device list with rebuild @@ -315,7 +330,7 @@ enable-dbus=yes ## License The MIT License (MIT) -Copyright (c) 2016-2023 Jens Weigele (iobroker.yahka@gmail.com) +Copyright (c) 2016-2024 Jens Weigele (iobroker.yahka@gmail.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -333,4 +348,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/basics/adapter.md b/docs/ru/basics/adapter.md index 5ae325af7..1d5e1eeae 100644 --- a/docs/ru/basics/adapter.md +++ b/docs/ru/basics/adapter.md @@ -1,47 +1,52 @@ --- lastChanged: 24.08.2024 translatedFrom: de -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/basics/adapter.md -title: Контроллеры и адаптеры -hash: 8HcEKegvo687TBc+kFOupFkmNBDZ+XMvC0iQNS62dKE= +title: Контроллеры и адаптеры: строительные блоки от ioBroker +hash: S3kOycQ/YIdh5RpXKm+5OGGoGyK/AJGfrSPc7w39HDY= --- -# Контроллеры и адаптеры -## Что такое контроллер? -Контроллер в ioBroker — это центральный компонент, отвечающий за управление и координацию всей системы ioBroker. -Он берет на себя такие задачи, как управление адаптерами, хранение данных и предоставление интерфейсов для связи между различными компонентами системы. -В настоящее время контроллер написан на TypeScript. - -### Основные функции контроллера - -- **Управление адаптерами**: Контроллер отслеживает и управляет различными адаптерами, установленными в системе ioBroker. -- **Управление данными**: контроллер хранит и управляет данными, собранными адаптерами. -- **Мониторинг системы**: контроллер контролирует состояние всей системы и обеспечивает правильную работу всех компонентов и адаптеров. Он может вызывать уведомления и сигналы тревоги при возникновении проблем. - -## Что такое адаптер? -Адаптер в ioBroker — это программный компонент, который позволяет интегрировать различные устройства, сервисы или протоколы в систему ioBroker. -Адаптеры действуют как интерфейсы между ioBroker и внешними системами, которыми вы управляете или из которых они собирают данные. - -### Основные функции адаптера -1. **Интеграция данных**. Адаптеры собирают данные с внешних устройств или служб и делают эти данные доступными в ioBroker. Это может включать, например, данные датчиков, информацию о состоянии или другие соответствующие данные. -2. **Управление**: адаптеры позволяют управлять внешними устройствами или службами через систему ioBroker. Это может включать, например, включение и выключение устройств, настройку параметров или выполнение команд. -3. **Трансляция протоколов**. Адаптеры преобразуют протоколы связи внешних устройств или служб в формат, понятный ioBroker. Это обеспечивает плавную интеграцию различных систем, использующих разные протоколы. - -### Примеры адаптеров -- **Адаптер Zigbee**: позволяет интегрировать устройства на базе Zigbee, такие, как лампы, датчики и переключатели. -- **Адаптер MQTT**: обеспечивает связь со службами и устройствами на основе MQTT. -- **HTTP-адаптер**: позволяет интегрировать службы, обменивающиеся данными через HTTP. - -### Преимущества использования адаптеров -- **Гибкость**: адаптеры позволяют интегрировать различные устройства и службы независимо от их протоколов связи. -- **Расширяемость**: можно разрабатывать новые адаптеры для поддержки дополнительных устройств или служб, что позволяет системе ioBroker постоянно расширяться. -- **Централизация**: с помощью адаптеров можно централизованно управлять всеми устройствами и службами через систему ioBroker. - -### Типы адаптеров -- **Адаптеры устройств**: эти адаптеры позволяют интегрировать и контролировать физические устройства, такие как лампы, датчики и переключатели. Примерами являются адаптер Zigbee и адаптер Z-Wave. -- **Адаптеры протоколов**: эти адаптеры преобразуют различные протоколы связи в формат, понятный ioBroker. Примерами являются адаптер MQTT и адаптер HTTP. -- **Адаптеры служб**: эти адаптеры позволяют интегрировать онлайн-сервисы и API. Примерами являются адаптер Alexa и адаптер Google Home. -- **Адаптеры баз данных**: эти адаптеры позволяют хранить данные и выполнять запросы к ним в различных системах баз данных. Примеры включают адаптер SQL и адаптер InfluxDB. -- **Адаптеры визуализации**: эти адаптеры предоставляют возможности визуализации и отображения данных. Примерами являются адаптер Vis и адаптер Flot. -- **Адаптеры сценариев**: эти адаптеры позволяют создавать и запускать сценарии в ioBroker. Примеры включают адаптер JavaScript и адаптер Blockly. -- **Специальные адаптеры**: эти адаптеры предлагают специальные функции или интеграции, которые не входят в другие категории. Примерами являются адаптер Ping и адаптер Backitup. +# Контроллеры и адаптеры: строительные блоки от ioBroker +## Контроллер: сердце ioBroker +Контроллер является центральным элементом ioBroker. Именно мозг контролирует и координирует всю систему. +Он отвечает за бесперебойную совместную работу всех компонентов и обмен данными. + +**Что делает контроллер?** + +* **Управление адаптерами:** Контроллер отслеживает и управляет всеми установленными адаптерами. Это гарантирует, что они работают правильно и могут обмениваться данными. +* **Хранить данные:** Контроллер сохраняет все данные, собранные адаптерами. Это означает, что вы можете получить доступ к данным в любое время и использовать их для автоматизации или визуализации. +* **Мониторинг системы:** Контроллер контролирует состояние всей системы. Он может вызывать уведомления и сигналы тревоги при возникновении проблем. + +**Контроллер является основой всех функций ioBroker. Без него система не работала бы.** + +## Адаптер: интерфейс с миром +Адаптеры — это интерфейс между ioBroker и внешним миром. Они позволяют интегрировать в систему различные устройства, сервисы и протоколы. + +**Что делают адаптеры?** + +* **Интегрируйте данные.** Адаптеры собирают данные с внешних устройств или служб и делают эти данные доступными в ioBroker. Например, вы можете получить доступ к данным датчиков, информации о состоянии или другим соответствующим данным. +* **Устройства управления:** Адаптеры позволяют управлять внешними устройствами или службами через ioBroker. Например, вы можете включать и выключать устройства, задавать параметры или выполнять команды. +* **Перевести протоколы.** Адаптеры переводят протоколы связи внешних устройств или служб в формат, понятный ioBroker. Это позволяет легко интегрировать различные системы, использующие разные протоколы. + +**Адаптеры — это ключ к подключению ioBroker к миру.** + +## Примеры адаптеров +* **Адаптер Zigbee:** позволяет интегрировать устройства на базе Zigbee, такие как лампы, датчики и переключатели. +* **Адаптер MQTT:** обеспечивает связь со службами и устройствами на основе MQTT. +* **HTTP-адаптер:** позволяет интегрировать службы, обменивающиеся данными через HTTP. + +## Преимущества использования адаптеров +* **Гибкость.** Адаптеры позволяют интегрировать различные устройства и службы независимо от их протоколов связи. +* **Расширяемость:** можно разработать новые адаптеры для поддержки дополнительных устройств или служб. Это означает, что вы можете постоянно расширять ioBroker и адаптировать его к своим потребностям. +* **Централизация:** с помощью адаптеров можно централизованно управлять всеми устройствами и службами через ioBroker. + +## Типы адаптеров +* **Адаптеры устройств:** Эти адаптеры позволяют интегрировать и управлять физическими устройствами, такими как лампы, датчики и переключатели. Примерами являются адаптер Zigbee и адаптер Z-Wave. +* **Адаптеры протоколов.** Эти адаптеры преобразуют различные протоколы связи в формат, понятный ioBroker. Примерами являются адаптер MQTT и адаптер HTTP. +* **Сервисные адаптеры.** Эти адаптеры позволяют интегрировать онлайн-сервисы и API. Примерами являются адаптер Alexa и адаптер Google Home. +* **Адаптеры баз данных:** Эти адаптеры позволяют хранить данные и выполнять запросы к ним в различных системах баз данных. Примеры включают адаптер SQL и адаптер InfluxDB. +* **Адаптеры визуализации.** Эти адаптеры предоставляют возможности визуализации и отображения данных. Примерами являются адаптер Vis и адаптер Flot. +* **Адаптеры сценариев:** Эти адаптеры позволяют создавать и выполнять сценарии в ioBroker. Примеры включают адаптер JavaScript и адаптер Blockly. +* **Специальные адаптеры.** Эти адаптеры предоставляют специальные функции или возможности интеграции, которые не входят в другие категории. Примерами являются адаптер Ping и адаптер Backitup. + +**При правильном сочетании контроллера и адаптеров вы можете настроить ioBroker в соответствии со своими индивидуальными потребностями и создать умный дом или офис.** \ No newline at end of file diff --git a/docs/ru/basics/enums.md b/docs/ru/basics/enums.md index 306557372..811576c0c 100644 --- a/docs/ru/basics/enums.md +++ b/docs/ru/basics/enums.md @@ -1,9 +1,9 @@ --- translatedFrom: de -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/basics/enums.md title: Категории/списки -hash: rqOKByMjzSQxp3fb+HKbbzMiZ4L35Ng+UhehMESFDjY= +hash: dRtaZaSersmPe015O54LIxsy7mWuVT4pyEN1yf2HifE= --- # Категории/списки Определения категорий играют важную роль в ioBroker. @@ -17,3 +17,4 @@ hash: rqOKByMjzSQxp3fb+HKbbzMiZ4L35Ng+UhehMESFDjY= - **Визуализация**: категории помогают группировать и сортировать объекты в визуализации. - **Логика**: в сценариях категории можно использовать для выполнения определенных действий над всеми объектами в категории. - **Сцены**: категории можно использовать в сценах. +- **Голосовое управление**: категории можно использовать в голосовом управлении, чтобы сказать, например: «Включите весь свет в гостиной». \ No newline at end of file diff --git a/docs/ru/basics/states.md b/docs/ru/basics/states.md index 5abd8352d..44b8417a3 100644 --- a/docs/ru/basics/states.md +++ b/docs/ru/basics/states.md @@ -1,10 +1,10 @@ --- -lastChanged: 06.06.2019 +lastChanged: 25.08.2024 translatedFrom: de -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/basics/states.md title: Состояния и точки данных -hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= +hash: 190MIPX6wgLnFl6yKQR3EpEWnybrYzc4cf2YD6kb+rE= --- # Состояния и точки данных **Точка данных** состоит из статического объекта типа `state` и динамического состояния. @@ -17,13 +17,13 @@ hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= * `lc` — временная метка Unix последнего изменения значения (в миллисекундах). * `q` - [Качество](../dev/objectsschema.md#states) * `from` - (необязательно) Источник (экземпляр адаптера) последнего обновления - * `user` - (необязательно) имя пользователя, который последним записал значение. + * `user` - (необязательно) Имя пользователя, последним записавшего значение. * `c` — (необязательный) комментарий - * `expire` - (необязательно) Время в секундах, когда значение сбрасывается на `ноль`. + * `expire` — (необязательно) Время в секундах, когда значение установлено в `ноль`. Атрибуты статического объекта: id, type = 'state', common, own. Возможны следующие общие атрибуты: -* `common.type` (необязательно) — по умолчанию «смешанный» = любой тип. Возможные значения: `число`, `строка`, `логическое значение`, `массив`, `объект`, `смешанный`, `файл`. +* «common.type» (необязательно) — по умолчанию «смешанный» = любой тип. Возможные значения: `число`, `строка`, `логическое значение`, `массив`, `объект`, `смешанный`, `файл`. * `common.name` (необязательно, строка) * `common.max` (необязательно, число) * `common.step` (необязательный, число) - интервал увеличения/уменьшения. Например, 0,5 для термостата. @@ -36,4 +36,4 @@ hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= * `common.role` (строка, обязательная) — роль точки данных (используется в пользовательских интерфейсах для указания, какой виджет выбрать. [Смотрите здесь](../dev/stateroles.md) * `common.states` (необязательно) Атрибут с объектом возможных состояний` {'value': 'valuename', 'value2': 'valuename2', 0: 'OFF', 1: 'ON'} ` * `common.workingID` (строка, необязательно) - если этот статус имеет статус помощника РАБОТАЕТ. Здесь необходимо написать полное имя или только последнюю часть, если первые части идентичны реальным. Используется для HM.LEVEL и обычно имеет значение WORKING. -* `common.custom` (необязательно) — структура с пользовательскими настройками для конкретных адаптеров. Например `{"influxdb.0": {"enabled": true, "alias": "name"}}`. Атрибут `enabled` является обязательным. В противном случае весь атрибут удаляется. +* `common.custom` (необязательно) — структура с пользовательскими настройками для конкретных адаптеров. Например `{"influxdb.0": {"enabled": true, "alias": "name"}}`. Атрибут `enabled` является обязательным. В противном случае весь атрибут удаляется. \ No newline at end of file diff --git a/docs/ru/cloud/androidapp.md b/docs/ru/cloud/androidapp.md deleted file mode 100644 index 8ab7aea3f..000000000 --- a/docs/ru/cloud/androidapp.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Android-приложение -lastChanged: 14.09.2018 -editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/cloud/androidapp.md -template: true -translatedFrom: de -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен -hash: Rj3SjOw7mcCokZKTLvjUxi2iAfUUhx8k6LRnng42m4s= ---- -# Приложение для Android -?> ***Это заполнитель***.

Помогите ioBroker и дополните эту статью. Обратите внимание на [Руководство по стилю ioBroker](community/styleguidedoc), чтобы упростить принятие изменений. diff --git a/docs/ru/cloud/app.md b/docs/ru/cloud/app.md new file mode 100644 index 000000000..8464488ae --- /dev/null +++ b/docs/ru/cloud/app.md @@ -0,0 +1,23 @@ +--- +title: Приложение (Android и iOS) +lastChanged: 14.09.2018 +translatedFrom: en +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/cloud/app.md +hash: ivQYhndkr+a7XP7JqnHpqDPGVHQdPo7OBOvt+7fZOhE= +--- +# Официальное приложение ioBroker +Проект ioBroker имеет официальные приложения для Android и iOS. Приложения доступны в соответствующих магазинах приложений: + +- [Приложение для Android](https://play.google.com/store/apps/details?id=com.iobroker.visu&hl=en_US) +- [iOS-приложение](https://apps.apple.com/de/app/iobroker-visu/id1673095774) + +Использование приложения для локального доступа бесплатно. Для удаленного доступа (вне локальной сети) вам необходимо иметь подписку на облако [ioBroker.pro](https://iobroker.pro/www/pricing#remote). + +## Функции +Приложение позволяет вам: + +- Получите доступ к своему серверу ioBroker из локальной сети (бесплатно) или из любой точки мира (требуется подписка на облако) +- Управляйте устройствами умного дома с помощью vis-2, iQontrol или Lovelace +- Отправлять уведомления на ваш телефон +- Отправлять статус телефона в ioBroker, например уровень заряда батареи, местоположение и т. д. diff --git a/docs/ru/dev/adapterjsonconfig.md b/docs/ru/dev/adapterjsonconfig.md index a697042b2..e52812e77 100644 --- a/docs/ru/dev/adapterjsonconfig.md +++ b/docs/ru/dev/adapterjsonconfig.md @@ -1,19 +1,19 @@ --- translatedFrom: en -translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translatedFrom», в противном случае этот документ будет снова автоматически переведен +translatedWarning: Если вы хотите отредактировать этот документ, удалите поле «translationFrom», в противном случае этот документ будет снова автоматически переведен editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/ru/dev/adapterjsonconfig.md title: Конфигурация JSON ioBroker -hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= +hash: yeuuz/VQ8X9abPD73ngTtsZUJ8pTPMo3NBqR6MK5IEc= --- # Конфигурация JSON ioBroker -Администратор (начиная с версии 6) поддерживает конфигурацию JSON для адаптеров. -Можно определить конфигурацию в файле JSON, а затем использовать ее в администраторе. +Admin (начиная с версии 6) поддерживает конфигурацию JSON для адаптеров. +Можно определить конфигурацию в файле JSON, а затем использовать ее в Admin. -Пример файла `jsonConfig.json` с несколькими вкладками можно найти здесь: https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5, а пример с одной панелью здесь: https:/ /github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json +Пример файла `jsonConfig.json` с несколькими вкладками можно найти здесь: https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5, а пример с одной панелью — здесь: https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json Вы можете определить настройки в формате JSON или JSON5. JSON5 более удобен для чтения и поддерживает комментарии. -Кроме того, для файла JSON необходимо определить в `io-package.json` части `common`: +Кроме того, в файле JSON необходимо определить в части `io-package.json` в `common`: ```json { @@ -27,18 +27,20 @@ hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= сказать, что адаптер поддерживает конфигурацию JSON. -Вы сможете увидеть почти все компоненты в действии, если протестируете этот адаптер: https://github.com/mcm4iob/ioBroker.jsonconfig-demo. -Вы можете установить его через значок GitHub в администраторе, введя `iobroker.jsonconfig-demo` на вкладке npm. +Вы можете увидеть почти все компоненты в действии, если протестируете этот адаптер: https://github.com/mcm4iob/ioBroker.jsonconfig-demo. +Вы можете установить его через значок GitHub в админке, введя `iobroker.jsonconfig-demo` на вкладке npm. -Все метки, тексты, справочные тексты могут быть многоязычными или просто строками. +Схема для файла конфигурации JSON определена здесь: https://github.com/ioBroker/adapter-react-v5/blob/main/schemas/jsonConfig.json + +Все метки, тексты, тексты справки могут быть многоязычными или просто строками. *Если имя атрибута начинается с «_», оно не будет сохранено в объекте.* ## Включает -Требуется администратор 6.17.1 или новее. +Требуется администратор 6.17.1 или более поздняя версия. -Чтобы написать сложные файлы JSON, вы можете включить другие файлы JSON. -Включаемый файл должен находиться в том же каталоге, что и основной файл. +Для записи сложных файлов JSON вы можете включить другие файлы JSON. +Включенный файл должен находиться в том же каталоге, что и основной файл. ```json5 { @@ -55,75 +57,87 @@ hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= Возможные типы: - `tabs` - Вкладки с элементами - - `items` - Объект с панелями `{"tab1": {}, "tab2": {}...}` - - `iconPosition` — `bottom`, `end`, `start` или `top`. Только для панелей с атрибутом «icon». По умолчанию: `старт` - -- `panel` - Вкладка с предметами - - `icon` - вкладка может иметь значок (base64, например `data:image/svg+xml;base64,...`) или изображения `jpg/png` (оканчивается на `.png`) - - `label` - Метка вкладки - - `items` - Объект `{"attr1": {}, "attr2": {}}...` - - `складной` - возможно только как часть вкладок [jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) - - `color` - цвет сворачиваемого заголовка `primary` или `вторичный` или ничего. - -- `text` - текстовый компонент - - `maxLength` - максимальная длина текста в поле - - `readOnly` - поле только для чтения - - `trim` - по умолчанию true. Установите для этого атрибута значение false, если обрезка не требуется. - - `minRows` — по умолчанию установлено значение 1. Установите для этого атрибута значение `2` или более, если вы хотите иметь текстовое поле с более чем одной строкой. - - `maxRows` - максимальное количество строк текстовой области. Используется только если `minRows` > 1. - - `noClearButton` - если true, кнопка очистки не будет отображаться (admin >= 6.17.13) +- `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` - максимальное значение - - `шаг` - шаг +- `min` - минимальное значение +- `max` - максимальное значение +- `шаг` - шаг - `color` - выбор цвета - - `noClearButton` - если true, кнопка очистки не будет отображаться (admin >= 6.17.13) +- `noClearButton` - если true, кнопка очистки не будет отображаться (admin >= 6.17.13) - `checkbox` - показать флажок - `slider` - показать слайдер (только Admin6) - - `мин` - (по умолчанию 0) - - `макс` - (по умолчанию 100) - - `шаг` - (по умолчанию `(макс - мин) / 100`) - - `unit` - Единица слайдера +- `min` - (по умолчанию 0) +- `макс` - (по умолчанию 100) +- `шаг` - (по умолчанию `(макс - мин) / 100`) +- `unit` - Единица измерения ползунка + +- `qrCode` - отображение данных в QR-коде (по сравнению с Admin 7) +- `data` - данные, которые будут закодированы в QR-коде +- `size` - размер QR-кода +- `fgColor` - Цвет переднего плана +- `bgColor` - Цвет фона +- `level` - уровень QR-кода (`L` `M` `Q` `H`) - `ip` - адрес привязки - - `listenOnAllPorts` - добавьте 0.0.0.0 к опции - - `onlyIp4` - показывать только адреса IP4 - - `onlyIp6` - показывать только адреса IP6 - - `noInternal` - не показывать внутренние IP-адреса +- `listenOnAllPorts` - добавить 0.0.0.0 к опции +- `onlyIp4` - показывать только адреса IP4 +- `onlyIp6` - показывать только адреса IP6 +- `noInternal` - не показывать внутренние IP-адреса -- `user` — выберите пользователя из system.user. (с цветом и значком) - - `short` - нет system.user. +- `user` - Выбор пользователя из system.user. (С цветом и значком) +- `short` - нет системного пользователя. -- `room` - выбрать комнату из `enum.room` (с цветом и значком) - (только Admin6) - - `short` - нет `enum.rooms` - - `allowDeactivate` - разрешить пустовать комнату +- `room` - Выбрать комнату из `enum.room` (с цветом и значком) - (только Admin6) +- `short` - нет `enum.rooms.` +- `allowDeactivate` - разрешить оставлять комнату пустой -- `func` — выберите функцию из `enum.func` (с цветом и значком) - (только Admin6) - - `short` - нет `enum.func.` - - `allowDeactivate` - разрешить пустую функциональность +- `func` - Выбор функции из `enum.func` (с цветом и значком) - (только Admin6) +- `short` - нет `enum.func.` +- `allowDeactivate` - разрешить оставить функциональность пустой - `выбрать` - - `options` - `[{label: {en: "option 1"}, value: 1}, ...]` или +- `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, изображение будет сохранено как URL-адрес данных в атрибуте, иначе как двоичный файл в хранилище файлов. - - `crop` - если true, разрешить пользователю обрезать изображение - - `!maxWidth` - - `!maxHeight` - - `!square` - ширина должна быть равна высоте, или обрезка должна допускать только квадратную форму. +- `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` - ширина должна быть равна высоте, или обрезка должна допускать только квадратную форму ``` "login-bg.png": { @@ -146,130 +160,134 @@ hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= } ``` -- `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']}` - показывать только состояния типа "число и строка" - - `{common: {role: 'switch'}` - показывать только состояния, роли которых начинаются с переключателя - - `{common: {role: ['switch', 'button']}` - показывать только состояния, роли которых начинаются с `switch` и `button` - - `filterFunc` - [необязательно] Невозможно использовать вместе с настройками `type`. Это функция, которая будет вызываться для каждого объекта и должна возвращать true или false. Пример: `obj.common.type === 'number'` +- `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`. +Этот тип поля просто влияет на пользовательский интерфейс. +Пароли и другие конфиденциальные данные должны храниться в зашифрованном виде! Для этого ключ должен быть указан в io-package.json в [роднойЗашифрованный](https://github.com/ioBroker/ioBroker.js-controller#automatically-encryptdecrypt-configuration-fields). +Кроме того, вы можете защитить это свойство от обслуживания другими адаптерами, кроме `admin` и `cloud`, добавив его в `protectedNative` в файле `io-package.json`. - - `repeat` - повторный пароль необходимо сравнить с паролем - - `visible` - true, если разрешить просмотр пароля путем переключения кнопки просмотра (только для нового пароля при вводе) - - `maxLength` - максимальная длина текста в поле +- `repeat` - повторный пароль необходимо сравнить с паролем +- `visible` - true, если разрешено просматривать пароль путем переключения кнопки просмотра (только для нового пароля при вводе) +- `readOnly` - флаг только для чтения. Visible автоматически становится истинным, если readOnly является истинным +- `maxLength` - максимальная длина текста в поле - `экземпляр` - - `adapter` - имя адаптера. Со специальным именем `_dataSources` вы можете получить все адаптеры с флагом `common.getHistory`. - - `adapters` - необязательный список адаптеров, которые следует показать. Если не определено, будут показаны все адаптеры. Активен только в том случае, если атрибут адаптера не определен. - - `allowDeactivate` - если правда. Показана дополнительная опция «деактивировать». - - `onlyEnabled` - если правда. Будут показаны только включенные экземпляры. - - `long` — значение будет выглядеть как `system.adapter.ADAPTER.0`, а не `ADAPTER.0` - - `short` — значение будет выглядеть как `0`, а не `ADAPTER.0` - - `all` - Добавить к опциям опцию "all" со значением `*` +- `adapter` - имя адаптера. С помощью специального имени `_dataSources` можно получить все адаптеры с флагом `common.getHistory`. +- `adapters` - необязательный список адаптеров, которые должны быть показаны. Если не определено, будут показаны все адаптеры. Активно только если атрибут `adapter` не определен. +- `allowDeactivate` - если true. Показывается дополнительная опция "deactivate" +- `onlyEnabled` - если true. Будут показаны только включенные экземпляры +- `long` - значение будет выглядеть как `system.adapter.ADAPTER.0`, а не `ADAPTER.0` +- `short` - значение будет выглядеть как `0`, а не `ADAPTER.0` +- `all` - Добавить к параметрам параметр «all» со значением `*` -- `фишки` - пользователь может ввести слово, и оно будет добавлено (см. облако => сервисы => Белый список). Выходные данные представляют собой массив, если не определен разделитель. - - `разделитель` - если он определен, то параметр будет сохранен как строка с разделителем, а не как массив. Например, используя `delimiter=;` вы получите `a;b;c` вместо `['a', 'b', 'c']` +- `chips` - пользователь может ввести слово, и оно будет добавлено (см. облако => сервисы => Белый список). Вывод - массив, если `delimiter` не определен. +- `delimiter` - если он определен, то опция будет сохранена как строка с разделителем, а не как массив. Например, с помощью `delimiter=;` вы получите `a;b;c` вместо `['a', 'b', 'c']` -- `alive` - просто указание, жив ли экземпляр, и его можно использовать в "скрытом" и "отключенном" состоянии (не будет сохранено в конфигурации) +- `alive` - просто указание, активен ли экземпляр, и его можно использовать в состояниях «скрытый» и «отключенный» (не будет сохранено в конфигурации) - Просто текст: экземпляр запущен, экземпляр не запущен. +Просто текст: Экземпляр запущен, Экземпляр не запущен - - `instance` — проверить, жив ли экземпляр. Если не определено, будет использоваться текущий экземпляр. Вы можете использовать в тексте шаблон `${data.number}`. - - `textAlive` — текст по умолчанию: `Экземпляр %s активен`, где %s будет заменен на `ADAPTER.0`. - - `textNotAlive` — текст по умолчанию: `Экземпляр %s неактивен`, где %s будет заменен на `ADAPTER.0`. +- `instance` - проверка, активен ли экземпляр. Если не определен, будет использован текущий экземпляр. В тексте можно использовать шаблон `${data.number}`. +- `textAlive` - текст по умолчанию `Экземпляр %s жив`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n +- `textNotAlive` - текст по умолчанию `Экземпляр %s не жив`, где %s будет заменен на `ADAPTER.0`. Перевод должен существовать в файлах i18n -- `pattern` - поле только для чтения с шаблоном типа "https://${data.ip}:${data.port}" (не будет сохранено в конфиге) +- `pattern` - поле только для чтения с шаблоном типа 'https://${data.ip}:${data.port}' (не будет сохранено в конфигурации) - Ввод текста с флагом «только для чтения», отображающий шаблон. +Ввод текста с флагом «только для чтения», отображающим шаблон. - - `copyToClipboard` - если true - показать кнопку - - `шаблон` - мой узор +- `copyToClipboard` - если true - показать кнопку +- `pattern` - мой шаблон -- `sendto` — кнопка отправки запроса в экземпляр (https://github.com/iobroker-community-adapters/ioBroker.email/blob/master/admin/index_m.html#L128) - - `команда` - (по умолчанию `отправить`) - - `jsonData` - строка - `"{\"subject1\": \"${data.subject}\", \"options1\": {\"host\": \"${data.host}\" }}"`. Вы можете использовать специальные переменные `data._origin` и `data._originIp` для отправки экземпляра URL-адреса вызывающей стороны, например `http://127.0.0.1:8081/admin`. - - `данные` - объект - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или данные, но не то и другое. +- `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` истинно, это имя нового окна. Может быть перезаписано, если ответ содержит атрибут 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}` - - `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) - -- `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, включено: ложь}}` - - `objValueName` - (устаревшая настройка, не используйте!) - имя значения в `{"192.168.1.1": "value1", "192.168.1.2": "value2"}` - - `allowAddByFilter` - разрешено ли добавление, даже если установлен фильтр - - `showSecondAddAt` — количество строк, из которых будет отображаться вторая кнопка добавления внизу таблицы. По умолчанию 5 - - `showFirstAddOnTop` — показывать первую кнопку плюса вверху первого столбца, а не слева. - - `clone` - [необязательно] - если должна отображаться кнопка клонирования. Если это правда, будет показана кнопка клонирования. Если имя атрибута, это имя будет уникальным. - - `export` - [необязательно] - должна ли отображаться кнопка экспорта. Экспортировать в файл csv. - - `import` - [необязательно] - должна ли отображаться кнопка импорта. Импорт из csv-файла. - - `uniqueColumns` - [необязательно] - укажите массив столбцов, записи в которых должны быть уникальными. - - `encryptedAttributes` - [необязательно] - укажите массив столбцов, которые необходимо зашифровать - -- `accordion` - аккордеон с элементами, которые можно удалять, добавлять, перемещать вверх и вниз (Admin 6.6.0 и новее) - - `items` - `[{"type": см. выше, "attr": "name", "default": ""}]` - элементы можно размещать как на `panel` (xs, sm, md, LG и NewLine) - - `titleAttr` - ключ списка элемента, который должен использоваться в качестве имени - - `noDelete` — логическое значение, если удаление или добавление отключено. Если `noDelete` имеет значение false, добавление, удаление и перемещение вверх/вниз должно работать. - - `clone` - [необязательно] - если должна отображаться кнопка клонирования. Если это правда, будет показана кнопка клонирования. Если имя атрибута, это имя будет уникальным. - -- `jsonEditor` — редактор json - -- `язык` - выбор языка - - `system` - разрешить использование системного языка из `system.config` по умолчанию (если выбрано, будет иметь пустое строковое значение) - -- «сертификат» - - `certType` - один из: `public`, `private`, `chained`. Но начиная с версии 6.4.0 вы можете использовать тип «сертификаты». - -— «сертификаты» — это универсальный тип, который управляет атрибутами «certPublic», «certPrivate», «certChained» и «leCollection». +- `вариант` - `содержащийся`, `очерченный` или ничего +- `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}` +- `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`. Пример: @@ -284,74 +302,74 @@ hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= } ``` -- `certCollection` — выберите коллекцию сертификатов или просто используйте все коллекции или вообще не используйте Let's Encrypt. - - `leCollectionName` — имя коллекции сертификатов. +- `certCollection` - выберите коллекцию сертификатов или просто используйте все коллекции или вообще не используйте Let's Encrypt. +- `leCollectionName` - имя коллекции сертификатов -- `custom` (только Admin6) - - `name` — имя компонента, которое будет предоставлено через реквизиты, например ComponentInstancesEditor. - - `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"}}` +- `пользовательский` (только Admin6) +- `name` — имя компонента, которое будет предоставлено через свойства, например ComponentInstancesEditor +- `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` в установке пользователя. +- `datePicker` - позволяет пользователю выбирать дату, формат ввода пользовательского интерфейса берется из настроенного `dateFormat` в установке пользователя. -Компонент возвращает анализируемую строку даты. +компонент возвращает анализируемую строку даты. -- `timePicker` - позволяет пользователю выбирать ввод даты. Возвращаемая строка представляет собой анализируемую строку даты или формат `ЧЧ: мм: сс` - - `format` - формат, передаваемый в средство выбора даты, по умолчанию равен `ЧЧ:мм:сс` - - `views` — настройте, какие представления должны показываться пользователям. По умолчанию `['часы', 'минуты', 'секунды']` - - `timeSteps` — представляет доступные временные шаги для каждого представления. По умолчанию `{ часы: 1, минуты: 5, секунды: 5 }` - - `returnFormat` - `fullDate` или `ЧЧ:мм:сс`. По умолчанию используется полная дата из соображений обратной совместимости. +- `timePicker` - позволяет пользователю выбрать дату, возвращаемая строка представляет собой анализируемую строку даты или имеет формат `ЧЧ:мм:сс` +- `format` - формат, передаваемый в средство выбора даты, по умолчанию равен `HH:mm:ss` +- `views` - Настройте, какие представления должны быть показаны пользователям. По умолчанию `['hours', 'minutes', 'seconds']` +- `timeSteps` - Представляет доступные временные шаги для каждого представления. По умолчанию `{ часы: 1, минуты: 5, секунды: 5 }` +- `returnFormat` - `fullDate` или `HH:mm:ss`. По умолчанию используется полная дата для обратной совместимости. - `разделитель` - горизонтальная линия - - `height` - необязательная высота - - `color` - необязательный цвет разделителя или `основной`, `вторичный` +- `height` - необязательная высота +- `color` - необязательный цвет разделителя или `primary`, `secondary` - `заголовок` - - `текст` - - `размер` - 1-5 => h1-h5 +- `текст` +- `размер` - 1-5 => h1-h5 -- `крон` - - `complex` - показывать CRON с «минутами», «секундами» и т. д. - - `simple` - показать простые настройки CRON +- `cron` +- `complex` - показывать CRON с "минутами", "секундами" и т. д. +- `simple` - показать простые настройки CRON - `fileSelector` (только Admin6) - - `pattern` - Шаблон расширения файла. Разрешено `**/*.ext` отображать все файлы из подпапок, `*.ext` для отображения из корневой папки или `folderName/*.ext` для отображения всех файлов в подпапке `folderName`. По умолчанию `**/*.*`. - - `fileTypes` - [необязательный] тип файлов: `аудио`, `изображение`, `текст` - - `objectID` - идентификатор объекта типа `мета`. Вы можете использовать специальный заполнитель %INSTANCE%: например, myAdapter.%INSTANCE%.files. - - `upload` - путь, по которому будут храниться загруженные файлы. Как `имя_папки`. Если не определено, поле загрузки отображаться не будет. Для загрузки в корень установите в этом поле значение `/`. - - `refresh` - Показать кнопку обновления рядом с выбором. - - `maxSize` - максимальный размер файла (по умолчанию 2 МБ) - - `withFolder` - показывать имя папки, даже если все файлы в одной папке - - `delete` - Разрешить удаление файлов. - - `noNone` - не показывать опцию `none` - - `noSize` - Не показывать размер файлов - -- `файл` (только 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` - строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на серверную часть - - `данные` - объект - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или данные, но не то и другое. Эти данные будут отправлены на серверную часть, если jsonData не определен. - - Пример кода в серверной части: +- `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 => { @@ -363,21 +381,21 @@ adapter.on('message', obj => { }); ``` -- `выбратьОтправить` +- `selectSendTo` - Показывает раскрывающееся меню с заданными значениями экземпляра. +Показывает раскрывающееся меню с указанными значениями экземпляра. - - `команда` - команда sendTo - - `jsonData` - строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на серверную часть - - `данные` - объект - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или данные, но не то и другое. Эти данные будут отправлены на серверную часть, если jsonData не определен. - - `manual` - разрешить ручное редактирование. Без раскрывающегося меню (если экземпляр не в сети). По умолчанию «истина». - - `multiple` - выбор множественного выбора - - `showAllValues` - показать элемент, даже если для него не найдено метки (множественное число), default=`true` - - `noTranslation` - не переводить метки выбора +- `команда` - команда 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"}, ...]`. +Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должен быть массив в форме `[{"value": 1, "label": "one"}, ...]` - - `alsoDependsOn` - при изменении каких атрибутов команду нужно отправить повторно +- `alsoDependsOn` - при изменении каких атрибутов команда должна быть отправлена повторно ``` adapter.on('message', obj => { @@ -415,29 +433,41 @@ adapter.on('message', obj => { - `autocompleteSendTo` - Показывает элемент управления автозаполнением с заданными значениями экземпляра. +Показывает элемент управления автозаполнением с указанными в экземпляре значениями. - - `команда` - команда sendTo - - `jsonData` - строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на серверную часть - - `данные` - объект - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или данные, но не то и другое. Эти данные будут отправлены на серверную часть, если jsonData не определен. - - `freeSolo` — установите для `freeSolo` значение `true`, чтобы текстовое поле могло содержать любое произвольное значение. - - `alsoDependsOn` - при изменении каких атрибутов команду необходимо отправить повторно - - `maxLength` - максимальная длина текста в поле +- `команда` - команда sendTo +- `jsonData` - string - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на бэкэнд +- `data` - object - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или data, но не оба. Эти данные будут отправлены на бэкэнд, если jsonData не определен. +- `freeSolo` - Установите `freeSolo` в `true`, чтобы текстовое поле могло содержать любое произвольное значение. +- `alsoDependsOn` - при изменении каких атрибутов команда должна быть отправлена повторно +- `maxLength` - максимальная длина текста в поле -Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должен быть массив в форме `["value1", {"value": "value2", "label": "Value2"}, ...]` (ключи должны быть уникальными). См. `selectSendTo` для примера обработчика. +Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должен быть массив в форме `["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 не определен. - - `контейнер` - div, текст - - `copyToClipboard` - если true - показать кнопку - - `alsoDependsOn` - при изменении каких атрибутов команду необходимо отправить повторно - - `команда` - команда sendTo - - `jsonData` - строка - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`. Эти данные будут отправлены на серверную часть - - `данные` - объект - `{"subject1": 1, "data": "static"}`. Вы можете указать jsonData или данные, но не то и другое. Эти данные будут отправлены на серверную часть, если jsonData не определен. +Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должна быть строка или объект со следующими параметрами: -Чтобы использовать эту опцию, ваш адаптер должен реализовать обработчик сообщений: Результатом команды должна быть строка. +``` +{ + 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 +} +``` + +Пример: ``` adapter.on('message', obj => { @@ -445,6 +475,10 @@ adapter.on('message', 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; } } @@ -453,39 +487,39 @@ adapter.on('message', obj => { - `координаты` - Определяет текущее местоположение и используемые координаты `system.config`, если это невозможно, в форме «широта,долгота». +Определяет текущее местоположение и использует координаты `system.config`, если это невозможно в формате «широта,долгота» - - `divider` - разделитель между широтой и долготой. По умолчанию "," (используется, если longitudeName и latitudeName не определены) - - `autoInit` - поле инициализации с текущими координатами, если оно пустое - - `longitudeName` - если определено, долгота будет храниться в этом атрибуте, разделитель будет игнорироваться - - `latitudeName` - если определено, широта будет храниться в этом атрибуте, разделитель будет игнорироваться. - - `useSystemName` - если определено, будет отображаться флажок «Использовать системные настройки», а широта и долгота будут считываться из system.config, логическое значение будет сохранено под заданным именем. +- `divider` - разделитель между широтой и долготой. По умолчанию "," (используется, если longitudeName и latitudeName не определены) +- `autoInit` - инициализация поля текущими координатами, если оно пустое +- `longitudeName` - если определено, долгота будет сохранена в этом атрибуте, разделитель будет проигнорирован +- `latitudeName` - если определено, широта будет сохранена в этом атрибуте, разделитель будет проигнорирован +- `useSystemName` - если определено, будет показан флажок «Использовать системные настройки», а широта и долгота будут считаны из `system.config`, логическое значение будет сохранено под указанным именем - `интерфейс` - Выбирает интерфейс хоста, на котором работает экземпляр. +Выбирает интерфейс хоста, на котором запущен экземпляр - - `ignoreLoopback` - не показывать интерфейс обратной связи (127.0.0.1) - - `ignoreInternal` - не показывать внутренние интерфейсы (обычно это тоже 127.0.0.1) +- `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` — если определено, будет показан флажок с заданным именем. Если этот флажок установлен, согласованная кнопка будет активирована. +- `license` - показывает информацию о лицензии, если она еще не принята. Один из атрибутов `texts` или `licenseUrl` должен быть определен. Когда лицензия принята, определенный атрибут конфигурации будет установлен в `true`. +- `texts` - массив абзацев с текстами, которые будут показаны каждый как отдельный абзац +- `licenseUrl` - URL-адрес файла лицензии (например, https://raw.githubusercontent.com/ioBroker/ioBroker.docs/master/LICENSE) +- `title` - Заголовок диалогового окна лицензии +- `agreeText` - Текст кнопки согласия +- `checkBox` - Если определено, будет показан флажок с указанным именем. Если отмечено, будет включена кнопка согласования. -- `checkLicense` — специальный компонент для проверки лицензии онлайн. В нативном коде требуются именно свойства `license` и `useLicenseManager`. - - `uuid` - Проверить UUID - - `версия` - Проверить версию +- `checkLicense` - Очень специальный компонент для проверки лицензии онлайн. Требуются именно свойства `license` и `useLicenseManager` в нативном коде. +- `uuid` - Проверка UUID +- `версия` - Проверить версию -- `uuid` — Показать UUID iobroker -- `port` - Специальный ввод для портов. Он автоматически проверяет, используется ли порт другими экземплярами, и отображает предупреждение. - - `min` - минимально допустимый номер порта. Это может быть 0. А если тогда значение равно нулю, проверка занятости порта не произойдет. +- `uuid` - Показать UUID iobroker +- `port` - Специальный ввод для портов. Он автоматически проверяет, используется ли порт другими экземплярами, и выводит предупреждение +- `min` - минимально допустимый номер порта. Может быть 0. И если значение равно нулю, то проверка на занятость порта не произойдет. - `deviceManager` - показать диспетчер устройств. Для этого адаптер должен поддерживать протокол диспетчера устройств. См. iobroker/dm-utils. - Вот пример того, как отобразить диспетчер устройств на вкладке: +Вот пример того, как отобразить диспетчер устройств на вкладке: ``` "_deviceManager": { @@ -520,43 +554,43 @@ adapter.on('message', obj => { - `sm` - ширина в 1/12 экрана на маленьком экране - `md` - ширина в 1/12 экрана на средних экранах -- `lg` - ширина в 1/12 экрана на больших экранах. +- `lg` - ширина в 1/12 экрана на больших экранах - `xs` - ширина в 1/12 экрана на маленьких экранах -- `newLine` - должен показываться с новой строки -- `label` — строка или объект типа {en: 'Name', ru: 'Имя'} -- `hidden` — функция JS, которая может использовать `native.attribute` для вычислений. -- `hideOnlyControl` - если скрыто, место будет показано, но без элемента управления -- `disabled` – функция JS, которая может использовать `native.attribute` для вычислений. +- `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 для темного режима. -- `валидатор` - функция JS: true нет ошибок, false - ошибка -- `validatorErrorText` — текст, отображаемый в случае сбоя валидатора. +- `style` - стиль css в нотации ReactJS: `radiusBorder`, а не `radius-border`. +- `darkStyle` - css-стиль для темного режима +- `validator` - функция JS: true - нет ошибки, false - ошибка +- `validatorErrorText` - Текст, отображаемый в случае сбоя валидатора - `validatorNoSaveOnError` - отключить кнопку сохранения в случае ошибки -- `tooltip` - необязательная всплывающая подсказка +- `tooltip` - необязательная подсказка - `default` - значение по умолчанию -- `defaultFunc` - функция JS для расчета значения по умолчанию. -- `defaultSendTo` - команда для запроса начального значения из работающего экземпляра, пример: `"myInstance": {"type": "text", "defaultSendTo": "fill"}` - - `data` - статические данные - - `jsonData` — статические данные - - если `data` и `jsonData` не определены, будет отправлена следующая информация `{"attr": "<имя атрибута>", "value": "<текущее значение>"}` - - `button` — метка кнопки для повторного запуска запроса от экземпляра - - `buttonTooltip` — всплывающая подсказка кнопки (по умолчанию: `Запросить данные по экземпляру`) - - `buttonTooltipNoTranslation` — не переводить подсказку кнопки. +- `defaultFunc` - функция JS для вычисления значения по умолчанию +- `defaultSendTo` - команда для запроса начального значения у запущенного экземпляра, пример: `"myInstance": {"type": "text", "defaultSendTo": "fill"}` +- `data` - статические данные +- `jsonData` - статические данные +- если не определены `data` и `jsonData`, будет отправлена следующая информация `{"attr": "<имя атрибута>", "value": "<текущее значение>"}` +- `button` - метка кнопки для повторного запуска запроса из экземпляра +- `buttonTooltip` - Подсказка кнопки (по умолчанию: `Запросить данные по экземпляру`) +- `buttonTooltipNoTranslation` - Не переводить подсказку кнопки - `placeholder` - заполнитель (для управления текстом) -- `noTranslation` - не переводить выделенные фрагменты или другие параметры (не для справки, метки или заполнителя) -- `onChange` - Структура в виде `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}` -- `doNotSave` - не сохранять этот атрибут, поскольку он используется только для внутренних вычислений. -- `noMultiEdit` - если для этого флага установлено значение true, это поле не будет отображаться, если пользователь выбрал для редактирования более одного объекта. +- `noTranslation` - не переводить выбранные или другие параметры (не для справки, метки или заполнителя) +- `onChange` - Структура в форме `{"alsoDependsOn": ["attr1", "attr2"], "calculateFunc": "data.attr1 + data.attr2", "ignoreOwnChanges": true}` +- `doNotSave` - Не сохранять этот атрибут, так как он используется только для внутренних расчетов. +- `noMultiEdit` — если этот флаг установлен в значение true, это поле не будет отображаться, если пользователь выбрал более одного объекта для редактирования. - `подтвердить` - - `condition` - функция JS: true показать диалог подтверждения - - `text` - текст диалога подтверждения - - `title` - заголовок диалога подтверждения - - `ok` — текст для кнопки ОК. - - `cancel` — текст для кнопки «Отмена». - - `type` - одно из: `info`, `warning`, `error`, `none` - - `alsoDependsOn` - массив с атрибутами, чтобы проверить состояние и по этим атрибутам +- `condition` - функция JS: true показать диалог подтверждения +- `text` - текст диалога подтверждения +- `title` - заголовок диалога подтверждения +- `ok` - Текст для кнопки ОК +- `cancel` - Текст для кнопки «Отмена» +- `type` - Один из: `info`, `warning`, `error`, `none` +- `alsoDependsOn` - массив с атрибутами, для проверки условия и по этим атрибутам ``` { @@ -602,8 +636,8 @@ adapter.on('message', obj => { } ``` -`Number`, `text`, `checkbox`, `select` поддерживают автозаполнение, позволяющее выбирать параметры, если они используются в качестве пользовательских настроек. -В этом случае значение будет предоставлено в виде массива всех возможных значений. +`Number`, `text`, `checkbox`, `select` поддерживают автозаполнение, чтобы разрешить выбор параметров при использовании в качестве пользовательских настроек. +В этом случае значение будет предоставлено как массив всех возможных значений. Пример: @@ -620,12 +654,12 @@ data: { } ``` -В этом случае ввод должен быть текстом, где показано `__different__`, с опцией автозаполнения трех возможных значений. +В этом случае ввод должен быть текстовым, где показано `__different__`, с возможностью автозаполнения трех возможных значений. Пользователи могут выбрать из раскрывающегося списка 1000, 2000 или 3000 или ввести собственное новое значение, например, 500. -Логическое значение должно поддерживать неопределенное значение, если значение [false, true] +Булево значение должно поддерживать неопределенность, если значение равно [false, true] -Для неизмененных `__different__` должно быть возвращено другое значение: +Для неизмененного `__different__` должно быть возвращено другое значение: ``` Input: @@ -655,16 +689,16 @@ newData: { /> ``` -Если схема не указана, она должна быть создана автоматически на основе данных. +Если схема не указана, ее необходимо создать автоматически из данных. - `boolean` => флажок -- `text` => ввод текста +- `текст` => ввод текста - `число` => число - имя `bind` => ip -- имя `порт` => номер, min=1, max=0xFFFF +- имя `port` => номер, мин=1, макс=0xFFFF - имя `timeout` => число, help="ms" -Если у элемента нет атрибута `type`, предположим, что он имеет тип по умолчанию «панель». +Если элемент не имеет атрибута `type`, предполагается, что он имеет тип по умолчанию «панель». ## Стиль панели Вы также можете задать стиль для панелей. Вот пример с фоном панели: @@ -685,13 +719,13 @@ newData: { } ``` -## I18n -Есть несколько вариантов предоставления перевода. -Только первый из них совместим с нашим инструментом перевода сообщества Weblate, поэтому ему следует отдавать предпочтение перед остальными! +## Интернациональный +Существует несколько вариантов предоставления переводов. +Только первый вариант совместим с нашим инструментом перевода сообщества Weblate, поэтому его следует предпочесть другим! 1. Пользователи могут предоставлять тексты из файлов. -На верхнем уровне структуры установите `i18n: true` и укажите файлы в администраторе: +На верхнем уровне структуры установите `i18n: true` и предоставьте файлы в администраторе: - `admin/i18n/de/translations.json` - `admin/i18n/en/translations.json` @@ -703,7 +737,7 @@ newData: { - `admin/i18n/en.json` - ... -Кроме того, пользователь может указать путь к файлам i18n, `i18n: "customI18n"`и предоставить файлы в администраторе: +Кроме того, пользователь может указать путь к файлам i18n, `i18n: "customI18n"`и указать файлы в админке: - `admin/customI18n/de/translations.json` - `admin/customI18n/en/translations.json` @@ -715,7 +749,7 @@ newData: { - `admin/customI18n/en.json` - ... -2. Пользователь может предоставлять переводы непосредственно в ярлыке, например: +2. Пользователь может предоставить переводы непосредственно в метке, например: ``` { @@ -746,11 +780,11 @@ newData: { } ``` -Мы предлагаем по возможности использовать вариант 1, так как тексты можно будет обрабатывать с помощью Weblate. +Мы рекомендуем по возможности использовать вариант 1, так как в этом случае тексты можно будет обрабатывать с помощью Weblate. -## JS-функции +## Функции JS ### Диалоговое окно конфигурации -JS-функция: +Функция JS: ``` const myValidator = "_alive === true && data.options.myType == 2"; @@ -773,21 +807,21 @@ const isValid = func(data, systemConfig.common, instanceAlive, adapter.common, t ``` -Если статус `alive` изменится, то все поля необходимо обновить, проверить, отключить, скрыть заново. +Если статус `alive` изменится, все поля должны быть обновлены, проверены, отключены, скрыты заново. -В JS-функции в настройках адаптера доступны следующие переменные: +В настройках адаптера функции JS доступны следующие переменные: -- `data` - собственные настройки для данного экземпляра или текущей строки таблицы (для доступа ко всем настройкам используйте globalData) +- `data` - собственные настройки для данного экземпляра или текущей строки в таблице (для доступа ко всем настройкам используйте globalData) - `_system` - конфигурация системы -- `_alive` — экземпляр жив -- `_common` — общие настройки для этого экземпляра +- `_alive` - экземпляр живой +- `_common` - общие настройки для этого экземпляра - `_socket` - сокет - `_instance` - номер экземпляра -- `arrayIndex` - используется только в таблице и представляет текущую строку в массиве. -- `globalData` - используется только в таблице для всех настроек, а не только в одной строке таблицы. +- `arrayIndex` - используется только в таблице и представляет текущую строку в массиве +- `globalData` - используется только в таблице для всех настроек, а не только в одной строке таблицы ### Диалоговое окно пользовательских настроек -JS-функция: +Функция JS: ``` const myValidator = "customObj.common.type === 'boolean' && data.options.myType == 2"; @@ -805,16 +839,16 @@ const func = new Function( const isValid = func(data || this.props.data, this.props.originalData, this.props.systemConfig, instanceObj, customObj, this.props.socket); ``` -Следующие переменные доступны в функции JS в пользовательских настройках: +В пользовательских настройках функции JS доступны следующие переменные: - `data` - текущие пользовательские настройки или текущая строка в таблице (для доступа ко всем настройкам используйте globalData) -- `originalData` - Неизменные данные +- `originalData` - Неизмененные данные - `_system` - конфигурация системы - `instanceObj` - объект экземпляра адаптера - `customObj` - сам текущий объект - `_socket` - сокет -- `arrayIndex` - используется только в таблице и представляет текущую строку в массиве. -- `globalData` - используется только в таблице для всех настроек, а не только в одной строке таблицы. +- `arrayIndex` - используется только в таблице и представляет текущую строку в массиве +- `globalData` - используется только в таблице для всех настроек, а не только в одной строке таблицы ## Пользовательский компонент ``` @@ -835,4 +869,4 @@ const isValid = func(data || this.props.data, this.props.originalData, this.prop Примеры можно найти в адаптере [`telegram`](https://github.com/iobroker-community-adapters/ioBroker.telegram/tree/master/src-admin) или в [`pushbullet`](https://github.com/Jens1809/ioBroker.pushbullet/tree/master/src-admin). ## Схема -Схема — [здесь](https://github.com/ioBroker/adapter-react-v5/tree/master/schemas). +Схема [здесь](https://github.com/ioBroker/adapter-react-v5/tree/master/schemas) \ No newline at end of file diff --git a/docs/ru/history/media/2024_06_30_iob_mobile.png b/docs/ru/history/media/2024_06_30_iob_mobile.png new file mode 100644 index 000000000..1beb6c969 Binary files /dev/null and b/docs/ru/history/media/2024_06_30_iob_mobile.png differ diff --git a/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/README.md b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/README.md index ab9c7fad9..6b347a39a 100644 --- a/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/README.md +++ b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/README.md title: ioBroker.alexa-购物清单 -hash: HSFwRXQrrs4eNztQ9DaQN8lE/YF/bl79FvsVUjpidLs= +hash: 6egxt8ZmXvDHA1Wy1yHws/5BBQHshFPj77Kv1TE6mws= --- ![标识](../../../en/adapterref/iobroker.alexa-shoppinglist/admin/alexa-shoppinglist.png) @@ -11,52 +11,52 @@ hash: HSFwRXQrrs4eNztQ9DaQN8lE/YF/bl79FvsVUjpidLs= ![下载](https://img.shields.io/npm/dm/iobroker.alexa-shoppinglist.svg) ![安装数量](https://iobroker.live/badges/alexa-shoppinglist-installed.svg) ![稳定存储库中的当前版本](https://iobroker.live/badges/alexa-shoppinglist-stable.svg) -![NPM](https://nodei.co/npm/iobroker.alexa-shoppinglist.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.alexa-shoppinglist.png?downloads=true) -# IoBroker.alexa 购物清单 -**测试:** ![测试和发布](https://github.com/MiRo1310/ioBroker.alexa-shoppinglist/workflows/Test%20and%20Release/badge.svg) +#ioBroker.alexa-购物清单 +**测试:**![测试与发布](https://github.com/MiRo1310/ioBroker.alexa-shoppinglist/workflows/Test%20and%20Release/badge.svg) -## IoBroker 的 alexa-shoppinglist 适配器 +## IoBroker 的 alexa-shoppingList 适配器 从 Alexa 生成购物清单 -您还可以使用 Alexa 的其他列表。在管理员中配置它。 -当您使用新的管理 UI 时,这对您来说会容易得多。 +您还可以使用 Alexa 中的其他列表。在管理员中配置它。 +当您使用新的管理员 UI 时,它会变得更加容易。 -有一个插入新项目的状态。只需编写文本并输入。 +有一个状态可以插入新项目。只需输入文本并按 Enter 即可。 您可以删除活动和非活动列表。 -您也可以只向两个方向移动一个项目。 +您也可以只移动一个项目,双向移动。 -我希望你喜欢 +希望你喜欢 -**如果喜欢,请考虑捐款:** +**如果您喜欢它,请考虑捐赠:** -[![贝宝](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=7QGL5CXJCUSCE) +[![贝宝](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/donate/?hosted_button_id=7QGL5CXJCUSCE) -## 数据点 -| DP 名称 |类型 |说明 | +数据点 +| DP 名称 | 类型 | 描述 | | ------------------- | ------ | --------------------------------------------------------------------------------------------------- | -|添加位置 |字符串 |键入要插入列表中的文本 | -|删除活动列表 |按钮 |清除活动列表并将其移至非活动列表 | -|删除无效列表 |按钮 |清除非活动列表 | -| position_to_shift |编号 |您可以插入项目移动的位置编号,而不是按钮 to_active_list 或 to_inactive list | -|列表活动 | JSON | JSON 格式的活动列表 | -|列表活动排序 |切换 |您可以按名称或插入时间对活动列表进行排序 | -| list_inactive | JSON |非活动列表作为 JSON | -| list_inactive_sort |切换 |您可以按名称或插入时间对非活动列表进行排序 | -| to_activ_list |按钮 |首先插入 position_to_shift 然后按下按钮移动到 activ_list | -| to_inactive_list |按钮 |首先插入 position_to_shift 然后按下按钮移动到 inactiv_list | - -| JSON 中的属性 |说明 | +| add_position | 字符串 | 输入要插入列表的文本 | +| delete_activ_list | 按钮 | 清除活动列表并将其移至非活动列表 | +| delete_inactiv_list | 按钮 | 清除非活动列表 | +| position_to_shift | 编号 | 您可以插入项目移动的位置编号,然后按钮移动到活动列表或非活动列表 | +| list_active | JSON | JSON 格式的活动列表 | +| list_active_sort | 开关 | 您可以按名称或插入时间对活动列表进行排序 | +| list_inactive | JSON | JSON 格式的非活动列表 | +| list_inactive_sort | 开关 | 您可以按名称或插入时间对非活动列表进行排序 | +| to_activ_list | 按钮 | 首先插入 position_to_shift 然后按按钮移动到 activ_list | +| to_inactive_list | 按钮 | 首先插入 position_to_shift 然后按按钮移动到 inactiv_list | + +| JSON 中的属性 | 描述 | | ----------------- | ----------------------------------------- | -|姓名 |物品名称 | -|时间 |插入的时间戳 | -|编号 | Alexa2 适配器中的 ID | -|位置 |榜单位置 | -|按钮移动 |移动到活动或非活动列表的按钮 | -|按钮删除 |完全删除项目的按钮 | +| 名称 | 产品名称 | +| 时间 | 插入时间戳 | +| id | Alexa2 适配器中的 id | +| pos | 列表中的位置 | +| buttonmove | 移至活动或非活动列表的按钮 | +| buttondelete | 彻底删除项目的按钮 | -JSON 现在包含 2 个用于移动项目或删除的按钮。 -为此,您必须在 Skript 下的 VIS 编辑器中插入代码,将其放入: +JSON 现在包含 2 个按钮,用于移动项目或删除。 +为此,您必须在 Skript 下的 VIS 编辑器中插入代码,输入以下内容: ``` /* Alexa Einkaufsliste JSON */ @@ -64,15 +64,21 @@ JSON 现在包含 2 个用于移动项目或删除的按钮。 function setOnDblClickCustomShop( myvalue) { let id = myvalue.slice(0,myvalue.indexOf(",")); let val = myvalue.slice(myvalue.indexOf(",")+1, myvalue.length); - if (val){ - vis.setValue(id,val); + if (val=== "true"){ + vis.setValue(id,true); + return } + vis.setValue(id,false); } ``` ![](../../../en/adapterref/iobroker.alexa-shoppinglist/admin/Skript.png) ## Changelog +### 1.0.0 (2024-08-09) + +- Js-controller >=5.0.19 is required +- Breaking change: minimal supported node.js version is 18.x ### 0.1.5 (09.01.2023) @@ -80,8 +86,8 @@ function setOnDblClickCustomShop( myvalue) { ### 0.1.4 (25.09.2022) -- Its now possible to delete always the Inactiv list, when you delete an Articel from the Activ list -- You only have to check the Checkbox +- Its now possible to delete always the inactive list, when you delete an article from the active list +- You only have to check the checkbox ### 0.1.2 ( 09.04.2022) @@ -103,7 +109,7 @@ function setOnDblClickCustomShop( myvalue) { MIT License -Copyright (c) 2023 MiRo1310 +Copyright (c) 2024 MiRo1310 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.alexa-shoppinglist/admin/Skript.png b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/admin/Skript.png new file mode 100644 index 000000000..55755de95 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/admin/Skript.png differ diff --git a/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/admin/alexa-shoppinglist.png b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/admin/alexa-shoppinglist.png new file mode 100644 index 000000000..f530a2659 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.alexa-shoppinglist/admin/alexa-shoppinglist.png differ diff --git a/docs/zh-cn/adapterref/iobroker.alpha-ess/README.md b/docs/zh-cn/adapterref/iobroker.alpha-ess/README.md index 9b33b8573..ff411db10 100644 --- a/docs/zh-cn/adapterref/iobroker.alpha-ess/README.md +++ b/docs/zh-cn/adapterref/iobroker.alpha-ess/README.md @@ -3,13 +3,13 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.alpha-ess/README.md title: ioBroker.alpha-ess -hash: vG8Yn8jR+++6UtW2i2J8JjSa35jID2Ixd6qaZItdCM0= +hash: gvz3gFW9L2NI9eDe61wgfWppkxQ00wGLxWHEDJZNyt0= --- ![标识](../../../en/adapterref/iobroker.alpha-ess/admin/alpha-ess.png) ![安装数量(最新)](http://iobroker.live/badges/alpha-ess-installed.svg) ![安装数量(稳定)](http://iobroker.live/badges/alpha-ess-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.alpha-ess.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.alpha-ess.svg) ![下载](https://img.shields.io/npm/dm/iobroker.alpha-ess.svg) ![已知漏洞](https://snyk.io/test/github/Gaspode69/ioBroker.alpha-ess/badge.svg) @@ -22,44 +22,65 @@ https://forum.iobroker.net/post/892023 https://www.storion4you.de/thread/683 --- -### 鉴于目前情况,请注意! +### 由于当前情况,请注意! [接口限制公告](https://github.com/alphaess-developer/alphacloud_open_api/issues/54) --- -该适配器登录到 [阿尔法-ESS](https://www.alphaess.com/) 的 Web API 并检索您的 Alpha-ESS 设备的信息。\ 根据您的 Alpha-ESS 产品,可以获取设备的实时数据和配置数据。 API 返回哪些数据点取决于您的 Alpha-ESS 设备。 +此适配器登录到 [Alpha ESS 系统](https://www.alphaess.com/) 的 Web API 并检索您的 Alpha-ESS 设备的信息。\ 根据您的 Alpha-ESS 产品,可以获取设备的实时数据和配置数据。API 返回哪些数据点取决于您的 Alpha-ESS 设备。 -该适配器使用 Alpha-ESS Open API,这是 Alpha-ESS 设备的官方且有记录的 API。 +该适配器使用 Alpha-ESS Open API,这是 Alpha-ESS 设备的官方且有文档记录的 API。 每个状态的质量属性根据其状态进行设置: -|品质 |意义| +| 品质 | 意义 | |:--------|:--------------------------------------------------| -|0x00 |确定并且是最新的| -|0x01 |由于未知原因,值未更新,请参阅日志 | -|0x02 |此数据点的在线连接问题| -|0x12 |适配器已断开连接或停止| -|0x44 |API 返回错误或内部错误,请参阅日志 | +|0x00 |确定并且是最新的 | +|0x01 |由于未知原因,值未更新,请参阅调试日志| +|0x02 |此数据点的在线连接存在问题| +|0x12 |适配器已断开连接或停止 | +|0x44 |API 返回错误或内部错误,请参阅调试日志 | ## 设置: -为了能够使用 Alpha-ESS Open API,您必须在 https://open.alphaess.com 下注册您的 Alpha-ESS 设备。注册后,您将获得开发者 ID 和开发者密钥(称为“秘密”)。您将需要这些才能访问开放 API。 -这里描述了如何查找SN和检查代码进行注册:https://github.com/alphaess-developer/alphacloud_open_api +为了能够使用 Alpha-ESS Open API,您必须在 https://open.alphaess.com 上注册您的 Alpha-ESS 设备。注册后,您将获得一个开发者 ID 和一个开发者密钥(称为“Secret”)。您需要这些才能访问 Open API。 +如何查找 SN 和检查注册代码在此处描述:https://github.com/alphaess-developer/alphacloud_open_api - **个人申请ID:**申请ID(见上文) -- **个人应用程序秘密:**应用程序秘密(见上文) -- **Alpha-ESS 系统 ID:** Alpha-ESS 设备的系统标识符 -- **读取实时数据的时间间隔:** 单位:秒。 -- **读取能源数据的时间间隔:** 单位:分钟。 -- **读取充电设置的间隔:** 单位:分钟。 -- **读取放电设置的时间间隔:** 单位:分钟。 -- **读取摘要数据的时间间隔:** 单位:分钟。 -- **读取墙盒数据的时间间隔:** 单位:分钟。注意:目前仅支持一个 Wallbox。 -- **更新未更改的状态:** 如果选中此选项,即使相应的值未更改,状态也会更改。 +- **个人申请秘诀**:申请秘诀(见上文) +- **Alpha-ESS 系统 ID:** 您的 Alpha-ESS 设备的 S/N(序列号) +- **读取实时数据的间隔**:单位:秒。 +- **读取能量数据的间隔**:单位:分钟。 +- **读取充电设置的间隔:**单位:分钟。 +- **读取放电设置的间隔:**单位:分钟。 +- **读取摘要数据的间隔**:单位:分钟。 +- **读取 Wallbox 数据的间隔**:单位:分钟。注意:目前仅支持一个 Wallbox。 +- **更新不变的状态**:如果选中此选项,即使相应的值不变,状态也会改变。 ## 免责声明 -**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何关联子公司有任何隶属关系或认可!这个个人项目是在业余时间维护的,没有商业目标。** +**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何相关子公司有任何关联或认可!此个人项目是在业余时间维护的,没有商业目标。** ## Changelog +### 2.1.4 (2024-08-13) + +- (Gaspode) Updated some formal stuff + +### 2.1.3 (2024-08-07) + +- (Gaspode) Increased read timeout from 10 to 20 s + +### 2.1.2 (2024-08-07) + +- (Gaspode) Quality of states optimized + +### 2.1.1 (2024-08-07) + +- (Gaspode) Do not longer report read timeouts as error. It should be enough to set the quality of concerned states to values according the table above and to display warnings, if values were not updated for a long time. To see details, debug log level must be enabled by the user. + +### 2.1.0 (2024-08-01) + +- (Gaspode) Adapter requires node.js >= 18 and js-controller >= 5 now +- (Gaspode) Dependencies updated +- (Gaspode) Adapter logo updated. Alpha-ESS has kindly permitted to use the Alpha-ESS logo. This does not imply any affiliation with Alpha-ESS! Alpha-ESS is not the developer or provider of this adapter! ### 2.0.2 (2024-01-12) diff --git a/docs/zh-cn/adapterref/iobroker.apg-info/README.md b/docs/zh-cn/adapterref/iobroker.apg-info/README.md index 7a21688fd..8988341ab 100644 --- a/docs/zh-cn/adapterref/iobroker.apg-info/README.md +++ b/docs/zh-cn/adapterref/iobroker.apg-info/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.apg-info/README.md title: ioBroker.apg-信息 -hash: 8wDh7cXhCkzlq0x3E2224YMuZyf32PYekvxxEejClJQ= +hash: mc94541S9Ji4p2IqRn+ZcB1O2XVctgr7y/uTsLdWwLM= --- ![标识](../../../en/adapterref/iobroker.apg-info/admin/apg-info.png) @@ -16,10 +16,10 @@ hash: 8wDh7cXhCkzlq0x3E2224YMuZyf32PYekvxxEejClJQ= ![新平台](https://nodei.co/npm/iobroker.apg-info.png?downloads=true) # IoBroker.apg-信息 -[![FOSSA 状态](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHGlab01%2FioBroker.apg-info.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FHGlab01%2FioBroker.apg-info?ref=badge_shield) ![测试与发布](https://github.com/HGlab01/ioBroker.apg-info/workflows/Test%20and%20Release/badge.svg) +[![FOSSA 状态](https://app.fossa.com/api/projects/git%2Bgithub.com%2FHGlab01%2FioBroker.apg-info.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FHGlab01%2FioBroker.apg-info?ref=badge_shield)![测试与发布](https://github.com/HGlab01/ioBroker.apg-info/workflows/Test%20and%20Release/badge.svg) ## IoBroker 的 apg-info 适配器 -此适配器提供奥地利电网的高峰时段,避免用电。此外,适配器还提供奥地利和德国的 PHELIX 日前 (EPEX 现货) 价格(在适配器设置中配置)。供应商费用、税费、电网成本可在配置(计算选项卡)中随意添加。 +此适配器提供奥地利电网的高峰时段,避免用电。此外,适配器还提供奥地利、瑞士和德国的 PHELIX 日前 (EPEX 现货) 价格(在适配器设置中配置)。供应商费用、税费、电网成本可在配置(计算选项卡)中随意添加。 `[..].marketprice.today.jsonChart` 和 `[..].marketprice.tomorrow.jsonChart` 可与 https://github.com/Scrounger/ioBroker.vis-materialdesign#json-chart 一起使用。 在标准配置下,适配器在 00:00、13:00 和 15:00 运行。强烈建议不要删除 00:00 的运行,否则日期更改(明天 --> 今天)将无法正常工作。 @@ -29,11 +29,21 @@ hash: 8wDh7cXhCkzlq0x3E2224YMuZyf32PYekvxxEejClJQ= * Node.js 18 或更高版本 * ioBroker 主机 (js-controller) 5.0 或更高版本 +## 瑞士市场 +对于瑞士市场,需要来自 entsoe.eu 的令牌。请将您的令牌添加到“ENTSOE TOKEN”选项卡中的适配器配置中。在页面 https://transparency.entsoe.eu/ 上注册,然后发送电子邮件至 transparent@entsoe.eu,请求您注册的电子邮件地址的 RESTFUL API 访问权限。
有关更多详细信息,请查看https://transparency.entsoe.eu/content/static_content/Static%20content/web%20api/Guide.html#_authentication_and_authorisation + ## Changelog +### 0.1.9 (2024-08-21) +* (HGlab01) Support eslint9 + +### 0.1.8 (2024-07-31) +* (HGlab01) Swiss market support; Token needed! Check readme! +* (HGlab01) Bump json-explorer to 0.1.16 + ### 0.1.7 (2024-05-27) * (HGlab01) Add date to today and tomorrow to make the date of today and tomorrow clear * (HGlab01) bump axios to 1.7.2 @@ -45,12 +55,6 @@ hash: 8wDh7cXhCkzlq0x3E2224YMuZyf32PYekvxxEejClJQ= ### 0.1.5 (2024-01-20) * (HGlab01) Add fee, grid costs and tax calculation -### 0.1.4 (2024-01-15) -* (HGlab01) fix 'Cannot read properties of undefined (reading 'status')' - -### 0.1.3 (2023-12-26) -* (HGlab01) Fix issue 'Request failed with status code 500' (#170) - ## License MIT License diff --git a/docs/zh-cn/adapterref/iobroker.bascloud/README.md b/docs/zh-cn/adapterref/iobroker.bascloud/README.md new file mode 100644 index 000000000..79fe63ba6 --- /dev/null +++ b/docs/zh-cn/adapterref/iobroker.bascloud/README.md @@ -0,0 +1,83 @@ +--- +translatedFrom: en +translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.bascloud/README.md +title: ioBroker.bascloud +hash: dDBma9R9IqeGgtuWbHoicVotjwZ3PvMKAdk2THgdVJc= +--- +![标识](../../../en/adapterref/iobroker.bascloud/admin/bascloud.png) + +![NPM 版本](https://img.shields.io/npm/v/iobroker.bascloud.svg) +![下载](https://img.shields.io/npm/dm/iobroker.bascloud.svg) +![安装数量](https://iobroker.live/badges/bascloud-installed.svg) +![稳定存储库中的当前版本](https://iobroker.live/badges/bascloud-stable.svg) +![新平台](https://nodei.co/npm/iobroker.bascloud.png?downloads=true) + +# IoBroker.bascloud +![测试与发布](https://github.com/BAScloud/ioBroker.bascloud/workflows/Test%20and%20Release/badge.svg) + +## BAScloud 适配器适用于 ioBroker +[基础云](https://bascloud.net/) 是一个安全的平台,用于跨物业联网和存储建筑信息。除了历史和当前测量值以及数据点的一般信息外,它还将建筑的主数据集中存储在私有云中。 + +## Changelog + + + +### 0.4.0 (2024-07-15) + +- (Yanick) fixes from feedback +- (Yanick) upgrade js-controller and admin dependency +- (Yanick) filter invalid characters +- (Yanick) fix various crashes and timeouts +- (Yanick) add translations to all labels +- (Yanick) set correct types and values +- (Yanick) add testing for windows and macos + +### 0.3.0 (2024-06-05) + +- (Yanick) always send function +- (Yanick) add function to send on start + +### 0.2.0 (2024-06-04) + +- (Yanick) fixes for automated adapter testing + +### 0.1.2 (2024-06-04) + +- (Yanick) fix for 0 values +- (Yanick) translation updates + +### 0.1.1 (2024-06-03) + +- (Yanick) small fixes, add build folder + +### 0.1.0 (2024-06-03) + +- (Yanick) initial release + +## License + +MIT License + +Copyright (c) 2024 Yanick Stephan + +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/zh-cn/adapterref/iobroker.bascloud/admin/bascloud.png b/docs/zh-cn/adapterref/iobroker.bascloud/admin/bascloud.png new file mode 100644 index 000000000..04b5d102d Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.bascloud/admin/bascloud.png differ diff --git a/docs/zh-cn/adapterref/iobroker.chargemaster/README.md b/docs/zh-cn/adapterref/iobroker.chargemaster/README.md index 22f9b43c9..8d3b31a3f 100644 --- a/docs/zh-cn/adapterref/iobroker.chargemaster/README.md +++ b/docs/zh-cn/adapterref/iobroker.chargemaster/README.md @@ -3,116 +3,138 @@ 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: zO3EtS2rpnpNs2nGou1sBEsZVtWbMhvnBczSZovQsK4= +hash: xvFIPavgdxAYZECCfr+v6WITn12RRC+P9OASJVe7DQU= --- ![标识](../../../en/adapterref/iobroker.chargemaster/admin/chargemaster.png) -![NPM版本](https://img.shields.io/npm/v/iobroker.chargemaster?style=flat-square) +![NPM 版本](https://img.shields.io/npm/v/iobroker.chargemaster?style=flat-square) ![下载](https://img.shields.io/npm/dm/iobroker.chargemaster?label=npm%20downloads&style=flat-square) -![节点-lts](https://img.shields.io/node/v-lts/iobroker.chargemaster?style=flat-square) +![节点](https://img.shields.io/node/v-lts/iobroker.chargemaster?style=flat-square) ![Libraries.io 最新版本的依赖状态](https://img.shields.io/librariesio/release/npm/iobroker.chargemaster?label=npm%20dependencies&style=flat-square) -![GitHub 工作流程状态](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.chargemaster/node.js.yml?branch=main&logo=github&style=flat-square) +![GitHub](https://img.shields.io/github/license/hombach/iobroker.chargemaster?style=flat-square) +![GitHub 仓库大小](https://img.shields.io/github/repo-size/hombach/iobroker.chargemaster?logo=github&style=flat-square) +![GitHub 提交活动](https://img.shields.io/github/commit-activity/m/hombach/iobroker.chargemaster?logo=github&style=flat-square) +![GitHub 上次提交](https://img.shields.io/github/last-commit/hombach/iobroker.chargemaster?logo=github&style=flat-square) +![GitHub 问题](https://img.shields.io/github/issues/hombach/iobroker.chargemaster?logo=github&style=flat-square) +![GitHub 工作流程状态](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.chargemaster/test-and-release.yml?branch=main&logo=github&style=flat-square) ![Appveyor-CI](https://ci.appveyor.com/api/projects/status/github/hombach/ioBroker.chargemaster?branch=master&svg=true) ![SNYK 已知漏洞](https://snyk.io/test/github/hombach/ioBroker.chargemaster/badge.svg) -![贝塔](https://img.shields.io/npm/v/iobroker.chargemaster.svg?color=red&label=beta) +![测试版](https://img.shields.io/npm/v/iobroker.chargemaster.svg?color=red&label=beta) ![稳定的](https://iobroker.live/badges/chargemaster-stable.svg) ![已安装](https://iobroker.live/badges/chargemaster-installed.svg) -![国家公共管理](https://nodei.co/npm/iobroker.chargemaster.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.chargemaster.png?downloads=true) # IoBroker.chargemaster -[![CodeQL](https://github.com/hombach/ioBroker.chargemaster/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hombach/ioBroker.chargemaster/actions/workflows/codeql-analysis.yml) +[![CodeQL](https://github.com/hombach/ioBroker.chargemaster/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hombach/ioBroker.chargemaster/actions/workflows/codeql-analysis.yml) ## 版本 ## 使用光伏能源管理一个或多个电动汽车充电器的适配器 -**!!!该适配器仍处于开发状态!!!** +**!!! 该适配器仍然代表着发展状态 !!!** -使用光伏能源管理一个或多个电动汽车充电器(壁箱)的适配器。适配器目前可处理多达 3 个 EV 壁箱,以管理可用电网电源的充电,并可能利用光伏剩余能源。 +适配器使用光伏能源管理一个或多个电动汽车充电器(壁挂式充电箱)。适配器目前最多可处理 3 个电动汽车壁挂式充电箱,以管理可用的电网电力,并可能利用光伏剩余能源。 ## 设置 -要连接到墙盒,请在配置中输入所需数据的状态。 +要连接到壁挂式安装盒,请在配置中输入需要数据的状态。 -## 注释 -该适配器使用 Sentry 库自动向开发人员报告异常和代码错误。有关更多详细信息以及有关如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +哨兵 +此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。有关如何禁用错误报告的更多详细信息和信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!Sentry 报告从 js-controller 3.0 开始启动。 -## 测试用 +## 捐赠 +如果你喜欢这个项目 — 或者只是觉得慷慨,可以考虑给我买杯啤酒。干杯!:啤酒: + +## 测试 - 3x go-E 充电器和 Kostal PikoBA ## Changelog -! Note that missing version entries are typically dependency updates for security. - -### 0.8.3 (29.10.2023) -* (HombachC) Bumb adapter core to 3.x -* (HombachC) Bump axios to 1.6.0 because of vulnerability -### 0.8.2 (01.10.2023) -* (HombachC) Several dependency updates -* (HombachC) Fixed acknowledging of state changes (#339) -### 0.8.1 (29.08.2023) -* (HombachC) bumped dependencies, added min/max to settings state defaults -### 0.8.0 (23.06.2023) -* (HombachC) changed config screen to admin 5 solution -### 0.7.2 (19.06.2023) -* (HombachC) Removed Travis -### 0.7.1 (13.06.2023) -* (HombachC) Fixed typo in docu, added translations -### 0.7.0 (11.06.2023) -* (HombachC) BREAKING: dropped node.js 14 support -* (HombachC) Add tests for node.js 20, removed for node.js 14, bumped dependencies -* (HombachC) BREAKING: dropped ioBroker.admin 4 support -### 0.6.3 (29.12.2022) -* (HombachC) bumped dependencies and year 2023 changes -### 0.6.2 (11.09.2022) -* (HombachC) fixed error in calc with active charge current -### 0.6.1 (08.09.2022) -* (HombachC) bump @iobroker/testing from 3.0.2 to 4.1.0 -### 0.6.0 (09.08.2022) -* (HombachC) fix error in max total current, fix error in charge manager -### 0.5.1 (06.06.2022) -* (HombachC) removed gulp, bumped dependencies, small code tweaks -### 0.5.0 (09.05.2022) -* (HombachC) BREAKING: dropped node.js 12 support -* (HombachC) Add tests for node.js 18, removed for node.js 12 -* (HombachC) bumped dependencies to non node.js 12 support -### 0.4.4 (27.04.2022) -* (HombachC) fixed vulnerability, bumped dependencies -### 0.4.3 (22.02.2022) -* (HombachC) added github tests for MAC-OS and Windows -### 0.4.2 (21.02.2022) -* (HombachC) changed statemachine to async; bumped dependencies -### 0.4.1 (18.02.2022) -* (HombachC) fixed error in charger communication; added ci test -### 0.4.0 (14.02.2022) -* (HombachC) introduced automatic adaption to the amount of configured chargers; bugfixes for cleaner run without config -### 0.3.2 (14.02.2022) -* (HombachC) fixing test automation, several bugfixes for cleaner run without config -### 0.3.1 (29.01.2022) -* (HombachC) added sentry statistics; optimized logging; fixed type conversion bug -### 0.3.0 (28.01.2022) -* (HombachC) first public release for iOBroker latest repo; added sentry support -### 0.2.0 (18.12.2021) -* (HombachC) dropped node.js 10 support; bumped dependencies -### 0.1.5 (15.10.2021) -* (HombachC) fixed vulnerability; improved docu -### 0.1.2 (02.05.2021) -* (HombachC) code cleanup and optimization, fixed onStateChange -### 0.1.1 (30.04.2021) -* (HombachC) fixed errors with js-controller 3.3.x, bumped dependencies -### 0.1.0 (11.04.2021) -* (HombachC) first running version, fixed to 3 boxes -### 0.0.7 (31.03.2021) -* (HombachC) added MaxAmpTotal, MinAmpWallBox, MaxAmpWallBox -### 0.0.6 (23.03.2021) -* (HombachC) added collection and calc of total charge power -### 0.0.4 (15.03.2021) -* (HombachC) fix error in foreign state popup -### 0.0.2 (06.01.2021) -* (HombachC) fix errors to get it running in old single wallbox mode -### 0.0.1 (01.01.2021) -* (HombachC) initial release + +! Note that missing version entries are typically dependency updates for improved security. + +### 0.11.0 (2024-08-24) + +- (HombachC) implement variable wallbox amount +- (HombachC) fix errors in wallbox control +- (HombachC) complete rework of configuration screen +- (HombachC) move utils to extra class +- (HombachC) switch to ECMA 2022 code +- (HombachC) bumped dependencies + +### 0.10.0 (2024-08-18) + +- (HombachC) switch to Typescript +- (HombachC) change adapter type to "energy" +- (HombachC) replace deprecated setStateAsync + +### 0.9.3 (2024-08-18) + +- (HombachC) change translation handling +- (HombachC) code and repository cleanup +- (HombachC) prepare switch to Typescript + +### 0.9.2 (2024-08-16) + +- (HombachC) fixed vulnerability in dependency +- (HombachC) added tests for node 22 + +### 0.9.1 (2024-08-06) + +- (HombachC) fixed issues detected by repository checker (#494) +- (HombachC) code cleanups + +### 0.9.0 (2024-04-20) + +- (HombachC) BREAKING: dropped support for node.js 16 (#455) +- (HombachC) BREAKING: js-controller >= 5 is required (#456) + +### 0.8.5 (2024-03-27) + +- (HombachC) updated CI definitions, switched to node 20 as main test scenario +- (HombachC) corrected io-package.json according to new schema +- (HombachC) bumped dependencies + +### 0.8.4 (2023-12-29) + +- (HombachC) BREAKING: dropped support for js-controller 3.x +- (HombachC) Year 2024 changes +- (HombachC) Bump axios to 1.6.3 because of vulnerability + +### 0.8.3 (2023-10-29) + +- (HombachC) Bumb adapter core to 3.x +- (HombachC) Bump axios to 1.6.0 because of vulnerability + +### 0.8.2 (2023-10-01) + +- (HombachC) Several dependency updates +- (HombachC) Fixed acknowledging of state changes (#339) + +### 0.8.1 (2023-08-29) + +- (HombachC) bumped dependencies, added min/max to settings state defaults + +### 0.8.0 (2023-06-23) + +- (HombachC) changed config screen to admin 5 solution + +### 0.7.2 (2023-06-19) + +- (HombachC) Removed Travis + +### 0.7.1 (2023-06-13) + +- (HombachC) Fixed typo in docu, added translations + +### 0.7.0 (2023-06-11) + +- (HombachC) BREAKING: dropped node.js 14 support +- (HombachC) Add tests for node.js 20, removed for node.js 14, bumped dependencies +- (HombachC) BREAKING: dropped ioBroker.admin 4 support + +### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md) ## License MIT License -Copyright (c) 2021-2023 Christian Hombach +Copyright (c) 2021-2024 Christian Hombach 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.daikin-cloud/README.md b/docs/zh-cn/adapterref/iobroker.daikin-cloud/README.md index 7bce17d9a..8c6fc643f 100644 --- a/docs/zh-cn/adapterref/iobroker.daikin-cloud/README.md +++ b/docs/zh-cn/adapterref/iobroker.daikin-cloud/README.md @@ -2,59 +2,79 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.daikin-cloud/README.md -title: ioBroker.大金云 -hash: cSKtpMuG2tBxU9KOMdGSFWUyWjlyg0ikhHEA6FvDiO0= +title: ioBroker.daikin-cloud +hash: fc+lDvniOI9v/PO4rz0DAdRWjY9t8XW07zgPlvQiPIU= --- ![标识](../../../en/adapterref/iobroker.daikin-cloud/admin/daikin-cloud.jpg) ![安装数量](http://iobroker.live/badges/daikin-cloud-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.daikin-cloud.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.daikin-cloud.svg) ![下载](https://img.shields.io/npm/dm/iobroker.daikin-cloud.svg) # IoBroker.daikin-cloud ![测试与发布](https://github.com/Apollon77/iobroker.daikin-cloud/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/daikin-cloud/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 5.0 开始使用 Sentry 报告。 -## IoBroker 的大金云适配器 -控制仅连接到大金云/Oneecta 应用程序的大金设备。适配器连接到 Daikin-Cloud 并从那里轮询数据。 +## 适用于 ioBroker 的 Daikin-cloud 适配器 +控制仅连接到 Daikin Cloud/Onecta App 的 Daikin 设备。适配器连接到 Daikin-Cloud 并从那里轮询数据。为了实现此功能,您需要注册“Daikin Europe 开发者帐户”并在那里创建一个应用程序。然后,适配器将使用此应用程序的凭据连接到 Daikin Cloud。 ## 免责声明 -**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何关联子公司有任何隶属关系或认可!此个人项目是在业余时间维护的,没有商业目标。** **Daikin 是 DAIKIN INDUSTRIES, LTD. 的商标。** +**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何相关子公司有任何关联或认可!此个人项目是在业余时间维护的,没有商业目标。** **Daikin 是 DAIKIN INDUSTRIES, LTD. 的商标。** -## 兼容性 -该适配器应与带有可通过 Daikin Onecta 应用程序控制的 Daikin WLAN 适配器 **BRP069C4x** 的设备兼容。无法与这些设备进行本地连接! +## 兼容性 +此适配器应与配备 Daikin WLAN 适配器 **BRP069C4x** 的设备兼容,这些设备可通过 Daikin Onecta App 进行控制。无法与这些设备进行本地连接! -注意:对于具有旧版 WLAN 适配器(例如 **BRP069A4x**)且只能由 Daikin 控制器应用程序使用的设备,请改用 [大金](https://github.com/Apollon77/ioBroker.daikin) 适配器。 +注意:对于具有旧版 WLAN 适配器(如 **BRP069A4x**)的设备,由于该设备只能由 Daikin 控制器应用程序使用,请改用 [大金](https://github.com/Apollon77/ioBroker.daikin) 适配器。 -## 功能 -自 2020 年以来销售的较新的大金设备包含较新的 Wifi 适配器(例如 BRP069C4x),该适配器仅连接到大金云,并且不再在本地进行访问。这些设备只能通过 Daikin Onecta 应用程序进行控制。 +功能 +自 2020 年起销售的新型 Daikin 设备包含较新的 Wifi 适配器(例如 BRP069C4x),该适配器仅连接到 Daikin Cloud,不再可在本地访问。这些设备只能通过 Daikin Onecta App 进行控制。 -该适配器允许最初(希望一次)通过使用代理登录大金云来检索令牌。之后,可以使用和刷新这些令牌来与设备进行交互。 +此适配器允许最初(希望是一次)使用个人开发者帐户和一次性登录流程检索令牌。之后,可以使用和刷新这些令牌来与设备交互。 -连接到大金云帐户后,适配器将自动为连接到大金云的每个设备创建一个新设备。显示所有可用数据,并允许控制设备的几种状态。 -**请注意,大金云的命令速度并不是很快,这意味着命令真正执行或状态更新可能需要长达 3 分钟的时间!** +连接到 Daikin Cloud 帐户后,适配器将自动为连接到 Daikin Cloud 的每个设备创建一个新设备。显示所有可用数据,并允许通过多种状态控制设备。 +**请注意,Daikin Cloud 的命令速度不是超级快,这意味着可能需要长达 3 分钟才能真正执行命令或更新状态!** -### 通过电子邮件/密码登录 -如果您想提供大金云凭据,则适配器可以尝试自动登录云。电子邮件和密码在配置中加密存储。 +此外,Daikin Cloud API 的每日请求次数限制为 200 次。因此,请考虑以下最佳做法: -由于大金网站要求您解决验证码,因此该过程可能不起作用。在此可以使用以下技巧: +* 默认轮询间隔为 15 分钟,对于大多数用例来说应该足够了,同时还留出一些空间用于控制设备。考虑到每个控制操作都需要 2 个请求(一个用于控制,一个用于在控制调用 1 分钟后更新数据)。尤其是在许多设备的情况下,这确实会造成问题。 +* 适配器还支持“慢速轮询”,您可以定义自己的间隔。使用状态“useSlowPolling”根据您的需要启用或禁用慢速轮询(例如,在夜间每小时轮询一次...) +* 最好在切换设备电源状态之间留出至少 10 分钟的时间,否则会对设备的移动部件造成不利影响 -* 通过管理中的适配器配置启动代理 -* 单击代理弹出窗口中的二维码 -* 您**不需要**需要导入证书! -* 只需点击说明页面末尾的“登录大金云以检索令牌”链接并登录一次并解决验证码即可。 -* 关闭浏览器窗口并重新启动适配器 - -### 通过代理登录 -**有关最终用户代理进度的更多信息 - 因为您需要信任证书并将其列入白名单等 - 可以在 [代理.md](PROXY.md)!** 中找到:该项目不会获取任何用户名或密码,只是获取登录后创建的令牌。这也意味着,如果大金重置令牌或令牌过期,您需要再次执行此过程! +当前速率限制详细信息包含在适配器状态中,每次适配器向 Daikin Cloud 发出请求时都会更新。 ## 免责声明 -**大金是大金工业株式会社的商标。我不以任何方式获得 DAIKIN INDUSTRIES, LTD. 或任何相关子公司、徽标或商标的认可或附属。这个个人项目是在业余时间维护的。** +**Daikin 是 DAIKIN INDUSTRIES, LTD. 的商标。我绝不认可或隶属于 DAIKIN INDUSTRIES, LTD. 或任何相关子公司、徽标或商标。此个人项目是在业余时间维护的。** ## Changelog +### 0.4.10 (2024-07-20) +* (Apollon77) Fixes some error cases reported by Sentry + +### 0.4.9 (2024-07-19) +* (Apollon77) Optimized write handling + +### 0.4.8 (2024-07-12) +* (Apollon77) Optimized handling of rate limits, block maximum 24h and retry then +* (Apollon77) Added option to prevent sending the same values again (prevented by default!) + +### 0.4.7 (2024-07-09) +* (Apollon77) Handles initialization issue where objects could be deleted wrongly +* (Apollon77) Also check for HTTPS usage when returning the redirect URL + +### 0.4.6 (2024-07-07) +* (Apollon77) Update dependencies with optimizations and second blocking layer for rate limiting + +### 0.4.5 (2024-07-06) +* (Apollon77) Block communication when rate limited according to Daikin response + +### 0.4.4 (2024-07-06) +* (Apollon77) Fix initialization retry schedule -### __WORK IN PROGRESS__ +### 0.4.3 (2024-07-05) +* IMPORTANT: Minimum Node.js version is 18.2 +* (Apollon77) BREAKING: Adjusted to new Daiking Cloud API - You need to reauthenticate! +* (Apollon77) BREAKING: New rate limit of new API is 200 requests per day!! Adjust your usage! +* (Apollon77) Added option to set "slow polling" interval * (Apollon77) Make electrical data available as states (arrays for now) * (Apollon77) Restore last data updated timestamp * (Apollon77) Make sure cloudConnection always contains a boolean @@ -95,7 +115,7 @@ hash: cSKtpMuG2tBxU9KOMdGSFWUyWjlyg0ikhHEA6FvDiO0= ## License MIT License -Copyright (c) 2022-2023 Apollon77 +Copyright (c) 2022-2024 Apollon77 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.daikin-cloud/admin/daikin-cloud.jpg b/docs/zh-cn/adapterref/iobroker.daikin-cloud/admin/daikin-cloud.jpg new file mode 100644 index 000000000..a8d828fa4 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.daikin-cloud/admin/daikin-cloud.jpg differ diff --git a/docs/zh-cn/adapterref/iobroker.daikin/README.md b/docs/zh-cn/adapterref/iobroker.daikin/README.md index 0174503ea..2bf539356 100644 --- a/docs/zh-cn/adapterref/iobroker.daikin/README.md +++ b/docs/zh-cn/adapterref/iobroker.daikin/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.daikin/README.md title: ioBroker.daikin -hash: 15a/Y6Geu6hlOpHJrvLlbLQ3z86g6IL579HYrY6Vpqw= +hash: rahmurR88ztHbCO4A+BiweKI9g5OdRl/0CcedaxccqU= --- ![标识](../../../en/adapterref/iobroker.daikin/admin/daikin.jpg) @@ -12,51 +12,56 @@ hash: 15a/Y6Geu6hlOpHJrvLlbLQ3z86g6IL579HYrY6Vpqw= ![下载](https://img.shields.io/npm/dm/iobroker.daikin.svg) # IoBroker.daikin -![测试和发布](https://github.com/Apollon77/iobroker.daikin/workflows/Test%20and%20Release/badge.svg)[![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/daikin/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +![测试与发布](https://github.com/Apollon77/iobroker.daikin/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/daikin/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。**有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用哨兵报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 -该适配器连接到大金空调设备并允许控制设备并从中读取值。 -Daikin 设备需要配备 Daikin Wifi 控制器。通常应支持 Daikin App 支持的所有 wifi 控制器。 +此适配器连接到大金空调设备,允许控制设备并从中读取值。 +大金设备需要配备大金 Wifi 控制器。通常,大金应用程序支持的所有 wifi 控制器都应受支持。 -根据大金支持文件,以下设备应该兼容(至少): +根据大金支持文档,以下设备应该兼容(至少): -Compatible units in combination with **BRP069A41**: FTXG20LV1BW, FTXG20LV1BS , FTXG25LV1BW, FTXG25LV1BS, FTXG35LV1BW, FTXG35LV1BS, FTXG50LV1BW, FTXG50LV1BS, FTXJ20LV1BW, FTXJ20LV1BS, FTXJ25LV1BW, FTXJ25LV1BS, FTXJ35LV1BW, FTXJ35LV1BS, FTXJ50LV1BW, FTXJ50LV1BS , +与 **BRP069A41** 结合使用的兼容单元:FTXG20LV1BW、FTXG20LV1BS、FTXG25LV1BW、FTXG25LV1BS、FTXG35LV1BW、FTXG35LV1BS、FTXG50LV1BW、FTXG50LV1BS、FTXJ20LV1BW、FTXJ20LV1BS、FTXJ25LV1BW、FTXJ25LV1BS、FTXJ35LV1BW、FTXJ35LV1BS、FTXJ50LV1BW、FTXJ50LV1BS, -Compatible units in combination with **BRP069A42**: FTXZ25NV1B, FTXZ35NV1B, FTXZ50NV1B, FTXS35K2V1B, FTXS35K3V1B, FTXS42K2V1B, FTXS42K3V1B, FTXS50K2V1B, FTXS50K3V1B, FTXLS25K2V1B, FTXLS35K2V1B,FTXM35K3V1B, FTXM42K3V1B, FTXM50K3V1B, , FTXS60GV1B, FTXS71GV1B, ATXS35K2V1B, ATXS35K3V1B, ATXS50K2V1B, ATXS50K3V1B, , FTX50GV1B, FTX60GV1B, FTX71GV1B, , FVXG25K2V1B, FVXG35K2V1B, FVXG50K2V1B, , FVXS25FV1B, FVXS35FV1B, FVXS50FV1B, , FLXS25BAVMB, FLXS25BVMA, FLXS25BVMB, FLXS35BAVMB, FLXS35BAVMB9, FLXS35BVMA, FLXS35BVMB, FLXS50BAVMB, FLXS50BVMA, FLXS50BVMB, FLXS60BAVMB, FLXS60BVMA, FLXS60BVMB, +与 **BRP069A42** 结合使用的兼容单元:FTXZ25NV1B、FTXZ35NV1B、FTXZ50NV1B、FTXS35K2V1B、FTXS35K3V1B、FTXS42K2V1B、FTXS42K3V1B、FTXS50K2V1B、FTXS50K3V1B、FTXLS25K2V1B、FTXLS35K2V1B、FTXM35K3V1B、FTXM42K3V1B、FTXM50K3V1B、、FTXS60GV1B、FTXS71GV1B、ATXS35K2V1B、ATXS35K3V1B、ATXS50K2V1B、ATXS50K3V1B、、 FTX50GV1B、FTX60GV1B、FTX71GV1B、、FVXG25K2V1B、FVXG35K2V1B、FVXG50K2V1B、、FVXS25FV1B、FVXS35FV1B、FVXS50FV1B、、FLXS25BAVMB、FLXS25BVMA、FLXS25BVMB、FLXS35BAVMB、FLXS35BAVMB9、FLXS35BVMA、FLXS35BVMB、FLXS50BAVMB、FLXS50BVMA、FLXS50BVMB、FLXS60BAVMB、FLXS60BVMA、FLXS60BVMB、 -Compatible units in combination with **BRP069A43 (?)**: CTXS15K2V1B, CTXS15K3V1B, FTXS20K2V1B, FTXS20K3V1B, FTXS25K2V1B, FTXS25K3V1B, CTXS35K2V1B, CTXS35K3V1B, FTXM20K3V1B, FTXM25K3V1B, , ATXS20K2V1B, ATXS20K3V1B, ATXS25K2V1B, ATXS25K3V1B, , FTX20J2V1B, FTX25J2V1B, FTX35J2V1B, FTX20J3V1B, FTX25J3V1B, FTX35J3V1B, , FTXL25J2V1B, FTXL35J2V1B, , FTX20KV1B, FTX25KV1B, FTX35KV1B, FTX20GV1B, FTX25GV1B, FTX35GV1B, , ATX20J2V1B, ATX20J3V1B, ATX25J2V1B, ATX25J3V1B, ATX35J2V1B, ATX35J3V1B, ATX20KV1B, ATX25KV1B, ATX35KV1B, , ATXL25J2V1B, ATXL35J2V1B, +与 **BRP069A43 (?)** 结合使用的兼容单元:CTXS15K2V1B、CTXS15K3V1B、FTXS20K2V1B、FTXS20K3V1B、FTXS25K2V1B、FTXS25K3V1B、CTXS35K2V1B、CTXS35K3V1B、FTXM20K3V1B、FTXM25K3V1B、、ATXS20K2V1B、ATXS20K3V1B、ATXS25K2V1B、ATXS25K3V1B、、FTX20J2V1B、FTX25J2V1B、FTX35J2V1B、FTX20J3V1B、FTX25J3V1B、FTX35J3V1B、、 FTXL25J2V1B、FTXL35J2V1B、、FTX20KV1B、FTX25KV1B、FTX35KV1B、FTX20GV1B、FTX25GV1B、FTX35GV1B、、ATX20J2V1B、ATX20J3V1B、ATX25J2V1B、ATX25J3V1B、ATX35J2V1B、ATX35J3V1B、ATX20KV1B、ATX25KV1B、ATX35KV1B、、ATXL25J2V1B、ATXL35J2V1B、 -与 **BRP069A44 (?)** 组合的兼容单元:FTX50KV1B、FTX60KV1B +与**BRP069A44 (?)**结合的兼容单元:FTX50KV1B、FTX60KV1B -注意:对于带有更新的 WLAN 适配器的设备,如 **BRP069C4x** 只能由 Onecta 应用程序使用,请改用 [大金云](https://github.com/Apollon77/ioBroker.daikin-cloud) 适配器。 +注意:根据目前的报告,即使升级到允许使用 Daikin Cloud 的固件,此处的适配器仍会保留其本地 API。因此,此适配器仍应适用于这些设备。 + +注意:对于具有较新的 WLAN 适配器(如 **BRP069C4x**)的设备,由于该适配器只能由 Onecta 应用程序使用,请改用 [大金云](https://github.com/Apollon77/ioBroker.daikin-cloud) 适配器。 ## 免责声明 -**所有产品和公司名称或徽标均为其各自所有者的商标™ 或注册® 商标。使用它们并不意味着与它们或任何相关子公司有任何关联或认可!这个个人项目是业余时间维护的,没有商业目标。** **Daikin 是 DAIKIN INDUSTRIES, LTD. 的商标。** +**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何相关子公司有任何关联或认可!此个人项目是在业余时间维护的,没有商业目标。** **Daikin 是 DAIKIN INDUSTRIES, LTD. 的商标。** -##参数说明 -###大金IP -来自设备的 Wifi 控制器的 IP +## 参数说明 +### 大金IP +设备的 Wifi 控制器的 IP ### 轮询间隔 -从设备更新数据的间隔(以秒为单位)。此外,每次更改都会更新值 +以秒为单位更新设备数据的间隔。此外,每次更改时都会更新值 ## 可用实例对象/状态的描述 -适配器连接到 Daikin 设备后,将创建对象结构: +适配器连接到大金设备后,将创建对象结构: -* deviceInfo.* : 关于 Daikin 设备的一般信息,只读 -* control.* : 来自设备的主要可控值,如目标温度、模式等,**可读写** -* controlInfo.* : 来自设备的附加控制信息,只读 -* modelInfo.* : 有关设备本身和支持的功能的信息,只读 -* sensorInfo.* : 来自设备的传感器数据,例如测量的室内和室外温度 +* deviceInfo.* :关于大金设备的一般信息,只读 +* 控制。*:设备的主要可控值,如目标温度、模式等,**可读写** +* controlInfo.* :来自设备的附加控制信息,只读 +* modelInfo.* :有关设备本身和所支持功能的信息,只读 +* sensorInfo.* :来自设备的传感器数据,如测量的室内和室外温度 -## 去做 -* 增强测试:状态检查和 setState 的 +待办事项 +* 增强测试:状态检查和 setState * 检查型号信息/支持的功能 * 网页文档 -* 可见小部件 +* VIS 小部件 ## Changelog +### __WORK IN PROGRESS__ +* (Apollon77) Prevented some error logs and fix internal flow issues + ### 1.4.2 (2022-07-25) * (Apollon77) Make sure polling still works after setting special mode states diff --git a/docs/zh-cn/adapterref/iobroker.deconz/README.md b/docs/zh-cn/adapterref/iobroker.deconz/README.md index 60f24d234..cbf43e8a7 100644 --- a/docs/zh-cn/adapterref/iobroker.deconz/README.md +++ b/docs/zh-cn/adapterref/iobroker.deconz/README.md @@ -2,8 +2,8 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.deconz/README.md -title: 无题 -hash: Dc4tjO/xtBalbSuxDA44MBYpEiqM/i3HuhNYFgBNqmk= +title: 无标题 +hash: hlKt04F3x+GnGSRv+J1Vzxx+hVFOw/RGHzMwRBs/Iz0= --- ![标识](../../../en/adapterref/iobroker.deconz/admin/deconz.png) @@ -11,14 +11,14 @@ hash: Dc4tjO/xtBalbSuxDA44MBYpEiqM/i3HuhNYFgBNqmk= ![NPM 版本](https://nodei.co/npm/iobroker.deconz.png?downloads=true) ![下载](https://img.shields.io/npm/dm/iobroker.deconz.svg) -ioBroker deConz dresden-elektronik 适配器 +ioBroker deConz 德累斯顿电子适配器 ============== ## 注意 不支持 deConz 测试版 -所需 js-controller 版本 >2.x.x, 所需 node.js >= 10.x.x +所需 js-controller 版本 >5.x.x, 所需 node.js >= 18.x.x ## 英语 连接到 dresden-elektronik 开发的 deConz REST-API 软件。该软件旨在成为通用的 ZigBee 网关解决方案,使用 dresden-elektronik 的硬件 ConBee(X) USB 棒和 RaspBee(X) Raspberry Pi 模块。 @@ -50,6 +50,9 @@ b)输入标准桥接端口:80 和标准 Websocket:443 ## Changelog +### 1.5.0 (2024-08-11) +* (mattreim) Dependencies have been updated + ### 1.4.1 (2024-05-05) * (mattreim) Added new objects for various sensors diff --git a/docs/zh-cn/adapterref/iobroker.egigeozone2/README.md b/docs/zh-cn/adapterref/iobroker.egigeozone2/README.md index 4fe7a3f05..0f89c4c5a 100644 --- a/docs/zh-cn/adapterref/iobroker.egigeozone2/README.md +++ b/docs/zh-cn/adapterref/iobroker.egigeozone2/README.md @@ -2,8 +2,8 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.egigeozone2/README.md -title: 无题 -hash: ukMdhtpnvkfB8vxKtyXYZAvPl6qc2x9EJsiwjftHKGs= +title: 无标题 +hash: 2ZAEhIa9/NGXHlAuVANrHY764+g5ZsQRNI85R2/FpyU= --- ![标识](../../../en/adapterref/iobroker.egigeozone2/admin/egigeozone.png) @@ -36,15 +36,19 @@ hash: ukMdhtpnvkfB8vxKtyXYZAvPl6qc2x9EJsiwjftHKGs= * **port** 应该是适配器正在监听的端口。 * **person** 是将用于在 atHome 数组中列出的人。 -### 例子 +### 示例 * https://my-domain:7654/John 或 * http://我的域名:7654/Paul ## 致谢 -该实现主要基于 dschaedl 的[ioBroker.geofency](https://github.com/ioBroker/ioBroker.geofency) 和 BasGo 的 [ioBroker.egigeozone](https://github.com/BasGo/ioBroker.egigeozone) 适配器。徽标取自 [Free Icons PNG](http://www.freeiconspng.com/images/maps-icon),并已修改为具有透明背景。 +该实现主要基于 dschaedl 的 [ioBroker.geofency](https://github.com/ioBroker/ioBroker.geofency) 和 BasGo 的 [ioBroker.egigeozone](https://github.com/BasGo/ioBroker.egigeozone) 适配器。 ## Changelog +### 1.0.6 +* (obakuhl) Improved object definition +* (obakuhl) New icon + ### 1.0.5 * (obakuhl) use `@iobroker/webserver` diff --git a/docs/zh-cn/adapterref/iobroker.ems-esp/README.md b/docs/zh-cn/adapterref/iobroker.ems-esp/README.md index 9fc8f10c1..cd128c881 100644 --- a/docs/zh-cn/adapterref/iobroker.ems-esp/README.md +++ b/docs/zh-cn/adapterref/iobroker.ems-esp/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.ems-esp/README.md title: ioBroker.ems-esp -hash: wMIWfazgk0pOBxXjHbVM8RfGCY1jJBpy2OL7a7kbo2Y= +hash: elU8v7ZAgneVz347C06yN0EWDQkmPmhe8/wbzQUEObM= --- ![标识](../../../en/adapterref/iobroker.ems-esp/admin/ems-esp.png) @@ -33,7 +33,6 @@ ioBroker ems-esp 适配器可以读取和写入两个网关的数据以控制所 它既可以用于原始 Bosch-Group 网关,也可以用于 ems-esp,或者同时用于两者。 所有来自自身脚本或对象浏览器的更改状态都必须设置 acknowledged = false !!! -## 版本 >= 3.3.0 中的新功能:引入使用非生产性 ems-esp 固件的警告。 德语文档:https://github.com/tp1de/ioBroker.ems-esp/blob/main/doc/ems-esp-ds.pdf 英文文档:https://github.com/tp1de/ioBroker.ems-esp/blob/main/doc/ems-esp-es.pdf 德语 ioBroker 论坛:https://forum.iobroker.net/topic/45862/neuer-adapter-ems-esp-f%C3%BCr-bosch-heizungen # Iobroker.ems-esp @@ -43,28 +42,22 @@ ioBroker ems-esp 适配器可以读取和写入两个网关的数据以控制所 Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> -### **WORK IN PROGRESS** -* adapter now with json config -* js controller version >= 4.0.24 and admin version >= 6.3.5 required -* add expert settings for ems-esp gateway (own states by polling raw telegrams) -* support different ems-esp bus id's for own states -* add pdf documentation for new functionality +### 4.7.2 (2024-08-17) +* ems-esp: enable writing on custom entities -### 3.5.0 (2024-05-15) -* warm water starts not supported anymore within statistics due to name changes within ems-esp firmware 3.7 +### 4.7.1 (2024-08-17) +* ems-esp: custom entities are now under object structure "custom" -### 3.4.4 (2024-05-15) -* improve delays between axios get requests for km200 and ems-esp to avoid errors +### 4.7.0 (2024-08-16) +* ems-esp: do not allow more then one thermostat for extended own entities +* ems-esp: error correction for holidayModes custom entities -### 3.4.3 (2024-05-14) -* corrections for reading gateway data for km200 gateway +### 4.6.4 (2024-08-14) +* ems-esp: error correction on polling for 3.6.5 -### 3.4.2 (2024-05-13) -* update dependencies -* replace setTimeout by adapter.delay - -### 3.4.1 (2024-04-26) -* correct enum settings for ems-esp gateway on adapter start +### 4.6.3 (2024-08-14) +* small adjustments +* dependabot updates dependencies ## License MIT License @@ -86,5 +79,5 @@ 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 +*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/zh-cn/adapterref/iobroker.extron/README.md b/docs/zh-cn/adapterref/iobroker.extron/README.md index c71eb0937..c1093d36c 100644 --- a/docs/zh-cn/adapterref/iobroker.extron/README.md +++ b/docs/zh-cn/adapterref/iobroker.extron/README.md @@ -3,41 +3,51 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.extron/README.md title: ioBroker.extron -hash: SQXOlon+kOOGN7ozw4xZBE5GNrFNrbyPi7D+kL5AACY= +hash: gmjZSEUabprBE9/QQWdIuYgax6cnMmNaMF1Jacukr+0= --- ![标识](../../../en/adapterref/iobroker.extron/admin/extron.png) -![NPM版本](http://img.shields.io/npm/v/iobroker.extron.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.extron.svg) ![下载](https://img.shields.io/npm/dm/iobroker.extron.svg) ![安装数量(最新)](http://iobroker.live/badges/extron-installed.svg) ![安装数量(稳定)](http://iobroker.live/badges/extron-stable.svg) -![依赖状态](https://img.shields.io/david/Bannsaenger/iobroker.extron.svg) ![已知漏洞](https://snyk.io/test/github/Bannsaenger/ioBroker.extron/badge.svg) -![国家公共管理](https://nodei.co/npm/iobroker.extron.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.extron.png?downloads=true) # IoBroker.extron -## IoBroker 的 extron 适配器 +![测试与发布](https://github.com/bannsaenger/iobroker.extron/workflows/Test%20and%20Release/badge.svg) + +## 参考 +Extron®、CrossPoint®、DTP®、NetPA®、XPA®、XTP® 是 RGB Systems, Incorporated 的注册商标\ 请参阅[www.extron.com](https://www.extron.com/article/termsprivacy) + +该徽标取自 Extron 的 Extron Control App + +Dante® 是 [听觉](https://www.audinate.com/) 的商标 + +## 用于 ioBroker 的 extron 适配器 Extron SIS 适配器 -控制 Extron 设备。 -该适配器设计用于通过 **S**imple **I**instruction **S**et 协议控制某些 Extron 音频视频产品。 -这些设备的功能范围是巨大的。并非所有功能都需要适配器支持以及与 iobroker 的交互。 +控制 Extron 的设备。 +此适配器旨在通过 **S**imple **I**nstruction **Set 协议控制某些 Extron 音频视频产品。 +设备的功能范围非常广泛。并非所有功能都适合通过适配器和与 iobroker 的交互来支持。 -**请注意:** 在适配器配置中选择设备类型后,以后将无法更改! +**请注意:**当在适配器配置中选择设备类型时,将来无法更改! -在 iobroker 安装中,此适配器可以有多个不同或相同类型的实例。对于未来的版本,您必须为每个实例的适配器配置添加有效的许可证。 -如果您是非商业组织或用于私人用途,您可以免费获得许可证。请联系作者。 +在 iobroker 安装中,此适配器可以有多个不同或相同类型的实例。对于未来版本,您必须为每个实例向适配器配置添加有效许可证。 +如果您是非商业组织或将其用于私人用途,您可以免费获得许可证。请联系作者。 ### 支持的设备 - 8x2 演示矩阵切换器 (DTP2 CrossPoint 82) - H.264 流媒体播放器和解码器 (SMD 202) - 流媒体编码器(SME 211) -- 12x8 ProDSP 处理器,带 Dante (DMP 128 Plus AT) -- 12x8 ProDSP 处理器,带 AEC、VoIP 和 Dante (DMP 128 Plus C V AT) - -## 去做 -- 在对话开始时检查设备类型。这有时会失败。必须改为更可靠的机制。 -- 对所使用的输入和输出进行更精细的选择,以减少 DSP 设备上的数据库大小 +- 6x4 ProDSP 处理器,带 AEC 和 Dante (DMP 64 Plus C AT) +- 带 Dante 的 12x8 ProDSP 处理器 (DMP 128 Plus AT) +- 带有 AEC、VoIP 和 Dante 的 12x8 ProDSP 处理器 (DMP 128 Plus C V AT) +- 带 AEC 的 Dante 音频矩阵处理器 (XMP 240 C AT) + +待办事项 +- 对话开始时会检查设备类型。有时会失败。必须改为更可靠的机制。 +- 对使用的输入和输出进行更精细的选择,以减少 DSP 设备的数据库大小 - 在数据库端添加更多命令及其实现 - 改进网络重连机制 @@ -45,26 +55,69 @@ Extron SIS 适配器 ### **WORK IN PROGRESS** * (Bannsaenger) updated to adapter-dev and release script * (Bannsaenger) updated dependencies +* (Bannsaenger) introducing jsonConfig +* (mschlgl) add more DSP SIS commands +* (mschlgl) enhanced network reconnect functionality, added DANTE remote commands, additional devices + +### 0.2.15 (2024-06-12) +* (mschlgl) fixed typo in io-package.json + +### 0.2.14 (2024-06-10) +* (mschlgl) changed function createDatabase to use setObj() + +### 0.2.13 (2024-06-06) +* (mschlgl) corrected instance.comon.titleLang to be set at startup, updated role definitions, added audiofile transfer functionality for DMPxxx + +### 0.2.12 +* (mschlgl) added instance.comon.title / .titleLang to be set at startup + +### 0.2.11 +* (mschlgl) added instance.device.name to be set at startup + +### 0.2.10 +* (mschlgl) corrected preset list handling on SMD202 + +### 0.2.9 +* (mschlgl) disable subtitle command on startup added for SMD202 + +### 0.2.8 +* (mschlgl) onStreamData command debug msg added + +### 0.2.7 +* (mschlgl) SMD202 preset list handling updated + +### 0.2.6 +* (mschlgl) added SMD202 preset list handling on startup +### 0.2.5 +* (mschlgl) added SMD202 preset list handling + +### 0.2.4 +* (mschlgl) corrected typo in object_templates + +### 0.2.3 +* (mschlgl) fixed DMP128 file handling + +### 0.2.2 +* (mschlgl) fixed SMD202 loopmode command ### 0.2.1 -* (mschlgl) updated log messages, improved group control +* (mschlgl) updated log messages, improved group control on DMP128 ### 0.2.0 * (Bannsaenger) updated dependencies ### 0.1.16 -* (mschlgl) fixed group command issues, added statedelay log message +* (mschlgl) fixed group command issues, added statedelay log message on DMP128 ### 0.1.15 -* (mschlgl) added statedelay log message +* (mschlgl) added statedelay log message on DMP128 ### 0.1.14 -* (mschlgl) fixed group command issues +* (mschlgl) fixed group command issues on DMP128 ### 0.1.13 * (mschlgl) fixed source code version issues @@ -117,7 +170,7 @@ Extron SIS 适配器 ## License Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) -Copyright (c) 2021-2023 Bannsaenger, https://github.com/bannsaenger +Copyright (c) 2021-2024 Bannsaenger, https://github.com/bannsaenger ![CC BY-NC License](https://i.creativecommons.org/l/by-nc/4.0/88x31.png) @@ -139,4 +192,15 @@ Attribution — You must give appropriate credit, provide a link to the license, NonCommercial — You may not use the material for commercial purposes. -No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. \ No newline at end of file +No additional restrictions — You may not apply legal terms or technological measures that legally restrict others from doing anything the license permits. + +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/zh-cn/adapterref/iobroker.fenecon/README.md b/docs/zh-cn/adapterref/iobroker.fenecon/README.md new file mode 100644 index 000000000..59743031f --- /dev/null +++ b/docs/zh-cn/adapterref/iobroker.fenecon/README.md @@ -0,0 +1,108 @@ +--- +translatedFrom: en +translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.fenecon/README.md +title: ioBroker.fenecon +hash: F84h52mBqTyStvvgSqvErVUvJ2OFmiLyNwupupBm5fE= +--- +![标识](../../../en/adapterref/iobroker.fenecon/admin/fenecon.png) + +![NPM 版本](https://img.shields.io/npm/v/iobroker.fenecon.svg) +![下载](https://img.shields.io/npm/dm/iobroker.fenecon.svg) +![安装数量](https://iobroker.live/badges/fenecon-installed.svg) +![稳定存储库中的当前版本](https://iobroker.live/badges/fenecon-stable.svg) +![新平台](https://nodei.co/npm/iobroker.fenecon.png?downloads=true) + +# IoBroker.fenecon +**测试:**![测试与发布](https://github.com/sg-app/ioBroker.fenecon/workflows/Test%20and%20Release/badge.svg) + +## 费内康 +[Fenecon](https://fenecon.de) 是一家德国光伏逆变器和储能系统制造商。所使用的能源管理系统 (FEMS) 基于 [openEMS](https://github.com/OpenEMS/openems) 软件。 +Fenecon 是 openEMS 的贡献者。 + +## 适配器 +该适配器连接到 FEMS 系统并通过 REST/JSON 接口检索所有可用数据。 +此外,还执行有用的计算。 + +## 配置 +为了建立连接,需要 FEMS 中央单元的 IP 地址。更新间隔也可以调整。 +![fenecon 配置](../../../en/adapterref/iobroker.fenecon/img/configpage.png) + +## 州 +适配器启动时会自动生成状态。如果通过 FEMS 软件更新提供了其他状态,则日志文件中会显示警告消息。然后请重新启动适配器,新状态将被创建。 + +## Changelog + + +### 0.5.0 (2024-08-02) + +- (SG-App) set correct role states + +### 0.4.2 (2024-08-02) + +- (SG-App) fix channel creation only one time on init + +### 0.4.1 (2024-08-02) + +- (SG-App) refactor for latest repo +- (SG-App) remove getObject calls on init +- (SG-App) filter object ids if needed +- (SG-App) check allowed length of address for channel and id creation + +### 0.4.0 (2024-07-15) + +- (SG-App) refactor for latest repo + +### 0.3.2 (2024-07-14) + +- (SG-App) calculate self consuming +- (SG-App) dependency updates + +### 0.3.1 (2024-07-11) + +- (SG-App) fix adapter checker warning + +### 0.3.0 (2024-06-11) + +- (SG-App) set correct read write state +- (SG-App) calculate autarchy +- (SG-App) dependency updates + +### 0.2.0 (2024-04-20) + +- (SG-App) collect all possible data from rest interface + +### 0.1.0 (2024-04-17) + +- (SG-App) minor fix + +### 0.0.2-alpha.0 (2024-04-16) + +- (SG-App) initial release + +## License + +MIT License + +Copyright (c) 2024 Georg Schreiner + +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/zh-cn/adapterref/iobroker.fenecon/admin/fenecon.png b/docs/zh-cn/adapterref/iobroker.fenecon/admin/fenecon.png new file mode 100644 index 000000000..301975f71 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.fenecon/admin/fenecon.png differ diff --git a/docs/zh-cn/adapterref/iobroker.fenecon/img/configpage.png b/docs/zh-cn/adapterref/iobroker.fenecon/img/configpage.png new file mode 100644 index 000000000..023086b24 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.fenecon/img/configpage.png differ diff --git a/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md b/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md new file mode 100644 index 000000000..3fde7dc7a --- /dev/null +++ b/docs/zh-cn/adapterref/iobroker.gotify-ws/README.md @@ -0,0 +1,121 @@ +--- +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: 7ZfcQLE4vzTByHNxXthzOoL0iaydL0n0MW1hS0f3g14= +--- +![标识](../../../en/adapterref/iobroker.gotify-ws/admin/gotify-ws.png) + +![安装数量](http://iobroker.live/badges/gotify-ws-stable.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.gotify-ws.svg) +![下载](https://img.shields.io/npm/dm/iobroker.gotify-ws.svg) +![已知漏洞](https://snyk.io/test/github/simatec/ioBroker.gotify-ws/badge.svg) +![执照](https://img.shields.io/github/license/simatec/ioBroker.gotify-ws?style=flat) +![捐](https://img.shields.io/badge/paypal-donate%20|%20spenden-blue.svg) +![](https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=GitHub&color=%23fe8e86) + +# IoBroker.gotify-ws +![测试与发布](https://github.com/simatec/ioBroker.gotify-ws/workflows/Test%20and%20Release/badge.svg) + +此适配器使用服务`Sentry.io`自动向我(开发人员)报告异常和代码错误以及新的设备架构。更多详情见下文! + +--- + +## 支持适配器开发 +**如果您喜欢 ioBroker.gotify-ws,请考虑捐款:** + +[![贝宝](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://paypal.me/mk1676) + +--- + +## 用于 ioBroker 的 gotify-ws 适配器 +Gotify-WS 是一个适配器,它与 Gotify 服务器建立 websocket 连接,因此可以接收和处理来自服务器的所有消息。 + +对我来说,后台缺少与所有常见系统的连接。 +例如,没有适合 IOS 的应用程序。 + +然而,随着 Gotify 越来越流行并且现在也作为通知服务进入 Proxmox 等许多系统,我需要一个解决方案。 + +这就是 Gotify-WS 发挥作用的地方。 +Gotify-WS 接收消息并将其转发到 ioBroker 支持的通知服务。这意味着可以将消息转发到 Telegram 等。 + +Spotify-WS 目前支持以下通知服务 + +* 电子邮件 +* 矩阵 +* 通知管理器 +* 容易被打败 +* 不和谐 +* 信号 +* 电报 +* WhatsApp + +--- + +## 适配器配置 +适配器的配置非常简单。 + +您在 Gotify 服务器上创建一个新客户端,并复制客户端生成的令牌。 +您在 Gotify-WS 适配器配置中输入此令牌。 +Gotify-WS 还需要 Gotify 服务器的 IP 地址或域和端口。 + +这样就建立了连接并且适配器可以接收来自 Gotify 服务器的所有传入消息。 + +然后,您可以配置您选择的通知服务进行转发。 + +--- + +## Changelog +### **WORK IN PROGRESS** +* (simatec) Fix Adapter Check +* (simatec) Dependencies updated + +### 0.1.5 (2024-07-22) +* (simatec) small fix + +### 0.1.4 (2024-07-19) +* (simatec) Dependencies updated + +### 0.1.3 (2024-07-17) +* (simatec) Fix Test & Release +* (simatec) Fix Timeout + +### 0.1.2 (2024-06-26) +* (simatec) Fix io-package +* (simatec) Notification-Manager added + +### 0.1.1 (2024-06-19) +* (simatec) Fix Branch + +### 0.1.0 (2024-06-19) +* (simatec) First Release + +### 0.0.1 (2024-03-15) +* (simatec) initial release + +--- + +## License + +MIT License + +Copyright (c) 2024 simatec + +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/zh-cn/adapterref/iobroker.gotify-ws/admin/gotify-ws.png b/docs/zh-cn/adapterref/iobroker.gotify-ws/admin/gotify-ws.png new file mode 100644 index 000000000..c6c55c4a6 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.gotify-ws/admin/gotify-ws.png differ diff --git a/docs/zh-cn/adapterref/iobroker.gree-hvac/README.md b/docs/zh-cn/adapterref/iobroker.gree-hvac/README.md index 435a0d160..b610355ef 100644 --- a/docs/zh-cn/adapterref/iobroker.gree-hvac/README.md +++ b/docs/zh-cn/adapterref/iobroker.gree-hvac/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.gree-hvac/README.md title: iobroker.gree-hvac -hash: MsbsiEqqFGmnBK3nPZW4/lrI1zumEhj+80UUJ3NPpNY= +hash: nbnCeatkP5YX4f21mweyh2a/mosv3Qal1E5BFx02vvI= --- ![标识](../../../en/adapterref/iobroker.gree-hvac/admin/air-conditioner.png) @@ -33,12 +33,23 @@ hash: MsbsiEqqFGmnBK3nPZW4/lrI1zumEhj+80UUJ3NPpNY= - [tomikaa87](https://github.com/tomikaa87) 用于对 Gree 协议进行逆向工程 - [stas-demydiuk](https://github.com/stas-demydiuk) 获取 DeviceManager 代码 - Sizenko Alexander 为 Digital-7 字体 +- [con1nuity] 添加 AES-GCM 加密 ## Changelog -### 1.0.0 (2024-05-31) - - Small fixes. Ready to production. -### 0.0.14 (2024-04-15) - - First version of the adapter +### 1.1.0 (2024-08-13) + - Added the AES-GCM encryption which is needed for some devices with newer firmware versions (e.g. gree model 32776, v1.23) +### 1.0.7 (2024-07-03) + - Host Google icons locally. Updated dependencies. +### 1.0.6 (2024-06-14) + - Added button titles and translation. +### 1.0.5 (2024-06-12) + - Added time field. +### 1.0.4 (2024-06-12) + - Code optimization. Bug fixes. +### 1.0.3 (2024-06-12) + - Added refresh devices button on tab page. +### 1.0.2 (2024-06-11) + - Added support of Fhareinheit degrees. ## License MIT License diff --git a/docs/zh-cn/adapterref/iobroker.hausbus_de/README.md b/docs/zh-cn/adapterref/iobroker.hausbus_de/README.md index 8a5d2c383..6ed7a1709 100644 --- a/docs/zh-cn/adapterref/iobroker.hausbus_de/README.md +++ b/docs/zh-cn/adapterref/iobroker.hausbus_de/README.md @@ -2,27 +2,26 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.hausbus_de/README.md -title: iobroker.hausbusde -hash: /PCvBwHfqoLsI4h5Epb6ay3a8yEf+tmk4UmCxLfHfI0= +title: iobroker.hausbus_de +hash: ZnyoDSWe3HkqtcNMEUQ6T/17g+LeOpskkJLiCNUbH5M= --- ![标识](../../../en/adapterref/iobroker.hausbus_de/admin/hausbusde.png) -# Iobroker.hausbusde -支持所有 haus-bus.de 组件的 IO Broker 适配器。
有关支持的硬件和 IO Broker 集成的文档,请检查
www.haus-bus.de/iobroker +# Iobroker.hausbus_de +支持所有 haus-bus.de 组件的 IO Broker Adapter。
有关支持的硬件和 IO Broker 集成的文档,请查看
www.haus-bus.de/iobroker ## 安装 -该适配器在官方 ioBroker 目录中作为稳定版本提供。
建议直接从 ioBroker 内的目录安装。
如果您需要比官方 ioBroker 目录中提供的版本更新的版本,您也可以直接从 github 安装此版本。
如果您遇到任何问题或错误,请联系 info@haus-bus.de
+该适配器在官方 ioBroker 目录中作为稳定版本提供。
建议直接从 ioBroker 内的目录安装。
如果您需要比官方 ioBroker 目录中提供的更新的版本,您也可以直接从 github 安装此版本。
如果您遇到任何问题或错误,请联系 info@haus-bus.de
## 设置 -HausBus.de 适配器无需进一步配置即可使用。它使用 UDP 广播请求自动搜索 haus-bus.de 组件。必须至少有一个带有网络接口(例如任何中继模块)的 haus-bus.de 组件,该组件与 io 代理一样连接到同一网络。任何其他组件都可以通过 RS485 连接到带有以太网网关的模块。 +HausBus.de 适配器无需进一步配置即可使用。它使用 UDP 广播请求自动搜索 haus-bus.de 组件。必须至少有一个带有网络接口的 haus-bus.de 组件(例如任何中继模块),该组件连接到与 io 代理相同的网络。任何其他组件都可以通过 RS485 连接到带有以太网网关的模块。


## Changelog - +### 1.4.6 (2024-08-07) +* support for new 12 channel relay module + ### 1.3.0 (2023-12-31) * support for new analog inputs (0-10V or 4-20mA) diff --git a/docs/zh-cn/adapterref/iobroker.hmip/README.md b/docs/zh-cn/adapterref/iobroker.hmip/README.md index 9f2d76528..7e86c0c6e 100644 --- a/docs/zh-cn/adapterref/iobroker.hmip/README.md +++ b/docs/zh-cn/adapterref/iobroker.hmip/README.md @@ -3,84 +3,98 @@ 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: 5eoRlykq1weQE21A6Rnnfh4KaF4vAUa68EacmchWtlM= +hash: ekRq8vpH7VxIxoTyjOdTaF1cYe0ObcYxRySl20Iw8Ek= --- ![标识](../../../en/adapterref/iobroker.hmip/admin/homematic.png) ![安装数量](http://iobroker.live/badges/hmip-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.hmip.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.hmip.svg) ![下载](https://img.shields.io/npm/dm/iobroker.hmip.svg) # IoBroker HomeMatic IP 云接入点适配器 ![测试与发布](https://github.com/iobroker-community-adapters/iobroker.hmip/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/hmip/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 ## 免责声明 -**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何关联子公司有任何隶属关系或认可!此个人项目是在业余时间维护的,没有任何商业目标。** **HomeMatic 是 ELV Elektronik AG 的商标** +**所有产品和公司名称或徽标均为其各自所有者的商标™或注册®商标。使用它们并不意味着与它们或任何相关子公司有任何关联或认可!此个人项目是在业余时间维护的,没有商业目标。** **HomeMatic 是 ELV Elektronik AG 的商标** ## 描述 该适配器允许通过 Homematic IP Cloud 的 Rest API 与 HomematicIP CloudAccessPoint 进行通信 -**重要提示:** 请将控制请求限制在最低限度,因为当您做得太多时,EQ-3 就会开始阻止 IP! +**重要提示**:请将控制请求限制在最低限度,因为当您做得太多时,EQ-3 会开始阻止 IP! ## 安装 -该适配器需要版本> = 16.0的node-js +此适配器需要 node-js 版本 >= 16.0 这是 YouTube 上的分步安装视频 https://youtu.be/kXWfJRUYJIA ## 信息 -大多数 Homematic IP 设备已可使用最新的适配器版本。 +大多数 Homematic IP 设备已经可以使用最新的适配器版本。 -我会不断改进它,但这需要时间。来自社区的任何帮助,例如请求请求将受到高度赞赏。 +我会不断改进它,但这需要时间。如果社区能通过 Pull Request 等方式提供帮助,我将不胜感激。 -对于无法工作的 HmIP 设备,请使用此信息创建一个问题(请为每个设备创建一个问题,如果可能,请在主题中提供技术名称)。 -将 ioBroker 中的适配器日志记录切换为愚蠢模式,并添加设备的 json,该 json 会打印到问题中的日志中。 +对于无法正常工作的 HmIP 设备,请使用此信息创建一个问题(每个设备一个,如果可能,请在主题中写上技术名称)。 +将 ioBroker 中的适配器日志切换到傻瓜模式,并添加设备的 json,该 json 会打印到问题日志中。 我可能还需要状态更改的 json。 谢谢你! -如果您正在查找信息,如果警报设置处于活动状态,则必须检查 INTERNAL 和 EXTERNAL 组的活动状态,它们代表三种警报状态的组合。内部和外部活动意味着离开,仅外部活动意味着仅外围活动。 +如果您正在寻找信息,如果警报设置处于活动状态,则必须检查 INTERNAL 和 EXTERNAL 组的活动状态,它们组合代表三种警报状态。INTERNAL 和 EXTERNAL 活动表示离开,只有 EXTERNAL 活动表示只有周界活动。 -## 重要信息 该适配器可以做什么 -!!!您只能使用此适配器触发可通过原始 Homematic IP 应用程序触发的事件。 -例如,设备之间的直接连接在应用程序中没有事件,也无法通过此适配器触发! +## 重要信息 此适配器可以做什么 +!!! 您只能使用此适配器触发可通过原始 Homematic IP 应用程序触发的事件。 +例如,设备之间的直接连接在应用程序中没有事件,也无法通过此适配器触发!!! ## 设置 -* 输入您的 SGTIN(接入点背面)和 PIN(如果之前设置过),并通过按下蓝色 LED 按钮验证数据。这将创建一个身份验证令牌。 +* 输入您的 SGTIN(接入点背面)和 PIN(如果之前已设置),然后按下蓝色 LED 按钮验证数据。这将创建一个身份验证令牌。 ## 特殊设置 ### HMIP-DLD(门锁驱动器) -如果您已在 HmIP 应用程序(设置/访问授权 - 德语:“Zutrittsberechtigungen”)中为锁分配了 PIN,则需要在设备对象的 PIN 状态中设置 PIN。这不是您的系统 PIN 码!如果您没有在设置中设置 PIN,也可以将 PIN 状态留空。 +如果您已在 HmIP 应用程序中为锁分配了 PIN(设置/访问权限 - 德语:“Zutrittsberechtigungen”),则需要在设备对象的 PIN 状态中设置 PIN。这不是您的系统 PIN!!如果您未在设置中设置 PIN,您也可以在 PIN 状态中留空。 此外,请将“iobroker”客户端添加到 HmIP 应用程序设置中的访问控制客户端列表中! ## 谢谢 -* @coreGreenberet 的 python 库 (https://github.com/coreGreenberet/homematicip-rest-api) +* 感谢 @coreGreenberet 提供的 python 库(https://github.com/coreGreenberet/homematicip-rest-api) ## IoBroker 论坛中的讨论 https://forum.iobroker.net/topic/27532/homematic-ip-cloud-access-point-adapter -## 适配器请求 auf GitHub +## GitHub 上的适配器请求 https://github.com/ioBroker/AdapterRequests/issues/62 - ## Changelog - +### 1.24.1 (2024-08-06) +* (bluefox) GUI was migrated for Admin 7 + +### 1.23.4 (2024-07-07) +* (Apollon77) previousShutterLevel and hardwareColorTemperatureColdWhite datatype corrected +* (Apollon77) Optimize websocket reconnection handling + +### 1.23.3 (2024-05-27) +* (bluefox) Ignored status 400 by token request + +### 1.23.2 (2024-05-24) +* (bluefox) Allowed calling token request without PIN +* (bluefox) Corrected the token request + +### 1.23.0 (2024-04-19) +- (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now +- (mcm1957) Dependencies have been updated + ### 1.22.0 (2024-01-17) * (bluefox) IMPORTANT: Node.js 16.x or newer is now required * (bluefox) Module `require` has been replaced by `axios` * (bluefox) Added JSON config -* (ChristianFue) Added support for Hmip-RGBW +* (ChristianFue) Added support for Hmip-RGBW - (bluefox) Dependencies have been updated. ### 1.21.1 (2024-01-15) -- (ApolloSK) Some issuses for energySensor have been fixed. +- (ApolloSK) Some issues for energySensor have been fixed. - (mcm1957) Dependencies have been updated. ### 1.21.0 (2023-12-27) @@ -167,7 +181,7 @@ https://github.com/ioBroker/AdapterRequests/issues/62 * (Apollon77) Removed some generic (error/info) states that only exist on chosen devices to re-add later in a generic way ### 1.13.2 (2021-08-25) -* (Apollon77) Fix warning on js-controller 3.3 with two datapoints +* (Apollon77) Fix warning on js-controller 3.3 with two data points ### 1.13.1 (2021-08-06) * (Apollon77) Fix warning on js-controller 3.3 with "sabotage" datapoint @@ -315,7 +329,7 @@ https://github.com/ioBroker/AdapterRequests/issues/62 ## License The MIT License (MIT) -Copyright (c) 2023-2024 iobroker-community-adapters +Copyright (c) 2023-2024 iobroker-community-adapters Copyright (c) 2018-2022 jogibear9988 , Apollon77 Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/zh-cn/adapterref/iobroker.intex/README.md b/docs/zh-cn/adapterref/iobroker.intex/README.md index bca59fa6a..4179ddd99 100644 --- a/docs/zh-cn/adapterref/iobroker.intex/README.md +++ b/docs/zh-cn/adapterref/iobroker.intex/README.md @@ -3,41 +3,41 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.intex/README.md title: ioBroker.intex -hash: NwQnuxNpFXZ5n4vtiRTbKM9JfyAWEb1zWbSw14lLVDU= +hash: DQoafM/aKX66Exe5lkCA99dTzXsqAMffbwmDykXNzdo= --- ![标识](../../../en/adapterref/iobroker.intex/admin/intex.png) -![NPM版本](https://img.shields.io/npm/v/iobroker.intex.svg) +![NPM 版本](https://img.shields.io/npm/v/iobroker.intex.svg) ![下载](https://img.shields.io/npm/dm/iobroker.intex.svg) ![安装数量](https://iobroker.live/badges/intex-installed.svg) ![稳定存储库中的当前版本](https://iobroker.live/badges/intex-stable.svg) -![国家公共管理](https://nodei.co/npm/iobroker.intex.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.intex.png?downloads=true) # IoBroker.intex -**测试:** ![测试与发布](https://github.com/TA2k/ioBroker.intex/workflows/Test%20and%20Release/badge.svg) +**测试:**![测试与发布](https://github.com/TA2k/ioBroker.intex/workflows/Test%20and%20Release/badge.svg) ## IoBroker 的 intex 适配器 -带 wifi 模块的 Intex Whirlpool 适配器 +适用于 Intex Whirlpool 的适配器,带 wifi 模块 -## 与矿池和云端通信的策略 +## 与池和云进行通信的策略 ### 关于云 -#### 云辅助;本地池(如果可用) -在此模式下,系统尝试在本地发出控制命令和更新命令。如果本地通信出现错误,系统将切换到云操作,直到适配器再次启动。 +#### 云辅助;如果可用,则在本地池 +在此模式下,系统尝试在本地发出控制命令和更新命令,如果本地通信出现错误,系统将切换到云端操作,直到适配器再次启动。 -IP地址和端口来自云端。如果IP地址相同,则必须在应用程序中重新注册池。长按连接按钮并搜索池。通常不需要从应用程序中删除它。 +IP 地址和端口来自云端。如果 IP 地址相同,则必须在应用程序中重新注册池。长按连接按钮并搜索池。通常无需从应用程序中删除它。 -#### 云辅助;仅本地池 -该模式下,系统在本地发出控制命令和更新命令。如果本地通信出现错误,系统不会切换到云端运行。 +#### 云辅助;池仅限本地 +此模式下,系统在本地下发控制命令和更新命令,若本地通讯出现错误,系统不会切换到云端操作。 -这里可以将间隔设置为0.5分钟。 +此处可以设置间隔为0.5分钟。 -IP地址和端口来自云端。如果IP地址相同,则必须在应用程序中重新注册池。长按连接按钮并搜索池。通常不需要从应用程序中删除它。 +IP 地址和端口来自云端。如果 IP 地址相同,则必须在应用程序中重新注册池。长按连接按钮并搜索池。通常无需从应用程序中删除它。 -#### 仅云 -该模式下,系统仅通过云端发送控制命令和更新命令。 +#### 仅限云 +在此模式下,系统仅通过云端发送控制命令和更新命令。 ##### 登录 -输入 Intex 应用程序邮件和密码。 +输入 Intex 应用程序邮箱和密码。 ### 当地的 #### 仅限本地 @@ -45,10 +45,10 @@ IP地址和端口来自云端。如果IP地址相同,则必须在应用程序 这里也可以将间隔设置为0.5分钟。 -可以使用搜索按钮搜索池的 IP 地址。但是,如果例如,路由器可以防止这种情况发生。 B. 不允许 WLAN 设备相互通信,或者计算机的本地防火墙阻止端口或板载投射。 +可以使用搜索按钮搜索池的 IP 地址。但是,如果 WLAN 设备不允许相互通信,或者计算机的本地防火墙阻止端口或板载投射,则路由器可以阻止此操作。 ## 控制水疗中心的功能 -“intex.0.-id-.control.-command-”设置为 true 或 false 控制池命令的状态。 +“intex.0.-id-.control.-command-” 设置为 true 或 false 来控制池命令的状态。 ## 德语讨论和提问 https://forum.iobroker.net/topic/47932/test-intext-app-v0-0-x @@ -60,56 +60,61 @@ https://forum.iobroker.net/topic/47932/test-intext-app-v0-0-x ### **WORK IN PROGRESS** --> -### **WORK IN PROGRESS** +### 0.1.7 (2024-08-13) + +- (PLCHome) Fixed error. + +### 0.1.6 (2024-08-13) - (PLCHome) Configure this adapter to use the release script. +- (PLCHome) New object error, the error is extracted from the temperature if one is pending. ### 0.1.5 -* (PLCHome) spelling mistake sanitzer to sanitizer on status control.sanitizer and control.sanitizerTime corrected. +- (PLCHome) spelling mistake sanitzer to sanitizer on status control.sanitizer and control.sanitizerTime corrected. ### 0.1.4 -* (PLCHome) Changing read-only objects, e.g. temperature, no longer causes a crash. +- (PLCHome) Changing read-only objects, e.g. temperature, no longer causes a crash. ### 0.1.3 -* (PLCHome) The remaining time for the filter is corrected to the disinfection time if it is longer +- (PLCHome) The remaining time for the filter is corrected to the disinfection time if it is longer ### 0.1.2 -* (PLCHome) Fixed filter remaining time on heating from 1 to -1 for infinity +- (PLCHome) Fixed filter remaining time on heating from 1 to -1 for infinity ### 0.1.1 -* (PLCHome) Remaining time for filter and sanitizer added under control. -* (PLCHome) Refresh added under Control. -* (PLCHome) Remote deleted because Control can do it better. +- (PLCHome) Remaining time for filter and sanitizer added under control. +- (PLCHome) Refresh added under Control. +- (PLCHome) Remote deleted because Control can do it better. ### 0.1.0 -* (rbartl/PLCHome) Support local IP. Both via cloud and only locally without cloud. Thanks to Austria to Robert Bartl. -* (PLCHome) Confirm directly after switching via Control. +- (rbartl/PLCHome) Support local IP. Both via cloud and only locally without cloud. Thanks to Austria to Robert Bartl. +- (PLCHome) Confirm directly after switching via Control. ### 0.0.7 -* (PLCHome) Switching via remote works again. -* (PLCHome) After switching via Control, the previous traffic status can be transmitted from the cloud. This can lead to a toggling of the status. +- (PLCHome) Switching via remote works again. +- (PLCHome) After switching via Control, the previous traffic status can be transmitted from the cloud. This can lead to a toggling of the status. ### 0.0.6 -* (PLCHome) Defined setting of states -* (PLCHome) Change Fahrenheit Celsius -* (PLCHome) "control.temperature", read only, object from 0.0.5 must be deleted once. +- (PLCHome) Defined setting of states +- (PLCHome) Change Fahrenheit Celsius +- (PLCHome) "control.temperature", read only, object from 0.0.5 must be deleted once. ### 0.0.5 -* (PLCHome) Set temperature added, object must be deleted once. -* (PLCHome) Decoding of status information +- (PLCHome) Set temperature added, object must be deleted once. +- (PLCHome) Decoding of status information ### 0.0.1 -* (TA2k) initial release +- (TA2k) initial release ## License diff --git a/docs/zh-cn/adapterref/iobroker.javascript/javascript.md b/docs/zh-cn/adapterref/iobroker.javascript/javascript.md index d62ba37b5..859a2d62d 100644 --- a/docs/zh-cn/adapterref/iobroker.javascript/javascript.md +++ b/docs/zh-cn/adapterref/iobroker.javascript/javascript.md @@ -3,8 +3,8 @@ chapters: {"pages":{"en/adapterref/iobroker.javascript/README.md":{"title":{"en" translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.javascript/javascript.md -title: 无题 -hash: tSh2bNi2LAyClozboXjDGFgeItCkIG2z63i4kqiDtvA= +title: 无标题 +hash: 02J3I4rKtBxMLvgLRn/No3jdEJgG32AMlWq+oNrz0Og= --- ## 内容 - [注意](#note) @@ -28,11 +28,11 @@ hash: tSh2bNi2LAyClozboXjDGFgeItCkIG2z63i4kqiDtvA= - [获取计划](#获取计划) - [清除计划](#清除计划) - [获取属性](#获取属性) -- [获取AstroDate](#获取AstroDate) +- [获取AstroDate](#getastrodate) - [isAstroDay](#isastroday) - [比较时间](#比较时间) - [设置状态](#设置状态) -- [setstateasync](#setstateasync) + - [setStateAsync](#setstateasync) - [setStateDelayed](#setstatedelayed) - [clearStateDelayed](#clearstatedelayed) - [getStateDelayed](#getstatedelayed) @@ -88,12 +88,13 @@ hash: tSh2bNi2LAyClozboXjDGFgeItCkIG2z63i4kqiDtvA= - [onMessage](#onmessage) - [onMessageUnregister](#onmessageunregister) - [onLog](#onlog) -- [onLogUnregister](#onlogunregister) - - [等等) + - [onLogUnregister](#onlogunregister) +- [等待](#等待) - [睡觉](#睡觉) - [httpGet](#httpget) - [httpPost](#httppost) - [创建临时文件](#创建临时文件) +- [注册通知](#注册通知) - [脚本活动](#scripts-activity) - [变更日志](#changelog) @@ -119,7 +120,7 @@ declare function globalFn(arg: string): void; globalFn('test'); ``` -#### 最佳实践: +#### 最佳实践: 创建两个 javascript 适配器实例:一个“测试”,一个“生产”。 脚本在“测试”实例中测试后,可以将其移至“生产”。这样,您可以根据需要重新启动“测试”实例。 @@ -250,7 +251,7 @@ on('adapter.0.device.channel.sensor', (data) => { | oldValLe | hybrid | 先前的值必须小于或等于给定的值 | | | | | | oldAck | bool | 前一个值的确认状态等于给定值 | -| oldQ | 数字 | 先前值的质量代码状态等于给定值。您可以使用 '*' 匹配任何代码 | +| oldQ | number | 先前值的质量代码状态等于给定值。您可以使用 '*' 匹配任何代码 | | | | | | ts | 字符串 | 新值的时间戳必须等于给定的时间戳 (state.ts == ts) | | tsGt | 字符串 | 新值的时间戳必须不等于给定的时间戳 (state.ts != ts) | @@ -273,10 +274,10 @@ on('adapter.0.device.channel.sensor', (data) => { | oldLc | 字符串 | 上次更改时间戳必须等于给定的时间戳 (oldState.lc == lc) | | oldLcGt | 字符串 | 上次更改时间戳必须不等于给定的时间戳 (oldState.lc != lc) | | oldLcGe | 字符串 | 上次更改时间戳必须大于给定值 (oldState.lc > lc) | -| oldLcLt | 字符串 | 上次更改时间戳必须大于或等于给定的时间戳 (oldState.lc >= lc) | +| oldLcLt | 字符串 | 上次更改时间戳必须大于或等于给定的时间戳(oldState.lc >= lc)| | oldLcLe | 字符串 | 上次更改时间戳必须小于给定的时间戳 (oldState.lc < lc) | | | | | -| channelId | string | 频道ID必须等于给定的| +| channelId | 字符串 | 频道ID必须等于给定的| | | RegExp | 与正则表达式匹配的频道ID | | | 数组 | 与允许的频道 ID 列表匹配的频道 ID | | | | | @@ -288,7 +289,7 @@ on('adapter.0.device.channel.sensor', (data) => { | | RegExp | 与正则表达式匹配的设备ID | | | 数组 | 与允许的设备 ID 列表匹配的设备 ID | | | | | -| 设备名称 | 字符串 | 设备名称必须等于给定的名称 | +| 设备名称 | 字符串 | 设备名称必须与给定名称相同 | | | RegExp | 与正则表达式匹配的设备名称 | | | 数组 | 与允许的设备名称列表匹配的设备名称 | | | | | @@ -316,7 +317,7 @@ on('adapter.0.device.channel.sensor', (data) => { | | RegExp | 旧值不是来自与正则表达式匹配的适配器 | | | 数组 | 旧值不是来自给定的禁用适配器列表中的适配器 | -示例:如果所有 ID 为 `'*.STATE'` 的状态都已确认且具有新值 `true`,则触发它们。 +示例:如果所有 ID 为 `'*.STATE'` 的状态都已确认且具有新值 `true`,则触发这些状态。 ```js { @@ -346,7 +347,7 @@ on('stateId1', 'stateId2'); *stateId1*的所有改变都会写入*stateId2*。 -如果将`value`参数与状态 id 结合设置为第二个参数,则在任何更改时,状态都将填充`value`。 +如果将`value`参数与状态 ID 结合设置为第二个参数,则在任何更改时,状态都将填充`value`。 ```js on('stateId1', 'stateId2', 'triggered'); @@ -445,10 +446,10 @@ on({ id: 'javascript.0.myState1', change: 'any' }, (data) => { schedule(pattern, callback); ``` -具有天文功能的时间表。 +具有天文功能的时间调度程序。 -#### 时间表 -模式可以是带有[Cron语法](http://en.wikipedia.org/wiki/Cron)的字符串,由 5 位(不包含秒数)或 6 位(包含秒数)数字组成: +#### 时间表 +模式可以是带有[Cron 语法](http://en.wikipedia.org/wiki/Cron)的字符串,由 5 位(不包含秒数)或 6 位(包含秒数)数字组成: ``` * * * * * * @@ -505,7 +506,7 @@ schedule({ hour: 12, minute: 30 }, () => { -`规则` start 和 end 定义一个 Date 对象、一个 DateString 或自 1970 年 1 月 1 日 00:00:00 UTC 以来的毫秒数。 -规则是一个带有 [Cron语法](http://en.wikipedia.org/wiki/Cron) 的计划字符串或一个对象: +规则是一个带有 [Cron 语法](http://en.wikipedia.org/wiki/Cron) 的计划字符串或一个对象: ```js let startTime = new Date(Date.now() + 5000); @@ -528,7 +529,7 @@ schedule({ start: startTime, end: endTime, rule: ruleData }, () => { ``` #### 天文功能 -天文功能可以通过“astro”属性使用: +天文函数可以通过“astro”属性使用: ```js schedule({ astro: 'sunrise' }, () => { @@ -798,7 +799,7 @@ await setStateChangedAsync(id, state, ack); clearStateDelayed(id); ``` -清除指定状态ID或某个特定延迟任务的所有延迟任务。 +清除指定状态ID或某些特定延迟任务的所有延迟任务。 ```js setStateDelayed('Kitchen.Light.Lamp', false, 10000); // Switch OFF the light in the kitchen in ten second @@ -1121,14 +1122,14 @@ createAlias(name, alias, forceCreation, common, native, callback); 通用定义取自读取别名 ID 对象,但提供的通用定义优先。 #### 参数: -- `name`:新别名状态的 ID(可能没有别名命名空间),例如 `test.mystate`(将添加命名空间 `alias.0.` = `alias.0.test.mystate`) +- `name`:新别名状态的 id(可能没有别名命名空间),例如 `test.mystate`(将添加命名空间 `alias.0.` = `alias.0.test.mystate`) - `alias`:可以是字符串形式的现有状态 ID,也可以是具有完整别名定义的对象,包括读/写 ID 和读/写函数。注意:别名定义不能设置为通用参数的一部分! - `forceCreation`:无论状态是否存在,都创建/覆盖别名。 - `common`:别名对象的通用描述,请参阅[此处](https://github.com/ioBroker/ioBroker/blob/master/doc/SCHEMA.md#state) 的描述。此处提供的值将优先于读取别名 id 对象的通用定义。注意:别名定义不能作为此通用参数的一部分进行设置,请参阅别名参数! - `native`:对象的原生描述。任何特定信息。 - `callback`:在状态创建并初始化后调用。 -可以使用简短类型的 createAlias: +可以使用简短的 createAlias 类型: - `createAlias('myAlias', 'myDatapoint')` - 如果不存在,则简单地创建引用 javascript.X.myDatapoint 的 alias.0.myAlias - `createAlias('myAlias', { id: { read: 'myReadDatapoint', write: 'myWriteDatapoint' }})` - 创建别名并引用不同的读/写状态 @@ -1142,7 +1143,7 @@ await createAliasAsync(name, alias, forceCreation, common, native); 与`createAlias`相同,但将返回承诺。 -### 发给 +### 发送至 ```js sendTo(adapter, command, message, callback); sendTo(adapter, command, message, options, callback); @@ -1200,15 +1201,32 @@ sendToHost(hostName, command, message, callback); 支持以下命令: -- ``cmdExec'' -- ``获取存储库'' -- ``获取安装信息'' -- `“获取版本”` -- `“获取诊断数据”` -- ``getLocationOnDisk'' -- ``获取DevList'' -- `“getLogs”` -- `“获取主机信息”` +-`‘cmdExec’` +-`‘获取存储库’` +-`'获取安装'` +-`'获取版本'` +- `'获取诊断数据'` +- `‘getLocationOnDisk’` +- `'获取DevList'` +-`'获取日志'` +-`'获取日志文件'` +- `'获取日志文件'` +-`‘delLogs’` +- `'获取主机信息'` +- `'getHostInfoShort'` +-`'updateMultihost'` +- `'upgradeController'` - 将 js-controller 升级到最新版本 +- `'getInterfaces'` - 返回系统所有可用的网络接口 +- `'getInterfaces'` - 开始适配器上传 +-`'rebuildAdapter'` +- `'读取基本设置'` +-`'writeBaseSettings'` +- `'添加通知'` +- `'清除通知'` +- `'获取通知'` +- `'updateLicenses'` - 从 iobroker.net 读取许可证 +- `'upgradeOsPackages'` +- `'重启控制器'` 它是相当具体的命令并且并不经常需要。 @@ -1281,15 +1299,15 @@ formatDate(millisecondsOrDate, format); * D, T, Д - 短日,例如 2 * hh, SS, чч - 整点,例如 03 * h, S, ч - 短小时,例如 3 -* mm, мм(西里尔文)- 完整分钟,例如 04 +* mm, мм(西里尔文)- 整分钟,例如 04 * m, м(西里尔文)- 短分钟,例如 4 * ss, сс(西里尔文) - 整秒,例如 05 * s, с(西里尔文)- 短秒,例如 5 * sss,ссс(西里尔文) - 毫秒 * WW,НН(西里尔文)- 以文本形式显示完整星期几 -* W, Н(西里尔文)- 短星期几作为文本 +* W、Н(西里尔文)- 短星期几作为文本 * OO, ОО(西里尔文)- 整月以文本表示 -* OOO, ООО(西里尔文)- 完整的月份作为属格文本 +* OOO, ООО(西里尔文)- 全月作为属格文本 * O, О(西里尔文)- 短月份为文本 #### 例子 @@ -1517,7 +1535,7 @@ delFile(adapter, fileName, (error) => {}); 此方法的替代名称是`unlink` -### 重新命名文件 +### 重命名文件 ```js renameFile(adapter, oldName, newName, (error) => {}); ``` @@ -1568,7 +1586,7 @@ onFile(id, fileName); onStop (() => { /* do something when script is stopped */ }, timeout); ``` -安装回调,如果脚本停止,将会调用该回调。例如,用于停止通信或关闭连接。 +安装回调,脚本停止时将调用该回调。例如,用于停止通信或关闭连接。 ```js // establish connection @@ -1728,7 +1746,7 @@ log(`Script was ${stopped ? 'stopped' : 'already stopped'}`); stopScript(); ``` -### 是否为脚本活动 +### 是否激活脚本 ```js isScriptActive('scriptName'); ``` @@ -1739,7 +1757,7 @@ isScriptActive('scriptName'); 它不是一个函数。它是一个带有 javascript 实例的变量,在脚本范围内可见。 ### 转 Int -### 浮 +### 浮点数 ### 布尔值 ### Jsonata表达式 ### 等待 @@ -1908,7 +1926,7 @@ httpGet('http://jsonplaceholder.typicode.com/posts', (err, response) => { 第二个参数可以是带有进一步选项的对象(可选)。所有选项都是可选的。支持的标志: -- `timeout` (number) - 以毫秒为单位的超时时间 +- `timeout` (number) - 超时时间(以毫秒为单位) - `responseType` (字符串) - 支持的值是 `text` (默认) 或 `arraybuffer` (用于响应中的二进制数据) - `basicAuth` (对象) - HTTP 基本身份验证凭证。例如 `{ 用户:'admin',密码:'iobroker' }` - `bearerAuth` (字符串) - 用于承载身份验证的令牌 @@ -2043,6 +2061,14 @@ readFile('0_userdata.0', 'test.jpg', (err, data, mimeType) => { }); ``` +## 注册通知 +*要求版本 >= 8.8.0* + +```js +registerNotification('This is just an information'); // Notify +registerNotification('This is an important message!', true); // Alert +``` + ## 全局脚本变量 ### 脚本名称 `scriptName`——脚本的名称。 @@ -2080,7 +2106,7 @@ if (verbose) { ## 选项 - “启动时不订阅所有状态” 订阅状态有两种模式: -- 适配器在启动时订阅所有变化并接收所有状态的所有变化(使用 getStates(id) 很容易,但需要更多的 CPU 和 RAM): +- 适配器在启动时订阅所有更改并接收所有状态的所有更改(使用 getStates(id) 很容易,但需要更多的 CPU 和 RAM): ```js log(getState('someID').val); diff --git a/docs/zh-cn/adapterref/iobroker.kostal-piko-ba/README.md b/docs/zh-cn/adapterref/iobroker.kostal-piko-ba/README.md index 2c8c1d9c7..606a46cdf 100644 --- a/docs/zh-cn/adapterref/iobroker.kostal-piko-ba/README.md +++ b/docs/zh-cn/adapterref/iobroker.kostal-piko-ba/README.md @@ -3,151 +3,159 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.kostal-piko-ba/README.md title: ioBroker.kostal-piko-ba -hash: o8WKJRbH1NvZZ7/KkuUQq2W7tvgOz+JJsSAZP7Leakc= +hash: Wt8AzwewSKrFltCL+THLWDot1KNDkhRpkVvXRRtapyE= --- ![标识](../../../en/adapterref/iobroker.kostal-piko-ba/admin/picoba.png) ![NPM 版本](https://img.shields.io/npm/v/iobroker.kostal-piko-ba.svg) -![下载](https://img.shields.io/npm/dm/iobroker.kostal-piko-ba.svg) -![已知漏洞](https://snyk.io/test/github/hombach/ioBroker.kostal-piko-ba/badge.svg) +![下载](https://img.shields.io/npm/dm/iobroker.kostal-piko-ba?label=npm%20downloads&style=flat-square) +![节点](https://img.shields.io/node/v-lts/iobroker.kostal-piko-ba?style=flat-square) +![Libraries.io 最新版本的依赖状态](https://img.shields.io/librariesio/release/npm/iobroker.kostal-piko-ba?label=npm%20dependencies&style=flat-square) +![GitHub](https://img.shields.io/github/license/hombach/iobroker.kostal-piko-ba?style=flat-square) +![GitHub 仓库大小](https://img.shields.io/github/repo-size/hombach/iobroker.kostal-piko-ba?logo=github&style=flat-square) +![GitHub 提交活动](https://img.shields.io/github/commit-activity/m/hombach/iobroker.kostal-piko-ba?logo=github&style=flat-square) +![GitHub 上次提交](https://img.shields.io/github/last-commit/hombach/iobroker.kostal-piko-ba?logo=github&style=flat-square) +![GitHub 问题](https://img.shields.io/github/issues/hombach/iobroker.kostal-piko-ba?logo=github&style=flat-square) +![GitHub 工作流程状态](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.kostal-piko-ba/test-and-release.yml?branch=main&logo=github&style=flat-square) ![Appveyor-CI](https://ci.appveyor.com/api/projects/status/github/hombach/ioBroker.kostal-piko-ba?branch=master&svg=true) -![NPM](https://nodei.co/npm/iobroker.kostal-piko-ba.png?downloads=true) +![测试版](https://img.shields.io/npm/v/iobroker.kostal-piko-ba.svg?color=red&label=beta) +![稳定的](https://iobroker.live/badges/kostal-piko-ba-stable.svg) +![已安装](https://iobroker.live/badges/kostal-piko-ba-installed.svg) +![新平台](https://nodei.co/npm/iobroker.kostal-piko-ba.png?downloads=true) # IoBroker.kostal-piko-ba -![NPM 版本(稳定)](https://ioBroker.live/badges/kostal-piko-ba-stable.svg)![安装数量(最新)](https://ioBroker.live/badges/kostal-piko-ba-installed.svg) +[![CodeQL](https://github.com/hombach/ioBroker.kostal-piko-ba/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hombach/ioBroker.kostal-piko-ba/actions/workflows/codeql-analysis.yml) -**CI 测试:** ![Node.js CI](https://github.com/hombach/ioBroker.kostal-piko-ba/workflows/Node.js%20CI/badge.svg) [![CodeQL](https://github.com/hombach/ioBroker.kostal-piko-ba/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/hombach/ioBroker.kostal-piko-ba/actions/workflows/codeql-analysis.yml) +## 版本 +## 用于读取 Kostal Piko 和 Piko BA 数据的 iOBroker 适配器 +该适配器允许读取 Kostal Piko、Piko BA 和 PIKO MP plus 逆变器的数据。 +它创建并按顺序更新多个状态,确保始终提供最新信息。 +该适配器专为 Kostal Piko BA、6.0BA、8.0BA 和 10BA 逆变器设计,但它还支持多种其他型号,包括: -## 用于读取 iOBroker 的 Kostal Piko 和 Piko BA 数据的适配器 -用于读取 Kostal Piko、Piko BA 和 PIKO MP plus 数据的适配器。适配器创建一些状态并按顺序更新它们。 -专为 Kostal Piko 6.0BA、8.0BA、10.0BA、BA 逆变器设计的适配器。 -适配器还适用于 Kostal Piko 3.0、4.2、4.6、5.5、7.0、8.5、10、12、15、17、20 和 36 逆变器。 -新的!适配器现在也可与 MP plus 逆变器配合使用 - 已使用 Kostal PIKO 1.5-1、2.0-1、3.0-1 MP plus 进行测试。 -如果您验证其他逆变器的功能,我们将不胜感激,请给我留言。 +- 科斯塔尔皮科:3.0、4.2、4.6、5.5、7.0、8.5、10、12、15、17、20 和 36。 +- 科斯塔尔 PIKO MP:1.5、3.0、3.6。 +- Kostal PIKO MP plus:1.5-1、2.0-1、2.5-1、3.0-1、3.0-2、3.6-1、3.6-2 和 5.0-2。 -## 设置 -请注意,您的 Piko 或 Piko BA 逆变器必须更新到 Kostal UI >= 6.11!要连接到 Kostal Piko (BA / MP plus) 逆变器,必须在配置中设置其 IP 地址。 -您还可以选择编辑实时数据、每日和实时统计数据的更新频率。 -如果您的硬件需要并支持,也可以设置用于读取 4 个模拟值的标记。 +我们非常欢迎您就其他逆变器的功能提出反馈。如果您使用其他型号进行测试,请给我们发送通知。 -## 笔记 -此适配器使用哨兵库自动向开发人员报告异常和代码错误。有关更多详细信息和有关如何禁用错误报告的信息,请参阅[哨兵插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用哨兵报告。 +## 设置 +确保您的 Piko 或 Piko BA 逆变器已更新至 Kostal UI 版本 6.11 或更高版本。 +要连接到 Kostal Piko (BA / MP plus) 逆变器,您必须在设置中配置其 IP 地址。 +您可以选择调整实时数据、每日统计数据和终身统计数据的更新频率。 +如果您的硬件支持,您还可以启用四个模拟值的读取。 + +哨兵 +此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。有关如何禁用错误报告的更多详细信息和信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!Sentry 报告从 js-controller 3.0 开始启动。 + +## 捐赠 +如果你喜欢这个项目 — — 或者只是觉得慷慨,可以考虑给我买杯啤酒。干杯!:beers: ## Changelog -! Note that missing version entries are typically dependency updates for improved security. - -### 2.5.2 (02.06.2023) -* (HombachC) fixed a wording error -* (HombachC) bumped dependencies, added tests for node.js 20 -* (HombachC) it's recommended to switch to minimum node.js 16, adapter still working with node 14 -### 2.5.1 (25.04.2023) -* (HombachC) fixed a sentry reported error -### 2.5.0 (22.04.2023) -* (HombachC) implemented battery power calculation -### 2.4.7 (13.04.2023) -* (HombachC) improved error handling -### 2.4.6 (09.04.2023) -* (HombachC) fixed vulnerability in xml2js -### 2.4.5 (07.04.2023) -* (HombachC) improved error handling -### 2.4.4 (04.04.2023) -* (HombachC) improved error handling -### 2.4.3 (03.04.2023) -* (HombachC) improved error handling -### 2.4.2 (07.03.2023) -* (HombachC) fixed error in Piko MP Plus AC current -* (HombachC) added Piko MP Plus total yield -### 2.4.1 (06.03.2023) -* (HombachC) fixed Piko MP Plus support for two channel hardware -### 2.4.0 (06.03.2023) -* (HombachC) added support of AC and DC power values for Piko MP inverters -### 2.3.1 (05.03.2023) -* (HombachC) fix error with zero values in DC & AC -### 2.3.0 (26.02.2023) -* (HombachC) replaced got by axios -* (HombachC) added warning for not supported Piko MP inverters -* (HombachC) removed travis -### 2.2.2 (14.02.2023) -* (HombachC) fixed error with missing grid limitation response -### 2.2.0 (03.02.2023) -* (HombachC) added support for phase 1-3 of homeconsumption power -* (HombachC) enhanced sentry support -### 2.1.3 (03.02.2023) -* (HombachC) optimized debug data -### 2.1.2 (29.01.2023) -* (HombachC) fixed errors with single phase inverters (Piko 3) -### 2.1.1 (29.12.2022) -* (HombachC) year 2023 changes -### 2.1.0 (04.11.2022) -* (HombachC) added ukrainian translations -### 2.0.2 (16.10.2022) -* (HombachC) fixed small sentry reported error -* (HombachC) optimized error logging -### 2.0.1 (11.10.2022) -* (HombachC) optimized error logging -### 2.0.0 (28.08.2022) -* (HombachC) BREAKING: Dropped support for Node.js 12 -* (HombachC) changed the minimal required js-controller version to 3.2.16 -* (HombachC) added state of inverter as string -### 1.5.0 (05.08.2022) -* (HombachC) added minimum values for poll times to prevent communication errors -### 1.4.7 (26.06.2022) -* (HombachC) bumped dependency because of security vulnerability -### 1.4.6 (06.06.2022) -* (HombachC) removed gulp, bumped dependencies, added tests for node.js 18 -* (HombachC) removed tests for node.js 12 -> it's recommended to switch to node.js 14, adapter still working with node 12 -### 1.4.5 (03.05.2022) -* (HombachC) added UI version to sentry feedback and documentation -### 1.4.4 (01.05.2022) -* (HombachC) optimized sentry feedback and documentation -### 1.4.3 (24.04.2022) -* (HombachC) normalizing of analog values added -### 1.4.2 (01.02.2022) -* (HombachC) added support for inverter type, version and name -* (HombachC) fixed timing error -### 1.4.1 (31.01.2022) -* (HombachC) optimized logging -### 1.4.0 (30.01.2022) -* (HombachC) added support for grid 1-3 current, voltage and power -### 1.3.1 (23.01.2022) -* (HombachC) correct rounding of analog values -* (HombachC) added validation of configured IPv4 address -### 1.3.0 (01.01.2022) -* (HombachC) added optional support for analog inputs -### 1.2.1 (24.12.2021) -* (HombachC) introduced rounding of battery temp -### 1.2.0 (16.12.2021) -* (HombachC) dropped node.js 10 support; fixed vulnerability -### 1.1.13 (16.10.2021) +Note: Missing version entries typically indicate dependency updates for improved security. + +### 4.1.3 (13.08.2024) + +* (HombachC) fixed vulnerability in dependency + +### 4.1.2 (10.08.2024) + +* (HombachC) optimized translation handling +* (HombachC) hide not used configuration inputs + +### 4.1.1 (09.08.2024) + +* (HombachC) adapter checker detected optimizations (#643) + +### 4.1.0 (05.08.2024) + +* (HombachC) replaced deprecated ioBroker state calls +* (HombachC) doku cleanup + +### 4.0.2 (04.08.2024) + +* (HombachC) added node.js 22 tests +* (HombachC) dependency updates + +### 4.0.1 (24.06.2024) + +* (HombachC) dependency updates, removed unfunctional snyk tests + +### 4.0.0 (21.04.2024) + +* (HombachC) BREAKING: Dropped support for Node.js 16 (#591) +* (HombachC) BREAKING: Minimum needed js-controller bumped to 5 (#592) +* (HombachC) changed timeout settings for older Kostal inverters (#589) +* (HombachC) dependency updates +* (HombachC) added tests for node.js 21 +* (HombachC) raised minimum poll time for daily statistics +* (HombachC) code optimizations + +### 3.1.0 (29.03.2024) + +* (HombachC) changed to tier 2 as data provider + +### 3.0.11 (29.03.2024) + +* (HombachC) corrected io-package.json according to new schema +* (HombachC) bump adapter-core to 3.0.6 + +### 3.0.10 (03.03.2024) + * (HombachC) fixed vulnerability -### 1.1.12 (07.10.2021) -* (GermanBlueFox) fixed icon link -### 1.1.7 (09.05.2021) -* (HombachC) added tests for node.js 16; fixed vulnerability -### 1.1.3 (23.11.2020) -* (HombachC) added battery.Voltage; added additional error handler -### 1.1.1 (09.10.2020) stable -* (HombachC) minor documentation tweaks; DC current accuracy changed to mA -### 1.1.0 (09.10.2020) -* (tobstare) added DC1-3 current, voltage and power -* (HombachC) added battery.ChargeCycles -* (HombachC) added battery.temperature -### 1.0.2 (23.09.2020) -* (HombachC) public release for stable repo -### 0.8.0 (18.08.2020) -* (HombachC) seperate editable poll timer for statistics data -### 0.7.4 (03.07.2020) -* (HombachC) added sentry.io support -### 0.6.1 (28.06.2020) -* (HombachC) poll of statistics data separated -### 0.1.0 (15.05.2020) -* (HombachC) initial working release + +### 3.0.9 (23.12.2023) + +* (HombachC) year 2024 changes +* (HombachC) several dependency updates + +### 3.0.8 (29.10.2023) + +* (HombachC) bump axios to 1.6.0 because of vulnerability +* (HombachC) several dependency updates + +### 3.0.7 (01.10.2023) + +* (HombachC) several dependency updates + +### 3.0.6 (27.08.2023) + +* (HombachC) improved error handling in case of offline inverters - centralized error handling + +### 3.0.5 (19.08.2023) + +* (HombachC) mitigating another sentry notified error in case of network trouble + +### 3.0.4 (13.08.2023) + +* (HombachC) bumped adapter core to V3 + +### 3.0.3 (17.07.2023) + +* (HombachC) fixing sentry notified error in case of network trouble + +### 3.0.2 (14.07.2023) + +* (HombachC) fix small error in MP recognition +* (HombachC) sentry notified error in object handling + +### 3.0.1 (23.06.2023) + +* (HombachC) corrected state description + +### 3.0.0 (08.06.2023) + +* (HombachC) BREAKING: Dropped support for Node.js 14 +* (HombachC) changed config screen to admin 5 solution +* (HombachC) dropped Admin <5 support +* (HombachC) removed tests for node 14 + +### Old Changes see [CHANGELOG OLD](CHANGELOG_OLD.md) ## License MIT License -Copyright (c) 2020 - 2023 HombachC +Copyright (c) 2020-2024 HombachC 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.lametric/README.md b/docs/zh-cn/adapterref/iobroker.lametric/README.md index c4fb83f91..baa538b92 100644 --- a/docs/zh-cn/adapterref/iobroker.lametric/README.md +++ b/docs/zh-cn/adapterref/iobroker.lametric/README.md @@ -17,7 +17,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.lametric/README.md title: ioBroker.lametric -hash: PmNF+I6lnUmgz/Y3jNjCR28zGBSiG0O83CA88+cCTIQ= +hash: IO5+rqB51zflaqhylcHU8sd4IeKnvHhejFEVYoFEucw= --- ![标识](../../../en/admin/lametric.png) @@ -32,7 +32,7 @@ hash: PmNF+I6lnUmgz/Y3jNjCR28zGBSiG0O83CA88+cCTIQ= - nodejs 18(或更高版本) - js-controller 5.0.0 (或更高版本) - 管理适配器 6.0.0(或更高版本) -- _LaMetric Time_ 固件版本为 _2.3.8_(2022 型号为 _3.1.0_)(或更高版本) +- _LaMetric Time_ 固件版本为 _2.3.9_(2022 型号为 _3.1.1_)(或更高版本) [固件更新日志](https://firmware.lametric.com) [固件更新日志时间2](https://firmware.lametric.com/?product=time2) @@ -59,28 +59,28 @@ hash: PmNF+I6lnUmgz/Y3jNjCR28zGBSiG0O83CA88+cCTIQ= Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> -### 3.2.1 (2024-06-12) -* (@klein0r) Updated LaMetric firmware version recommendation to 2.3.8 (3.1.0) -* (@klein0r) Updated dependencies +### 3.3.0 (2024-08-05) -### 3.2.0 (2024-06-07) +* (@klein0r) Added api version as state (and check value) -NodeJS >= 18.x and js-controller >= 5 is required +### 3.2.3 (2024-07-21) -* (klein0r) Fixed Blockly definitions (removed warnings) +* (@klein0r) Fixed blockly definitions -### 3.1.3 (2024-01-31) +### 3.2.2 (2024-07-13) -* (klein0r) Fixed web extension +* (@klein0r) Updated LaMetric firmware version recommendation to 2.3.9 (3.1.1) -### 3.1.2 (2023-12-27) +### 3.2.1 (2024-06-12) -* (klein0r) Updated LaMetric firmware version recommendation to 2.3.8 (3.0.21) -* (klein0r) Some devices don't have bluetooth low energy states (sa8) +* (@klein0r) Updated LaMetric firmware version recommendation to 2.3.8 (3.1.0) +* (@klein0r) Updated dependencies + +### 3.2.0 (2024-06-07) -### 3.1.1 (2023-10-27) +NodeJS >= 18.x and js-controller >= 5 is required -* (klein0r) Fixed issue with foreign states of version 3.1.0 +* (klein0r) Fixed Blockly definitions (removed warnings) ## License diff --git a/docs/zh-cn/adapterref/iobroker.myuplink/README.md b/docs/zh-cn/adapterref/iobroker.myuplink/README.md index d21d7df01..f703fddfa 100644 --- a/docs/zh-cn/adapterref/iobroker.myuplink/README.md +++ b/docs/zh-cn/adapterref/iobroker.myuplink/README.md @@ -1,26 +1,19 @@ --- +BADGE-NPM version: https://img.shields.io/npm/v/iobroker.myuplink.svg +BADGE-Current version in stable repository: https://iobroker.live/badges/myuplink-stable.svg +BADGE-Downloads: https://img.shields.io/npm/dm/iobroker.myuplink.svg +BADGE-Number of Installations: https://iobroker.live/badges/myuplink-installed.svg +BADGE-NPM: https://nodei.co/npm/iobroker.myuplink.png?downloads=true translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.myuplink/README.md title: ioBroker.myuplink -hash: +c8Neb3KKonGY9VtQq66QhvwidPModoE5QWdcaxh5Og= +hash: IeZvYW3c0DaaueslEjv8qw0vKPC1TrKdSqYRGxumEAE= --- # IoBroker.myuplink - -![NPM 版本](https://img.shields.io/npm/v/iobroker.myuplink.svg) -![稳定存储库中的当前版本](https://iobroker.live/badges/myuplink-stable.svg) -![下载](https://img.shields.io/npm/dm/iobroker.myuplink.svg) -![安装数量](https://iobroker.live/badges/myuplink-installed.svg) -![新平台](https://nodei.co/npm/iobroker.myuplink.png?downloads=true) - -[![构建状态](https://github.com/sebilm/ioBroker.myuplink/workflows/Test%20and%20Release/badge.svg)](https://github.com/sebilm/ioBroker.myuplink/actions/workflows/test-and-release.yml) - -## Myuplink.com ioBroker 适配器 -此 ioBroker 适配器从 myUplink.com 接收数据。 +此 ioBroker 适配器从 myUplink.com 接收数据。myUplink 已为此启用的设置可以更改。 ## 使用此适配器 -以下是德语版本 - 此指南将继续提供德语版本。 - 1. 您需要一个 myUplink 兼容热泵,品牌包括 NIBE、AIT、Cetetherm、ClimateMaster、Contura、CTA、CTC、Enertech Global 或 Høiax - 如果没有,请购买一个 ;-) 2. 您需要一个 myUplink 账户:https://myuplink.com 3. 前往 myUplink Api:https://dev.myuplink.com 并登录 @@ -49,51 +42,26 @@ hash: +c8Neb3KKonGY9VtQq66QhvwidPModoE5QWdcaxh5Og= ## 适配器的工作原理 适配器每 x 分钟(取决于设置)从 myUplink API 检索一次系统和设备列表。然后,它会检索每个设备的可用参数并将其保存在对象树中。如果 myUplink 在此过程中发送了新参数,这些参数会自动添加到对象树中。 -适配器通常不会删除任何对象,以便如果 myUplink 不发送参数,数据就不会丢失。 +适配器通常不会删除任何对象,因此如果 myUplink 不发送参数,数据就不会丢失。 适配器对 myUplink 发送哪些参数也没有影响。 -## 使用这些适配器 -1. 将使用与 myUplink 兼容的 NIBE、AIT、Cetetherm、ClimateMaster、Contura、CTA、CTC、Enertech Global 或 Høiax 暖气泵。 -2. 您将在 myUplink 上拥有一个帐户:https://myuplink.com -3. 在 myUplink-API 网站上登录:https://dev.myuplink.com -4. 点击“应用程序”和“创建新应用程序” -5. 名称和描述可以证明是 ausgefüllt werden, z.B. “ioBroker” -6. 回调 URL 是授权码授予流程的一部分。可以创建 https://sebilm.github.io/ioBroker.myuplink/myuplink.html。 -7. 必须接受 myUplink API 服务协议,并且必须单击“创建”。 -8. 将会显示一个标识符和一个秘密 - 这些将会有用。 -9. 在 ioBroker 中安装此适配器。 -10. 在适配器设置页面上输入标识符和密码。 -11. 选择并设置语言和其他所有设置。 -12. 点击仓库和闸门。 - -设备将使用名为“setData”的对象集来执行该操作。你可以使用 JSON 格式的对象 - -```json -{ - "12345": "42", - "23456": "1" -} -``` - -物体诞生了。值得注意的是,发送和接收 API 时会显示更多相同的数据。 -也可以使用未发送 API 的数据点来替代它。 - -## 适配器作业 -适配器通过 myuplink-API 连接到 x 分钟(然后设置)系统和设备列表。请将上述设备连接到指定的设备,以获取所需的预先设置参数并将其存储在对象库中。当 myUplink 收到新参数时,就会自动生成此对象。 - -由于适配器通常没有对象,因此无法发送数据,因此 myUplink 无法发送参数。 - -该适配器也没有输入任何内容,因此发送了 myUplink 参数。 - ## Changelog +### 0.8.1 (2024-08-18) + +- Existing incorrect minimum and maximum values are now deleted #39 +- Minimum and maximum values of the API are not adopted if the current value is outside minimum and maximum #39 +- Instructions for German and English have been moved to separate files #47 +- Dependencies have been updated -### **WORK IN PROGRESS** +### 0.8.0 (2024-07-14) -- Do not send empty objects (setData) +- No empty objects are sent (setData) +- Incorrect minimum and maximum values of the API are not adopted #39 - The initial refresh interval was set to 5 minutes - The code has been restructured internally - At least Node.js 18 is required! +- Unit tests have been added - Dependencies have been updated ### 0.7.1 (2024-02-10) diff --git a/docs/zh-cn/adapterref/iobroker.opendtu/README.md b/docs/zh-cn/adapterref/iobroker.opendtu/README.md index a30cabd9e..feb0e57e0 100644 --- a/docs/zh-cn/adapterref/iobroker.opendtu/README.md +++ b/docs/zh-cn/adapterref/iobroker.opendtu/README.md @@ -3,23 +3,23 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.opendtu/README.md title: ioBroker.opendtu -hash: iL8WZu4JPaW2bMkFx9uIvF37y/hmAHtlwdE2mgGHVJw= +hash: Ie+cd0PqK6PA2b6Hnqs1yikiFlpJncDXK7lIbdJ83ac= --- ![标识](../../../en/adapterref/iobroker.opendtu/admin/opendtu.png) -![NPM版本](https://img.shields.io/npm/v/iobroker.opendtu.svg) +![NPM 版本](https://img.shields.io/npm/v/iobroker.opendtu.svg) ![下载](https://img.shields.io/npm/dm/iobroker.opendtu.svg) ![安装数量](https://iobroker.live/badges/opendtu-installed.svg) ![稳定存储库中的当前版本](https://iobroker.live/badges/opendtu-stable.svg) -![国家公共管理](https://nodei.co/npm/iobroker.opendtu.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.opendtu.png?downloads=true) # IoBroker.opendtu -**测试:** ![测试和发布](https://github.com/o0shojo0o/ioBroker.opendtu/workflows/Test%20and%20Release/badge.svg) [![CodeQL](https://github.com/o0shojo0o/ioBroker.opendtu /actions/workflows/codeql.yml/badge.svg)](https://github.com/o0shojo0o/ioBroker.opendtu/actions/workflows/codeql.yml) +**测试:**![测试和发布](https://github.com/o0shojo0o/ioBroker.opendtu/workflows/Test%20and%20Release/badge.svg) [![CodeQL](https://github.com/o0shojo0o/ioBroker.opendtu/actions/workflows/codeql.yml/badge.svg)](https://github.com/o0shojo0o/ioBroker.opendtu/actions/workflows/codeql.yml) -# 我正在寻找这个适配器的新维护者,如果您有兴趣,请通过问题与我联系! +# 我正在为这个适配器寻找一个新的维护者,如果您有兴趣,请通过问题联系我! ## IoBroker 的 opendtu 适配器 -该适配器实时获取来自项目[开放式DTU](https://github.com/tbnobody/OpenDTU)的数据点。 -此外,可以通过适配器使用以下数据点来控制 OpenDTU 的功率限制。 +此适配器可实时获取项目[开放DTU](https://github.com/tbnobody/OpenDTU) 中的可用数据点。 +此外,还可通过适配器使用以下数据点来控制 OpenDTU 的功率限制。 ``` - opendtu.0.xxxxxx.power_control.limit_nonpersistent_absolute @@ -32,9 +32,9 @@ hash: iL8WZu4JPaW2bMkFx9uIvF37y/hmAHtlwdE2mgGHVJw= ## 配置 1. 创建适配器的新实例 -2.填写[OpenDTU](https://github.com/tbnobody/OpenDTU)硬件的Scheme*(默认http)*、WebUi-Address和WebUi-port*(默认80)* -3.设置WebUi密码**(此为必填项,如果不正确则无法设置限制!)** -4. 保存设置 +2. 填写 [OpenDTU](https://github.com/tbnobody/OpenDTU) 硬件的安全性 *(默认 http)*、IP 地址和端口 *(默认 80)* +3. 设置 WebUI 密码(这是强制性的,如果不正确则无法设置限制!)** +4.保存设置 ## Changelog +### 2.0.0 (2024-08-13) + +- (o0shojo0o) changes for new websocket structure ([#129](https://github.com/o0shojo0o/ioBroker.opendtu/issues/129)) +- (o0shojo0o) `Efficiency`, `YieldTotal`, `YieldDay` and `DC Power` moved from the AC section to the INV (old data points must be removed manually) +- (mattreim) update to current OpenDTU logo ([#156](https://github.com/o0shojo0o/ioBroker.opendtu/issues/156)) +- (mattreim) update dependencies ([#162](https://github.com/o0shojo0o/ioBroker.opendtu/issues/162)), ([#179](https://github.com/o0shojo0o/ioBroker.opendtu/issues/179)) +- (mattreim) fix GUI translation ([#163](https://github.com/o0shojo0o/ioBroker.opendtu/issues/163)) + ### 1.0.1 (2023-10-29) - (o0shojo0o) fixed `power_control.current_limit_absolute" has value "-1" less than min "0"` @@ -99,7 +107,7 @@ hash: iL8WZu4JPaW2bMkFx9uIvF37y/hmAHtlwdE2mgGHVJw= ## License MIT License -Copyright (c) 2023 Dennis Rathjen +Copyright (c) 2024 Dennis Rathjen 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.openligadb/README.md b/docs/zh-cn/adapterref/iobroker.openligadb/README.md index bc4315dbb..86599b72c 100644 --- a/docs/zh-cn/adapterref/iobroker.openligadb/README.md +++ b/docs/zh-cn/adapterref/iobroker.openligadb/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.openligadb/README.md title: ioBroker 适配器从 OpenLigaDB 获取足球比赛结果 -hash: NBGbAbS3DF+r/1+iR9CjF/p41QVywpNvyYwVhtiUX60= +hash: e5bt04T3osN7C2hpyfmVE5dX3PSxxSGuFY7/ibkCVe4= --- ![标识](../../../en/adapterref/iobroker.openligadb/admin/openligadb_n.png) @@ -37,15 +37,15 @@ hash: NBGbAbS3DF+r/1+iR9CjF/p41QVywpNvyYwVhtiUX60= ### 目标达成者 v2 这个小部件显示本赛季的进球者 -### 比赛日 -实际或选定比赛日的所有比赛。有许多小部件属性可用于配置显示的数据量 +### 比赛日 +实际或选定比赛日的所有比赛。有许多小部件属性可以配置显示的数据量 ### 最喜爱的俱乐部的比赛 显示您最喜爱的俱乐部的所有当前或未来比赛 vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.openligadb/blob/master/widgets/openligadb/doc.html) 中找到 -## 去做 +待办事项 - 如果用户没有选择正确的数据点,则在小部件中进行验证 - 翻译 - ~~新小部件数据透视表和 goalgetters 的文档~~ @@ -58,7 +58,10 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview - ~~文档适配器/小部件~~ - ~~修复俱乐部栏目动态问题~~ - ~~新小部件:俱乐部的下 x 场比赛~~ -- ~~小部件比赛日设置用于开始比赛日的长度(-1,3 = 显示前一个比赛日和之后的 3 个比赛日)~~ +- ~~widget gameday 设置开始比赛日的长度 (-1,3 = 显示上一个 + +比赛日和之后的 3 个比赛日)~~ + - ~~如果 showgameday 设置了绑定,则替换编辑模式的值~~ - ~~突出显示最喜欢的俱乐部~~ - ~~在比赛日小部件中可控制比赛日~~ @@ -69,6 +72,15 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 1.4.11 (2024-08-09) + +- fix issues from adapter checker + +### 1.4.10 (2024-08-02) + +- switch to eslint 9 +- adjust markdownlint settings to be compatible with prettier + ### 1.4.9 (2024-06-13) - fix if no game exist for team1/team2 @@ -178,14 +190,17 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview ### 0.11.1 -- change some template settings, goalgetter table get headers, add object change sensing +- change some template settings, goalgetter table get headers, + add object change sensing - widget goalgetters: add parameter highlight and showonlyhighlight - widget pivottable: add sort option and choice to place favorite teams on top - remove year from date for several widgets ### 0.11.0 -- extend table to calculate with x last games and extend table to calculate ranking for a defined gameday, to ensure backward compatibility i have to create a new table v3 widget +- extend table to calculate with x last games and extend table to calculate + ranking for a defined gameday, to ensure backward compatibility i have to + create a new table v3 widget - extend table with trend sign (arrow up/down, point for no change) - new widget goal getter ranking with sort function - new widget pivot table of played games @@ -193,21 +208,27 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview ### 0.10.3 -- change computing and output logic of gameday widget to mark gameday header with favorite class +- change computing and output logic of gameday widget to mark gameday + header with favorite class - improve documentation with css-klasses for table widget - bugfix for calculate gameday. ### 0.10.2 -- Add data column goaldiff to table widget, improve more documentation (systax highlighting,copy code function), add example to control gameday with buttons, +- Add data column goaldiff to table widget, improve more documentation + (systax highlighting,copy code function), add example to + control gameday with buttons, ### 0.10.1 -- Improve documentation with more recipes and syntax highlighting, improve code to get and subscribe states +- Improve documentation with more recipes and syntax highlighting, + improve code to get and subscribe states ### 0.10.0 -- New widget Table 2 that includes the calculation of the total, home and away results. the previous widget is now deprecated, due to the different datapoint (allmatches) to be selected. +- New widget Table 2 that includes the calculation of the total, home and + away results. the previous widget is now deprecated, due to the + different datapoint (allmatches) to be selected. ### 0.9.3 @@ -223,11 +244,14 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview ### 0.9.0 -- new Function for vis Binding to search for games at the actual day for favorite clubs, css-classes für games at actual day, fix bug to show the right match results, +- new Function for vis Binding to search for games at the actual day for + favorite clubs, css-classes für games at actual day, fix bug to show + the right match results, ### 0.8.0 -- push version for latest repository. fix some typos. fix a problem with date handling on different OS +- push version for latest repository. fix some typos. fix a problem with + date handling on different OS ### 0.0.11 @@ -239,11 +263,13 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview ### 0.0.9 -- optional weekday for widgets: gameday and gamesoffavclub,highlight the clubname in gamesoffavclub +- optional weekday for widgets: gameday and gamesoffavclub,highlight the + clubname in gamesoffavclub ### 0.0.8 -- new widget games of favorite clubs with multi league support as replacement for the old one +- new widget games of favorite clubs with multi league support as + replacement for the old one ### 0.0.7 @@ -257,7 +283,8 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview - highlight favorite club, - Replacement value for edit mode if showgameday is set with binding, -- widget gameday setting for start gameday an length (-1,3 = show previous gameday and 3 gamedays after that) +- widget gameday setting for start gameday an length (-1,3 = show previous + gameday and 3 gamedays after that) - some documentation - remove unused code - new widget: next x games of club diff --git a/docs/zh-cn/adapterref/iobroker.parser/README.md b/docs/zh-cn/adapterref/iobroker.parser/README.md index 4c536dc5f..fd2afd72f 100644 --- a/docs/zh-cn/adapterref/iobroker.parser/README.md +++ b/docs/zh-cn/adapterref/iobroker.parser/README.md @@ -3,113 +3,113 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.parser/README.md title: ioBroker 解析器适配器 -hash: Le4c+UayImhSKld1ia2TKTckHZUsW4qw9xKSC9LG2fk= +hash: 699NFuNyBB5WvJ2oV9HHyNwPuee68cU6G0sWYfrak6U= --- ![标识](../../../en/adapterref/iobroker.parser/admin/parser.png) ![安装数量](http://iobroker.live/badges/parser-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.parser.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.parser.svg) ![下载](https://img.shields.io/npm/dm/iobroker.parser.svg) # IoBroker 解析器适配器 ![测试与发布](https://github.com/ioBroker/ioBroker.parser/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/parser/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 -该适配器使用正则表达式解析通过 URL 或从文件接收的数据。对于在此适配器的设置中配置的每个规则,将在`parser.`下创建一个状态,并使用解析的信息填充和更新。 +此适配器使用正则表达式解析通过 URL 或文件接收的数据。对于此适配器设置中配置的每条规则,将在 `parser.` 下创建一个状态,并使用解析的信息进行填充和更新。 ## 设置 -### 1.默认轮询间隔 -如果没有为配置表中的条目指定单独的轮询间隔值(列:“间隔”),则将使用此默认轮询间隔值。间隔以毫秒为单位,定义读取链接或文件以及更新状态的频率。 +### 1. 默认轮询间隔 +如果配置表 (列:“间隔”) 中的条目未指定单独的轮询间隔值,则将使用此默认轮询间隔值。间隔以毫秒为单位,定义读取链接或文件以及更新状态的频率。 -**注意:** 不要使用过于激进的轮询间隔,尤其是对于网站 URL。例如,如果您想从某个网站检索股票价格,如果您不是日内交易者,那么您可能应该以每 24 小时(= 86400000 毫秒)为间隔。如果您过于频繁地尝试从某些 URL 检索数据,该网站可能会禁止您并将您列入服务器黑名单。因此请谨慎使用轮询间隔。 +**注意:**不要使用太激进的轮询间隔,尤其是对于网站 URL。例如,如果您想要从某个网站检索股票价格,如果您不是日内交易者,那么每 24 小时(= 86400000 毫秒)的间隔可能就足够了。如果您尝试过于频繁地从某些 URL 检索数据,该网站可能会禁止您并将您列入服务器黑名单。因此,请谨慎使用轮询间隔。 -### 2.请求超时 -指定适配器在进行网站查询时等待 HTTP 响应的时间 +### 2. 请求超时 +指定适配器在执行网站查询时等待 HTTP 响应的时间 -### 3.请求之间的延迟 -指定执行远程查询时适配器在发出 HTTP 请求之间等待的时间。当从慢速主机或通过慢速连接检索数据时很有用,以避免任一主机过载。零(默认)意味着没有延迟。 +### 3. 请求之间的延迟 +指定适配器在执行远程查询时发出 HTTP 请求之间等待的时间。从慢速主机或慢速连接检索数据时很有用,可避免任一方过载。零(默认值)表示无延迟。 -此延迟是基于每个主机的。如果远程查询配置为从多个远程主机获取,则将并行查询每个主机。 +此延迟以每个主机为基础。如果远程查询配置为从多个远程主机获取数据,则将并行查询每个主机。 -延迟是发起每个请求之间的最小值。即,如果读取查询的时间超过此延迟参数,则下一个查询将在读取完成后立即开始。 +延迟是发起每个请求之间的最小值。即,如果一个查询的读取时间超过此延迟参数,则下一个查询将在读取完成后立即启动。 -### 4.接受无效证书 +### 4. 接受无效证书 指定在执行 HTTPS 请求时是否接受或拒绝自签名/无效的 SSL/TLS 证书 ### 5. 使用不安全的 HTTP 解析器 -指定使用接受无效 HTTP 标头的不安全 HTTP 解析器。这可能允许与非一致性 HTTP 实现的互操作性。 +指定使用接受无效 HTTP 标头的不安全 HTTP 解析器。这可能允许与不符合要求的 HTTP 实现进行互操作。 应避免使用不安全的解析器。 -### 6. 表 -单击“加号”按钮将新条目添加到表中。 +### 6. 表格 +单击“加号”按钮可在表中添加新条目。 -**性能说明:** 如果在不同的表行中多次输入相同的 URL 或文件名,且“间隔”列的值相同,则仅检索 URL 或文件名的内容 **一次**并缓存以处理与 URL/文件名和间隔匹配的多个表行。这允许您将多个正则表达式(即多个表行)应用于单个 URL 或文件名,而无需从源多次检索数据。 +**性能注意事项**:如果您在不同的表行中多次输入相同的 URL 或文件名,并且“间隔”列的值相同,则 URL 或文件名的内容将仅被检索一次并缓存以处理与 URL/文件名和间隔匹配的多个表行。这样您就可以将多个正则表达式(即多个表行)应用于单个 URL 或文件名,而无需从源多次检索数据。 **表字段:** -- **_Name_** - 在 `parser.` 下创建的状态名称。不允许有空格。您可以使用点“.”作为分隔符来创建子文件夹。示例:“Shares.Microsoft.Current”将生成“parser.<实例号>.Shares.Microsoft.Current”。 -- **_URL 或文件名_** - 网站的 URL 或我们要检索其信息的文件的路径。示例“https://darksky.net/forecast/48.1371,11.5754/si24/de”(慕尼黑天气信息)或“/opt/iobroker/test/testdata.txt”(ioBroker 内的文件)。 -- **_RegEx_** - 正则表达式,如何从链接中提取数据。有一个很好的测试正则表达式的服务:[regex101](https://regex101.com/)。例如。 `temp swip">(-?\d+)°<` 对于上面的行。 -- **_Item_**(德语:“Num”)- 正则表达式可以查找(匹配)多个条目。使用此选项,您可以定义要选择的匹配。 0 = 第一个匹配,1 = 第二个匹配,2 = 第三个匹配,依此类推。默认值为 0(第一个匹配)。 -- **_Role_** - 角色之一: - - 自定义 - 用户通过_admin_角色定义自己 - - 温度 - 该值为温度 - - value - 该值是一个数字(例如调光器) - - 盲注 - 值为盲注位置 - - switch - 值是开关位置(真/假) - - 按钮 - 该值是一个按钮 - - 指示器 - 布尔指示器 +- **_Name_** - 在 `parser.` 下创建的状态的名称。不允许使用空格。您可以使用点 `.` 作为分隔符来创建子文件夹。示例:`Shares.Microsoft.Current` 将导致 `parser..Shares.Microsoft.Current`。 +- **_URL 或文件名_** - 网站的 URL 或我们想要检索信息的文件的路径。示例 `https://darksky.net/forecast/48.1371,11.5754/si24/de`(慕尼黑天气信息)或 `/opt/iobroker/test/testdata.txt`(ioBroker 内的文件)。 +- **_RegEx_** - 正则表达式,如何从链接中提取数据。有一个很好的服务可以测试正则表达式:[regex101](https://regex101.com/)。例如,上面那行的“temp swip">(-?\d+)˚<”。 +- **_Item_** (德语:“Num”) - 正则表达式可以找到 (匹配) 多个条目。使用此选项,您可以定义要选择哪个匹配项。0 = 第一个匹配项,1 = 第二个匹配项,2 = 第三个匹配项,等等。默认值为 0(第一个匹配项)。 +- **_Role_** - 以下角色之一: +- 自定义 - 用户通过 _admin_ 角色定义自己 +- 温度 - 该值为温度 +- 值 - 该值是一个数字(例如调光器) +- 盲注 - 该值是盲注位置 +- switch - 值是开关位置(真/假) +- 按钮 - 该值是一个按钮 +- 指标 - 布尔指标 - **_Type_** - 每个下拉菜单的变量类型。 -- **_Unit_** - 可选:添加到状态条目的值的单位。例如。 “°C”、“€”、“GB”等 -- **_旧_** - 如果激活,如果在提供的日期(URL 或文件)中无法读取或找到该值,则状态将不会更新,因此在这种情况下它将保留以前的值。 -- **_Subs_** - 可选:替换 URL 或文件名。如果第一列的 URL/文件名不可用,则将使用此替代 URL/文件名。 -- **_Factor/Offset_**(仅适用于“类型”数字)- 允许在设置为状态之前修改检索到的数据: - - _计算值_ = _提取值_ \* 因子 + 偏移量,立即修改值 -- **_Interval_** - 轮询间隔,以 ms(毫秒)为单位。如果为空或 0,则将使用默认轮询间隔。请参阅上面的更多信息。 - -## 设置示例 -|名称 | URL 或文件名 |正则表达式 |角色 |类型 |单位|间隔| -| ----------------- | :----------------------------------------------------- | :----------------------------------- | ----------- | ------- | ---- | -------- | -|温度慕尼黑 | `https://darksky.net/forecast/48.1371,11.5754/si24/de` | `temp swip">(-?\d+)˚<` |温度|数量 | ℃ | 180000 | -|云跑 | `https://iobroker.net/` | `Privacy Notice` |指标|布尔 | | 60000 | -| cpu温度| `/sys/devices/virtual/thermal/thermal_zone0/temp` | `(.*)` |温度|数量 | ℃ | 30000 | -|股票价格.Visa | `https://www.finanzen.net/aktien/visa-aktie` | `\d{0,3},\d{2}(?=EUR<\/span>)` |价值|数量 |欧元 | 86400000 | -|克莱南泽根 | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` |默认 |字符串| | 600000 | -|克莱南泽根 | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` |默认|字符串| | 600000 | - -*注意:* 将正则表达式应用于检索的 URL/文件数据时,所有换行符都将替换为空格以允许多行搜索。 +- **_Unit_** - 可选:添加到状态条目的值的单位。例如 `°C`、`€`、`GB` 等。 +- **_Old_** - 如果激活,如果在提供的日期(URL 或文件)中无法读取或找到值,则状态将不会更新,因此在这种情况下它将保留以前的值。 +- **_Subs_** - 可选:替代 URL 或文件名。如果第一列的 URL/文件名不可用,则将使用此替代 URL/文件名。 +- **_Factor/Offset_**(仅适用于“类型”数字) - 允许在设置状态之前修改检索到的数据: +- _计算值_ = _提取值_ \* 因子 + 偏移量,立即对值进行修改 +- **_Interval_** - 轮询间隔(以 ms 为单位)。如果为空或为 0,则将使用默认轮询间隔。请参阅上文中的更多信息。 + +## 示例设置 +| 名称 | URL 或文件名 | RegEx | 角色 | 类型 | 单位 | 间隔 | +| ----------------- |:-------------------------------------------------------| :----------------------------------- | ----------- | ------- | ---- | -------- | +| 温度慕尼黑 | `https://darksky.net/forecast/48.1371,11.5754/si24/de` | `temp swip">(-?\d+)˚<` | 温度 | 数字 | °C | 180000 | +| cloudRunning | `https://iobroker.net/` | `Privacy Notice` | 指标 | 布尔值 | | 60000 | +| cpuTemperature | `/sys/devices/virtual/thermal/thermal_zone0/temp` | `(.*)` | 温度 | 数字 | °C | 30000 | +| stockPrice.Visa | `https://www.finanzen.net/aktien/visa-aktie` | `\d{0,3},\d{2}(?=EUR<\/span>)` | 值 | 数量 | € | 86400000 | +|克莱南泽根 | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` |默认|字符串| | 600000 | +|克莱南泽根 | `https://www.ebay-kleinanzeigen.de/s-iobroker/k0` | `data-href="(.*?).">` |默认 |字符串| | 600000 | + +*注意:*将正则表达式应用于检索到的 URL/文件数据时,所有换行符都将被替换为空格,以允许多行搜索。 ## 关于正则表达式(RegExp) -正则表达式是从字符串中解析和提取某些数据的强大工具,更重要的是:它允许通过应用规则从给定字符串(例如从网页的 HTML 或文件中的文本)中提取某些值/文本。 +正则表达式是一种从字符串中解析和提取特定数据的强大工具,更重要的是:它允许通过应用规则从给定的字符串中提取特定的值/文本(例如从网页的 HTML 或文件中的文本)。 -对于布尔类型,正则表达式相当简单。对于数字类型,您应该用括号标记数字 - `()`。例如。要从*温度为 5°C* 中提取数字,您应该使用` (\d+)`表达式。 +对于布尔类型,正则表达式相当简单。对于数字类型,您应该用括号标记数字 - `()`。例如,要从 *温度为 5°C* 中提取数字,您应该使用 ` (\d+)` 表达式。 -有关正则表达式的更多信息: +有关 RegExp 的更多信息: - [MDN/Mozilla 文档](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp) -- [regex101:创建和测试正则表达式的在线工具](https://regex101.com/) +- [regex101:创建和测试正则表达式的在线工具](https://regex101.com/) -### 例子 -- `.at` 匹配任何以 `at` 结尾的三字符字符串,包括 `hat`、`cat` 和 `bat`。 +### 示例 +- `.at` 匹配任何以 `at` 结尾的三个字符的字符串,包括 `hat`、`cat` 和 `bat`。 - `[hc]at` 匹配 `hat` 和 `cat`。 -- `[^b]at` 匹配除 `bat` 之外的所有与 .at 匹配的字符串。 -- `[^hc]at` 匹配除 `hat` 和 `cat` 之外的所有与 .at 匹配的字符串。 -- `^[hc]at` 匹配 `hat` 和 `cat`,但仅在字符串或行的开头。 -- `[hc]at$` 匹配 `hat` 和 `cat`,但仅在字符串或行的末尾。 -- `\[.\]` 匹配由 `[` 和 `]` 包围的任何单个字符,因为括号被转义,例如:`[a]` 和 `[b]`。 +- `[^b]at` 匹配除 `bat` 之外的所有由 .at 匹配的字符串。 +- `[^hc]at` 匹配 .at 匹配的所有字符串,除了 `hat` 和 `cat`。 +- `^[hc]at` 匹配 `hat` 和 `cat`,但仅限于字符串或行的开头。 +- `[hc]at$` 匹配 `hat` 和 `cat`,但仅限于字符串或行的末尾。 +- `\[.\]` 匹配被 `[` 和 `]` 包围的任何单个字符,因为括号经过了转义,例如:`[a]` 和 `[b]`。 - `s.\*` 匹配 s 后跟零个或多个字符,例如:`s` 和 `saw` 和 `seed`。 - `[hc]+at` 匹配 `hat`、`cat`、`hhat`、`chat`、`hcat`、`cchchat` 等,但不匹配 `at`。 - `[hc]?at` 匹配 `hat`、`cat` 和 `at`。 -- `[hc]\*at` 匹配 `hat`、`cat`、`hhat`、`chat`、`hcat`、`cchchat`、`at` 等。 +- `[hc]\*at` 匹配 `hat`、`cat`、`hhat`、`chat`、`hcat`、`cchchat`、`at` 等等。 - `cat|dog` 匹配 `cat` 或 `dog`。 - `(\d+)` - 从字符串中获取数字 -- `now (\w+)` 稍后 - 获取 `now` 和 `later` 之间的单词 +- `now (\w+)` later - 获取 `now` 和 `later` 之间的单词 -### 其他有用的表达方式 +### 其他有用的表达式 - `(-?\d+)` 获取数字(负数和正数) -- `[+-]?([0-9]+.?[0-9]|.[0-9]+)` 获取带小数位的数字(以及 `.` 作为小数点分隔符) -- `[+-]?([0-9]+,?[0-9]|,[0-9]+)` 获取带小数位的数字(以及 `,` 作为小数点分隔符) +- `[+-]?([0-9]+.?[0-9]|.[0-9]+)` 得到一个带有小数位的数字(并以 `.` 作为小数分隔符) +- `[+-]?([0-9]+,?[0-9]|,[0-9]+)` 得到一个带有小数位的数字(并使用 `,` 作为小数分隔符) ## 通知示例 ### 电报 @@ -122,17 +122,17 @@ on("parser.0.kleinanzeigen", (obj) => { ``` ## 质量代码 -值可以有质量代码: +值可以具有质量代码: -- 0 - 好的 +- 0 - 好 - 0x82 - 无法读取 URL 或文件。 - 0x44 - 文本中未找到数字或字符串值 ## 触发 -此外,对于轮询间隔,可以通过向具有 §§SSSSS_2 的状态写入空值(`false`、`0`、'' - 取决于状态类型)来触发特定规则的解析§§ 确认标志。 +此外,在轮询间隔内,可以通过将空值(`false`、`0`、'' - 取决于状态类型)写入具有`false` 确认标志的状态来触发特定规则的解析。 在这种情况下,将从 URL/文件中读取该值并立即进行解析。 -您还可以使用 `sendTo` 命令向适配器发送消息: +您还可以使用`sendTo`命令向适配器发送消息: ```Javascript sendTo("parser.0", "trigger", "temperatureMunich" /* name of rule, or parser.0.temperatureMunich */, result => { @@ -141,14 +141,20 @@ sendTo("parser.0", "trigger", "temperatureMunich" /* name of rule, or parser.0.t ``` ## 支持 -1. 一般:[ioBroker论坛](https://forum.iobroker.net/)。德语用户:请参阅 [ioBroker 论坛主题 Parser-Adapter](https://forum.iobroker.net/topic/4494/adapter-parser-regex)。 -2. 如有任何问题,请查看[ioBroker Parser Adapter: GitHub Issues](https://github.com/ioBroker/ioBroker.parser/issues)。 +1. 一般:[ioBroker 论坛](https://forum.iobroker.net/)。德语用户:请参阅 [ioBroker 论坛主题 Parser-Adapter](https://forum.iobroker.net/topic/4494/adapter-parser-regex)。 +2. 如有任何问题,请查看 [ioBroker Parser Adapter:GitHub Issues](https://github.com/ioBroker/ioBroker.parser/issues)。 ## Changelog +### 2.2.2 (2024-07-14) +* (bluefox) GUI was migrated for admin v7 + +### 2.1.0 (2023-12-14) +* (mcm1957) Only node 16 and higher is supported + ### 2.0.7 (2023-10-25) * (TA2k) added the user agent to prevent timeout blocking * (bluefox) Added a configurable userAgent option @@ -247,7 +253,7 @@ sendTo("parser.0", "trigger", "temperatureMunich" /* name of rule, or parser.0.t ## License The MIT License (MIT) -Copyright (c) 2017-2023 bluefox +Copyright (c) 2017-2024 bluefox 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.ping/README.md b/docs/zh-cn/adapterref/iobroker.ping/README.md index a817827b4..b508870b9 100644 --- a/docs/zh-cn/adapterref/iobroker.ping/README.md +++ b/docs/zh-cn/adapterref/iobroker.ping/README.md @@ -3,24 +3,24 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.ping/README.md title: PING 适配器 -hash: MAGjUdHBudMUVg9QoTfLArDzpKf+ftdBhWu6hu3FqJA= +hash: Sxv9m2nXnXAw1YjMyPaVSDFJsJ+yklUu/k93fWbggTs= --- ![标识](../../../en/adapterref/iobroker.ping/admin/ping.png) ![安装数量](http://iobroker.live/badges/ping-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.ping.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.ping.svg) ![下载](https://img.shields.io/npm/dm/iobroker.ping.svg) # PING 适配器 ![测试与发布](https://github.com/ioBroker/ioBroker.ping/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/ping/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -## Ping 配置的 IP 地址。 -在定义的时间间隔内 Ping 指定的 IP 地址并监控结果。 +## 对配置的 IP 地址进行 Ping。 +在定义的时间间隔内对指定的 IP 地址执行 ping 操作并监控结果。 -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 -## 来自 javascript 适配器的 Ping -您可以使用以下命令从 javascript 适配器 ping 任何 IP 地址: +## 从 javascript 适配器进行 Ping +您可以使用命令从 JavaScript 适配器 ping 任何 IP 地址: ``` sendTo('ping.0', 'ping', '192.168.1.1', (res) => { @@ -28,18 +28,37 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { }); ``` -## 已知的问题 +## 已知问题 * 如果无法 ping 通您的 Linux 客户端,请检查客户端上是否正确安装了“iputils-ping”。 - +您可以授予适配器以 root 身份执行`ping` 命令的权限。 + +为此,您需要使用`sudo visudo` 命令将以下行添加到`/etc/sudoers` 文件:`iobroker ALL=(ALL) NOPASSWD: /bin/ping`。 + +或者您可以通过`sudo setcap cap_net_raw+ep /bin/ping`命令允许 ping 执行。 + +如果未找到`setcup`,则必须先使用`sudo apt-get install libcap2-bin`安装 setcap。 + + ## Changelog +### 1.7.0 (2024-08-17) +* (bluefox) Added possibility to browse the IP ranges + +### 1.6.4 (2024-07-17) +* (bluefox) Added possibility to execute `setcap` command to allow ping without root rights + +### 1.6.3 (2024-07-16) +* (bluefox) Updated the packages + ### 1.6.2 (2023-07-19) * (McM1957) Handling of state updates causing crashes with js-controller 5 has been corrected. (Issue #106) * (McM1957) Trailing spaces are now removed from ip address and name. Trailing spaces blocked correct operation. (Issue #98) -* (bluefox) Added json config +* (bluefox) Added JSON config * (bluefox) Added different intervals for online and offline devices * (bluefox) implemented export/import of devices @@ -54,7 +73,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (Apollon77) optimize for js-controller 3.3 ### 1.4.12 (2020-09-18) -* (Apollon77) Prevent a crash case when no devices are defined (Sentry IOBROKER-PING-R) +* (Apollon77) Prevented a crash case when no devices are defined (Sentry IOBROKER-PING-R) ### 1.4.11 (2020-08-26) * (Apollon77) update js-controller dependency to correct version (1.5.8) @@ -66,11 +85,11 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (Apollon77) finally try to catch spawn errors (Sentry IOBROKER-PING-2) ### 1.4.6 (2020-04-29) -* (Apollon77) Make sure adapter does not crash if ping command can not be executed (Sentry) +* (Apollon77) Make sure the adapter does not crash if ping command cannot be executed (Sentry) * (Apollon77) Catch error when `ping.probe` could not be started (Sentry IOBROKER-PING-2) ### 1.4.5 (2020-04-23) -* (Apollon77) Fixed potential crash case (Sentry) +* (Apollon77) Fixed a potential crash case (Sentry) ### 1.4.4 (2020-04-17) * (bluefox) Added support for Admin3 @@ -83,7 +102,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (JayVee2) Sort the IP addresses ### 1.4.1 (2019-01-08) -* (simatec) support compact mode +* (simatec) supported compact mode ### 1.4.0 (2018-01-25) * (vdemidov) refactored, added ping time and roundtrips per second for every host @@ -92,7 +111,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (ldittmar) object values are converted to the valid type ### 1.3.0 (2017-02-21) -* (bluefox) allow to remove host name from state's name +* (bluefox) allowed removing host name from state's name ### 1.2.0 (2016-12-09) * (bluefox) change configuration dialog @@ -111,7 +130,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { * (bluefox) add tests ### 0.1.3 (2015-01-26) -* (bluefox) Fixed the error if configuration changed +* (bluefox) Fixed the error if the configuration changed ### 0.1.2 (2015-01-14) * (bluefox) Fixed the configuration page @@ -138,7 +157,7 @@ sendTo('ping.0', 'ping', '192.168.1.1', (res) => { The MIT License (MIT) -Copyright (c) 2014-2023, bluefox +Copyright (c) 2014-2024, bluefox 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.pollenflug/README.md b/docs/zh-cn/adapterref/iobroker.pollenflug/README.md index 2d8184ed0..2f480b37b 100644 --- a/docs/zh-cn/adapterref/iobroker.pollenflug/README.md +++ b/docs/zh-cn/adapterref/iobroker.pollenflug/README.md @@ -3,97 +3,96 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.pollenflug/README.md title: 花粉风险指数 -hash: RjP/kMcMjP8AFiLqq64h2tjH2yUsQbolm3pTtgV7UQs= +hash: azUqlE8U4xUni87ATfGl3Us9WLxbI1W/4imlG05+XLM= --- -![商标](../../../en/adapterref/iobroker.pollenflug/admin/pollenflug.png) +![标识](../../../en/adapterref/iobroker.pollenflug/admin/pollenflug.png) -![Travis CI构建状态](https://travis-ci.org/schmupu/ioBroker.pollenflug.svg?branch=master) -![AppVeyor构建状态](https://ci.appveyor.com/api/projects/status/github/schmupu/ioBroker.pollenflug?branch=master&svg=true) +![Travis CI 构建状态](https://travis-ci.org/schmupu/ioBroker.pollenflug.svg?branch=master) +![AppVeyor 构建状态](https://ci.appveyor.com/api/projects/status/github/schmupu/ioBroker.pollenflug?branch=master&svg=true) ![安装数量](http://iobroker.live/badges/pollenflug-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.pollenflug.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.pollenflug.svg) ![下载](https://img.shields.io/npm/dm/iobroker.pollenflug.svg) -![NPM](https://nodei.co/npm/iobroker.pollenflug.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.pollenflug.png?downloads=true) -#花粉风险指数 -![DWDLogo](../../../en/adapterref/iobroker.pollenflug/docs/dwdlogo.png) +# 花粉风险指数 +![DWD徽标](../../../en/adapterref/iobroker.pollenflug/docs/dwdlogo.png) -德国气象局DWD准备每日预测花粉风险指数。 -花粉种类预测:今天和明天的榛子,桤木,灰烬,桦树,草,黑麦,艾蒿和野蛮,周五也是后天(周日)。 +德国气象局 DWD 每天发布花粉风险指数预报。 +预测的花粉种类为:榛树、桤木、白蜡树、桦树、草、黑麦、艾蒿和甘菊,今天和明天,周五和后天(周日)的预测花粉种类为:榛树、桤木、白蜡树、桦树、草、黑麦、艾蒿和甘菊。 每天早上更新。 -有关花粉县的信息,请访问:https://www.dwd.de/pollenflug使用的花粉数据版权所有:©Deutscher Wetterdienst(Quelle:Deutscher Wetterdienst) - -##安装和配置 -需要node.js 8.0或更高版本以及Admin v3!在ioBroker适配器配置中选择县。您将获得该县的花粉风险指数。该指数将在每天11点左右更新一次。 -在对象info.today,info.tomorrow和info.dayaftertomorrow中,将显示有效期。 -例如,今天可能是星期五,但在对象信息中,今天是星期四。 -这是正确的,因为DWD数据仍然是星期四,直到现在才更新。更新将在11点正常。 - -提供德国郡: - -*石勒苏益格 - 荷尔斯泰因和汉堡(11区和12区) -    * Inseln und Marschen(地区11) -    * Geest,石勒苏益格 - 荷尔斯泰因和汉堡(12区) -*梅克伦堡 - 前波莫瑞州(20区) -* Niedersachsen und Bremen(31区和32区) -    * Westl。下萨克森/不来梅(31区) -    *Östl。下萨克森(地区32) -* Nordrhein-Westfalen(第41,42和43区) -    * Rhein.-Westfäl。蒂芬兰(地区41) -    * Ostwestfalen(地区42) -    * Mittelgebirge NRW(地区43) -*勃兰登堡和柏林(地区50) -*萨克森 - 安哈尔特(61区和62区) -    * Tiefland Sachsen-Anhalt(地区61) -    *哈茨(地区62) -*图林根(71区和72区) -    *TieflandThüringen(71区) -    *MittelgebirgeThüringen(地区72) -*萨克森(第81和82区) -    * Tiefland Sachsen(地区81) -    * Mittelgebirge Sachsen(地区82) -*黑森州(地区91和92) -    * Nordhessen和hess。 Mittelgebirge(地区91) -    * Rhein-Main(地区92) -* Rheinland-Pfalz und Saarland(101,102和103区) -    * Rhein,Pfalz,Nahe und Mosel(地区101) -    * Mittelgebirgsbereich Rheinland-Pfalz(地区102) -    *萨尔(地区103) -* Baden-Württemberg(111,112和113区) -    * Oberrhein und unteres Neckartal(地区111) -    * Hohenlohe / mittlerer Neckar / Oberschwaben(地区112) -    * Mittelgebirge Baden-Württemberg(113区) -*拜仁(区域121,122,123和124) -    *Allgäu/ Oberbayern / Bay。 Wald(地区121) -    * Donauniederungen(地区122) -    *拜仁诺德尔。 der Donau,o。 Bayr。沃尔德,o。 Mainfranken(地区123) -    * Mainfranken(地区124) +有关花粉县的信息可在以下网址找到:https://www.dwd.de/pollenflug 所用花粉数据的版权:© Deutscher Wetterdienst(来源:Deutscher Wetterdienst) + +## 安装和配置 +在 ioBroker 适配器配置中选择县。您将获得该县的花粉风险指数。该指数每天更新一次,大约在 11 点。 +在对象 info.today、info.tomorrow 和 info.dayaftertomorrow 中将显示有效期。 +例如,今天是星期五,但在对象 info.today 中,日期可能是星期四。 +这是正确的,因为 DWD 数据仍来自星期四,至今未更新。更新通常在 11 点进行。 + +提供的德国县: + +* 石勒苏益格-荷尔斯泰因州和汉堡(11 区和 12 区) + * Inseln und Marschen(11区) + * 吉斯特、石勒苏益格-荷尔斯泰因州和汉堡(12 区) +* 梅克伦堡-前波莫瑞州 (20 区) +* 下萨克森州和不莱梅州(31 和 32 区) + *韦斯特。下萨克森州/不莱梅(31 区) + * 奥斯特。下萨克森州(32 区) +* 北莱茵-威斯特法伦州(41、42 和 43 区) + * 莱茵-威斯特法尔。蒂夫兰(41 区) + * 东威斯特法伦州(42 区) + * 北威州中山 (43 区) +* 勃兰登堡和柏林(第 50 区) +* 萨克森-安哈特州(61 和 62 区) + * 蒂夫兰萨克森-安哈尔特州(第 61 区) +* 哈茨山 (62 区) +* 图林根(71 和 72 区) + * 蒂夫兰图林根(71 区) + * 图林根中山 (72 区) +* 萨克森 (81 和 82 区) + * 蒂夫兰萨克森州(81 区) + * 萨克森州中山 (82 区) +* 黑森州 (91 和 92 区) + * 北德森和赫斯。中山 (91 区) +* 莱茵-美因 (92 区) +* 莱茵兰-普法尔茨州和萨尔州(101、102 和 103 区) + * 莱茵河、普法尔茨河、纳赫河和摩泽尔河(101 区) + * Mittelgebirgsbereich 莱茵兰-普法尔茨州(102 区) +* 萨尔州 (103 区) +* 巴登-符腾堡州(111、112 和 113 区) + * Oberrhein und unteres Neckartal(111区) + * 霍恩洛厄/米特勒内卡/上施瓦本(112 区) + * 巴登-符腾堡州中山 (113 区) +* 拜仁 (121、122、123 和 124 区) + * 阿尔高/上巴伐利亚/拜恩。瓦尔德(121区) + * Donauniederungen(122 区) + * 拜仁北部。多瑙河拜尔。沃尔德,O.美因弗兰肯(123 区) + * 美因弗兰肯(124 区) ![ioBroker1](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug1.png) -原始DWD风险指数0,0-1,1,1-2,2,3-3和3变为0,1,2,3,4,5和6。 -这种格式可以更简单地用于ioBroker。 +原有DWD风险指数0、0-1、1、1-2、2、2-3、3改为0、1、2、3、4、5、6,此格式在ioBroker中可以更简便的使用。 -|指数| DWD指数|描述| +| 索引 | DWD 索引 | 描述 | |----- |---------- |------------------------------------ | -| -1 | -1 |没有数据| -| 0 | 0 |没有花粉浓度| -| 1 | 0-1 |无花粉浓度低| -| 2 | 1 |低花粉浓度| -| 3 | 1-2 |低至中等花粉浓度| -| 4 | 2 |平均花粉浓度| -| 5 | 2-3 |中高花粉浓度| -| 6 | 3 |高花粉浓度| +| -1 | -1 | 没有可用数据 | +| 0 | 0 | 无花粉浓度 | +| 1 | 0-1 | 无至低花粉浓度 | +| 2 | 1 | 花粉浓度低 | +| 3 | 1-2 | 低到中等花粉浓度 | +| 4 | 2 | 平均花粉浓度 | +| 5 | 2-3 | 中至高花粉浓度 | +| 6 | 3 | 花粉浓度高 | **花粉飞行示例:**![ioBroker2](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug2.png) ![ioBroker3](../../../en/adapterref/iobroker.pollenflug/docs/iobroker-pollenflug3.png) -来自DWD的花粉图像的URL地址 +DWD 花粉图像的 URL 地址 ![ioBroker4](https://www.dwd.de/DWD/warnungen/medizin/pollen/pollen_1_0.png) -##示例 -如果来自DWD的新数据到达(今天的日期将改变),该脚本将显示Hasel和Erle的花粉风险指数。 +## 例子 +如果有来自 DWD 的新数据(今天的日期将会改变),脚本将显示 Hasel 和 Erle 的花粉风险指数。 ``` on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { @@ -104,7 +103,30 @@ on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { }); ``` +## 致谢 +如果没有 schmupu (https://github.com/schmupu) 的出色工作,这个适配器就不可能实现,他创建了该适配器的 V1.x.x。 + ## Changelog + +### 2.0.0 (2024-07-24) +* (mcm1957) This adapter hase been moved to iobroker-community-adapters organization +* (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now. +* (mcm1957) Dependencies have been updated + +### 1.0.6 (03.05.2019) +* (Stübi) User can enable/disable sentry logging + +### 1.0.5 (29.04.2019) +* (Stübi) Add Sentry to adapter + +### 1.0.4 (19.10.2019) +* (Stübi) Bugfixing + +### 1.0.3 (12.04.2019) +* (Stübi) Bugfixing, changing logo size ### 1.0.2 (12.03.2019) * (Stübi) Bugfixing, of changing sepaation of entries in riskindex_x from ',' to ', ' @@ -132,7 +154,8 @@ on({id: "pollenflug.0.info.today"/*Today*/, change: "ne"}, (obj) => { ## License The MIT License (MIT) -Copyright (c) 2019 Thorsten Stueben / +Copyright (c) 2024 iobroker-community +Copyright (c) 2020 Thorsten Stueben / 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.roborock/README.md b/docs/zh-cn/adapterref/iobroker.roborock/README.md index 507054e31..9068406ab 100644 --- a/docs/zh-cn/adapterref/iobroker.roborock/README.md +++ b/docs/zh-cn/adapterref/iobroker.roborock/README.md @@ -3,52 +3,53 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.roborock/README.md title: ioBroker.roborock -hash: ZbXfzwhuQCvaMwzAEM00uIjetXhhWHpf5hSd6wz3ids= +hash: O7JKqAp+ZBiAMaW5WhpC3/jObo5ljSu2qxwqZsUSxy0= --- ![标识](../../../en/adapterref/iobroker.roborock/admin/roborock.png) -![NPM版本](https://img.shields.io/npm/v/iobroker.roborock.svg) +![NPM 版本](https://img.shields.io/npm/v/iobroker.roborock.svg) ![下载](https://img.shields.io/npm/dm/iobroker.roborock.svg) ![安装数量](https://iobroker.live/badges/roborock-installed.svg) ![稳定存储库中的当前版本](https://iobroker.live/badges/roborock-stable.svg) -![国家公共管理](https://nodei.co/npm/iobroker.roborock.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.roborock.png?downloads=true) # IoBroker.roborock -**测试:** ![测试与发布](https://github.com/copystring/ioBroker.roborock/workflows/Test%20and%20Release/badge.svg) +**测试:**![测试与发布](https://github.com/copystring/ioBroker.roborock/workflows/Test%20and%20Release/badge.svg) -**翻译:** [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/roborock/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +**翻译:**[![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/roborock/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -## IoBroker 的 Roborock 适配器 -该适配器允许您控制、获取状态、清洁历史记录并查看在 Roborock 应用程序中设置的 Roborock 真空吸尘器的地图。 +## Roborock ioBroker 适配器 +该适配器允许您控制、获取状态、清洁历史记录并查看在 Roborock 应用程序中设置的 Roborock 吸尘器的地图。 -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 ## 支持的机器人有: -- 石头扫地机器人S4 -- 石头扫地机器人S4 Max -- 石头扫地机器人S5 Max -- 石头扫地机器人S6 -- 石头扫地机器人S6 Pure -- 石头扫地机器人S6 MaxV -- 石头扫地机器人S7 -- 石头扫地机器人S7 MaxV(超) -- 石头扫地机器人Q7 -- 石头扫地机器人Q7 Max -- 石头扫地机器人S7 Pro Ultra -- 石头扫地机器人S7 Max Ultra -- 石头扫地机器人S8 -- 石头扫地机器人S8 Pro Ultra -- 石头扫地机器人Q Revo -- 石头扫地机器人Q8 Max -- 石头扫地机器人Q5 Pro +-石头扫地机器人 S4 +Roborock S4 Max +Roborock S5 Max +-石头扫地机器人 S6 +Roborock S6 Pure +-Roborock S6 MaxV +-Roborock S7 +- Roborock S7 MaxV(Ultra) +-Roborock Q7 +-Roborock Q7 Max +Roborock S7 Pro Ultra +-Roborock S7 Max Ultra +-Roborock S8 +-Roborock S8 Pro Ultra +Roborock Q Revo +-Roborock Q8 Max +Roborock Q5 Pro +Roborock Q Revo Pro ## 区域清洁 -仅当在适配器选项中启用地图创建时,此功能才有效! +此功能仅在适配器选项中启用地图创建时有效! -### 地图创建不适用于树莓派 - - 有一个网络服务器正在运行。默认端口为 6824 - - 在浏览器中打开http://iobroker:6824/map.html(将http://iobroker更改为您的ioBroker主机名或ip!!!) - - 画出用于清洁的正方形。 Roborock 同时支持最多 4 个清洁区域。 +### 地图创建在树莓派上不起作用 +- 有一个网络服务器正在运行。默认端口为 6824 +- 在浏览器中打开 http://iobroker:6824/map.html(将 http://iobroker 更改为您的 ioBroker 主机名或 ip!!!) +- 绘制要清洁的方块。Roborock 一次最多支持 4 个清洁区域。 ![](https://github.com/copystring/ioBroker.roborock/blob/main/images/Rockrock_zone_cleaning.gif) @@ -57,6 +58,43 @@ hash: ZbXfzwhuQCvaMwzAEM00uIjetXhhWHpf5hSd6wz3ids= Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 0.6.6 (2024-07-14) +* (copystring) require min node 20 to operate correctly with current dependencies + +### 0.6.5 (2024-07-13) +* (copystring) Add and fix some parameters and attributes +* (copystring) Fix getMap() in getParameter() +* (copystring) Add connection state to timeouts +* (copystring) Detect and report unsupported attributes +* (copystring) Improve camera and voice support detection +* (copystring) Wait for TCP client to connect on start of adapter +* (copystring) Add handling of TCP chunks. This will fix a lot of timeouts 🎉 +* (copystring) Manage stop/stop in the webinterface via state of robot instead of guessing via clicking the buttons in the webinterface +* (copystring) Refactor and improve javascript code of web interface +* (copystring) Add Roborock Q Revo Pro +* (copystring) Update dependencies + +### 0.6.4 (2024-04-21) +* (copystring) Fix io-package.json and update packages + +### 0.6.3 (2024-04-21) +* (copystring) Add consumables to Qrevo MaxV +* (copystring) Fix S5 Max clean records defintion +* (copystring) Fix app_start via web interface +* (copystring) Improve local devices discovery + +### 0.6.2 (2024-04-05) +* (copystring) Fix start of go2rtc + +### 0.6.1 (2024-04-02) +* (copystring) Fix lint + +### 0.6.0 (2024-04-02) +* (copystring) New and improved message queue handler +* (copystring) Convert robot features to new much more modular system +* (copystring) Add support for large photos of obstacles +* (copystring) Many bug fixes I can't remember :D + ### 0.5.4 (2024-02-01) * (copystring) Fix mqtt disconnect/reconnect bug on start of adapter diff --git a/docs/zh-cn/adapterref/iobroker.rpi2/README.md b/docs/zh-cn/adapterref/iobroker.rpi2/README.md index da4cd05f9..50e1265db 100644 --- a/docs/zh-cn/adapterref/iobroker.rpi2/README.md +++ b/docs/zh-cn/adapterref/iobroker.rpi2/README.md @@ -2,8 +2,8 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.rpi2/README.md -title: 无题 -hash: G9+pPja5y/AjJQaB9C9Q6N56ohBNs3VK6oK3cmSPVsM= +title: 无标题 +hash: eqFbMVAtc2KJ4WQOBCX2RsFccxIp6aRsiZMzepwkGJw= --- ![标识](../../../en/adapterref/iobroker.rpi2/admin/rpi2.png) ioBroker RPI 监控适配器 @@ -22,6 +22,8 @@ hash: G9+pPja5y/AjJQaB9C9Q6N56ohBNs3VK6oK3cmSPVsM= **ioBroker 需要特殊权限来控制 GPIO。**在大多数 Linux 发行版中,可以通过将 ioBroker 用户添加到 `gpio` 组(推荐)或在 `root`(不太安全)下运行 ioBroker 来实现。 +为了使 gpio 正常工作,您需要在安装适配器之前安装 libgpiod,如下所示:`sudo apt-get install -y libgpiod-dev` + ## 安装 安装后,您必须通过管理页面配置所有必需的模块。 @@ -32,8 +34,11 @@ iobroker.rpi 启动后,所有选定的模块都会在 ioBroker 中的 rpi. -- +#### 属性 rss_template +模板决定了 RSS 源的外观。模板中可以使用所有有效的 HTML 标签(包括 style 标签中的 CSS 属性)。 +此外,还有一些特殊标签,其中显示源数据并可执行 JavaScript 指令。为了更好地识别数据和使用的属性名称,有两个小部件,rssfeed Meta 助手和 rssfeed Article 助手。 -```html -<%= meta.title %> <% articles.forEach(function(item){ %> -

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

-

<%- item.title %>

-

<%- item.description %>

-
-<% }); %> -``` +**变量的可用性:** -模板系统与某些标签配合使用。 -使用的标签含义如下 +- rss.meta:feed 的元信息 +- rss.articles:所有文章的数组 +- widgetid: 小部件的 widgetID +- style:如果你配置了附加样式信息,则为样式对象 -| `tag` | 描述 | -| ----- | ------------------------------------------------------------------- | -| <%= | 包含的表达式/变量的内容将被转义。| -| <%- | 所包含的表达式/变量的内容未转义。| -| <% | 无输出,用于封闭的 javascript 指令 | -| %> | 通常是一个结束标签,用于完成前面的一个标签 | +有关这些变量的更多详细信息,请参阅章节**可用变量** -这些标签之外的所有内容都会按原样显示,或者将其解释为 HTML。(例如,参见模板中的 p 标签、div 标签、small 标签,您有 2 个预定义变量可用 +有关模板系统的详细信息,请参阅基于示例的模板章节 + +#### 属性 rss_maxarticles +RSS 源中显示的最大单个文章数 + +#### 属性 rss_filter +对于过滤功能,可以在字段中输入一个或多个过滤条件,以分号 (;) 分隔。 +搜索时会搜索以下文章属性:标题、描述、类别。 +仅显示包含其中一个术语的文章。 + +### RSS Feed 多窗口小部件 3 +使用此小部件,可以将多个提要聚合到一个提要中。 +由于有多个提要,与普通的 RSS 提要小部件相比,模板中的数据可用性存在一些差异。 +模板中没有元变量。但是,每个单独的文章中都有 3 个元属性标题和说明,名称为 meta_title 和 meta_description。 +此外,可以在设置中为每个提要分配一个通用名称,该名称在模板中以 meta_name 的名称提供,以便可以识别文章的来源。 +否则,模板适用与 RSS 提要小部件相同的规则。 + +#### 属性 rss_feedCount - 常规组 +您可以在此处设置要配置的 feed 数量。在 vis 中为每个 feed 创建单独的配置组。 + +#### 属性 rss_template +模板决定了 RSS 源的外观。模板中可以使用所有有效的 HTML 标签(包括 style 标签中的 CSS 属性)。 +此外,还有一些特殊标签,其中显示源数据并可执行 JavaScript 指令。为了更好地识别数据和使用的属性名称,有两个小部件,rssfeed Meta 助手和 rssfeed Article 助手。 + +有关模板系统的详细信息,请参阅基于示例的模板章节 + +**变量的可用性:** + +- rss.articles:所有文章的数组。 + +- 文章中提供了项目元信息的子集,形式为 **meta_name**、**meta_title** 和 **meta_description** + +- dp[] 作为数组,如果你配置额外的数据点 +- widgetid: 小部件的 widgetID +- style:如果你配置了附加样式信息,则为样式对象 + +有关这些变量的更多详细信息,请参阅可用变量一章 + +#### 属性 rss_dpCount - 一般组 +您可以在此处指定模板中应提供的附加数据点的数量。 + +#### 属性 rss_dp[number] - 一般组 +您可以在此处选择相应的数据点。数据点在模板中的变量 dp 下可用。这意味着可以在模板中按如下方式检索数据点 + +有关这些变量的详细信息,请参阅可用变量一章 + +#### 属性 rss_oid - 组 feeds[number] +选择具有相应 RSS 提要的数据点。 + +#### 属性 rss_name - 组 feeds[number] +您可以在此处输入一个名称,该名称将在模板中为属性名称 meta_name 下的每个文章提供。 + +#### 属性 rss_maxarticles - 组 feeds[number] +RSS 源中显示的最大单个文章数 + +#### 属性 rss_filter - 组 feeds[number] +对于过滤功能,可以在字段中输入一个或多个过滤条件,以分号 (;) 分隔。 +搜索时会搜索以下文章属性:标题、描述、类别。 +仅显示包含其中一个术语的文章。 + +### RSS 源元助手 +此小部件可用于显示特定提要的元属性。它只是用作帮助小部件,用于创建模板以快速轻松地显示 RSS 提要数据的内容。 +属性 + +#### 属性 rss_oid +选择具有相应 RSS 提要的数据点。 + +### RSS Feed 文章助手 +此小部件可用于显示特定提要的文章属性。它只是用作帮助小部件,用于创建模板以快速轻松地显示 RSS 提要数据的内容。 + +#### 属性 rss_oid +选择具有相应 RSS 提要的数据点。 + +#### 属性 rss_prefix +为了更容易通过复制/粘贴使用属性名称,可以在此处指定文章模板中使用的变量名称。 + +#### 属性 rss_article +此属性可用于在 RSS 提要中的现有各篇文章之间切换。 + +### RSS 源标题框 3 +使用此小部件,所有标题属性都将显示为滚动文本。作为从 Marquee 小部件 2 到 3 的更改的一部分,此小部件现在是一个多小部件,您可以在其中聚合多个 RSS 源。 + +#### 属性 rss_feedCount - 常规组 +您可以在此处设置要配置的 feed 数量。在 vis 中为每个要配置的 feed 创建一个单独的组。 + +#### 属性 rss_speed - 一般组 +滚动文本的滚动速度 属性 rss_divider - 常规组 您可以在此处输入用于分隔标题的字符。默认值为+++。 + +#### 属性 rss_pauseonhover - 一般组 +如果打开此选项,则只要将鼠标悬停在文本上,滚动文本就会停止。 + +#### 属性 rss_link - 常规组 +如果启用此选项,标题将显示为链接。如果您点击或触摸标题,文章链接将在新窗口或选项卡中打开。 + +#### 属性 rss_withtime - 常规组 +如果打开此选项,则会在相应的标题之前显示时间。属性 rss_withdate - 常规组如果启用此选项,则会在相应的标题之前显示不带年份的日期和时间。 + +#### 属性 rss_withyear - 一般组 +如果启用此选项,则会在相应的标题前显示日期、年份和时间。 + +#### 属性 rss_oid - Feeds[number] 组 +选择具有相应 RSS 提要的数据点。 + +#### 属性 rss_maxarticles - Feeds[number] 组 +RSS 源中显示的最大单个文章数 + +#### 属性 rss_filter - Feeds[number] 组 +对于过滤功能,可以在字段中输入一个或多个过滤条件,以分号 (;) 分隔。 +搜索时会搜索以下文章属性:标题、描述、类别。 +仅显示包含其中一个术语的文章。 + +### JSON 模板2 +使用此小部件,可以根据需要显示任何具有 JSON 数据的数据点。 +显示使用模板格式完成,可以将其视为 HTML 代码 + JavaScript + 控制 JSON 属性显示的特殊标签的组合形式。 + +#### 属性 json_oid +选择具有相应 JSON 数据的数据点。 + +#### 属性 rss_template +模板可用于确定 JSON 数据的外观。模板中可使用所有有效的 HTML 标签(包括 style 标签中的 CSS 属性)。 +还有特殊标签,可在其中显示 JSON 数据并执行 JavaScript 指令。 + +有关模板系统的详细信息,请参阅基于示例的模板章节 + +JSON 数据以前缀 data 的形式传递给模板。此外,当前 widgetID 也可用作变量,以便在单独的 CSS 指令中指定。 + +**示例对象** + +{ “onearray”:[ “一”, “二” ],“oneobject”:{ “attribute1”:1,“attribute2”:2 },“onenumber”:123,“onetext”:“onetwothree” } + +对于上面的例子,属性可以输出如下 + +<%- 数据.onenumber %><%- 数据.onetext %> + +**结果** + +123 一二三 + +数组可以通过索引访问。索引始终从 0 开始。但是,也存在伪数组,其中索引不从 0 开始,甚至由文本组成。这里适用对象的规则。在上面的例子中,这将是 + +<%- 数据.onearray[0] %><%- 数据.onearray[1] %> + +**结果** + +一二 + +如果你尝试直接输出没有索引的数组,模板将输出以逗号分隔的所有元素 + +<%- 数据.onearray %> + +**结果** + +一、二 -###`meta` -这包含有关 feed 的所有元信息。以下内容可用。我认为标识符是不言自明的。在帮助中,我将更详细地描述它们。或指定内容(有些是数组) +数组也可以由对象集合组成。此处的示例仅包含一个简单的数组。稍后将给出带有对象的数组的示例。 + +<% for (var i = 0; i < data.onearray.length ; i++ ) { %><%- data.onearray[i] %><% } %> + +**结果** + +一二 + +**对象** 可以再次包含单个属性、数组或对象。这意味着 JSON 数据可以嵌套到任意深度。 + +对象的属性可以使用点符号或括号符号来表示。只有当属性符合某些命名约定(第一个字符必须是字母,其余为数字或字母或下划线)时,点符号才有效。 +括号符号也适用于不符合命名约定的属性。 + +**点符号** + +<%- 数据.oneobject.attribute1 %> + +**括号表示法** + +<%- 数据.oneobject["属性1"] %> + +**两个示例的结果** + +1 + +循环遍历对象的属性 + +<% for (var prop in data.oneobject) { %><%- "data.oneobject." + prop + " = " + data.oneobject[prop] %><% } %> + +**结果** + +数据.一个对象.属性1 = 1 数据.一个对象.属性2 = 2 + +**高级用例** + +上面的示例中仅涵盖了纯输出。现在还可以使用 HTML 标签丰富模板,以实现特定布局。以下是示例: + +

输出

<% for (var prop in data.oneobject) { %>
<%- "数据.oneobject。" + prop + " = " %> <%- 数据.oneobject[prop] %>
<% } %> + +**结果** + +数据.一个对象.属性1 = 1 数据.一个对象.属性2 = 2 + +(在 Markdown 中颜色不可见) + +## 模板中可用的变量 +###`rss.meta` +这包含有关 feed 的所有元信息。以下内容可用。我认为标识符是不言自明的。在帮助中,我将更详细地描述它们。或指定内容(一些是数组)只有在 Rss Feed 小部件 2 中,才有完整的元信息集 + +模板中的使用见**基于示例的模板** -`meta.title` -`meta.description` - `meta.link` -`meta.xmlurl` -`meta.date` -- `meta.pubdate` +-`meta.pubdate` -`meta.author` -`meta.language` -`meta.image` - `meta.favicon` - `meta.copyright` -`meta.generator` --`meta.categories` +- `meta.categories` -#### `articles` +#### `rss.articles or articles` 是一个包含单个元素的数组(javascript 数组)。每个元素都具有以下属性。 例如,为了适合,我将在其前面添加前缀 item。但是如果您愿意,您可以自己选择。只需在循环(forEach)中相应地命名即可。在这里,标识符也是不言自明的。并非所有属性都在每个 feed 中都填写。最重要的属性已包含在上面的模板中。 +文章可在 RSS feed widget 2 中以 rss.articles 形式获取,也可在 RSS feed multi widget 3 中以 articles 形式获取 + +模板中的使用见**基于示例的模板** + - `项目.title` -`项目.描述` -`项目.摘要` @@ -129,6 +325,185 @@ vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview - `item.source` -`item.enclosures` +## 基于示例的模板 +### 基本模板 RSS-Feed 小部件 2 +以下模板目前在 RSS feed 小部件 2 中用作标准。 +已使用以下 feed 进行了测试 + +- 或 +- + +``` + + +

<%- rss.meta.title %>

+<% rss.articles.forEach(function(item){ %> +
+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+
+<% }); %> +``` + +### 基本模板 RSS-Feed 多窗口小部件 3 +以下模板目前在 RSS feed 多窗口小部件 3 中用作标准。 +请注意变量使用中的细微差别 它已使用以下提要进行了测试 + +``` + + +<% rss.articles.forEach(function(item){ %> +

<%- item.meta_name || item.meta_title || '' %>

+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+<% }); %> +``` + +### RSS-Feed 多窗口小部件 3 的示例模板,其中文章以幻灯片形式显示,并带有上一个/下一个按钮 +``` + + + + +
+
+ <% rss.articles.forEach(function(item){ %> +
+

<%- vis.formatDate(item.pubdate, "TT.MM.JJJJ SS:mm") %>

+

<%- item.title %>

+

<%- item.description %>

+
+
+ <% }); %> +
+
+ + +
+
+ + +``` + +模板系统与某些标签配合使用。 +使用的标签含义如下 + +| `tag` | 描述 | +| ----- | ------------------------------------------------------------------- | +| <%= | 包含的表达式/变量的内容将被转义。| +| <%- | 所包含的表达式/变量的内容未转义。| +| <% | 无输出,用于封闭的 javascript 指令 | +| %> | 通常是一个结束标签,用于完成前面的一个标签 | + +这些标签之外的所有内容都会按原样显示,或者将其解释为 HTML。(例如,参见模板中的 p 标签、div 标签、small 标签,您有 2 个预定义变量可用 + ## 模板示例及详细说明 ```html <%= meta.title %> <% articles.forEach(function(item){ %> @@ -145,13 +520,13 @@ Z4:输出文章标题。Header 3 - 标签用于格式化。 Z5:输出文章内容。它用 p 标签括起来。这里,至少在两个示例中,包含 HTML 代码,通常带有图像和描述性文本 Z6:输出一个 div 标签,用于清除 feed-html 中的特殊格式(在 tagesschau 和 bild 的两个示例中都需要它。其他 feed 可能不需要它。 Z7:无输出。此行关闭了 javascript 循环。在 Z2 和 Z7 之间定义的所有内容都会针对每一篇文章重复。 -## 去做 +待办事项 - 通过在管理对话框中保存来清理数据点 info.lastRequest 中未使用的条目。 - 管理对话框中的清理未使用的数据点按钮 - ~~多部件 RSS 源~~ - ~~多部件选框~~ -- ~~更多数据点已在模板中被使用。~~ -- ~~带有标题的报纸小部件 ~~ +- ~~Weitere Datenpunkte im Template verfügbar machen.~~ +- ~~标题的Laufschrift小部件~~ ## Changelog @@ -159,10 +534,45 @@ Z7:无输出。此行关闭了 javascript 循环。在 Z2 和 Z7 之间定义 Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 3.1.0 (2024-08-11) + +- adjust dependency to js-controller in a minor release + +### 3.0.2 (2024-08-09) + +- add keyword in package.json + +### 3.0.1 (2024-08-09) + +- add template example for articles as a Diashow +- adjust dependency to js-controller + +### 3.0.0 (2024-07-24) + +- update multifeed widget 3 and deprecate multifeed widget 2 +- breaking change: in rssfeed widget 2: articles and meta have to be changed to rss.articles and rss.meta + +### 2.10.0 (2024-07-11) + +- fine tuning on templates and available variables +- fine tuning on format and translation +- move widget documentation form doc.html to readme + +### 2.9.10 (2024-07-11) + +- update images for dark and light theme + +### 2.9.9 (2024-07-11) + +- update packages +- update formating and improve error logging +- remove detailed sentry status reporting +- fix subscribing states -### **WORK IN PROGRESS** +### 2.9.8 (2024-07-09) - ignore widgets in vis-2 +- add restart vis/vis2 ### 2.9.7 (2024-06-22) diff --git a/docs/zh-cn/adapterref/iobroker.s7/README.md b/docs/zh-cn/adapterref/iobroker.s7/README.md index 6579fad11..e3a28b72b 100644 --- a/docs/zh-cn/adapterref/iobroker.s7/README.md +++ b/docs/zh-cn/adapterref/iobroker.s7/README.md @@ -2,101 +2,99 @@ BADGE-Number of Installations: http://iobroker.live/badges/s7-stable.svg BADGE-NPM version: http://img.shields.io/npm/v/iobroker.s7.svg BADGE-Downloads: https://img.shields.io/npm/dm/iobroker.s7.svg -BADGE-Tests: https://travis-ci.org/ioBroker/ioBroker.s7.svg?branch=master -BADGE-NPM: https://nodei.co/npm/iobroker.s7.png?downloads=true translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.s7/README.md title: ioBroker.S7 -hash: nAuRGgna8b2Yl/7OOGbig0EnQ2VauC1p6p25yWF+jwg= +hash: 5jId14HKNWFtK+5CK7Zp+N/ToagYuN9T5OE2uDYkrxE= --- # IoBroker.S7 -## 详细说明 -ioBroker 附带的 S7 适配器基于 Snap7\。 Snap7 将在第一次安装适配器时安装,并处理 S7 PLC 和 ioBroker 之间的 TCP/IP 通信。因此,S7 必须配备以太网接口(集成或外部 CP),以便通过 TCP/IP 与运行 ioBroker 的硬件进行通信。作为先决条件,用户必须了解 TCP/IP 通信的基础知识,并且他/她必须能够使用 Step7 软件配置 S7 PLC。但这对于考虑将 S7 链接到 ioBroker 的人来说应该不是一个挑战。 +## 详细描述 +ioBroker 附带的 S7 适配器基于 Snap7\。Snap7 将在适配器首次安装时安装,并处理 S7 PLC 和 ioBroker 之间的 TCP/IP 通信。因此,S7 必须配备以太网接口(集成或外部 CP),以便通过 TCP/IP 与运行 ioBroker 的硬件进行通信。作为先决条件,用户必须了解 TCP/IP 通信的基础知识,并且必须能够使用 Step7 软件配置 S7 PLC。但对于考虑将 S7 链接到 ioBroker 的人来说,这应该不是什么难事。 ## 安装 本指南基于以下配置: * 带有集成以太网接口的 S7-315 -* Raspberry Pi 2,在 Debian GNU/Linux 7.8 下运行的 ioBroker (wheezy) +* Raspberry Pi 2,ioBroker 在 Debian GNU/Linux 7.8 下运行(wheezy) * IP 地址范围 192.168.1.xxx * 电脑运行: - * 电子表格工具,如 MS Excel、Apache Open Office - * 谷歌 Chrome 浏览器 - * Step7 V5.5 SP4 HF5 +* 电子表格工具,如 MS Excel、Apache Open Office +* 谷歌 Chrome 浏览器 +*Step7 V5.5 SP4 HF5 -**需要附加文件:(iobroker_adapter_S7.xlsx)[iobroker_adapter_S7.xlsx]** +**需要附加文件:(iobroker_adapter_S7.xlsx)[iobroker_adapter_S7.xlsx]** -### 通过数据块 (DB) 进行通信 -本指南介绍了 ioBroker 和 S7 PLC 之间通过数据块的通信。理想情况下,可以为通信生成专用 DB。 DB 必须集成在 S7\ 中运行的代码中。这种方法的优点是您可以确保不会意外覆盖数据,例如在实例数据块中,这可能会导致 S7 软件中出现意外或意外的反应。如果由于内存限制或无法对 S7 软件进行任何修改而必须使用现有数据块,请确保仅将相关数据填充到 ioBroker 以避免冲突。 +### 通过数据块(DB)进行通信 +本指南介绍了 ioBroker 和 S7 PLC 之间通过数据块进行的通信。理想情况下,可以为通信生成专用 DB。DB 必须集成在 S7\ 中运行的代码中。这种方法的优点是,您可以确保不会意外覆盖数据(例如在实例数据块中),这可能会导致 S7 软件中出现不必要的或意外的反应。如果由于内存限制而必须使用现有数据块,或者您无法对 S7 软件进行任何修改,请确保仅将相关数据填充到 ioBroker 以避免冲突。 -### 生成通讯数据库 -我们将使用 4 个 DB: +### 生成通信数据库 +我们将使用 4 个数据库: * DB20 – 从 ioBroker 发送到 S7 的二进制值(来自 S7 视图的数字输入) * DB21 – 从 S7 发送到 ioBroker 的二进制值(来自 S7 视图的数字输出) * DB22 – 从 ioBroker 发送到 S7 的实际值(来自 S7 视图的模拟输入) -* DB23 – 从 S7 发送到 ioBroker 的真实值(S7 视图的模拟输出) +* DB23 – 从 S7 发送到 ioBroker 的实际值(来自 S7 视图的模拟输出) -DB 将使用每个数据块一个表格的电子表格生成。 +将使用电子表格生成数据库,每个数据块一个表。 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_1.png) -#### DB20 的准备 – 从 ioBroker 发送到 S7 的二进制值 +#### 准备 DB20 – 从 ioBroker 发送到 S7 的二进制值 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_3.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -A列到M列基于ioBroker中的结构,必须由用户根据S7软件填写。您可能希望使用 S7 符号表的一部分(复制 - 粘贴)。在 O 列中,S7 DB 的代码源自 A 到 M 列中的内容。 +A 到 M 列基于 ioBroker 中的结构,必须由用户根据 S7 软件填写。您可能希望使用 S7 符号表的部分内容(复制 - 粘贴)。在 O 列中,S7 DB 的代码来自 A 到 M 列中的内容。 -* A列:DB = S7中的DB编号和ioBroker中地址的第一部分 -* B列:字节= S7中DB中的字节和ioBroker中地址的第二部分 -* C列:位= S7中DB中的位和ioBroker中地址的第三部分 +* A 列:DB = S7 中的 DB 编号和 ioBroker 中的地址的第一部分 +* B 列:字节 = S7 中 DB 中的字节和 ioBroker 中地址的第二部分 +* C 列:位 = S7 中 DB 中的位和 ioBroker 中地址的第三部分 * D 列:名称 = S7 中 DB 中的名称和 ioBroker 中的名称 -* E 列:描述 = S7 中 DB 中的注释和 ioBroker 中的描述 -* F 列:类型 = 在 S7 中输入 DB 并输入 ioBroker +* E 列:说明 = S7 中 DB 中的注释和 ioBroker 中的说明 +* F 列:类型 = 在 S7 中输入 DB,在 ioBroker 中输入 * G 列:长度 = ioBroker 中的长度 * H 列:单位 = ioBroker 中的单位 -* 第 I 列:角色 = ioBroker 中的角色 +* 第一列:角色 = ioBroker 中的角色 * J 列:房间 = ioBroker 中的房间 -* 列 K:轮询 = 数据点将被循环轮询(真/假) -* L 列:RW = 数据点可以写入(真/假)→ DB20 中的“真”,因为我们要将数据写入 S7 -* M 列:WP = 数据点将仅针对“常规 – 常规”下定义的“脉冲时间”设置为“1” +* K 列:轮询 = 数据点将被循环轮询(真/假) +* L 列:RW = 数据点可以写入(真/假)è DB20 中的“真”,因为我们想将数据写入 S7 +* M 列:WP = 数据点将仅在“常规 - 常规”下定义的“脉冲时间”下设置为“1” ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_config_1.png) -* 第 N 列:有意留空 -* O列:DB内容=复制到Step7生成DB的内容,公式:```=CONCATENATE(D2;":";F2;":=";"false;";"//";E2 )``` +* 第 N 列:故意留空 +* 列O:DB内容=将复制到Step7生成DB的内容,公式:```=CONCATENATE(D2;":";F2;":=";"false;";"//";E2)``` -#### DB21 的准备 – 从 S7 发送到 ioBroker 的二进制值 +#### 准备 DB21 – 从 S7 发送到 ioBroker 的二进制值 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_3.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* L 列:RW è “false” 在 DB21 中,因为我们要从 S7 读取数据 +* 列 L: RW è “false” 在 DB21 中,因为我们想从 S7 读取数据 -#### DB22 的准备 – 从 ioBroker 发送到 S7 的真实值 +#### 准备 DB22 – 从 ioBroker 发送到 S7 的实际值 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_4.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* B 列:字节 = 实际值的起始字节 (0, 4, 8, ...) -* C列:位=留空 -* L 列:RW è “true” 在 DB22 中,因为我们要将数据写入 S7 -* O列:公式:```=CONCATENATE_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` +* B列:字节 = 实际值的起始字节(0、4、8、…) +* C 列:Bit = 留空 +* L 列:RW 在 DB22 中为“true”,因为我们想要将数据写入 S7 +* O 列:公式:```=CONCATENATE_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` -#### DB23 的准备 – 从 S7 发送到 ioBroker 的真实值 +#### 准备 DB23 – 从 S7 发送到 ioBroker 的实际值 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_tabelle_5.png) ![](../../../en/adapterref/iobroker.s7/img/zoom61_black.png) -* B 列:字节 = 实际值的起始字节 (0, 4, 8, ...) -* C列:位=留空 -* L 列:RW è “false” 在 DB23 中,因为我们要从 S7 读取数据 -* O列:公式:```=CONCATENATE_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` +* B列:字节 = 实际值的起始字节(0、4、8、...) +* C 列:Bit = 留空 +* 列 L: RW è DB23 中的“false”,因为我们想从 S7 读取数据 +* O 列:公式:```=CONCATENATE_ _(D2;":";F2;":=";"0.000000e+000;";"//";E2)``` -#### 在 Step7 中创建数据库源 -现在,我们将使用电子表格 O 列中的代码在 Step7 中生成 DB。在您的 Step7 程序中,通过在“Sources”上单击鼠标右键来插入 STL 源。 [![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_1.png) +#### 在步骤7中创建DB源 +现在,我们将使用电子表格 O 列中的代码在 Step7 中生成 DB。在您的 Step7 程序中,通过右键单击“源”插入 STL 源。[![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_1.png) 将新源重命名为“DB20”。 在空源中插入以下代码: @@ -111,150 +109,203 @@ DATA_BLOCK DB 20 END_DATA_BLOCK ``` -来源应如下所示: +源代码看起来应该是这样的: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_2.png) -将源“DB20”复制 3 次并将副本命名为 DB21、DB22、DB23,同时将每个源中的第一行更改为: +复制源“DB20”3次,并将副本命名为DB21,DB22,DB23,同时将每个源中的第一行更改为: -* ```DATA_BLOCK DB 21``` -* ```DATA_BLOCK DB 22``` -* ```DATA_BLOCK DB 23``` +*```数据块 DB 21``` +*```数据块 DB 22``` +*```数据块 DB 23``` ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_3.png) -现在转到电子表格,表 DB20,并复制 O 列中的代码(不带标题): +现在转到电子表格 DB20,并复制 O 列中的代码(不带标题): ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_4.png) -将 Step7 中名为“DB20”的源中的单元格粘贴到“STRUCT”和“END_STRUCT;”之间: +将步骤7中名为“DB20”的源中的单元格粘贴到“STRUCT”和“END_STRUCT;”之间: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_5.png) -启动编译器,结果应该是 0 Errors, 0 Warnings。现在已生成 DB20,您可以在 S7 程序的“块”下找到新块。 +启动编译器,结果应为 0 个错误,0 个警告。DB20 现已生成,您可以在 S7 程序中的“块”下找到新块。 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_6.png) -该块看起来像这样: +该块如下所示: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_7.png) - 地址应该与电子表格中的地址相对应,只需通过比较Byte和Bit的组合来进行完整性检查: +该地址应该与电子表格中的地址相对应,只需通过比较字节和位的组合进行健全性检查: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_8.png) -对 DB21、DB22、DB23 重复,并确保从正确的表中选择列 O 并将其粘贴到正确的源(表 DB21 到源 DB21 等)因为 DB22 和 23 将处理 REAL 值,您可以在下面找到如何块会看起来。 +对 DB21、DB22、DB23 重复上述操作,并确保从正确的表中选择 O 列并将其粘贴到正确的源(表 DB21 到源 DB21 等)。由于 DB22 和 23 将处理实值,您可以在下面找到块的外观。 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_9.png) -此外,地址应与电子表格(字节)相对应: +此处的地址也应与电子表格相对应(字节): ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_10.png) -我们现在拥有通信所需的 4 个 DB: +我们现在有了通信所需的 4 个数据库: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_step7_11.png) -您应该相应地给它们一个象征性的名称,这有助于保持清晰度。不要忘记将它们连接到 S7 逻辑并下载修改后的代码。 +您应该为它们指定一个相应的符号名称,这有助于保持清晰度。不要忘记将它们连接到 S7 逻辑并下载修改后的代码。 ### 将数据库填充到 ioBroker -现在这 4 个 DB 是在 S7 中运行的代码的一部分,我们将告诉 ioBroker 如何与 S7 通信。 +现在 4 个 DB 是 S7 中运行的代码的一部分,我们将告诉 ioBroker 如何与 S7 通信。 -####安装S7 Adapter实例 +#### 安装 S7 适配器实例 适配器 – 硬件 – 西门子 S7 适配器 – + ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_1.png) -如果您希望 ioBroker 与多个 S7 CPU 连接,则可以使用多个实例。启用新的适配器实例: +如果您希望 ioBroker 连接多个 S7 CPU,则可以有多个实例。启用新的适配器实例: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_2.png) -适配器的名称(标准:西门子 S7 适配器)也可以在该步骤中更改。使用 IP 地址作为标题的一部分将是一种想法。打开适配器配置 +适配器的标题(标准:西门子 S7 适配器)也可以在该步骤中更改。使用 IP 地址作为标题的一部分是一个好主意。打开适配器配置 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_3.png) -并开始配置 S7 适配器: +并开始配置S7适配器: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_4.png) -* 标签“一般” - * PLC连接 - * PLC IP 地址 在 Step7 HW Config 中定义的 PLC IP 地址 +* “常规”标签 +* PLC 连接 +* PLC IP 地址 Step7 HW Config 中定义的 PLC 的 IP 地址 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_5.png) -* S7 标志!如果您使用的是 LOGO,而不是 S7 PLC -* PLC Rack 在 Step7 HW Config (R0/S2) 中找到的 CPU 的机架号 -* 在 Step7 HW Config (R0/S2) 中找到的 CPU 的 PLC 插槽插槽号 +* S7 LOGO!如果您使用的是 LOGO,而不是 S7 PLC +* PLC 机架 Step7 HW Config 中找到的 CPU 机架号 (R0/S2) +* PLC 插槽 Step7 HW Config 中找到的 CPU 插槽号 (R0/S2) ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_6.png) * 一般的 - * Round real to: 实数值的位数将被四舍五入到分隔符后,例如:2 -> 12.12 3 -> 12.123 … 9 -> 12.123456789 - * 轮询延迟:以毫秒为单位的通信更新周期 -* 重新连接时间:一旦与 S7 的连接丢失,将尝试重新连接后的持续时间(以毫秒为单位) -* 脉冲时间:对于配置为 WP = true 的数据点,“1”的时间(以毫秒为单位) +* 将实数四舍五入为:实数值将在分隔符后四舍五入为的位数,例如:2 -> 12.12 3 -> 12.123 … 9 -> 12.123456789 +* 轮询延迟:通信更新周期(以毫秒为单位) + * 重新连接时间:与 S7 的连接丢失后,将尝试重新连接的持续时间(以毫秒为单位) + * 脉冲时间:当 WP = true 时,数据点的“1”时间(以毫秒为单位) * 导入符号文件: - * 加载符号功能以从 ASCII 文件导入 Step7 符号 - 此处未使用 +* 加载符号功能用于从 ASCII 文件导入 Step7 符号 – 此处未使用 * 导入数据库文件: - * 添加 DB 功能以从 ASCII 文件导入 Step7 DB – 此处未使用 +* 添加 DB 功能以从 ASCII 文件导入 Step7 DB – 此处未使用 -#### 为通信配置ioBroker -我们跳过选项卡“输入”、“输出”和“标记”,直接转到“数据库”: +#### 配置 ioBroker 进行通信 +我们跳过“输入”、“输出”和“标记”选项卡,直接转到“DB”: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_7.png) -在这里您可以找到电子表格的结构。我们已准备好再次进行批量工程。单击“从 CSV 导入”按钮 [ +您可以在此处找到电子表格的结构。我们已准备好再次进行批量工程。单击“从 CSV 导入”按钮 [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_8.png) -你会得到一个空字段。现在再次转到电子表格,表 DB20,并复制 A 到 M 列(不带标题)。 [ +然后您将得到一个空字段。现在再次转到电子表格 DB20,并复制 A 列至 M 列(不带标题)。[ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_9.png) -将单元格粘贴到 ioBroker 的空导入字段中,并使用“导出”进行确认——这意味着“导入”。 [ +将单元格粘贴到 ioBroker 中空白的导入字段中,然后单击“导出”确认 - 其含义为“导入”。[ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_10.png) -第一个 DB 已完成并准备好进行通信: +第一个数据库已经完成并准备进行通信: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_11.png) -对 DB21、DB22、DB23\ 重复。每次单击“从 CSV 导入”时,您都会得到一个空框,但内容将添加到列表中。无论您要填充多少数据点,您都应该立即完成。如果您想通过填写长度、单位、角色、房间来利用 ioBroker 附带的功能,您也可以在电子表格中执行此操作,以利用批量工程。如果您决定稍后执行此操作或仅针对几个数据点执行此操作,您也可以直接在 ioBroker 中的“DBs”下使用集成编辑选项执行此操作。不过别忘了保存! 12 [ +对 DB21、DB22、DB23\ 重复上述操作。每次单击“从 CSV 导入”时,您都会看到一个空框,但内容将添加到列表中。无论您要填充多少数据点,都应该很快就能完成。如果您想通过填写长度、单位、角色、房间来利用 ioBroker 附带的功能,您也可以在电子表格中执行此操作,以利用批量工程。如果您决定稍后执行此操作或仅针对几个数据点执行此操作,您也可以直接在 ioBroker 下的“DBs”下使用集成的编辑选项执行此操作。但不要忘记保存!12 [ ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_12.png) -####通信测试 -转到 ioBroker 中的“对象”选项卡并找到 S7 实例(例如 s7.0,而不是 system.adapter.S7.0)。如果您遗漏了任何东西:F5(网页更新)是王道!她你会发现两组: +#### 通信测试 +转到 ioBroker 中的“对象”选项卡并找到 S7 实例(例如 s7.0,而不是 system.adapter.S7.0)。如果您遗漏了任何内容:F5(网页更新)是王道!在这里,您会找到两个组: -* 带有我们配置的 4 个 DB 的 DB: - * DB20 - * DB21 - * DB22 - * DB23 -* 有关连接信息的信息: - * 连接:如果可以在网络上找到 S7,则为“true” - * pdu:PDU 大小 Snap7 连接到 S7(S7-300 通常为 240,S7-400 为 480) - * poll_time:Snap7 进行通信所花费的时间(以毫秒为单位) - 应低于适配器实例配置中“常规”-“常规”下配置的轮询延迟。 +* 我们配置的 4 个 DB 的 DB: +* DB20 +* DB21 +* DB22 +* DB23 +* 有关连接的信息: +* 连接:如果可以在网络上找到 S7,则为“true” +* pdu:Snap7 与 S7 连接的 PDU 大小(S7-300 通常为 240,S7-400 通常为 480) +* poll_time:Snap7 进行通信所需的时间(以毫秒为单位) - 应低于适配器实例配置中“常规”-“常规”下配置的轮询延迟。 ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_13.png) - 我们已将 DB21 和 DB23 配置为向 ioBroker 发送信息的 DB,即如果您在“对象”下打开 DB,您应该看到已经输入的值,因为 DB 正在提供来自 S7 代码的数据。 +我们已将 DB21 和 DB23 配置为向 ioBroker 发送信息的 DB,即,如果您打开“对象”下的 DB,您应该会看到已经传入的值,因为 DB 正在从 S7 代码提供数据。 ## Vis 中的监控和操作 -从“实例”选项卡启动 ioBroker.vis。我建议安装 vis-hqwidgets。让我们从一个开关开始: +从“Instances”选项卡启动 ioBroker.vis。我建议安装 vis-hqwidgets。让我们从开关开始: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_14.png) -将一个开关小部件拖放到您的视图上,将其连接到 DB20 中开关的对象 ID,然后就完成了。如果您现在操作开关,您会发现“Objects”-“s7.x”-“DBs”-“DB20”下的数据点将切换,S7 将打开和关闭连接到 DB 的任何内容。如果您在线监控 Step7 中的 DB,您会看到 DB 中的数据点将从“0”变为“1”等。二进制状态的工作方式完全相同:将小部件拖放到您的视图中并连接从 DB21 到它的相关数据点。对于真实值也是一样的: +将开关小部件拖放到视图上,将其连接到 DB20 中开关的对象 ID,就大功告成了。如果现在操作开关,您会发现“对象” - “s7.x” - “DBs” - “DB20”下的数据点将切换,并且 S7 将打开和关闭连接到 DB 的任何内容。如果您在线监控 Step7 中的 DB,您将看到 DB 中的数据点将从“0”更改为“1”等。二进制状态的工作方式完全相同:将小部件拖放到视图中,并将相关数据点从 DB21 连接到它。对于实值,情况也一样: ![](../../../en/adapterref/iobroker.s7/img/adapter_en_s7_15.png) -重要提示:用户负责将正确的数据点连接到小部件。您可以将实际值连接到二进制状态(例如灯泡),因此一旦实际值 >1.0,灯泡将显示“开”。就是这样,伙计们,非常简单直接,对吧? +重要提示:用户负责将正确的数据点连接到小部件。您可以将实数值连接到二进制状态(例如灯泡),这样一旦实数值大于 1.0,灯泡就会显示“亮”。就这样,伙计们,非常简单直接,对吧? ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Updated GUI packages + +### 1.4.3 (2024-02-17) +* (Bettman66) Fix REAL number parsing error + +### 1.4.2 (2023-12-04) +* IMPORTANT: Node.js 16+ is required to run this version! +* (Apollon77) Update dependencies to make adapter work with Node.js 20+ + +### 1.3.15 (2022-12-23) +* (bluefox) Updated GUI packages +* (bluefox) Added ukrainian translation + +### 1.3.14 (2022-09-27) +* (bluefox) Updated GUI packages + +### 1.3.13 (2022-08-02) +* (bluefox) Added preparations for ioBroker cloud +* (bluefox) Migrate GUI tu muiV5 + +### 1.3.12 (2022-04-03) +* (jogibear9988) Removed duplicated code +* (jogibear9988) Implemented S5TIME support (must be tested on a real device) + +### 1.3.11 (2022-02-13) +* (bluefox) Updated releaser + +### 1.3.10 (2021-11-13) +* (Apollon77) Better handle invalid entries with empty Address + +### 1.3.9 (2021-11-09) +* (Apollon77) make sure strings work correctly +* (Apollon77) Fix several crash cases (IOBROKER-S7-17, IOBROKER-S7-19, IOBROKER-S7-1C, IOBROKER-S7-18) + +### 1.3.7 (2021-11-08) +* (bluefox) Corrected type of "write" attribute + +### 1.3.6 (2021-07-31) +* (bluefox) Corrected import of last line + +### 1.3.5 (2021-07-07) +* (bluefox) Change edit mode behaviour + +### 1.3.3 (2021-06-28) +* (bluefox) Corrected the error in GUI + +### 1.3.2 (2021-06-23) +* (Apollon77) Add adapter tier for js-controller 3.3 + +### 1.3.1 (2021-06-23) +* (bluefox) Corrected the type of states + ### 1.3.0 (2021-06-17) -* (bluefox) New configuration page on react +* (bluefox) New configuration page on react ### 1.2.5 (2021-04-17) * (Apollon77) Fix pot crash case (Sentry IOBROKER-S7-16) @@ -270,7 +321,7 @@ END_DATA_BLOCK * (Apollon77) Prevent warnings in js-controller 3.2 ### 1.2.1 (2021-01-25) -* (Apollon77) fix info.connection state +* (Apollon77) fix `info.connection` state ### 1.2.0 (2021-01-25) * (Apollon77) Prevent error case (Sentry IOBROKER-S7-4) @@ -344,7 +395,7 @@ END_DATA_BLOCK * (bluefox) add translation ### 0.2.3 (2015.09.24) -* (bluefox) add suppor of Logo! +* (bluefox) added support of Logo! ### 0.2.2 (2015.09.11) * (bluefox) add S7time @@ -380,7 +431,7 @@ END_DATA_BLOCK ### 0.1.3 (2015.06.04) * (bluefox) translate admin * (bluefox) remove jshint warnings -* (bluefox) add info.connected and rename info.connection to info.state +* (bluefox) add `info.connected` and rename `info.connection` to `info.state` ### 0.1.2 * Bugfix startup @@ -406,7 +457,7 @@ END_DATA_BLOCK ## License The MIT License (MIT) -Copyright (c) 2014-2021 bluefox , +Copyright (c) 2014-2024 bluefox , Copyright (c) 2014-2016 smiling_Jack diff --git a/docs/zh-cn/adapterref/iobroker.sayit/README.md b/docs/zh-cn/adapterref/iobroker.sayit/README.md index 7c36e285a..aa68b815a 100644 --- a/docs/zh-cn/adapterref/iobroker.sayit/README.md +++ b/docs/zh-cn/adapterref/iobroker.sayit/README.md @@ -3,62 +3,62 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.sayit/README.md title: ioBroker sayit 适配器 -hash: /unz3ntgh85Hz+ZiPVipGk8JExnbZ/YczfEFY+uJno8= +hash: iKZAJidQHuyYqiVCtChm9m1nExJtvRV2zI1LVq7PX9s= --- ![标识](../../../en/adapterref/iobroker.sayit/admin/sayit.png) ![安装数量](http://iobroker.live/badges/sayit-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.sayit.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.sayit.svg) ![下载](https://img.shields.io/npm/dm/iobroker.sayit.svg) # IoBroker sayit 适配器 ![测试与发布](https://github.com/ioBroker/iobroker.sayit/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/sayit/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 SayIt Adapter 可以将文本转换为语音并在某些设备上播放。 ## 配置 实际上,支持以下输出: -- *浏览器* - 文本将通过打开的“iobroker.vis”页面的浏览器播放。几乎所有桌面浏览器和少数移动浏览器都支持它。 +- *浏览器* - 浏览器将在打开的“iobroker.vis”页面中播放文本。几乎所有桌面浏览器和少数移动浏览器都支持它。 -- *[Home24- MediaPlayer](http://www.home-24.net/index.php?app=media)* - 文本将发送到安装了 Home24 - MediaPlayer 的 Android 设备并播放。为此,将使用 Android 中构建的文本转语音引擎。端口不能更改,设置为50000。 +- *[Home24- MediaPlayer](http://www.home-24.net/index.php?app=media)* - 文本将发送并播放到安装了 Home24 - MediaPlayer 的 Android 设备上。为此将使用内置 Android 文本转语音引擎。端口无法更改,请设置为 50000。 -- *Home24 - MediaPlayer 和 [FTP 服务器](https://play.google.com/store/apps/details?id=rudey.FTPServer)* - 文本将通过 Home24 - MediaPlayer 在 Android 设备上发送和播放安装。为此,将使用谷歌文本转语音引擎。生成的 mp3 文件将通过 FTP 复制到 Android 设备并使用 Home24 - MediaPlayer 播放。 +- *Home24 - MediaPlayer 和 [FTP 服务器](https://play.google.com/store/apps/details?id=lutey.FTPServer)* - 文本将发送并在安装了 Home24 - MediaPlayer 的 Android 设备上播放。为此将使用 Google 文本转语音引擎。生成的 mp3 文件将通过 FTP 复制到 Android 设备并使用 Home24 - MediaPlayer 播放。 - 两个应用程序必须具有相同的主目录。 (例如“sd 卡”的根目录)。 +两个应用程序必须具有相同的主目录。(例如,“sd 卡”的根目录)。 - *系统* - 文本将由运行 ioBroker 适配器的操作系统播放。支持以下操作系统:Windows、linux、Mac OSx。 -- *Windows 引擎* - 文本将由运行 sayIt 适配器的 Windows 播放。为此,将使用 Windows 文本转语音引擎,该引擎应由用户预先配置。您可以在[此处](http://windows.microsoft.com/en-us/windows/setting-speech-options#1TC=windows-7)查看如何设置。 +- *Windows 引擎* - 文本将由 sayIt 适配器运行的 Windows 播放。为此将使用 Windows 文本转语音引擎,该引擎应由用户预先配置。您可以在 [此处](http://windows.microsoft.com/en-us/windows/setting-speech-options#1TC=windows-7) 查看如何设置它。 -- *Sonos* - 在 Sonos 设备上播放文本。确保 Web Adaptor 已启用。需要使 SONOS 能够读取生成的 mp3 文件。 +- *Sonos* - 在 Sonos 设备上播放文本。确保 Web 适配器已启用。启用 SONOS 读取生成的 mp3 文件是必需的。 -- *Heos* - 在 HEOS 设备上播放文本。确保 Web Adaptor 已启用。需要启用 HEOS 才能读取生成的 mp3 文件。 +- *Heos* - 在 HEOS 设备上播放文本。确保 Web 适配器已启用。需要启用 HEOS 才能读取生成的 mp3 文件。 - *Chromecast* - 在 Chromecast 设备上播放文本。 -- *MPD* - 在音乐播放器守护进程上播放文本。仅对 Web 适配器使用 **http**,不要使用 https。 +- *MPD* - 在音乐播放器守护进程上播放文本。仅使用 **http** 作为网络适配器,不要使用 https。 -要在 RaspberryPI 或 Linux 系统上启用文本转语音功能,请执行以下命令 `sudo apt-get -y install mpg321` 一次以安装 mpg321。 +要在 RaspberryPI 或 Linux 系统上启用文本转语音功能,请调用以下命令`sudo apt-get -y install mpg321` 来安装 mpg321。 -mp3/wav 文件可以通过将其名称写入对象来播放。 (例如`/vis.0/main/img/door-bell.mp3`) +可以通过将其名称写入对象来播放 mp3/wav 文件。(例如 `/vis.0/main/img/door-bell.mp3`) 必须首先加载该文件。 ### TTS 引擎 在线的: -- 谷歌:英语、德语、俄语、意大利语、西班牙语、法语; +- Google:英语、德语、俄语、意大利语、西班牙语、法语; - Yandex:俄语 -要使用 Yandex 语音,您必须在此处请求 API 密钥:[https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/](https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/)。 [此服务将于 2019 年 1 月 1 日停用,并由 Yandex.cloud 取代] 要使用 Yandex.cloud,您应该在此处注册:[https://cloud.yandex.ru/],在云端安装 SpeechKIT API 并获取身份验证令牌和文件夹 ID,如 API 说明中所述。 +要使用 Yandex 语音,您必须在此处请求 API 密钥:[https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/](https://tech.yandex.ru/speechkit/cloud/doc/dg/concepts/About-docpage/)。[此服务将于 2019 年 1 月 1 日禁用,并由 Yandex.cloud 取代] 要使用 Yandex.cloud,您应该在此处注册:[https://cloud.yandex.ru/],在云中安装 SpeechKIT API 并获取 Auth Token 和文件夹 ID,如 API 说明中所述。 -- 云:要使用云语音,您需要配置并运行“云”适配器或直接在设置中输入应用程序密钥 +- 云:要使用云语音,您需要配置并运行“云”适配器,或直接在设置中输入应用密钥 - 亚马逊网络服务 Polly: - 要使用 AWS Polly 语音,您需要创建访问密钥和秘密密钥[此处](https://console.aws.amazon.com/iam/home)。您可以在[此处找到亚马逊文档](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)。 +要使用 AWS Polly 语音,您需要创建一个访问密钥和密钥[此处](https://console.aws.amazon.com/iam/home)。您可以在[此处]找到 Amazon 文档](http://docs.aws.amazon.com/general/latest/gr/managing-aws-access-keys.html)。 离线: @@ -69,86 +69,86 @@ mp3/wav 文件可以通过将其名称写入对象来播放。 (例如`/vis.0/ - Coqui TTS:英语、德语、西班牙语、法语、荷兰语、日语、中文; - 有关如何使用的说明,请访问[官方文档](https://tts.readthedocs.io/en/latest/index.html) +有关如何使用的说明,请访问[官方文档](https://tts.readthedocs.io/en/latest/index.html) ### 云和 Amazon Web Services Polly 文本格式 -您可以使用 [语音合成标记语言](http://docs.aws.amazon.com/polly/latest/dg/ssml.html) 设置文本格式。 +您可以使用[语音合成标记语言](http://docs.aws.amazon.com/polly/latest/dg/ssml.html)来格式化您的文本。 最有用的功能: - ``- 暂停 x 秒(最多 10 秒)。 -- ` big ` - 强调某个单词。 -- `我正在说这个` - 控制速度和音量参数。 -- `12345` - 分别说出每个数字。 +- `big` - 强调某些词。 +- `我正在说这个` - 控制速度和音量参数。 +- `12345` - 分别说出每个数字。 更多[信息](https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/speech-synthesis-markup-language-ssml-reference)。 -###系统命令 -如果您有一些程序可以在本地或其他地方播放音频文件,您可以在此处编写此命令。例如。 +### 系统命令 +如果您有某些程序可以在本地或其他地方播放音频文件,您可以在此处写入此命令。例如 -```myCustomPlayer --option``` +`myCustomPlayer --option` -如果选择 **System** 输出,`sayit` 适配器将在本地系统上执行以下命令: +如果选择**系统**输出,`sayit` 适配器将在本地系统上执行以下命令: -```myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3``` +`myCustomPlayer --option /opt/iobroker/node_modules/iobroker.sayit/say.mp3` -如果文件名必须保留在中间的某个位置,您可以使用 *%s* 来指定文件名必须放置的位置: +如果文件名必须位于中间某处,则可以使用 *%s* 来指定文件名必须放置的位置: -```myCustomPlayer --option "%s" > /dev/null``` +`myCustomPlayer --option "%s" > /dev/null` -说它将从中制作```myCustomPlayer --option "/opt/iobroker/node_modules/iobroker.sayit/say.mp3" > /dev/null```。 +sayIt 将从中得出`myCustomPlayer --option "/opt/iobroker/node_modules/iobroker.sayit/say.mp3" > /dev/null`。 ## 用法 -SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通过特定小部件的“vis”进行控制。 +SayIt 适配器不能单独使用。它必须通过 javascript 适配器或使用特定小部件的“vis”进行控制。 创建适配器实例后,您可以找到以下对象: -- `sayit.N.tts.text`:要说出的短语。 +- `sayit.N.tts.text`:要说的短语。 - `sayit.N.tts.volume`:播放短语时使用的音量。 -- `sayit.N.tts.playing`:如果文本正在播放则为 true,否则为 false。仅支持“Windows”和“系统”播放模式。 -- `sayit.N.tts.cachetext`:要缓存的短语,然后可以在没有互联网的情况下使用。 +- `sayit.N.tts.playing`:如果文本正在播放则为 true,否则为 false。仅支持“windows”和“system”播放模式。 +- `sayit.N.tts.cachetext`:需要缓存的短语,这样即使没有网络也可以使用。 - 例如,您可以在此处手动输入“No internet”,如果 ping 到 google.com 为负,请将“No internet”写入“tts.text”,然后就会发音。当然,必须启用缓存。 +例如,您可以在此处手动输入“No internet”,如果 ping to google.com 的结果为否定,则将“No internet”写入“tts.text”,它将被发音。当然,必须启用缓存。 -状态`tts.text`支持扩展语法,因此语言/引擎和卷可以与文本一起定义。它用于启用多语言文本到语音引擎。 -例如,如果适配器具有“Google-english”引擎,则可以使用短语```de:Sag es```强制使用Google-Deutsch语音引擎。 +状态 `tts.text` 支持扩展语法,因此语言/引擎和音量可以与文本一起定义。它用于启用多语言文本语音引擎。 +例如,如果适配器具有引擎 `Google-english`,则可以使用短语 `de:Sag es` 强制使用 Google-Deutsch 语音引擎。 -通过```ru;75;Погода хорошая```,我们可以强制使用俄语和音量 75%。 +使用`ru;75;Погода хорошая`我们可以强制使用俄语并将音量调至 75%。 -您可以以当前或给定音量(而不是最大)的百分比指定公告音量。例如,如果命令是```de;75;Gutes Wetter```并且“公告音量”是 50%,则公告将以 100% 的 38% 音量播放。 +您可以指定公告音量相对于当前或给定音量(而不是相对于最大音量)的百分比。例如,如果命令为`de;75;Gutes Wetter`且“公告音量”为 50%,则公告将以 100% 的音量中的 38% 播放。 -也可以指定播放mp3文件的系统命令。如果将其留空,将使用默认设置:windows - `cmdmp3.exe`、OSX - `/usr/bin/afplay`、linux - `mpg321` 或 `omxplayer`(推荐)。 +还可以指定播放 mp3 文件的系统命令。如果将其留空,将使用默认设置:windows - `cmdmp3.exe`、OSX - `/usr/bin/afplay`、linux - `mpg321` 或 `omxplayer`(推荐)。 -要安装 omxplayer,请写入 ```sudo apt-get install omxplayer``` 或写入 ```sudo apt-get install mpg321``` 以安装 mpg321。 +要安装 omxplayer,请写入 `sudo apt-get install omxplayer` 或写入 `sudo apt-get install mpg321` 来安装 mpg321。 -**注意:** 只有在实例启动后才可以选择默认的公告选择。 +**注意**只有在实例启动后才可以进行默认公告选择。 -### 优先事项 -尽管有排队文本,但要立即发音文本,您有 2 种可能性: +### 优先级 +如果要立即读出排队的文本,您有两种选择: -- 地方 ”!”作为文本中的第一个字符,因此该文本将在当前字符之后立即发音。 -- 将 true 写入“tts.clearQueue”状态,队列将被清除。之后,您可以将新文本写入“tts.text”,但所有排队的文本都会被丢弃。 +- 将“!”作为文本中的第一个字符,因此该文本将在当前文本之后立即发音。 +- 将 true 写入“tts.clearQueue”状态,队列将被清除。之后,您可以将新文本写入“tts.text”,但所有排队的文本都将被丢弃。 -### 引擎 -发动机可能有以下值: +### 引擎 +引擎可能具有以下值: #### 谷歌 - **en** - 英语 -- **德** - 德语 -- **pl** - 波兰 -- **ru** - Русский +- **de** - 德语 +- **pl** - 波兰语 +- **ru** - 俄语 - **英国** - український -- **它** - 意大利 +- **它** - 意大利语 - **es** - 西班牙语 - **fr** - 法语 -- **nl** - 荷兰 +- **nl** - 荷兰语 - **zh-CN** - 简体中文 - **pt** - 葡萄牙语 #### Yandex - **ru_YA:Yandex** - Русский -- **ru_YA_CLOUD:Yandex Cloud** - Русский [Yandex.Cloud API 生成 OGG 格式的文件。要在 Linux 上播放 ogg 文件,应安装 mplayer 并选择为系统播放器] +- **ru_YA_CLOUD:Yandex Cloud** - Русский [Yandex.Cloud API 生成 OGG 格式的文件。要在 Linux 上播放 ogg 文件,应安装 mplayer 并将其选为系统播放器] -#### 通过云的 Amazon Poly +#### 通过云端的 Amazon polly - **ru-RU_CLOUD_Female** - Русский - Татьяна - **ru-RU_CLOUD_Male** - Русский - Максим - **de-DE_CLOUD_Female** - 德语 - Marlene @@ -156,7 +156,7 @@ SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通 - **de-DE_CLOUD_Female_Vicki** - 德语 - Vicki - **de-DE_CLOUD_Male_Daniel** - 德语 - 丹尼尔 - **de-AT_CLOUD_Female_Hannah** - 奥地利 - 汉娜 -- **en-US_CLOUD_Female** - en-US - 女性 - Salli +- **en-US_CLOUD_Female** - en-US - 女 - Salli - **en-US_CLOUD_Male** - en-US - 男 - Joey - **da-DK_CLOUD_Female** - da-DK - 女 - Naja - **da-DK_CLOUD_Male** - da-DK - 男 - Mads @@ -165,65 +165,65 @@ SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通 - **en-GB_CLOUD_Female_Amy** - en-GB - 女 - Amy - **en-GB_CLOUD_Male** - en-GB - 男 - Brian - **en-GB_CLOUD_Female_Emma** - en-GB - 女 - 艾玛 -- **en-GB-WLS_CLOUD_Female** - en-GB-WLS - 女性 - Gwyneth +- **en-GB-WLS_CLOUD_Female** - en-GB-WLS - 女 - 格温妮丝 - **en-GB-WLS_CLOUD_Male** - en-GB-WLS - 男 - Geraint -- **cy-GB_CLOUD_Female** - cy-GB - 女 - Gwyneth +- **cy-GB_CLOUD_Female** - cy-GB - 女 - 格温妮丝 - **cy-GB_CLOUD_Male** - cy-GB - 男 - Geraint -- **en-IN_CLOUD_Female** - en-IN - 女 - Raveena +- **en-IN_CLOUD_Female** - en-IN - 女性 - Raveena - **en-US_CLOUD_Male_Chipmunk** - en-US - 男性 - 花栗鼠 - **en-US_CLOUD_Male_Eric** - en-US - 男 - Eric - **en-US_CLOUD_Female_Ivy** - en-US - 女性 - Ivy -- **en-US_CLOUD_Female_Jennifer** - en-US - 女性 - Jennifer -- **en-US_CLOUD_Male_Justin** - en-US - 男 - Justin +- **en-US_CLOUD_Female_Jennifer** - en-US - 女 - 詹妮弗 +- **en-US_CLOUD_Male_Justin** - en-US - 男 - 贾斯汀 - **en-US_CLOUD_Female_Kendra** - en-US - 女性 - Kendra - **en-US_CLOUD_Female_Kimberly** - en-US - 女性 - Kimberly - **es-ES_CLOUD_Female** - es-ES - 女性 - Conchita - **es-ES_CLOUD_Male** - es-ES - 男 - 恩里克 -- **es-US_CLOUD_Female** - es-US - 女性 - Penelope +- **es-US_CLOUD_Female** - es-US - 女性 - 佩内洛普 - **es-US_CLOUD_Male** - es-US - 男 - Miguel -- **fr-CA_CLOUD_Female** - fr-CA - 女性 - Chantal -- **fr-FR_CLOUD_Female** - fr-FR - 女 - Celine +- **fr-CA_CLOUD_Female** - fr-CA - 女 - Chantal +- **fr-FR_CLOUD_Female** - fr-FR - 女性 - Celine - **fr-FR_CLOUD_Male** - fr-FR - 男 - Mathieu -- **is-IS_CLOUD_Female** - is-IS - 女 - Dora -- **is-IS_CLOUD_Male** - is-IS - 男 - Karl +- **is-IS_CLOUD_Female** - is-IS - 女性 - Dora +- **is-IS_CLOUD_Male** - is-IS - 男性 - Karl - **it-IT_CLOUD_Female** - it-IT - 女 - Carla -- **it-IT_CLOUD_Male** - it-IT - 男 - Giorgio -- **nb-NO_CLOUD_Female** - 否 - 女 - Liv -- **否-NO_CLOUD_Female** - 否-NO - 女性 - Ida -- **nl-NL_CLOUD_女性** - nl-NL - 女性 - 乐天 -- **nl-NL_CLOUD_Male** - nl-NL - 男 - Ruben +- **it-IT_CLOUD_Male** - it-IT - 男 - 乔治奥 +- **nb-NO_CLOUD_Female** - no-NO - 女性 - Liv +- **no-NO_CLOUD_Female** - no-NO - 女性 - Ida +- **nl-NL_CLOUD_Female** - nl-NL - 女性 - 乐天 +- **nl-NL_CLOUD_Male** - nl-NL - 男 - 鲁本 - **pl-PL_CLOUD_Female_Agnieszka** - pl-PL - 女 - Agnieszka - **pl-PL_CLOUD_Male_Jacek** - pl-PL - 男 - Jacek - **pl-PL_CLOUD_Female_Ewa** - pl-PL - 女性 - Ewa - **pl-PL_CLOUD_Male_Jan** - pl-PL - 男 - Jan -- **pl-PL_CLOUD_女性** - pl-PL - 女性 - Maja +- **pl-PL_CLOUD_Female** - pl-PL - 女性 - Maja - **pt-BR_CLOUD_Female** - pt-BR - 女 - 维多利亚 - **pt-BR_CLOUD_Female_Camila** - pt-BR - 女 - 卡米拉 -- **pt-BR_CLOUD_Male** - pt-BR - 男 - Ricardo -- **pt-PT_CLOUD_Male** - pt-PT - 男 - Cristiano +- **pt-BR_CLOUD_Male** - pt-BR - 男 - 里卡多 +- **pt-PT_CLOUD_Male** - pt-PT - 男 - 克里斯蒂亚诺 - **pt-PT_CLOUD_Female** - pt-PT - 女性 - Ines - **ro-RO_CLOUD_Female** - ro-RO - 女 - 卡门 - **sv-SE_CLOUD_Female** - sv-SE - 女性 - 阿斯特丽德 - **tr-TR_CLOUD_Female** - tr-TR - 女 - Filiz - **pt-BR_CLOUD_Female_Camila** - pt-BR - 女 - 卡米拉 -#### 微微 TTS +#### Pico 语音合成 - **en-US** - 美国英语 -- **en-GB** - 英语 GB +- **en-GB** - 英国英语 - **de-DE** - 德语 -- **it-IT** - 意大利 +- **it-IT** - 意大利语 - **es-ES** - 西班牙语 - **fr-FR** - 法语 #### 科基 TTS - 英语 -- 德语 +- 德文 - 西班牙语 -- 法国人 -- 荷兰 +- 法语 +- 荷兰语 - 日本 -#### Amazon Poly 直接 +#### 亚马逊 polly 直接 - **ru-RU_AP_Female** - Русский - Татьяна - **ru-RU_AP_Male** - Русский - Максим - **de-DE_AP_Female** - 德语 - Marlene @@ -238,15 +238,15 @@ SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通 - **en-GB_AP_Female_Amy** - en-GB - 女 - 艾米 - **en-GB_AP_Male** - en-GB - 男 - Brian - **en-GB_AP_Female_Emma** - en-GB - 女 - 艾玛 -- **en-GB-WLS_AP_Female** - en-GB-WLS - 女 - Gwyneth +- **en-GB-WLS_AP_Female** - en-GB-WLS - 女性 - 格温妮丝 - **en-GB-WLS_AP_Male** - en-GB-WLS - 男 - Geraint -- **cy-GB_AP_女性** - cy-GB - 女性 - 格温妮丝 -- **cy-GB_AP_Male** - cy-GB - 男 - Geraint +- **cy-GB_AP_Female** - cy-GB - 女性 - 格温妮丝 +- **cy-GB_AP_Male** - cy-GB - 男性 - Geraint - **en-IN_AP_Female** - en-IN - 女 - Raveena - **en-US_AP_Male_Chipmunk** - en-US - 男性 - 花栗鼠 - **en-US_AP_Male_Eric** - en-US - 男 - Eric - **en-US_AP_Female_Ivy** - en-US - 女性 - Ivy -- **en-US_AP_Female_Jennifer** - en-US - 女性 - Jennifer +- **en-US_AP_Female_Jennifer** - en-US - 女 - 詹妮弗 - **en-US_AP_Male_Justin** - en-US - 男 - 贾斯汀 - **en-US_AP_Female_Kendra** - en-US - 女性 - Kendra - **en-US_AP_Female_Kimberly** - en-US - 女性 - Kimberly @@ -254,35 +254,50 @@ SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通 - **es-ES_AP_Male** - es-ES - 男 - 恩里克 - **es-US_AP_Female** - es-US - 女性 - 佩内洛普 - **es-US_AP_Male** - es-US - 男 - Miguel -- **fr-CA_AP_女性** - fr-CA - 女性 - 尚塔尔 -- **fr-FR_AP_Female** - fr-FR - 女 - Celine +- **fr-CA_AP_Female** - fr-CA - 女性 - Chantal +- **fr-FR_AP_Female** - fr-FR - 女性 - Celine - **fr-FR_AP_Male** - fr-FR - 男 - Mathieu -- **is-IS_AP_Female** - is-IS - 女 - Dora -- **is-IS_AP_Male** - is-IS - 男 - Karl -- **it-IT_AP_女性** - it-IT - 女性 - 卡拉 -- **it-IT_AP_Male** - it-IT - 男 - Giorgio -- **nb-NO_AP_女性** - nb-NO - 女性 - Liv -- **nl-NL_AP_女性** - nl-NL - 女性 - 乐天 +- **is-IS_AP_Female** - is-IS - 女性 - Dora +- **is-IS_AP_Male** - is-IS - 男性 - Karl +- **it-IT_AP_Female** - it-IT - 女性 - Carla +- **it-IT_AP_Male** - it-IT - 男性 - 乔治奥 +- **nb-NO_AP_Female** - nb-NO - 女性 - Liv +- **nl-NL_AP_Female** - nl-NL - 女性 - 乐天 - **nl-NL_AP_Male** - nl-NL - 男 - Ruben - **pl-PL_AP_Female_Agnieszka** - pl-PL - 女 - Agnieszka - **pl-PL_AP_Male_Jacek** - pl-PL - 男 - Jacek -- **pl-PL_AP_Female_Ewa** - pl-PL - 女 - Ewa -- **pl-PL_AP_Male_Jan** - pl-PL - 男 - Jan -- **pl-PL_AP_女性** - pl-PL - 女性 - Maja -- **pt-BR_AP_女性** - pt-BR - 女性 - 维多利亚 +- **pl-PL_AP_Female_Ewa** - pl-PL - 女性 - Ewa +- **pl-PL_AP_Male_Jan** - pl-PL - 男性 - Jan +- **pl-PL_AP_Female** - pl-PL - 女性 - Maja +- **pt-BR_AP_Female** - pt-BR - 女性 - Vitoria - **pt-BR_AP_Male** - pt-BR - 男 - 里卡多 -- **pt-PT_AP_Male** - pt-PT - 男 - Cristiano -- **pt-PT_AP_女性** - pt-PT - 女性 - Ines -- **ro-RO_AP_Female** - ro-RO - 女 - 卡门 +- **pt-PT_AP_Male** - pt-PT - 男 - 克里斯蒂亚诺 +- **pt-PT_AP_Female** - pt-PT - 女性 - Ines +- **ro-RO_AP_Female** - ro-RO - 女性 - 卡门 - **sv-SE_AP_女性** - sv-SE - 女性 - 阿斯特丽德 - **tr-TR_AP_女性** - tr-TR - 女性 - Filiz - **ko-KR_AP_女性** - ko-KR - 女性 - Seoyeon - ## Changelog +### 5.0.0 (2024-07-16) +* (mcm1957) Adapter requires admin v7 or newer now +* (mcm1957) Adapter requires jas-controller 5 or newer now +* (bluefox) Added possibility to play directly from states: `sayit.0/tts.userfiles/gong.mp3` + +### 4.0.5 (2024-07-12) +* (bluefox) Packages updated +* (bluefox) Corrected playing in vis +* (bluefox) Corrected blockly +* (bluefox) Corrected upload of files + +### 4.0.1 (2024-05-25) +* (bluefox) Packages updated +* (neopholus) Using the pre-calculated duration of the mp3 to wait long enough even for longer announcements + ### 4.0.0 (2023-10-31) * (bluefox) Breaking changes: A minimal node.js version is 16 * (bluefox) Browser outputs now to vis(1) and vis-2 @@ -343,7 +358,7 @@ SayIt 适配器不能单独使用。它必须通过 javascript 适配器或通 ### 1.11.0 (2020-08-02) * (Apollon77) Move the generated mp3 file to an own directory in iobroker-data instead of inside node_modules (Hopefully not breaking) -* (Apollon77) Change File write to use Sync methods to make sure they cannot run in parallel +* (Apollon77) Change the file writing to use Sync methods to make sure they cannot run in parallel ### 1.10.2 (2020-07-19) * (Apollon77) Crash case prevented (Sentry IOBROKER-SAYIT-8) @@ -417,7 +432,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 1.6.3 (2017-10-04) * (bluefox) Code refactoring -* (bluefox) Add google home as output +* (bluefox) Add Google Home as output * (bluefox) Remove ivona because not more supported ### 1.5.2 (2017-03-09) @@ -428,11 +443,11 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 1.5.0 (2017-01-27) * (DarkChaos) Add AWS Polly as source -* (bluefox) Add cloud as source +* (bluefox) Add cloud as a source ### 1.4.0 (2017-01-16) * (bluefox) fixed install problem -* (bluefox) add PicoTTS as source +* (bluefox) add PicoTTS as a source ### 1.3.3 (2017-01-13) * (bluefox) show only installed instances in blockly @@ -460,7 +475,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller * (bluefox) Add omxplayer option ### 1.0.1 (2016-10-12) -* (bluefox) support of blockly +* (bluefox) support for blockly ### 1.0.0 (2016-05-14) * (bluefox) Make the type of mp3 as file @@ -482,7 +497,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 0.3.12 (2015-10-06) * (bluefox) fixed error if received mp3 file is too short -* (bluefox) try to implement cache datapoint (you can use sayit.0.tts.cachetext to create cache for phrases and use sayit without internet) +* (bluefox) try to implement cache datapoint (you can use `sayit.0.tts.cachetext` to create cache for phrases and use sayit without internet) ### 0.3.11 (2015-08-03) * (bluefox) change google requests from http to https @@ -500,7 +515,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller ### 0.3.7 (2015-05-28) * (bluefox) fixed volume for an announcement -* (bluefox) support for play files from internal filesystem, like "/sayit.0/tts.userfiles/myGong.mp3" +* (bluefox) support for play files from internal filesystem, like `/sayit.0/tts.userfiles/myGong.mp3` ### 0.3.6 (2015-03-24) * (bluefox) fixed error with volume by sonos @@ -542,7 +557,7 @@ Changed type of top-level object to "meta" in order to comply with js-controller The MIT License (MIT) -Copyright (c) 2014-2023, bluefox +Copyright (c) 2014-2024, bluefox 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.shuttercontrol/README.md b/docs/zh-cn/adapterref/iobroker.shuttercontrol/README.md index 887059dbb..f05d346b2 100644 --- a/docs/zh-cn/adapterref/iobroker.shuttercontrol/README.md +++ b/docs/zh-cn/adapterref/iobroker.shuttercontrol/README.md @@ -9,13 +9,13 @@ BADGE-: https://img.shields.io/static/v1?label=Sponsor&message=%E2%9D%A4&logo=Gi translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.shuttercontrol/README.md -title: 快门控制的文档和说明 -hash: Ad/MPmge7x07ZO6srEacKPIO7fHp1znTYBAM6aLoWNQ= +title: Shuttercontrol 的文档和说明 +hash: PdO2+I/0b//z7ITdPxGVqrTnSHuuJDbNldCVMjrYhx4= --- ![标识](../../../en/adapterref/iobroker.shuttercontrol/img/shuttercontrol.png) ![安装数量](http://iobroker.live/badges/shuttercontrol-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.shuttercontrol.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.shuttercontrol.svg) ![下载](https://img.shields.io/npm/dm/iobroker.shuttercontrol.svg) ![已知漏洞](https://snyk.io/test/github/simatec/ioBroker.shuttercontrol/badge.svg) ![执照](https://img.shields.io/github/license/simatec/ioBroker.shuttercontrol?style=flat) @@ -28,536 +28,538 @@ hash: Ad/MPmge7x07ZO6srEacKPIO7fHp1znTYBAM6aLoWNQ= --- ## 支持适配器开发 -**如果您喜欢该适配器,请考虑捐赠:** +**如果您喜欢该适配器,请考虑捐款:** -[![贝宝](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://paypal.me/mk1676) +[![贝宝](https://www.paypalobjects.com/en_US/DK/i/btn/btn_donateCC_LG.gif)](https://paypal.me/mk1676) --- -## 基本 ->:grey_exclamation: 本手册从稳定版本 1.6.2 起有效 :grey_exclamation: +基础知识 +>:grey_exclamation: 本手册从稳定版本 1.6.2 开始有效 :grey_exclamation: -Shuttercontrol 是一个适配器,用于对卷帘、百叶窗或遮阳篷进行非常全面的控制,包括自动遮阳和夜间变暗。 +Shuttercontrol 是一个适配器,用于全面控制卷帘、百叶窗或遮阳篷,包括自动遮阳和夜间变暗功能。 ->:point_right:为了简单起见,这里只提到卷帘。 +>:point_right: 为了简单起见,这里仅提及卷帘门。 -有大量可调节参数可供控制,例如: +有大量可调节参数可用于控制,例如: -* 三个不同的全局计时器,例如客厅、卧室和儿童区, -* 各种与太阳位置相关的参数,可以为每个卷帘单独设置。 +* 三个不同的全局计时器,例如用于客厅、卧室和儿童区, +* 可以为每个卷帘单独设置各种与太阳位置相关的参数。 可以为每个卷帘单独设置, -* 门/窗传感器的触发器,用作单独级别的锁定保护或自动打开。 +* 门/窗传感器的触发器,可作为个人层面的锁定保护或自动开启功能。 -当门或窗打开时,在单独的层面上打开, +当门或窗打开时,以单独的水平打开, -* 各种可调节的阴影参数,取决于例如 +* 取决于例如阴影的各种可调节参数。 内部温度、外部温度、亮度、热传感器或类似传感器, -* 包含太阳的位置,以便仅使实际被遮蔽的房间变暗。 +* 纳入太阳的位置以便只使实际上被遮蔽的房间变暗。 被照亮。 -所有配置数据点均已通过示例进行预设,以便适配器在安装并输入准备运行的快门 ID 后可快速投入使用。 +所有配置数据点均已预设示例,以便在安装并输入准备运行的快门 ID 后,适配器即可快速投入使用。 然后使用进一步的配置来适应个人意愿。 -> Shuttercontrol 只能通过位置控制执行器,例如LEVEL,值分别为 0 到 100 或 0-255。相应的快门或盲定时必须由执行器接管。 -由执行器接管。百叶窗致动器为“高度”和“板条角度”各提供一个对象,可以使用两个百叶窗进行控制。 -可与具有相同参数设置的两个快门对象一起使用。 +> Shuttercontrol 只能通过位置(例如 LEVEL)控制执行器,其值分别为 0 到 100 或 0-255。相应的百叶窗或百叶窗定时必须由执行器接管。 +由执行器接管。百叶窗执行器(每个“高度”和“板条角度”各提供一个对象)可使用两个百叶窗进行控制。 +可与具有相同参数设置的两个百叶窗对象一起使用。 使用。 --- ## 安装 -该适配器位于 ioBroker 的“稳定”存储库中。在“适配器”选项卡中选择“shuttercontrol”,并通过 (+) 创建快门控制适配器的实例。 +适配器位于 ioBroker 的“稳定”存储库中。在“适配器”选项卡中选择“shuttercontrol”,然后通过 (+) 创建 shuttercontrol 适配器的实例。 ## 配置 创建实例后,配置窗口会自动打开,其中包含“主要设置”、“时间设置”和“额外设置”选项卡。 ->:point_right:应首先编辑 [时间设置](#time-settings) 和 [额外设置](#extra-settings) 选项卡,即在主设置中通过铅笔添加百叶窗之前。 +>:point_right: 应首先编辑[时间设置](#time-settings) 和 [额外设置](#extra-settings)选项卡,即在主设置中通过铅笔添加百叶窗之前。 --- ### 主要设置 -![主要的](../../../en/adapterref/iobroker.shuttercontrol/img/main.png) --- >:point_right:可以通过右上角的问号 (7) 访问 github 上的文档。 +![主要的](../../../en/adapterref/iobroker.shuttercontrol/img/main.png) --- >:point_right: 可以通过右上角的问号(7)访问 github 上的文档。 #### 保存或上传适配器配置 -单击右上角的向下箭头 (9),将适配器配置保存为 .json 文件。 -单击向上箭头 (8) 以上传 .json 格式的现有适配器配置。 +单击右上角向下的箭头 (9),将适配器配置保存为 .json 文件。 +单击向上的箭头 (8),以 .json 格式上传现有的适配器配置。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- ### 时间设置 -在这里进行基本时间或 Astro 设置,稍后在每个快门的 [快门设置](#shutter-settings) 中使用这些设置。 -每个快门的[快门设置](#shutter-settings)。 +这里进行基本时间或天文设置,稍后会在每个快门的[快门设置](#shutter-settings) 和[快门设置](#shutter-settings) 中使用。 ->:heavy_exclamation_mark: Shuttercontrol 始终在 **周末** 的设定时间 **周五** 关闭百叶窗。 -**周日**始终在**工作周**的设定时间:heavy_exclamation_mark: +>:heavy_exclamation_mark: Shuttercontrol 总是在**星期五**的**周末**设定的时间关闭百叶窗。 +并且总是在**星期日**的**工作周**设定的时间关闭百叶窗 :heavy_exclamation_mark: -![时间设置](../../../en/adapterref/iobroker.shuttercontrol/img/timeSettings.png) +![时间设定](../../../en/adapterref/iobroker.shuttercontrol/img/timeSettings.png) #### 起居区、睡眠区和儿童区的设置 -各个设置通过下拉菜单打开。该描述是作为居住区域的示例给出的,并且类似地适用于所有区域。 -对于所有领域。 +各个设置可通过下拉菜单打开。描述以起居区为例,同样适用于所有区域。 +适用于所有区域。 ->:point_right:当然,这种分类不一定非得用于起居区、睡眠区或儿童区。 -儿童区域,但可以通过卷帘百叶窗的不同移动时间来定义建筑物中的三个区域。 +>:point_right: 当然,这种分类不一定必须用于起居区、睡眠区或儿童区。 +儿童区,但可以通过卷帘门的不同移动时间在建筑物内定义三个区域。 **生活区自动控制类型** -下拉菜单用于选择: +下拉用于选择: -* **仅居住区时间:** +* **仅限生活区时间:** -*卷帘门仅受时间控制。 +*卷帘门仅通过时间控制操作。 -* 时间生活区日出和日落。 +* 日出和日落时分的时间生活区。 -*卷帘门根据日出和日落控制,但最早时间前不升起,最晚时间后不落下。 +*卷帘门根据日出和日落进行控制,但在最早时间之前不会升起,在最晚时间之后不会降下。 -* **黄金时段的生活区:** +* **黄金时段的时间生活区:** -*类似于日出和日落,但以“黄金时刻”的开始和结束为参考。 +*类似于日出和日落,但以“黄金时段”的开始和结束作为参考。 -**在工作周期间关闭百叶窗:** *一周内通常的变暗时间*。 +**工作日关闭百叶窗**:*一周内习惯的遮光时间*。 -**一周内最早拉起百叶窗的时间:** *这是一周内拉起百叶窗的最早时间。 +**一周内最早升起百叶窗的时间:** *这是一周内最早升起百叶窗的时间。 -**本周最晚升起时间:** *这是本周卷帘百叶窗最晚升起时间*。 +**一周内升起的最晚时间:** *这是一周内升起卷帘门的最晚时间*。 -**卷帘百叶窗交错升起的时间延迟(秒):** *此范围的卷帘百叶窗单独升起之间的距离,例如以避免无线电干扰或给人以手动移动的印象。 +**卷帘门交错升起的时间延迟(秒):** *此范围内的卷帘门单独升起之间的距离,例如为了避免无线电干扰或给人留下正在手动移动的印象。 -**周末关闭卷帘百叶窗:** *周末天黑的习惯时间**和公共假期**。 +**周末卷帘门关闭:** *周末**和**公共假期卷帘门的常规关闭时间。 -**周末最早拉闸时间:** *这是周末**和公共假期**拉闸的最早时间。 +**周末最早放假时间:** *这是周末**和**公共假期最早放假时间。 -**周末最晚升起时间:** *此时卷帘百叶窗在周末升起**,**最迟在公共假期*。 +**周末升起的最晚时间:** *此时卷帘门在周末**和**最晚在公共假期升起*。 ->:point_right:如果太阳尚未超过某个未经过某个位置,则永远不会升起卷帘,则该时间必须设置为该太阳位置的最晚时间(21.12)。 +>:point_right: 如果在太阳尚未超过某个位置时卷帘门永远不会升起,则必须将这个时间设置为该太阳位置的最晚时间(12 月 21 日)。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- ### 额外设置 -![额外配置](../../../en/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png) +![配置附加项](../../../en/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png) -#### 天文设置 -![额外设置Astro](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png) +#### Astro 设置 +![extraSettingsAstro](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png) **纬度和经度:** *Shuttercontrol 从 ioBroker 系统设置中获取纬度和经度。 Shuttercontrol 使用这些值来计算太阳的位置。 -**以太阳高度(仰角)退出防晒功能:** *一旦太阳落到此处设定的高度以下,遮光就结束。 -快门控制的阴影结束。 +**通过太阳高度(海拔)退出防晒功能:** *一旦太阳低于此处设置的高度,遮阳就会结束。 +Shuttercontrol 的遮阳结束。 ->:point_right:由于建筑物或高大树木可能存在的过早着色,可以在此考虑并提前结束自动着色。 +>:point_right: 可以在此考虑可能由于建筑物或高树而存在的过早遮光,并提前结束自动遮光。 -**升高或降低的时间延迟(分钟):** *可在此处输入 +/- 偏移量,通过该偏移量,快门移动应从[时间设置](#time-settings)中选择的自动控制类型延迟。 +**升高或降低的时间延迟(分钟):** *可以在此处输入 +/- 偏移量,快门移动应根据在[时间设置](#time-settings) 中选择的自动控制类型延迟。 -**交错快门移动的时间延迟(秒):** *为了防止所有快门同时移动,可以在此处设置全局时间延迟(以秒为单位)。 +**交错快门运动的时间延迟(秒):** *为了防止所有快门同时移动,可以在此处设置以秒为单位的全局时间延迟。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- #### 夏季设置 -![额外设置夏季](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png) +![extraSettings夏季](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png) -**夏季开始**和**夏季结束:** *这里可以根据您自己的意愿设置夏季开始或结束。 +**夏季开始** 和 **夏季结束**:*这里可以根据自己的意愿设置夏季的开始或结束。 -在相应百叶窗的[快门设置](#shutter-settings)下,将复选框设置为“`Do not close shutter in summer`”可防止该百叶窗在夏季关闭。 +在相应百叶窗的[快门设置](#shutter-settings)下,将复选框设置为“`Do not close shutter in summer`”可防止此百叶窗在夏季关闭。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- -####圣诞节设置 +#### 圣诞节设置 ![额外设置圣诞节](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png) -**圣诞节期间的开始**和**圣诞节期间的结束:** *这里可以根据您自己的意愿设置圣诞节期间的开始或结束。 +**圣诞节期间的开始**和**圣诞节期间的结束**:*在这里,您可以根据自己的意愿设置圣诞节期间的开始或结束。 -在[卷帘百叶窗的额外设置](#extra-settings-roller-shutter)圣诞节设置下,此时所需的功能已打开,并且所需的卷帘位置已打开。 +在[卷帘门的额外设置](#extra-settings-roller-shutter)圣诞节设置下,此时所需的功能已打开,并且卷帘位置也已设置。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- -####节假日和公共假期设置 -![额外设置假期](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png) +#### 节假日及公众假期设置 +![extraSettings假期](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png) -**使用公共假日:** *通过激活此复选框并选择假日适配器的相应实例,百叶窗将在公共假日从周末开始的设定时间移动。 +**使用公共假期:** *通过激活此复选框并选择相应的假期适配器实例,百叶窗将在周末设定的时间在公共假期移动。 ->:point_right:如有必要,可以创建公共假期适配器的两个实例: > 一个显示所有可能的公共假期,另一个显示与工作时间相关的公共假期,然后由快门控制访问。 +>:point_right: 如有必要,可以创建两个公共假期适配器实例:> 一个显示所有可能的公共假期,另一个显示与工作时间相关的公共假期,然后由 shuttercontrol 访问。 -**用于设置假期的对象 ID: *此对象 ID 设置内部状态“假期”。 -例如,在这里,可以使用来自 iCal 适配器的数据点,在假期时返回值“`true`”,从而允许百叶窗在周末移动。 +**用于设置假日的对象 ID:*此对象 ID 设置内部状态“假日”。 +例如,可以使用来自 iCal 适配器的数据点,在假日的情况下返回值 ``true``,从而允许百叶窗在周末移动。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- #### 亮度传感器设置 ![额外设置亮度传感器](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png) -如果要使用亮度传感器自动移动百叶窗,请在此处进行配置。 +如果需要使用亮度传感器自动移动百叶窗,则可在此处进行配置。 -然后根据[主快门设置](#main-shutter-settings)对每个快门单独执行激活。 -在**关闭(或打开)卷帘百叶窗的控制类型**下,选择条目“亮度传感器”。 +然后,在[主快门设置](#main-shutter-settings)下对每个百叶窗单独进行激活。 +在**关闭(或打开)卷帘门的控制类型**下,选择条目“亮度传感器”。 -**使用亮度传感器关闭时的亮度值** *百叶窗关闭时的亮度值。 +**使用亮度传感器关闭的亮度值** *百叶窗关闭的亮度值。 -**使用亮度传感器打开的亮度值** *打开百叶窗的亮度值*。 +**使用亮度传感器打开的亮度值** *百叶窗打开的亮度值*。 -**亮度传感器的对象ID** *亮度传感器的参考,例如来自气象站或室外运动传感器或单独的亮度传感器。 +**亮度传感器的对象 ID** *对亮度传感器的引用,例如来自气象站或室外运动传感器或单独的亮度传感器。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- #### 学校假期设置 ![额外设置学校假期](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png) -在这里,可以通过带有 **用于激活/停用学校假期** 的对象 ID 的单独数据点或通过设置已安装 Schoolfree 适配器的实例的勾选来激活假期期间。 -然后在假期期间,百叶窗会在周末驾驶的设定时间打开。 +在这里,可以通过单独的数据点(带有**用于激活/停用学校假期的对象 ID**)或通过勾选已安装的 Schoolfree 适配器实例来激活假期。 +然后,百叶窗会在假期期间在周末驾驶的设定时间打开。 可以为每个区域单独激活假期模式。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- -####特殊时期 +特殊时刻 ![额外设置Sonder](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png) -**稍后关闭某些百叶窗** *此选项允许所有百叶窗在深夜再次降低。 -这涵盖了正常关闭窗户或门仍然打开的情况。 -窗户或门在正常关闭时间仍然打开,或者,例如,露台门在关闭后再次打开。 -设置复选标记后,将出现设置**配置的卷帘百叶窗应延迟关闭的时间**。 +**稍后关闭某些百叶窗** *此选项允许所有百叶窗在深夜再次降下。 +这涵盖了在正常关闭时间窗户或门仍打开的情况。 +窗户或门在正常关闭时间仍打开,或者例如,关闭后再次打开露台门。 +设置复选标记后,将出现设置**配置的卷帘门应延迟关闭的时间**。 -> 必须为 [快门设置](#shutter-settings) 中的每个百叶窗激活此功能,并在 **关闭卷帘百叶窗** 处单独勾选每个卷帘百叶窗的复选标记,或者在不需要时停用该功能。 +> 必须为[快门设置](#shutter-settings) 中的每个卷帘门激活此功能,并为每个卷帘门分别勾选**延迟关闭卷帘门**,如果不需要,则可停用。 -**将所有百叶窗完全关闭在中间位置** *所有百叶窗在晚上完全关闭的时间(例如晚上 10:00)*。 +**将所有百叶窗完全关闭在中间位置** *晚上所有百叶窗完全关闭的时间(例如晚上 10:00)*。 -**仅当最后一次移动 x 分钟前才打开卷帘:** *仅当此处设置的时间已过时,适配器才会打开卷帘。 -这里设定的时间已经过去了。 +**仅当 x 分钟前最后一次移动时才打开卷帘门:** *仅当此处设置的时间已过,适配器才会打开卷帘门。 +此处设置的时间已过。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- #### 额外设置 -![额外设置额外](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png) +![extraSettings额外](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png) -**检查当前快门状态:** 某些用户(其中包括 shelly 用户)存在级别稍微变化的问题。因此,这里有一个复选框。 -如果激活该复选框,shuttercontrol 将在检查快门状态的等待时间后检查当前级别,shuttercontrol 检查当前级别并暂时保存。 +**检查当前快门状态:** 一些用户(包括 shelly 用户)遇到级别稍有变化的问题。因此,这里有一个复选框。 +如果激活复选框,shuttercontrol 将在等待检查快门状态的时间后检查当前级别,shuttercontrol 检查当前级别并暂时保存。 -**阻止已知快门高度的手动模式** *向上或向下舍入当前快门高度*。 -这里,卷帘的位置可以按 5 或 10 的步长进行舍入。 +**阻止已知百叶窗高度的手动模式** *对当前百叶窗高度进行向上或向下舍入*。 +此处,卷帘门的位置可以按 5 或 10 的步长进行舍入。 -**睡眠区触发器的对象 ID(自动):** *此触发器激活睡眠区的自动模式。 +**睡眠区域触发器的对象 ID(自动):** *此触发器激活睡眠区域的自动模式。 -**生活区触发器的对象 ID(自动):** *此触发器激活生活区的自动模式。 +**生活区域触发器的对象 ID(自动):** *此触发器激活生活区域的自动模式。 **儿童区域触发器的对象 ID(自动):** *此触发器激活儿童区域的自动模式。 --- -#### 警报设置 -![额外设置闹钟](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png) +#### 闹钟设置 +![额外设置警报](../../../en/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png) ->:point_right:对于每个警报,激活需要一个逻辑数据点(真/假),> 激活 **警报** = 状态 **true** 或停用 **警报** = 状态 **错误的**。 ->:point_right:此外,必须为每个警报定义发生警报时卷帘门移动的高度 (0-100%)。 ->point_right:在相应快门的[报警设置](#alarm-setting)中,定义快门应对哪些警报做出反应。 -快门应该有反应。 +>:point_right: 对于每个警报,都需要一个逻辑数据点 (true/false) 来激活,> 激活 **alarm** = 状态 **true** 或停用 **alarm** = 状态 **false**。 +>:point_right: 此外,必须为每个警报定义卷帘门在发生警报时移动的高度 (0-100%)。 +>point_right: 在相应卷帘门的 [报警设置](#alarm-setting) 中,定义卷帘门应对哪些警报作出反应。 +卷帘门应作出反应。 各个警报的优先级: Prio 1(最高优先级)--> 火灾: -如果触发此警报,则为其配置的卷帘在**任何**情况下都会移动到设定高度。 ->:感叹号:百叶窗随后被阻挡,即使火警被重置(假),也不会自动关闭。 +如果触发此警报,则为其配置的卷帘门将在**任何**情况下移动到设定的高度。 +>:exclamation: 然后卷帘门将被阻塞,并且**不会**自动关闭,即使火灾警报被重置(错误)。 ->:point_right:火警重置后,必须使用“openAll”/“closeAll”按钮重新初始化百叶窗。 -这可以防止卷帘在发生火灾时因任何原因再次自动关闭。 -它还确保逃生路线保持畅通,并保证消防队能够进入。 +>:point_right:火灾警报重置后,必须使用“openAll”/“closeAll”按钮重新初始化百叶窗。 +这可防止卷帘在发生火灾时因任何原因再次自动关闭。 +它还可确保逃生路线保持畅通,并保证消防队的通行。 -Prio 2 - 5(相同优先级)--> 雨、风2、风1、霜: +优先级 2 - 5(相同优先级)--> 雨、风 2、风 1、霜冻: -当这些警报被激活时,Shuttercontrol 将配置的卷帘移至最后一个活动警报级别。 +当这些警报被激活时,Shuttercontrol 会将配置的卷帘门移至最后一个活动的警报级别。 -然而,当停用各个警报时,会遵循以下优先级: Prio 1 = 火灾 Prio 2 = 雨 Prio 3 = 风 2 Prio 4 = 风 1 Prio 5 = 霜冻 +但是,当停用单个警报时,会观察到以下优先级: 优先级 1 = 火灾 优先级 2 = 雨 优先级 3 = 风 2 优先级 4 = 风 1 优先级 5 = 霜冻 -仅当激活的卷帘已关闭时,霜冻警报才会产生直接影响(卷帘冻结的危险)。如果卷帘门仍打开时触发霜冻警报,则卷帘门仅在关闭时自动移动到霜冻警报设定的高度。 +霜冻警报仅在已激活的卷帘已关闭时才直接起作用(卷帘冻结的危险)。如果在卷帘仍处于打开状态时触发霜冻警报,则卷帘仅在关闭时自动移动到霜冻警报设置的高度。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- ### 快门设置 -![主1](../../../en/adapterref/iobroker.shuttercontrol/img/main1.png) +![main1](../../../en/adapterref/iobroker.shuttercontrol/img/main1.png) ->:point_right: 示例执行器*快门示例*是自动创建的,请通过垃圾箱(5)将其删除。 +>:point_right: 示例执行器*shutter example* 是自动创建的,请通过垃圾箱(5)将其删除。 -现在,单击 (+) (1) 添加您自己的快门执行器。 ID 选择打开并选择代表所需卷帘位置的数据点 LEVEL。 +现在点击 (+) (1) 添加您自己的卷帘门执行器。ID 选择打开,选择代表所需卷帘门位置的数据点 LEVEL。 ![ID_Selector_DP_Levelg](../../../en/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png) -表的结构: +表格结构: ![标签](../../../en/adapterref/iobroker.shuttercontrol/img/main1.png) -* **编号:** *列出的百叶窗的连续编号*。 +* **编号**:*列出的百叶窗的连续编号*。 -* **激活:** *用于激活/停用相应卷帘控制的复选框*。 +* **活动**: *用于激活/停用相应卷帘门控制的复选框*。 -* **名称:** *选择 ID 时,会自动从对象中读取执行器的名称 +* **名称** *选择 ID 后,将自动从对象中读取执行器的名称 然后可以根据自己的意愿进行更改。 -* **对象 ID 快门:** *对象中要控制的数据点的唯一 ID*。 +* **对象 ID 快门**:*对象中要控制的数据点的唯一 ID*。 * **(+)** *更改选定的卷帘执行器* * **铅笔** * *修改选定的卷帘执行器 * **铅笔** *打开相应卷帘的单独配置*。 -* **双张:** *复印卷帘* +* **双张纸:** *复印卷帘* -* **箭头:** *使用相同的设置确定卷帘的移动顺序。 +* **箭头** *使用相同设置确定卷帘门移动的顺序。 -* 垃圾桶:* *删除快门执行器以及所有配置的数据。 +* 垃圾桶:* *删除百叶窗执行器及其所有配置数据。 -创建卷帘百叶窗后,使用标签[卷帘百叶窗的主要设置](#main-shutter-settings)、[防晒设置](#sun-protection-settings) 和 [额外设置]](#extra-settings)按相应卷帘百叶窗上的铅笔 (3),每个百叶窗将进一步单独配置。 +卷帘门制作完成后,用铅笔(3)按压相应卷帘门上的标签[卷帘门的主要设置](#main-shutter-settings)、[防晒设置](#sun-protection-settings) 和 [额外设置](#extra-settings),可对每个卷帘门进行单独配置。 --- -#### 主要快门设置 -![主快门.png](../../../en/adapterref/iobroker.shuttercontrol/img/mainShutter.png) +#### 主快门设置 +![主要快门.png](../../../en/adapterref/iobroker.shuttercontrol/img/mainShutter.png) -在上部区域,打开或关闭快门的时间可以通过下拉菜单单独选择。 -> :point_right:这些时间已在 [时间设置](#time-settings) 中配置。 +在上面区域,通过下拉菜单分别选择打开或关闭快门的时间。 +> :point_right: 这些时间已在[时间设置](#time-settings) 中配置。 选择选项: -* **关闭:** *不要使用计时器。 +* **关闭**:不使用计时器。 -* **起居区:** *快门按照*起居区设置*中配置的时间移动。 +* **生活区域** *快门按照*生活区域设置*中配置的时间移动。 -* 起居区(自动):** * *卷帘百叶窗按照*起居区设置*中配置的时间移动。 +* 生活区域(自动):** * *卷帘门按照*生活区域设置*中配置的时间移动。 -**并且** 此外,快门会响应额外设置下定义的触发器而激活。 -用于激活/停用汽车生活区的对象 ID。如果此设置为 false,卷帘将**不会**自动移动。 +**并且**此外,卷帘响应在额外设置下定义的触发器而激活。 +用于激活/停用自动生活区的对象 ID。如果将其设置为 false,卷帘将**不会**自动移动。 -* 卷帘百叶窗按照*睡眠区设置*中配置的时间移动。 +* 卷帘门按照“睡眠区设置”中配置的时间移动。 -* 卷帘百叶窗按照*睡眠区设置*中配置的时间移动。 +* 卷帘门按照*睡眠区设置*中配置的时间移动。 -**并且** 此外,快门会响应额外设置下指定的触发器而激活。 +**并且**此外,快门会根据在额外设置下指定的触发器而激活。 用于激活/停用自动睡眠区域的对象 ID。 -如果设置为 false,卷帘将**不会**自动移动。 +如果将其设置为 false,则卷帘门**不会**自动移动。 -* 儿童区: * *卷帘百叶窗按照*儿童区设置*中配置的时间移动。 +* 儿童区:* *卷帘门按照“儿童区设置”中配置的时间移动。 -* 儿童区(自动):* *卷帘按照*儿童区设置*中配置的时间移动。 +* 儿童区(自动):* *卷帘门按照“儿童区设置”中配置的时间移动。 -**并且** 此外,快门会响应额外设置下定义的触发器而激活。 +**并且**此外,快门是根据在额外设置下定义的触发器激活的。 用于激活/停用自动儿童区域的对象 ID。 -如果设置为 false,快门将**不会**自动移动。 +如果将其设置为 false,快门将**不会**自动移动。 * 日落/日出:** * *快门在日落或日出时移动。 -* 太阳高度:如果高度低于此处设置的值,则卷帘关闭。 +* 太阳高度:如果高度低于此处设置的值,卷帘门将关闭。 -* 黄金时段:** * *卷帘在黄金时段关闭,根据纬度和一年中的时间,卷帘门关闭时间约为 15 分钟。日落前或日出后 1 小时。 +* 黄金时段:** * *卷帘门在黄金时段关闭,具体时间取决于纬度和一年中的时间,大约在日落前 1 小时或日出后。 -日落之前或日出之后,具体取决于纬度和一年中的时间。 +日落之前或日出之后,取决于纬度和时间。 -* 亮度传感器:** * *卷帘仅根据亮度传感器移动,亮度传感器在[亮度传感器设置](#brightness-sensor-settings)下设置。 +* 亮度传感器:** * *卷帘门仅根据亮度传感器移动,亮度传感器在[亮度传感器设置](#brightness-sensor-settings)下设置。 -* 仅限手动操作:** * *卷帘只能沿选定方向手动移动。 +* 仅手动操作:** * *卷帘门只能按选定的方向手动移动。 -:point_right: 无法通过“`shuttercontrol.0.control`”下的按钮进行移动。 -point_right:这对于遮阳篷很有用,例如,遮阳篷不应与其他卷帘百叶窗一起打开。 +:point_right: 无法通过 ``shuttercontrol.0.control`` 下的按钮进行任何移动。 +point_right: 这对于遮阳篷很有用,例如,遮阳篷不应与其他卷帘一起打开。 不应与其他百叶窗一起打开。 -**门窗传感器在关闭状态下的值:** *这里定义了**门窗触点对象ID**下的触发器(例如窗或门触点)可以具有的值。 -(例如窗户或转动手柄接触),允许自动卷帘系统无限期移动。 +**关闭状态下的窗/门传感器的值:** *此处,定义 **窗/门触点的对象 ID** 下的触发器(例如,窗或门触点)可以具有的值。 +(例如,窗或转动手柄触点),在此状态下,自动卷帘系统可以无限移动。 :point_right: 可以选择 true、false、0、1 或 2 等值。 -> point_right:如果卷帘门不在最上面的位置并且此处指定的传感器状态发生变化,则卷帘门移动到最上面的位置。 -传感器状态发生变化,卷帘门移动到**门窗打开时的**卷帘门高度**。 +> point_right: 如果卷帘门不在最上部位置,并且此处指定的传感器状态发生变化,则卷帘门移动到最上部位置。 +传感器状态发生变化,卷帘门移动到**窗户或门打开时的卷帘门高度**。 -**倾斜状态下门窗传感器的值:** *这设置了**门窗触点的对象 ID**(例如窗或门触点)下的触发器设置的值。 -(例如窗户或转动手柄接触),允许自动卷帘系统无限期移动。 +**倾斜状态下的窗户/门传感器的值:** *这将设置**窗户/门触点(例如窗户或门触点)的对象 ID 下的触发器的值。 +(例如窗户或转动手柄触点),在此值下,自动卷帘系统可以无限移动。 :point_right: 可以选择 true、false、0、1 或 2 等值。 -> point_right:如果卷帘门不在最上面的位置并且此处指定的传感器状态发生变化,则卷帘门移动到最上面的位置。 -传感器状态发生变化,卷帘门移动到**门窗打开时的**卷帘门高度**。 +> point_right: 如果卷帘门不在最上部位置,并且此处指定的传感器状态发生变化,则卷帘门移动到最上部位置。 +传感器状态发生变化,卷帘门移动到**窗户或门打开时的卷帘门高度**。 -> :感叹号:如果不存在具有倾斜功能的窗口接触,则该值应设置为“不存在”。 +> :exclamation: 如果不存在具有倾斜功能的窗口接触,则应将该值设置为“不存在”。 -**当门窗状态改变时移动卷帘:** *应执行下拉选择当门窗传感器移动时要执行的功能:* +**当窗户/门状态改变时移动卷帘:** *下拉选择当窗户/门传感器移动时要执行的功能:* -**关闭**:无运动 +**关闭**:无动作 -* **打开**:打开窗/门时,百叶窗向上移动并保持在那里,关闭时百叶窗不移动。 -* **关闭**:关闭门窗后,卷帘移动到遮光位置,打开时卷帘不动。 +* **打开**:打开窗户/门时,百叶窗向上移动并保持在那里,关闭时百叶窗不动。 +* **关闭**:关闭窗户/门后,卷帘移动到遮光位置,打开时,卷帘不动。 -**打开和关闭:** 打开窗/门时,卷帘向上移动,关闭时再次向下移动。 +**打开和关闭:**当窗户/门打开时,卷帘门向上移动,当窗户/门关闭时,卷帘门再次向下移动。 -**打开窗户或门时卷帘高度:** *所需卷帘位置为 0-100,例如窗户 25% 用于通风,或者门 100% 能够通过。 -以便门能够通过。 +**打开窗户或门时的卷帘高度:** *所需的卷帘位置从 0 到 100,例如,对于窗户,25% 用于通风,或 100% 以使门能够通过。 +以使门能够通过。 -**门窗倾斜时卷帘高度:** *所需卷帘位置为 0-100,例如窗户 25% 用于通风。 +**窗户或门倾斜时的卷帘高度:** *所需卷帘位置从 0 到 100,例如对于窗户,25% 用于通风。 -**即使在门窗打开时也使用自动卷帘门(锁定保护)** * *如果在自动关闭时,门窗传感器__不__对应于此处输入的值(门窗关闭) ),将根据所选设置执行以下操作:**。 +**即使窗户/门打开时也使用自动卷帘(锁定保护)** **如果在自动关闭时,窗户/门传感器__不__对应于那里输入的值(窗户/门关闭),则将根据所选设置执行以下操作:** -* **关闭**:锁定保护在两个方向上均处于活动状态,窗户打开时百叶窗不会移动。 -* **开放**:只允许加注。在变暗/遮光结束时,即使窗户打开,卷帘也会向上移动。当窗户打开时,卷帘门不会自动关闭。 -* **关闭**:仅允许关闭。在变暗/遮光开始时,尽管窗户打开,卷帘仍向下移动。窗户打开时,卷帘门不会打开。 -* **打开和关闭**:当窗户打开时,卷帘可以向两个方向移动。 +* **关闭**:锁定保护在两个方向上均有效,当窗户打开时百叶窗不会移动。 +* **打开**:仅允许升起。在遮光/遮光结束时,即使窗户打开,卷帘也会向上移动。窗户打开时,卷帘不会自动关闭。 +* **关闭**:只允许关闭。在开始变暗/遮光时,卷帘会向下移动,尽管窗户是打开的。当窗户打开时,卷帘不会打开。 +* **打开和关闭**:窗户打开时,卷帘可以向两个方向移动。 -**卷帘向下移动时的高度:** *卷帘关闭时的位置值。 +**卷帘门向下移动时的高度** *卷帘门关闭时的位置值。 -**卷帘门升起时的高度:** *卷帘门打开时的位置值*。 +**卷帘升起时的高度:** *卷帘打开时的位置值*。 -> :point_right:必须根据所使用的执行器输入卷帘高度(0-100 或 0-255): > 0 = 关闭且 100 = 打开或 0 = 打开且 100 = 关闭。 +> :point_right: 必须根据所使用的执行器输入卷帘高度(0-100 或 0-255):> 0 = 关闭且 100 = 打开或 0 = 打开且 100 = 关闭。 -**门窗触点的对象 ID:** 使用 (+) 选择防止卷帘运动的传感器(状态)(例如门触点)。 +**窗户/门触点的对象 ID:**使用 (+) 选择用于防止卷帘移动的传感器(状态)(例如门触点)。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- #### 防晒设置 ![防晒](../../../en/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png) -**防晒控制类型:** 可以使用遮光及其结束的各种触发器来控制防晒,可以通过下拉菜单选择以下组合: +**防晒控制类型**:可以使用各种触发器来控制遮阳及其结束,可以通过下拉菜单选择以下组合: -* 在......之外 -* 室内外温度/光照传感器 -* 指南针方向(太阳位置) -* 室内/室外温度/光线传感器和基本方向 -* 室外温度/光传感器和方向 +* 超出 +* 室内和室外温度/光线传感器 +* 罗盘方向(太阳位置) +* 室内/室外温度/光传感器及基本方向 +* 室外温度/光线传感器及方向 * 室外温度/光照传感器 * 室内温度 -> :point_right:仅当所选组合的所有触发器均处于活动状态(逻辑 AND 连接)时,防晒保护才会触发,并在其中一个触发器变为非活动状态时结束。 +> :point_right: 仅当选定组合的所有触发器都处于活动状态(逻辑与连接)时,防晒功能才会触发,并且当其中一个触发器变为非活动状态时,防晒功能就会结束。 -> :point_right:还必须为所有选定的触发器存储对象 ID。 +> :point_right: 还必须为所有选定的触发器存储对象 ID。 -> :point_right:光传感器始终是可选的,并且可以保持为空。如果配置了光传感器,则它与其他参数 AND 关联。 +> :point_right: 光传感器始终是可选的,可以保留为空。如果配置了光传感器,则它与其他参数 AND 链接。 -**下移时卷帘高度:** *遮阳时卷帘应关闭多远的数值。* +**卷帘向下移动时的高度** *遮光时卷帘应关闭的距离值。* -**方向(太阳位置):** *罗盘上窗口的对齐方式(0° = 北;180° = 南)* +**方向(太阳位置):** *罗盘玫瑰上的窗口对齐(0° = 北;180° = 南)* -**+/- 主动防晒的太阳位置范围:** *太阳(中心点周围)会干扰窗户的区域。该区域之外没有阴影。* +**+/- 主动防晒太阳位置范围:** *太阳(中心点附近)会干扰窗户的区域。此区域外没有遮光。* -**室外温度设定值:** *遮光从此值(或更高)开始。* +**设定室外温度:** *遮阳从该值(或更高)开始。* -**室外温度迟滞(百分比):** *在这里您可以设置百分比迟滞,以便卷帘百叶窗在波动时不会不断上下移动。*迟滞是遮阳应达到的上限温度值之间的差异开始和遮蔽再次结束时的较低温度值。 +**室外温度滞后(百分比):** *您可以在此处设置百分比滞后,以便波动时的卷帘不会不断上下移动。*滞后是遮光应开始的上限温度值与遮光再次结束的下限温度值之间的差值。 -**室外温度对象 ID:** 此处通过 (+) 选择的传感器不一定要测量室外温度。他可以提供任何可用于触发着色的值。 +**室外温度对象 ID:** 此处通过 (+) 选择的传感器不一定非要测量室外温度。他可以提供任何可用于触发遮光的值。 这也可以是热传感器(温差传感器)。 -如果没有选择室外传感器作为触发器,请将此字段留空。 +如果未选择室外传感器作为触发器,请将此字段留空。 -**防晒光传感器的设定点:** *开始遮阳的阈值。*该值取决于在 **防晒光传感器的对象 ID** 字段中选择的传感器。 +**遮阳光传感器的设定点:** *启动遮光的阈值。*该值取决于在 **遮阳光传感器的对象 ID** 字段中选择的传感器。 -**迟滞光传感器(百分比):** 在这里您可以设置一个向下的迟滞百分比,这样当云层变化引起波动时,卷帘百叶窗就不会不断地上下移动。 -滞后是遮蔽应开始的设定点与遮蔽应开始再次结束的较低亮度值之间的差值。 +**滞后光传感器(百分比):** 在这里,您可以设置向下滞后的百分比,以便当云层变化引起波动时,卷帘不会不断上下移动。 +滞后是阴影应开始的设定点与阴影应再次开始的较低亮度值之间的差值。 -> :point_right: 示例:防晒光传感器的设定点设置为 30,000,迟滞为 40%:防晒保护从 30,000 开始激活,并保持激活状态,直到值低于 18,000。 +> :point_right: 示例:防晒光传感器的设定点设置为 30,000,滞后设置为 40%:防晒功能从 30,000 开始激活,并保持激活状态,直到值低于 18,000。 -**防晒光传感器的对象 ID:** *模拟室外温度传感器* 如果未选择作为触发器,请留空 +**防晒光传感器的对象 ID:** *模拟外部温度传感器* 如果未选择为触发器,请留空 -**设定点室内温度:** 在此,您可以输入分配给卷帘百叶窗的内部温度传感器的温度,在该温度下不应进行任何遮蔽,例如为了减少热量,以在冬季使用辐射来支持加热。 +**设定点室内温度:**在这里您可以输入分配给卷帘的内部温度传感器的温度,必须输入在该温度之下不应进行遮光,例如为了减少冬天使用辐射来支持供暖的热量。 -**迟滞内部温度(百分比):** *在这里您可以设置一个以百分比为单位的迟滞,以便卷帘在内部温度波动时不会不断地上下波动。* 迟滞是指与温度上限之间的差值。遮蔽应开始,遮蔽再次结束时的较低温度值。 +**内部温度滞后(百分比):** *您可以在此处设置百分比滞后,以便卷帘门在内部温度波动时不会不断上升和下降。*滞后是遮光开始的上限温度值与遮光再次结束的下限温度值之间的差值。 **室内温度传感器对象 ID:** 使用 (+) 选择温度传感器。 -如果没有选择室内传感器作为触发器,请将此字段留空。 +如果未选择室内传感器作为触发器,请将此字段留空。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- -#### 额外设置卷帘百叶窗 -![主要额外](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtra.png) +#### 额外设置卷帘门 +![主要附加](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtra.png) -#### 卷帘快门设置 +#### 卷帘门设置 ![主要额外快门设置](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png) -**延迟关闭卷帘** 使用此选项,卷帘在定义的时间激活(可在 [特殊时期](#special-times) 中调整),同时也会关闭。 -> :感叹:此处未考虑锁定保护,尽管窗户打开,但卷帘仍会降低! (有被锁在门外的危险!!):感叹: +**延迟关闭卷帘** 使用此选项,卷帘将在定义的时间(可在[特殊时期](#special-times)中调整)启动并关闭。 +> :exclamation: 这里不考虑锁定保护,尽管窗户打开,卷帘也会降低!(有被锁定的危险!!):exclamation: -**夏天不要关闭卷帘** 有些卷帘夏天不宜关闭。该时期为 [夏季设置](#summer-settings) 的夏季。 +**夏季请勿关闭卷帘** 某些卷帘在夏季不应关闭。[夏季设置](#summer-settings) 中的时间段为夏季。 -**关闭车窗后驱动** 车窗/门关闭后,卷帘将设置为最后请求的设置 位置驱动。 +**关窗后驱动** 窗户/门关闭后,卷帘将设置为最后请求的设置位置驱动。 -> :point_right: 仅当锁定保护未设置为“关闭”时才有效! +> :point_right: 仅当锁定保护未设置为“关闭”时,此功能才有效! #### 圣诞节设置 -![主要额外圣诞节](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png) +![主要额外圣诞](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png) -如果卷帘在圣诞节期间仅应部分关闭,因为蜡烛拱门或类似物应保持可见,则可以使用此选项。卷帘门将不会在正常关闭时间完全关闭,而只会被驱动至可设定的水平关闭。 -> :point_right: **仅当设置了 **使用圣诞节时的卷帘级别** 的复选标记时,**圣诞节时的卷帘级别**才可见且可调节。 +如果卷帘门在圣诞节期间只应部分关闭,因为如果烛台拱门或类似物应保持可见,则可以使用此选项。卷帘门将不会在正常关闭时间完全关闭,而只会关闭到可以设置的水平。 +> :point_right: **圣诞节期间的卷帘门水平**仅在选中**圣诞节期间的卷帘门水平**时才可见且可调。 -该功能应激活的时间段在[圣诞节设置](#christmas-settings)设置下设置。 -> :point_right: 如果要在晚上晚些时候完全关闭卷帘,可以使用此选项 > **延迟关闭卷帘** 或 **移动到中间位置并稍后完全关闭** > 可以使用。 -> :point_right:这两个选项也可以独立于圣诞节设置使用。 +应激活此功能的时间段在[圣诞节设置](#christmas-settings) 设置下设置。 +> :point_right: 如果要在晚上晚些时候完全关闭卷帘门,则可以使用此选项 > **稍后关闭卷帘门** 或 **移动到中间位置并稍后完全关闭** > 可以使用。 +> :point_right: 这两个选项也可以独立于圣诞节设置使用。 #### 防晒设置 -![主要额外太阳](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png) +![主要ExtraSun](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png) -**保持卷帘处于防晒状态** 如果打开此选项,即使不再有任何防晒要求,卷帘百叶窗也会保持在防晒状态,直到“关闭”为止晚上有信号。 -这样可以防止卷帘每天上下多次。 -当高度保持较低(选中选项)时,在盲操作中非常实用,只需打开和关闭板条即可。 +**保持卷帘处于防晒状态** 如果打开此选项,卷帘将保持防晒状态,即使不再需要防晒,并且一直保持防晒状态直到晚上“关闭”信号到来。 +这可以防止卷帘每天上下多次。 +当高度保持较低(选中选项)时,在百叶窗操作中非常实用,只需打开和关闭板条即可。 -**热保护** 此选项允许卷帘在炎热天气下完全关闭。 -激活此选项后,将出现用于输入温度(°C)的字段。 +**亮度下降到遮光结束的延迟时间(分钟)** 此处设置当遮光变暗且亮度低于设定水平时应延迟的时间。 +默认值为 0,可根据需要进行调整。此选项仅与亮度传感器配合使用 -> :point_right:如果手动调节卷帘且位置与自动位置不对应,自动系统将停止! +**防热** 此选项允许卷帘在炎热天气下完全关闭。 +激活此选项后,将出现输入温度(°C)的字段。 -> :point_right:如果手动将卷帘移动到配置的打开、关闭或防晒高度,则自动功能保持不变。 +> :point_right: 如果手动调整卷帘门但位置与自动调整不符,则自动系统将停止! + +> :point_right: 如果卷帘手动移动到配置的高度以进行打开、关闭或防晒,则自动功能保持不变。 #### 额外设置 -![主要额外额外](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png) +![主要附加功能](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png) -**打开窗户时卷帘延迟** *打开窗/门后延迟打开卷帘的参数(以秒为单位)* +**打开窗户时卷帘门的延迟时间(秒)** *打开窗户/门后卷帘门打开的延迟参数(以秒为单位)* -**关闭窗户时卷帘延迟** *门窗关闭后延迟卷帘关闭的参数(以秒为单位)* +**关闭窗户时卷帘门的延迟时间(秒)** *关闭窗户/门后卷帘门关闭的延迟时间(秒为单位)* -**移动到中间位置,然后完全关闭** *激活后,**中间位置的卷帘高度**变得可见。然后卷帘门在关闭时移动到设定的中间位置,然后完全关闭* +**移至中间位置,然后完全关闭** *激活后,**中间位置的卷帘高度**将变为可见。卷帘在关闭时会移至设置的中间位置,然后完全关闭* #### 闹钟设置 ![主要额外警报](../../../en/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png) -此处,通过 [报警设置](#alarm-setting) 为当前卷帘预定义的警报被激活或停用。 +这里可以通过[警报设置](#alarm-setting)激活或停用当前卷帘门预定义的警报。 -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ --- -## 数据点 +数据点 Shuttercontrol 在以下文件夹下创建各种数据点: -* 快门控制.x.control -* 快门控制.x.info -* 快门控制.x.快门 +* 快门控制.x.控制 +* shuttercontrol.x.信息 +* shuttercontrol.x.shutters > :point_right: x 代表相应安装的实例 --- -### 快门控制0控制 +### Shuttercontrol0控制 ![数据点控制](../../../en/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png) -用于控制各种功能的数据点,例如: *假日 *如果```true```,则卷帘百叶窗在周末和晚上的设定时间移动 +数据点控制各种功能,如:*假日*如果```true```,卷帘门在周末和晚上的设定时间移动 ```false``` during weekday hours.* > :point_right: Can use your own scripts that calculate or display vacation, days off, etc. @@ -643,30 +645,48 @@ _[Back to top](#documentation-and-instructions-for-shuttercontrol)_ * autoDown *For each roller shutter, automatic closing can be deactivated here with ```false``` -或使用 ```true```.* 激活 +或使用```true```激活。* -* 自动级别 +* 自动调平 -*显示每个卷帘百叶窗的当前位置(卷帘百叶窗无法通过此控制)。* +*显示每个卷帘门的当前位置(卷帘门无法通过此处控制)。* * 自动状态 -*显示每个卷帘百叶窗的当前状态(向上、向下、Manu_Mode、sunProtect)(无法通过此控制卷帘百叶窗)。* +*显示每个卷帘门的当前状态(上、下、Manu_Mode、sunProtect)(卷帘门无法通过此控制)。* * 自动太阳 -*可使用 ```false``` 禁用每个卷帘的防晒功能,或使用 ```true``` 激活每个卷帘的防晒功能。* +*每个卷帘门的防晒功能均可通过```false```停用,或通过```true```启用。* -* 自动上升 +* 自动向上 -*对于每个卷帘,可以使用 ```false``` 禁用自动打开功能,或使用 ```true``` 激活自动打开功能。* +*对于每个卷帘门,可以在此处使用```false```停用自动开启功能,或使用```true```启用自动开启功能。* -_[回到顶部](#documentation-and-instructions-for-shuttercontrol)_ +_[返回顶部](#documentation-and-instructions-for-shuttercontrol)_ ## Changelog ### __WORK IN PROGRESS__ * (simatec) Dependencies updated +* (simatec) Fix End-Delay for Sunprotect +* (simatec) Update Translations +* (simatec) Trigger changed +* (simatec) Code revision and improvements +* (simatec) many small fixes +* (simatec) Fix Sunprotect end by Shutter up +* (simatec) Fix Shutter up when open the Window +* (simatec) Test & Release updated +* (simatec) Fix Trigger + +### 1.7.3 (2024-06-20) +* (simatec) Fix Sunprotect End-Delay + +### 1.7.2 (2024-06-20) +* (simatec) Fix Shutterstate enabled + +### 1.7.1 (2024-06-19) +* (simatec) Dependencies updated * (simatec) Docu updated ### 1.7.0 (2024-02-05) diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png index dbb719d50..f60251d43 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAlarm.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png index e5967d02d..182eb42ba 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsAstro.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png index d073552f9..fe3ec364a 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsBrightnesssensor.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png index f6719ed0c..95735c552 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsChristmas.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png index 07e6697ae..8cc6bd568 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsExtra.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png index 5faafda61..f665957dd 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsHolidays.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png index 05a8dad11..d051d5299 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSchoolholidays.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png index f5d4c2c25..1a2a9c70b 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSonder.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png index 9c9461411..73769e14b 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ExtraSettingsSummer.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png index 0c3ef4dee..7c437148b 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/ID_Selector_DP_Level.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png index e56abce6f..6846ff21a 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/KonfigExtra.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png index 19e078099..37c0e0da7 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointscontrol.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsinfo.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsinfo.png index 59a8d6b39..6e9878cab 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsinfo.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsinfo.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsshutters.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsshutters.png index 5710db42e..a8f8ec9a8 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsshutters.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/datapointsshutters.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main.png index dbaf2c64d..407e0c3d6 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main1.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main1.png index e07d60f32..947464faa 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main1.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/main1.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtra.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtra.png index 94708ccd1..0a38fa383 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtra.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtra.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png index 9d12b217f..d124b18d0 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraAlarm.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png index 056ff1f05..bcdb89a42 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraChristmas.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png index ce44aa09c..d4648ab61 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraExtra.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png index 438eafadc..86a7aa0ba 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraShutterSettings.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png index 3a85e51cf..153db4bd6 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainExtraSun.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainShutter.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainShutter.png index be9b09e30..d7bae2f70 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainShutter.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainShutter.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png index a48500dd2..b51bb75f0 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/mainSunprotect.png differ diff --git a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/timeSettings.png b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/timeSettings.png index bcae8acab..2e9f5c2c9 100644 Binary files a/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/timeSettings.png and b/docs/zh-cn/adapterref/iobroker.shuttercontrol/img/timeSettings.png differ diff --git a/docs/zh-cn/adapterref/iobroker.simple-api/README.md b/docs/zh-cn/adapterref/iobroker.simple-api/README.md index e180fc75c..e3c2904b3 100644 --- a/docs/zh-cn/adapterref/iobroker.simple-api/README.md +++ b/docs/zh-cn/adapterref/iobroker.simple-api/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.simple-api/README.md title: 简单 API -hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= +hash: uZ6qv91MUDsp64vaDdJZv17hn5SFo1Qn8zeHBd097Ec= --- ![标识](../../../en/adapterref/iobroker.simple-api/admin/simple-api.png) @@ -14,7 +14,7 @@ hash: 4RFMQDhl6Ykf1fKcCSeay0BhY4g6WW5/qXLN8c7sGhs= # 简单 API ![测试与发布](https://github.com/ioBroker/ioBroker.simple-api/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/simple-api/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -这是 RESTFul 接口,用于从 ioBroker 读取对象和状态以及通过 HTTP Get/Post 请求写入/控制状态。 +这是一个 RESTFul 接口,用于从 ioBroker 读取对象和状态并通过 HTTP Get/Post 请求写入/控制状态。 **此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 @@ -179,7 +179,7 @@ http://ipaddress:8087/set/javascript.0.test?value=1&prettyPrint&ack=true `http://ipaddress:8087/objects?pattern=system.adapter.admin.0.*` - 读取分支 `system.adapter.admin.0` 中的所有状态 -### 状态 +### 州 ### 搜索 如果配置中设置了数据源(历史记录、SQL),则仅列出数据源已知的数据点。 如果已激活“列出所有数据点”选项或未指定数据源,则将列出所有数据点。 @@ -190,7 +190,7 @@ Grafana JSON / SimpleJSON 插件需要此命令。 Grafana JSON / SimpleJSON 插件需要此命令。 ### 帮助 -返回[这](#usage)输出 +返回 [这](#usage) 输出 ## 用法 假设我们没有安全性并且服务器在默认端口 8087 上运行。 @@ -430,7 +430,7 @@ Grafana JSON / SimpleJSON 插件需要此命令。 ``` -### 状态 +### 州 获取模式的所有状态列表。如果没有指定模式,则将返回所有状态作为 JSON 数组。 ```http://ip:8087/states?prettyPrint``` @@ -613,6 +613,12 @@ http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint ### **正在进行中** --> ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Updated packages + +### 2.8.0 (2024-05-23) +* (foxriver76) ported to `@iobroker/webserver` + ### 2.7.2 (2022-10-08) * (Apollon77) Prepare for future js-controller versions @@ -772,7 +778,7 @@ http://ip:8087/search?pattern=system.adapter.admin.0*&prettyPrint ## License The MIT License (MIT) -Copyright (c) 2015-2022 bluefox +Copyright (c) 2015-2024 bluefox 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.squeezeboxrpc/README.md b/docs/zh-cn/adapterref/iobroker.squeezeboxrpc/README.md index e780b0efc..860ae5238 100644 --- a/docs/zh-cn/adapterref/iobroker.squeezeboxrpc/README.md +++ b/docs/zh-cn/adapterref/iobroker.squeezeboxrpc/README.md @@ -2,220 +2,462 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.squeezeboxrpc/README.md -title: 通过JSON / RPC协议的ioBroker Logitech Squeezebox适配器 -hash: qKPsRUM5+1VQuVVtnDRARZTTlf1qsUsPvAGN0hZljgE= +title: 通过 JSON/RPC 协议的 ioBroker Logitech Squeezebox 适配器 +hash: ApQx3ISC5vhk8iOmN++3gMfLBg2a4pNQLkFTGh1r4eI= --- -![商标](../../../en/adapterref/iobroker.squeezeboxrpc/admin/squeezeboxrpc.png) +![标识](../../../en/adapterref/iobroker.squeezeboxrpc/admin/squeezeboxrpc.png) -![安装数量](http://iobroker.live/badges/squeezeboxrpc-installed.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.squeezeboxrpc.svg) -![资料下载](https://img.shields.io/npm/dm/iobroker.squeezeboxrpc.svg) -![特拉维斯](https://img.shields.io/travis/oweitman/ioBroker.squeezeboxrpc.svg) -![AppVeyor构建状态](https://img.shields.io/appveyor/ci/oweitman/iobroker-squeezeboxrpc.svg) -![GitHub问题](https://img.shields.io/github/issues/oweitman/ioBroker.squeezeboxrpc.svg) +![NPM 版本](https://img.shields.io/npm/v/iobroker.squeezeboxrpc.svg) +![下载](https://img.shields.io/npm/dm/iobroker.squeezeboxrpc.svg) +![安装数量](https://iobroker.live/badges/squeezeboxrpc-installed.svg) +![稳定存储库中的当前版本](https://iobroker.live/badges/squeezeboxrpc-stable.svg) +![新平台](https://nodei.co/npm/iobroker.squeezeboxrpc.png?downloads=true) -#通过JSON / RPC协议的ioBroker Logitech Squeezebox适配器 -这是一个替代适配器,它使用JSON / RPC-Protokoll获取数据并将命令发送到Logitech媒体服务器([LMS](https://de.wikipedia.org/wiki/Logitech_Media_Server)),以控制已连接的设备,例如 +# IoBroker Logitech Squeezebox 适配器通过 JSON/RPC 协议 +**测试:**![测试与发布](https://github.com/oweitman/ioBroker.squeezeboxrpc/workflows/Test%20and%20Release/badge.svg) -*原生[squeezebox](https://de.wikipedia.org/wiki/Squeezebox), -*树莓派,带有附加的音频模块和基于小型Linux的固件,例如[picoreplayer](https://picoreplayer.org/)或[max2play](https://www.max2play.com)。 -*带有chromecast,airplay或UPnP / DLNA设备插件 +这是一个替代适配器,它使用 JSON/RPC 协议获取数据并向 Logitech 媒体服务器 ([语言管理系统](https://de.wikipedia.org/wiki/Logitech_Media_Server)) 发送命令,以控制连接的设备,例如 -LMS服务器可以管理/提供硬盘或NAS上的超大音乐收藏,并连接到不同的流媒体提供商,例如Spotify,Deezer,Soundcloud,shoutcast,tunein,napster,pandora,潮汐等 +- 原生 [squeezebox](https://de.wikipedia.org/wiki/Squeezebox), +- 带有附加音频模块和基于小型 Linux 固件的树莓派 -为什么要使用另一个squeezebox适配器? +像[picoreplayer](https://picoreplayer.org/) 或 [max2play](https://www.max2play.com)。 -现有适配器使用telnet访问LMS。 Telnet有一些缺点。 -LMS的实际主Web界面还使用rpc / json-protocol获取所有需要的信息或将命令发送到服务器/播放器。 +- 带有插件 chromecast、airplay 或 UPnP/DLNA 设备 + +LMS 服务器可以管理/提供硬盘或 NAS 上的大量音乐收藏,并连接到不同的流媒体提供商,如 Spotify、Deezer、Soundcloud、shoutcast、tunein、napster、pandora、tidal 等 + +为什么需要另一个 squeezebox 适配器? + +现有适配器使用 telnet 访问 LMS。telnet 有一些缺点。 +LMS 的实际主 Web 界面还使用 rpc/json 协议来获取所有所需信息或向服务器/播放器发送命令。 ## 特征 --LMS服务提供的大多数数据在适配器中可用 --有关播放器状态,歌曲标题,艺术家,专辑,插图,播放列表的详细信息 --许多控制功能可播放,暂停,停止,快进,快退,重复,随机播放,播放收藏夹,跳转到时间(绝对和相对),跳转到播放列表索引(绝对和相对),电源开/关和预设按钮 --服务器中的所有收藏夹和所有子级别 --包含用于iobroker-vis组件的许多小部件,以创建自己的控制用户界面(选择播放器,选择收藏夹,管理同步组,用于播放/暂停,正向,滚动,重复模式和随机播放模式选择的按钮) +- LMS 服务提供的大部分数据均可在适配器中使用 +- 有关播放器状态、歌曲标题、艺术家的详细信息, + +专辑、艺术作品、播放列表 + +- 许多控制功能可播放、暂停、停止、前进、后退、重复, + +随机播放、播放收藏夹、跳至时间(绝对和相对)、跳至播放列表索引(绝对和相对)、电源开/关和预设按钮 + +- 来自服务器的所有收藏夹和所有子级别 +- 包含许多用于 iobroker-vis 组件的小部件,以创建自己的 + +控制用户界面(选择播放器、选择收藏夹、管理同步组、播放/暂停按钮、前进、后退、重复模式和随机播放模式选择) + +vis-widgets 的文档可以在 vis 或[Widget 文档/德语](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.squeezeboxrpc/blob/master/widgets/squeezeboxrpc/doc.html) 中找到 + +## 安装 +- 安装软件包 +- 创建一个实例 +- 使用罗技媒体服务器的 IP 配置实例 + +和端口(通常为 9000) + +- 启动/重新启动实例 + +## 更新 +- 在小部件代码发生更改并更新适配器、iobroker 之后 + +应将 web 文件上传到内部 web 服务器。用户报告说,有时不会发生这种情况,或者只是延迟。您可以使用以下命令触发此操作 + +iobroker 上传 squeezeboxpc + +## 提供的状态 +### 服务器 +| 状态 | 描述 | +| ---------------- | ----------------------------- | +| LastScan | 上次音乐扫描的时间戳 | +| PlayerCount | 已知玩家数量 | +| PlayerCountOther | 已知的其他玩家数量 | +| PlayerCountSN | 已知 SN 的玩家数量 | +| TotalAlbums | 所有已知专辑的数量 | +| TotalArtists | 所有已知艺术家的数量 | +| TotalDuration | 所有歌曲的播放时间总和 | +| TotalGenres | 所有已知流派的数量 | +| TotalSongs | 所有已知歌曲的数量 | +| 同步组 | 现有同步组 | +| 版本 | LMS 版本 | +| mac | 服务器的 MAC-ID | +| uuid | LMS 实例的 uuid | + +额外定义一个按钮来刷新收藏夹 + +| 按钮 | 描述 | +| ------------ | --------------------------------- | +| getFavorites | 从服务器请求所有收藏夹 | + +### 收藏 +对于每个收藏夹的所有属性都是只读的 + +| 状态 | 描述 | +| -------- | ------------------------------------------ | +| 姓名 | 收藏夹名称 | +| hasitems | 表示这是否是一个目录 | +| id | 收藏夹的id | +| 图片 | 收藏夹中的图像/图标(如果有)| +|音频 |音频 | +| 类型 | 示例类型:链接、文本、音频、播放列表 | +| url | 曲目的 url | + +收藏夹的所有子级别(子目录)均可用。 + +### 玩家 +对于每个玩家模式显示你是否可以改变值。所采取的行动在属性中描述 + +| 状态 | 模式 | 描述 | +| -------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------- | +| 警报 | R/- | 该玩家所有已注册的警报(JSON 格式)| +| 专辑 | R/- | 当前专辑名称 | +| 艺术家 | R/- | 艺术家姓名 | +| 艺术品网址 | R/- | 艺术品网址 | +| 比特率 | R/- | 曲目的比特率 | +| 已连接 | R/- | 玩家的连接状态 (0/1) | +| 持续时间 | R/- | 曲目持续时间 | +| 流派 | R/- | 曲目流派 | +| IP | R/- | 玩家的IP | +| 模式 | R/- | 播放/暂停/停止 | +| 玩家名称 | R/- | 玩家姓名 | +| 玩家ID | R/- | 玩家ID | +| 播放列表 | R/- | 实际播放列表为 JSON | +| PlaylistCurrentIndex | R/W | 通过指定
trackindex 或使用 + 或 - 进行相对操作
开始。示例 10,-3,+2 | +| 播放列表重复 | R/W | 重复歌曲(1)/播放列表(2)/不重复(0) | +| 播放列表随机播放 | R/W | 随机播放列表(1)/随机播放专辑(2)/不随机播放(0) | +| 电源 | R/W | 获取/设置播放器的电源状态关闭(0)/开启(1) | +| RadioName | R/- | 电台名称 | +| 评分 | R/- | 歌曲评级 | +| 远程 | R/- | 如果是远程流 (1) | +| SyncMaster | R/- | Syncmaster 的 ID/MAC | +| SyncSlaves | R/- | 同步组中玩家的ID/Mac | +| 时间 | R/- | 歌曲已用时间 | +| 标题 | R/- | 歌曲名称 | +| 类型 | R/- | 媒体类型(例如 MP3 收音机)| +| 网址 | R/- | 曲目/流的网址 | +| 音量 | R/W | 获取/设置播放器音量 (0-100) | +| 状态 | R/W | 获取/设置播放状态:暂停(0),播放(1),停止(2)| + +如果 LMS 中可用,播放列表将提供以下属性。 +某些属性取决于歌曲类型(流/文件/...)所有属性均为只读 + +| 属性 | 描述 | +| ---------- | --------------------------------- | +| 专辑 | 当前专辑名称 | +| 艺术家 | 艺术家姓名 | +| ArtworkUrl | 艺术品网址 | +| 比特率 | 曲目的比特率 | +| 持续时间 | 曲目持续时间 | +| RadioName | 电台名称 | +| 评分 | 歌曲评级 | +| 标题 | 歌名 | +| 类型 | 媒体类型(例如 MP3 收音机)| +| url | 曲目/流的 URL | +| 索引 | 播放列表中歌曲的索引 | +| id | 歌曲的id | + +额外定义的按钮: + +| 按钮 | 描述 | +| --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| btnForward | 下一首歌曲 | +| btnRewind | 上一首歌曲 | +| btnPreset\_\* | 在播放器或服务器中定义的 1-6 个按钮 | +| cmdGeneral | 一个通用命令字段,用于向玩家发送命令。每个字段必须用引号括起来。参数必须用逗号分隔。例如:“play”,“1”| +| cmdPlayFavorite | 播放收藏夹设置收藏夹的 id | +| cmdPlayUrl | 播放 url,例如“;”| +| cmdGoTime | 通过指定秒数跳转到绝对位置,或者在秒数开头使用 + 或 - 跳转到相对位置。例如 100,-50,+50 | + +有关更多信息,请访问 CLI 文档: + + + +待办事项 +- 更多测试/修复 +- 减少对其他包的依赖(squeezenode) +- 更多配置可选择打开/关闭功能以提高内存和性能 +- 添加播放列表小部件 +- 添加浏览小部件以在 LMS 菜单中浏览 +- 添加玩家控制的圆形旋钮小部件 +- 如果再次按下收藏按钮则停止播放。 +- 服务器的 cmdGeneral。 +- ~~添加telnet通讯从服务器获取推送事件,优化轮询~~ +- ~~实现命令状态,为服务器和玩家放置用户个人命令(通过 json)~~ +- ~~实现更多控制功能(选择播放列表位置播放、快进、快退、跳转到歌曲中的时间位置、重复歌曲、随机歌曲)~~ +- ~~将播放列表作为 json 数组添加到 playerdata~~ +- ~~为收藏夹添加艺术品(电台标志/播放列表封面)~~ +- ~~实现更多级别(子目录)的收藏夹~~ +- ~~自动发现罗技媒体服务器~~ + +## Changelog -vis小部件的文档可在vis或[小部件文档/德语](https://htmlpreview.github.io/?https://github.com/oweitman/ioBroker.squeezeboxrpc/blob/master/widgets/squeezeboxrpc/doc.html)中找到 + +### 1.3.15 (2024-08-09) -##安装 --安装套件 --创建一个实例 --使用Logitech媒体服务器的IP和端口(通常为9000)配置实例 --启动/重启实例 +- due to a adapter checker issue i have to remove the release 1.3.13 from npm. + but changes from 1.3.13 are included in 1.3.14 -##更新 --在更改了窗口小部件代码和适配器的更新之后,iobroker应该将网络文件上传到内部网络服务器。用户报告这有时没有发生或只是延迟。您可以使用以下命令触发此操作 +### 1.3.14 (2024-08-05) -iobroker上传squeezeboxpc +- fix formatting -##提供的状态 -###服务器 -|州|描述 | -| ----------------- | ------------------------------ | -| LastScan |上次音乐扫描的时间戳| -| PlayerCount |已知玩家数| -| PlayerCountOther |已知其他玩家数| -| PlayerCountSN |已知SN播放器数量| -|总专辑|所有已知专辑的数量| -| TotalArtists |所有已知艺术家的数目 | -|总持续时间|所有歌曲的总播放时间| -| TotalGenres |所有已知类型的数量 | -| TotalSongs |所有已知歌曲的数量 | -|同步组|现有的同步组| -|版本| LMS版本| -| mac |服务器的MAC-ID | -| uuid | LMS实例的uuid | +### 1.3.13 (2024-08-05) -另外一个定义的按钮来刷新收藏夹 +- revert the fix for artist handling due to negative effect of spotify -按钮|说明----------------- | --------------------------------------------- getFavorites |从服务器请求所有收藏夹 +### 1.3.12 (2024-08-05) -###收藏 -对于每个收藏夹,所有属性均为只读 +- improve cmdGoto handling by kairauer, close PR #74 +- fix issues from adapter checker +- integrate squeezenode lib -州|说明----------------- | ------------------------------名称|最喜欢的hasitems的名称|指示这是否为目录ID |最喜欢的图像的ID |可用的图像/图标(如果可用)isaudio | isaudio类型|示例类型:链接,文本,音频,播放列表网址|曲目的网址 +### 1.3.11 (2024-08-05) - 收藏夹的所有子级别(子目录)均可用。 +- update adapter structure and switch to jsonconfig -###玩家 -对于每个玩家该模式显示是否可以更改值。在属性中描述了所采取的操作 +### 1.3.10 -状态|模式|说明-------------------- | ---- | -------------------------------------------------- ---警报| R /-|此播放器的所有已注册警报为JSON专辑| R /-|当前专辑的名称艺术家| R /-|艺术家作品名称的名称| R /-|网址至图稿比特率| R /-|轨道的比特率已连接| R /-|玩家的连接状态(0/1)持续时间| R /-|曲目时长| R /-| IP | R /-|的流派播放器的IP模式| R /-|播放/暂停/停止玩家名称| R /-|播放器名称PlayerID | R /-|玩家ID播放列表| R /-|实际播放列表为JSON PlaylistCurrentIndex | R / W |通过指定trackindex到达绝对位置,或在开头添加+或-相对。示例10,-3,+ 2播放列表重复| R / W |重复播放歌曲(1)/播放列表(2)/不要重复播放(0)播放列表随机播放| R / W |随机播放列表(1)/随机专辑(2)/不随机播放(0)Power | R / W |获取/设置播放器电源状态off(0)/ on(1)RadioName | R /-|电台名称名称费率| R /-|歌曲的评级| R /-|如果是远程流(1)SyncMaster | R /-| Syncmaster SyncSlaves的ID / MAC | R /-|同步组时间中的播放器ID / Mac | R /-|歌曲的播放时间标题| R /-|歌曲名称类型| R /-|媒体类型(例如MP3广播)Url | R /-|轨道/流的网址音量| R / W | get / set播放器的音量(0-100)状态| R / W |获取/设置播放状态:暂停(0),播放(1),停止(2) +- getalbumartist as artist if setting of TPE2/TPE3 in LMS are changed" -播放列表实际提供以下属性(如果LMS中可用)。 -Somme属性取决于歌曲的类型(流/文件/ ...)。所有属性均为只读 +### 1.3.9 -属性|说明----------------- | -------------------------------------------------- ---专辑|当前专辑的名称艺术家|艺术家ArtworkUrl的名称|网址至图稿比特率|曲目的比特率时长|曲目持续时间RadioName |电台名称名称费率|歌曲标题的分级|歌曲名称类型|媒体类型(例如MP3广播)url |轨道/流索引的网址|播放列表ID中歌曲的索引|歌曲的编号 +- fix error with deleting favorites +- fix wrong type for datapoint -其他定义的按钮: +### 1.3.8 -按钮|说明----------------- | --------------------------------------------- btnForward |下一首歌btnRewind |上一首歌曲btnPreset_ * |在播放器或服务器cmd中定义的1-6个按钮将命令发送到播放器的常规命令字段。每个字段都必须用引号引起来。参数必须用逗号分隔。示例:“ play”,“ 1” cmdPlayFavorite |播放收藏夹设置收藏夹cmdPlayUrl的ID |播放网址示例“ http://50.7.77.114:8101/;” cmdGoTime |通过指定秒数来跳到绝对位置,或者在秒开始时以+或-相对跳。例子100,-50,+ 50 +- fix forward button widget -有关更多信息,请访问CLI文档: +### 1.3.7 -https://github.com/elParaguayo/LMS-CLI-Documentation/blob/master/LMS-CLI.md +- fix object creation of states in player modul -## 去做 -*更多测试/修复 -*减少对其他软件包的依赖(squeezenode) -*更多配置可选打开/关闭功能以改善内存和性能 -*添加播放列表小部件 -*添加浏览小部件以在LMS菜单中浏览 -*添加玩家控制的圆形旋钮小部件 -*如果再次按下收藏夹按钮,则停止播放。 -* cmdGeneral服务器。 -* ~~添加telnet通信以从服务器获取推送事件以优化轮询~~ -* ~~实现命令状态以放置用于服务器和播放器的用户个人命令(通过json)~~ -* ~~实现更多控制功能(选择播放列表pos以播放,ffwd,frew,跳到歌曲,重复歌曲,随机歌曲中的时间位置)~~ -* ~~将播放列表添加为playerdata作为json数组~~ -* ~~添加收藏夹的艺术品(station-logo / playlist-cover)~~ -* ~~实现收藏夹的更多级别(子目录)~~ -* ~~自动发现罗技媒体服务器~~ +### 1.3.6 + +- fix object creation of states + +### 1.3.5 + +- fix object creation for favorites + +### 1.3.4 + +- fix object creation for favorites / \* center widgets in sidebar + +### 1.3.3 + +- repair imageproxy for image datapoints of favorites + +### 1.3.2 + +- fix for Alarm contains only enabled Alarms + +### 1.3.1 + +- fix problem with git dependency url + +### 1.3.0 + +- fix problem wit setting own icon in player widget / \* add infos about alarms to a player datapoint -## Changelog ### 1.2.1 -* fix small issue in last version + +- fix small issue in last version + ### 1.2.0 -* improve handling of imageproxy artwork + +- improve handling of imageproxy artwork + ### 1.1.0 -* make request of favorites configurable + +- make request of favorites configurable + ### 1.0.1 - * change setstate/createobject logic - * fix role and type for Mode-state - * update tests - * update dependency versions - * improve io-package.json + +- change setstate/createobject logic +- fix role and type for Mode-state +- update tests +- update dependency versions +- improve io-package.json + ### 1.0.0 - * prepare for stable repository + +- prepare for stable repository + ### 0.8.32 - * the adapter function iobroker.deleteChannel didnt works as expected. it didnt delete the whole subtree of states. now i implement my own delete function + +- the adapter function iobroker.deleteChannel didnt works as expected. it didnt delete the whole subtree of states. now i implement my own delete function + ### 0.8.31 - * change behaviour of deleting favorites + +- change behaviour of deleting favorites + ### 0.8.30 - * change from the issue of the adapter checker + +- change from the issue of the adapter checker + ### 0.8.29 - * optimize handling of player state power and connected + +- optimize handling of player state power and connected + ### 0.8.28 - * add advanced signaling function with telnet and fix some more authorization issues with LMS + +- add advanced signaling function with telnet and fix some more authorization issues with LMS + ### 0.8.27 - * initialization for the new calctype property if empty in volumebar + +- initialization for the new calctype property if empty in volumebar + ### 0.8.26 - * more improvement and fixing at volumebar / remove playlist widget from master. not ready yet + +- more improvement and fixing at volumebar / remove playlist widget from master. not ready yet + ### 0.8.25 - * fixing css-settings on volumebar + +- fixing css-settings on volumebar + ### 0.8.24 - * volumebar didnt get events between the segments, change clickevent and calculation + +- volumebar didnt get events between the segments, change clickevent and calculation + ### 0.8.23 - * adjust dependencies to remove vulnerabilities in dependend packages. alos remove travis due of unresolvable build-failures for win+node10/12 + +- adjust dependencies to remove vulnerabilities in dependend packages. alos remove travis due of unresolvable build-failures for win+node10/12 + ### 0.8.22 - * due to iobroker.controller 2.0 a command in the api changed (socket to vis.conn._socket) + +- due to iobroker.controller 2.0 a command in the api changed (socket to vis.conn.\_socket) + ### 0.8.21 - * add command für playing urls + +- add command für playing urls + ### 0.8.20 - * remove node v6 test setting + +- remove node v6 test setting + ### 0.8.19 - * shorten news history + +- shorten news history + ### 0.8.18 (2019-06-27) -* last minute changes. + +- last minute changes. + ### 0.8.17 (2019-06-26) -* add more widges: playtime bar, string, number, datetime, image. add button margin to player and favorite widget, improve editing of viewindex. do some refactoring. + +- add more widges: playtime bar, string, number, datetime, image. add button margin to player and favorite widget, improve editing of viewindex. do some refactoring. + ### 0.8.16 (2019-06-24) -* resolve a cross browser issue for firefox. the style.font attribute is empty and you have to construct the font string by yourself + +- resolve a cross browser issue for firefox. the style.font attribute is empty and you have to construct the font string by yourself + ### 0.8.15 (2019-06-19) -* minor issue with not ready states + +- minor issue with not ready states + ### 0.8.14 (2019-06-19) -* add syncgroups as new server-datapoint,add syncgroup widget, change some jquery event logic + +- add syncgroups as new server-datapoint,add syncgroup widget, change some jquery event logic + ### 0.8.13 (2019-06-16) -* rename widgetset from squeezeboxrpcwidgets to squeezeboxrpc + +- rename widgetset from squeezeboxrpcwidgets to squeezeboxrpc + ### 0.8.12 (2019-06-16) -* sync version with npm + +- sync version with npm + ### 0.8.11 (2019-06-15) -* try to integrate the widgets into the main adapter + +- try to integrate the widgets into the main adapter + ### 0.8.10 (2019-05-15) -* another try to fix the EADDRINUSE error of the server discovery + +- another try to fix the EADDRINUSE error of the server discovery + ### 0.8.9 (2019-05-15) -* try to fix the EADDRINUSE error of the server discovery + +- try to fix the EADDRINUSE error of the server discovery + ### 0.8.8 (2019-05-14) -* make discover configurable + +- make discover configurable + ### 0.8.7 (2019-05-11) -* more control features (select playlist pos to play,ffwd,frew,jump to a time position in song,repeat song,random song) + +- more control features (select playlist pos to play,ffwd,frew,jump to a time position in song,repeat song,random song) + ### 0.8.6 (2019-05-10) -* move some configuration options into seperate tabs + +- move some configuration options into seperate tabs + ### 0.8.5 (2019-05-08) -* change serverdiscovery interval method, remove some double cmd lines, additional minor changes advised from eslint + +- change serverdiscovery interval method, remove some double cmd lines, additional minor changes advised from eslint + ### 0.8.4 -* move some files to lib directory + +- move some files to lib directory + ### 0.8.3 -* close port for discovery on unload + +- close port for discovery on unload + ### 0.8.2 -* sync version with npm + +- sync version with npm + ### 0.8.1 -* set compact mode flag + +- set compact mode flag + ### 0.8.0 -* implementation of compact mode, change version to represent a realistic feature completness + +- implementation of compact mode, change version to represent a realistic feature completness + ### 0.0.9 -* debug options are now configurable + +- debug options are now configurable + ### 0.0.8 -* More playlist attributes + remove trailing and leading spaces from source + +- More playlist attributes + remove trailing and leading spaces from source + ### 0.0.7 -* Add the playlist to each player as json + +- Add the playlist to each player as json + ### 0.0.6 -* More config options + +- More config options + ### 0.0.5 -* All levels/subdirectories of favorites are now available in iobroker + +- All levels/subdirectories of favorites are now available in iobroker + ### 0.0.4 -* added the cmdPlayFavorite for each player + +- added the cmdPlayFavorite for each player + ### 0.0.3 -* repair the no-data symbols for buttons in vis + +- repair the no-data symbols for buttons in vis + ### 0.0.2 -* added autodiscovery + +- added autodiscovery + ### 0.0.1 -* initial release + +- initial release ## License -MIT License -Copyright (c) 2019-2020 oweitman +MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -233,4 +475,6 @@ 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. + +Copyright (c) 2019-2024 oweitman \ No newline at end of file diff --git a/docs/zh-cn/adapterref/iobroker.sureflap/README.md b/docs/zh-cn/adapterref/iobroker.sureflap/README.md index a4e7baddf..f373b07f6 100644 --- a/docs/zh-cn/adapterref/iobroker.sureflap/README.md +++ b/docs/zh-cn/adapterref/iobroker.sureflap/README.md @@ -3,13 +3,13 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.sureflap/README.md title: ioBroker.sureflap -hash: 5jIpLT/ix1AlAVGorCSvgZ1yepwQ5XC/sEgSEKZ2Vw4= +hash: rSqt+4ME/KdGYXT7BTGsggsZ6MB8OeKxyqAwxVq0y3I= --- -![稳定版](http://iobroker.live/badges/sureflap-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.sureflap.svg) +![稳定版本](http://iobroker.live/badges/sureflap-stable.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.sureflap.svg) ![下载](https://img.shields.io/npm/dm/iobroker.sureflap.svg) ![安装数量(最新)](http://iobroker.live/badges/sureflap-installed.svg) -![国家公共管理](https://nodei.co/npm/iobroker.sureflap.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.sureflap.png?downloads=true)

@@ -20,130 +20,171 @@ hash: 5jIpLT/ix1AlAVGorCSvgZ1yepwQ5XC/sEgSEKZ2Vw4=

## 配置 -在适配器配置页面上添加 Sure Petcare® 帐户的用户名和密码。 +在适配器配置页面上从您的 Sure Petcare® 帐户添加用户名和密码。 -使用 acs 时,还可以在此处调整电池满电和空电阈值。这会影响电池百分比值。 +使用 accus 时,也可以在此处调整电池满电量和空电量阈值。这会影响电池百分比值。 ## 描述 -该适配器提供有关宠物盖、猫盖、喂食器或饮水器的设置和状态的信息。 +该适配器提供有关宠物门、猫门、喂食器或饮水器的设置和状态的信息。 -它还显示您的宠物的位置及其食物和水的消耗量(带有喂食器和/或饮水机)。 +它还显示您的宠物的位置以及它们的食物和水消耗量(使用喂食器和/或饮水器)。 -它可以让您控制襟翼的锁定模式和宵禁并设置宠物的位置。 +它可以让您控制门闩的锁定模式和宵禁,并设置宠物的位置。 -该适配器需要 Node 18 或更高版本。 +该适配器需要 Node 18 或更新版本。 ### 可变值 -以下状态可以更改,并将在您的设备上生效,并分别反映在您的 Sure Petcare® 应用程序中。 - -|状态|描述 |允许值 | -|-------|-------------|----------------| -| | 家庭名称.集线器名称.控制.led_模式 |设置集线器 LED 的亮度 | **0** - 关闭
**1** - 高
**4** - 变暗| -|家庭名称.集线器名称.襟翼名称.控制.宵禁 |启用或禁用配置的宵禁
(宵禁必须通过应用程序配置)| **真**或**假** | -| | 家庭名称.集线器名称.襟翼名称.控制.lockmode |设置锁定模式 | **0** - 打开
**1** - 锁定
**2** - 锁定
**3** - 关闭(上锁和上锁)| -| | 家庭名称.集线器名称.襟翼名称.指定宠物.宠物名称.控制类型 |设置指定宠物和襟翼的宠物类型 | **2** - 户外宠物
**3** - 室内宠物| -| | 家庭名称.集线器名称.馈线名称.控制.关闭延迟|设置送料器盖关闭延迟| **0** - 快
**4** - 正常
**20** - 慢 | -|家庭名称.宠物.宠物名称.inside |设置您的宠物是否在里面 | **真**或**假** | +以下状态可以更改,并将分别在您的设备上生效,并反映在您的 Sure Petcare® 应用程序中。 + +| 状态 | 描述 | 允许的值 | +|-----------------------------------------------------------------------|--------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------| +| house_name.hub_name.control.led_mode | 设置集线器 LED 的亮度 | **0** - 关闭
**1** – 高
**4** - 变暗 | +| house_name.hub_name.flap_name.control.curfew_enabled | 启用或禁用配置的宵禁 | **true** 或 **false** | +| house_name.hub_name.flap_name.control.current_curfew | 设置 current_curfew,
支持 1(宠物门)或最多 4(猫门)宵禁时间 | **[{"enabled":true\|false, "lock_time":"xx:xx", "unlock_time":"xx:xx"}, ...]** | +| house_name.hub_name.flap_name.control.lockmode | 设置锁定模式 | **0** - 打开
**1** - 锁定
**2** - 锁定
**3** - 关闭(锁定)| +| house_name.hub_name.flap_name.assigned_pets.pet_name.control.type | 设置指定宠物和襟翼的宠物类型 | **2** - 户外宠物
**3** - 室内宠物 | +| house_name.hub_name.feeder_name.control.close_delay | 设置喂食器盖的关闭延迟 | **0** - 快速
**4** - 正常
**20** - 慢 | +| family_name.pets.pet_name.inside | 设置你的宠物是否在里面 | **true** 或 **false** | ### 结构 适配器创建以下层次结构: -适配器
├ 家庭姓名
│ ├ 集线器名称
│ │ ├ 在线
│ │ ├ 序列号
│ │ ├ 信号
│ │ │ ├ device_rssi
│ │ │ └ hub_rssi
│ │ ├ 版本
│ │ │ ├ 固件
│ │ │ └ 硬件
│ │ ├ 控制
│ │ │ └ led_mode
│ │ ├ felaqua_name
│ │ │ ├ 电池
│ │ │ ├ 电池百分比
│ │ │ ├ 在线
│ │ │ ├ 序列号
│ │ │ ├ 信号
│ │ │ │ ├ device_rssi
│ │ │ │ └ hub_rssi
│ │ │ ├ 版本
│ │ │ │ ├ 固件
│ │ │ │ └ 硬件
│ │ │ ├ 分配_宠物
│ │ │ │ └ 宠物名
│ │ │ └ 水
│ │ │ └ 重量
│ │ ├ feeder_name
│ │ │ ├ 电池
│ │ │ ├ 电池百分比
│ │ │ ├ 在线
│ │ │ ├ 序列号
│ │ │ ├ 信号
│ │ │ │ ├ device_rssi
│ │ │ │ └ hub_rssi
│ │ │ ├ 版本
│ │ │ │ ├ 固件
│ │ │ │ └ 硬件
│ │ │ ├ 分配_宠物
│ │ │ │ └ 宠物名
│ │ │ ├ 碗
│ │ │ │ └ 0..1
│ │ │ │ ├ 食物类型
│ │ │ │ ├ 目标
│ │ │ │ └ 重量
│ │ │ └ 控制
│ │ │ └ close_delay
│ │ └ 襟翼名称
│ │ ├ 电池
│ │ ├ 电池百分比
│ │ ├ 宵禁_active
│ │ ├ 在线
│ │ ├ 序列号
│ │ ├ 控制
│ │ │ ├ 宵禁
│ │ │ └ 锁定模式
│ │ ├ 信号
│ │ │ ├ device_rssi
│ │ │ └ hub_rssi
│ │ ├ 版本
│ │ │ ├ 固件
│ │ │ └ 硬件
│ │ ├ 宵禁
│ │ │ └ 0..i
│ │ │ ├ 已启用
│ │ │ ├ 锁定时间
│ │ │ └unlock_time
│ │ ├ 最后宵禁
│ │ │ └ 0..i
│ │ │ ├ 已启用
│ │ │ ├ 锁定时间
│ │ │ └ 解锁时间
│ │ └ 分配_宠物
│ │ └ 宠物名
│ │ └ 控制
│ │ └ 类型
│ ├ 历史
│ │ └ 0..24
│ │ └ ...
│ └ 宠物
│ └ 宠物名
│ ├ 里面
│ ├ 姓名
│ ├ 自
│ ├ 食品
│ │ ├ 上次吃的食物
│ │ ├ 花费时间
│ │ ├ 吃过的次数
│ │ └ 干..湿
│ │ └ 重量
│ ├ 运动
│ │ ├ 最后方向
│ │ ├ 最后一瓣
│ │ ├ 最后_flap_id
│ │ ├ 最后时间
│ │ ├ time_spent_outside_
│ │ └ times_outside
│ └ 水
│ ├ 最后一次喝醉
│ ├ 花费时间
│ ├ 次_醉
│ └ 重量
└ 信息
├ 所有设备在线
├ 连接
└ 最后更新
+适配器
家属姓名
│ │ 中心名称
│ │ │ 在线
│ │ │ 序列号
│ │ │ 信号
│ │ │ │ │ 设备_rssi
│ │ │ └ hub_rssi
│ │ │ 版本
│ │ │ │ 固件
│ │ │ └ 硬件
│ │ ═ ...
│ │ │ └ led_mode
│ │ │ │ │ │
│ │ │ │ 电池
│ │ │ │ 电池百分比
│ │ │ │ 线上
│ │ │ │ 序列号
│ │ │ │ 信号
│ │ │ │ │ │ │ 设备_rssi
│ │ │ │ └ hub_rssi
│ │ │ │ 版本
│ │ │ │ │ 固件
│ │ │ └ 硬件
│ │ │ │ 已分配宠物
│ │ │ │ └ 宠物名称
│ │ │ └ 水
│ │ │ │ 填充百分比
│ │ │ │ │ │ │ │
│ │ │ └ 重量
│ │ │ │ │ │ │ │
│ │ │ │ 电池
│ │ │ │ 电池百分比
│ │ │ │ 线上
│ │ │ │ 序列号
│ │ │ │ 信号
│ │ │ │ │ │ │ 设备_rssi
│ │ │ │ └ hub_rssi
│ │ │ │ 版本
│ │ │ │ │ 固件
│ │ │ └ 硬件
│ │ │ │ 已分配宠物
│ │ │ │ └ 宠物名称
│ │ │ │ 碗
│ │ │ │ └ 0..1
│ │ │ │ │ │ 填充百分比
│ │ │ │ │ │ │ 食物类型
│ │ │ │ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │ Last_zeroed_at
│ │ │ │ │ │ 目标
│ │ │ └ 重量
│ │ │ └ 控制
│ │ │ └ 关闭延迟
│ │ └ 襟翼名称
│ │ ═ ...
│ │ │ 电池百分比
│ │ │ 宵禁_活动
│ │ │ │ last_enabled_curfew
│ │ │ 在线
│ │ │ 序列号
│ │ ═ ...
│ │ │ │ ̀́ ...
│ │ │ │ │ 当前宵禁
│ │ │ └ 锁定模式
│ │ │ 信号
│ │ │ │ │ 设备_rssi
│ │ │ └ hub_rssi
│ │ │ 版本
│ │ │ │ 固件
│ │ │ └ 硬件
│ │ └ 已分配宠物
│ │ └ 宠物名称
│ │ └ 控制
│ │ └ 类型
│ │ 历史
│ │ └ json
│ │ └ 0..24
│ └ 宠物
│ └ 宠物名称
│ ═ ...
│ │ 名称
│ │ 自
│ │ 食品
│ │ │ │ 上次吃的
│ │ │ 花费时间
│ │ │ │ │
│ │ └ 干..湿
│ │ └ 重量
│ │ 运动
│ │ │ │ │ │ │ │
│ │ │ │ │
│ ...
│ │ │ 上次时间
│ │ │ 在外面度过的时间
│ │ └ times_outside
│ └ 水
│ │ 上次喝醉
│ │ 花费时间
│ │ │ │
│ └ 重量
└ 信息
═所有设备在线
联系方式
. ...
└ 版本
-## 注释 -SureFlap®、Sure Petcare® 和 Felaqua® 是 [苏尔弗拉普有限公司](https://www.surepetcare.com/) 的注册商标 +注释 +SureFlap®、Sure Petcare® 和 Felaqua® 是 [SureFlap 有限公司](https://www.surepetcare.com/) 的注册商标 -SureFlap® 设备的图片可从 [确定宠物护理®](https://www.surepetcare.com/en-us/press) 开始免费使用。 +SureFlap® 设备的图片从[Sure Petcare®](https://www.surepetcare.com/en-us/press) 起可免费使用。 ## Changelog +### 2.2.1 (2024-08-11) + +* (Sickboy78) added new data to feeder +* (Sickboy78) added new data to water dispenser +* (Sickboy78) dependency updates + +### 2.2.0 (2024-07-25) + +* (Sickboy78) added new json curfew +* (Sickboy78) added new json history +* (Sickboy78) fix lock mode is undefined +* (Sickboy78) code cleanup and refactoring +* (Sickboy78) dependency updates + +### 2.1.2 (2024-06-02) + +* (Sickboy78) dependency updates + ### 2.1.1 (2024-02-25) + * (Sickboy78) bugfix for outside times not beeing shown ### 2.1.0 (2024-02-20) + * (Scrounger) option to enable history data * (Sickboy78) added number of history entries to configuration ### 2.0.2 (2024-02-17) + * (Sickboy78) added flap id to last movement * (Sickboy78) fixed a bug where hub was recognized as obsolete device because of same name as a device * (Sickboy78) fixed a bug where setting lockmode or curfew was not working because of flap having same name as the hub ### 2.0.1 (2024-01-24) + * (Sickboy78) added last movement for pets * (Sickboy78) added time spent outside today for pets * (Sickboy78) dependency updates ### 1.2.3 (2023-12-29) + * (Sickboy78) added api host to config and set default to new api * (Sickboy78) improved removing of obsolete objects ### 1.2.2 (2023-10-17) + * (Sickboy78) added signal strength and hardware and firmware version of devices ### 1.2.1 (2023-10-03) + * (Sickboy78) fixed get_history_since call failing because of API changes * (Sickboy78) added workaround for removed parent object because of API changes * (Sickboy78) removed wrongly created objects because of API changes ### 1.2.0 (2023-08-19) + * (Sickboy78) repetitive errors are now logged as debug to avoid spamming the error log * (Sickboy78) increased timeout for surepet API from 60 to 120 seconds * (Sickboy78) added removal of deleted or renamed pets * (Sickboy78) security updates ### 1.1.9 (2023-07-21) + * (Sickboy78) fixed undefined serial number * (Sickboy78) dependency updates ### 1.1.8 (2023-06-01) + * (Sickboy78) adjustments for Surepet API changes ### 1.1.7 (2023-03-13) + * (Sickboy78) fixed false login error in case pet had no photo ### 1.1.6 (2023-01-07) + * (Sickboy78) added battery voltage configuration * (Sickboy78) added translation for adapter settings * (Sickboy78) security updates ### 1.1.5 (2022-09-10) + * (Sickboy78) added display of serial numbers ### 1.1.4 (2022-09-07) + * (Sickboy78) added Felaqua support * (Sickboy78) improved battery and battery percentage indicator (reduced outliers) ### 1.1.3 (2022-03-28) + * (Sickboy78) code improvements * (Sickboy78) improved error handling if no pet has been assigned yet ### 1.1.2 (2022-03-06) + * (Sickboy78) improved error and timeout handling * (Sickboy78) optimized subscribed states ### 1.1.1 (2022-02-20) + * (Sickboy78) removed pet type control from pet flap (is a cat flap exclusive feature) * (Sickboy78) fixed wrong default value for info.last_update * (Sickboy78) testing updates for js-controller 4 * (Sickboy78) security updates ### 1.1.0 (2022-01-17) + * (Sickboy78) bugfix and security updates ### 1.0.9 (2022-01-05) + * (Sickboy78) removed old encrypt/decrypt from index_m * (Sickboy78) added adapter unloaded guard in case unload happens during data requests ### 1.0.8 (2021-11-22) + * (Sickboy78) added food type, target weight and remaining food in feeder * (Sickboy78) added todays pet food consumption, times eaten and time spent ### 1.0.7 (2021-11-02) + * (Sickboy78) added history * (Sickboy78) added last update time ### 1.0.6 (2021-09-12) + * (Sickboy78) added feeder support (closing delay of lid) * (Sickboy78) added led control for hub * (Sickboy78) added assigned pets for flap and feeder devices @@ -151,21 +192,26 @@ SureFlap® 设备的图片可从 [确定宠物护理®](https://www.surepetcare. * (Apollon77) update CI testing ### 1.0.5 (2021-04-25) + * (Sickboy78) fixed bug in case pets didn't have a position (e.g. no flaps, only feeder in use) ### 1.0.4 (2021-03-07) + * (Sickboy78) added state curfew_active for pet flap devices * (Sickboy78) fixed normalization of device names * (Sickboy78) fixed changeable values not resetting when change fails ### 1.0.3 (2021-02-28) + * (Sickboy78) code improvements from review * (Sickboy78) fixed timezone bug ### 1.0.2 (2021-02-25) + * (Sickboy78) fixed bug setting lockmode and inside values ### 1.0.1 (2021-02-19) + * (Sickboy78) initial release ## License diff --git a/docs/zh-cn/adapterref/iobroker.tado/README.md b/docs/zh-cn/adapterref/iobroker.tado/README.md index 7290c0b50..dcdeb601a 100644 --- a/docs/zh-cn/adapterref/iobroker.tado/README.md +++ b/docs/zh-cn/adapterref/iobroker.tado/README.md @@ -3,87 +3,86 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.tado/README.md title: ioBroker.tado -hash: 5eHSe1aPZGsg+GO/TTEDgwOeteZOzQYOc2Mdi23DTkA= +hash: geVZ7oXA8AL/ojS3YQGyqgz0/bMerKYEh5QjLFk6zy8= --- # IoBroker.tado ![安装数量](http://iobroker.live/badges/tado-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.tado.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.tado.svg) ![下载](https://img.shields.io/npm/dm/iobroker.tado.svg) ![已知漏洞](https://snyk.io/test/github/DrozmotiX/ioBroker.tado/badge.svg) ![依赖状态](https://img.shields.io/librariesio/release/npm/iobroker.tado) -![国家公共管理](https://nodei.co/npm/iobroker.tado.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.tado.png?downloads=true) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/tado/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)![测试与发布](https://github.com/DrozmotiX/ioBroker.tado/workflows/Test%20and%20Release/badge.svg) ## IoBroker 的 tado 适配器 -Tado° (https://www.tado.com) 是家庭智能供暖和能源管理领域的专家,在德国设计和开发。与我们一起永远节省能源并降低成本 - 享受舒适且可持续的家。 +Tado° (https://www.tado.com) 是家庭智能供暖和能源管理方面的专家,在德国设计和开发。与我们一起节省能源并降低成本 - 享受舒适而可持续的家居。 -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 -## 你可以掌控的事情 -|状态|描述 | +## 塔多° X +此适配器**目前不支持** Tado X。此适配器支持 Tado V3、V3+ 和 V2。 +如果有人支持添加 Tado X 功能,请提交工单或发送电子邮件至 。您需要支持一些调试会话并与适配器开发人员进行交互。 + +## 你可以控制的事情 +| 状态 | 描述 | | ----- | ----------- | -| tado.[x].[yyyyyy].Rooms.[z].setting.power |打开/关闭设备 | -| tado.[x].[yyyyyy].Rooms.[z].setting.温度.celsius |定义温度 | -| tado.[x].[yyyyyy].Rooms.[z].overlayClearZone |切换到自动模式 | -| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.typeSkillBasedApp |设置时间表模式 | -| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.durationInSeconds |设置时间表模式应用多长时间 | -| tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].offset.offsetCelsius |温度偏移| -| tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].childLockEnabled |童锁开/关 | -| tado.[x].[yyyyyy].Rooms.[z].timeTables.tt_id |选择活动时间表 | -| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.openWindowDetectionEnabled |启用/禁用恒温器上的开窗检测 | -| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.timeoutInSeconds |检测到打开的窗户时关闭恒温器的超时时间 | -| tado.[x].[yyyyyy].Rooms.[z].activateOpenWindow |检测到打开的窗户时关闭恒温器(仅当恒温器检测到打开的窗户时才起作用)| -| tado.[x].[yyyyyy].Home.state.presence | tado.[x].[yyyyyy].Home.state.presence |设置“在家”、“外出”或“自动”模式 | -| tado.[x].[yyyyyy].Home.masterswitch |打开/关闭所有设备 | -| tado.[x].[yyyyyy].Rooms.[z].setting.mode | AC 模式(仅限 AC 设备)| -| tado.[x].[yyyyyy].Rooms.[z].setting.fanspeed | tado.[x].[yyyyyy].Rooms.[z].setting.fanspeed | Fanspeed(仅限 V3 及更早版本的交流设备)| +| tado.[x].[yyyyyy].Rooms.[z].setting.power | 打开/关闭设备 | +| tado.[x].[yyyyyy].Rooms.[z].setting.temperature.celsius | 定义温度 | +| tado.[x].[yyyyyy].Rooms.[z].overlayClearZone | 切换到自动模式 | +| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.typeSkillBasedApp | 设置时间表模式 | +| tado.[x].[yyyyyy].Rooms.[z].overlay.termination.durationInSeconds | 设置时间表模式的应用时间长度 | +| tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].offset.offsetCelsius | 温度偏移 | +| tado.[x].[yyyyyy].Rooms.[z].devices.[RUaaaaaaaaaa].childLockEnabled | 儿童锁开启/关闭 | +| tado.[x].[yyyyyy].Rooms.[z].timeTables.tt_id | 选择活动时间表 | +| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.openWindowDetectionEnabled | 启用/禁用恒温器上的开窗检测 | +| tado.[x].[yyyyyy].Rooms.[z].openWindowDetection.timeoutInSeconds | 当检测到打开的窗户时,恒温器关闭的超时时间 | +| tado.[x].[yyyyyy].Rooms.[z].activateOpenWindow | 当检测到打开的窗户时关闭恒温器(仅当恒温器检测到打开的窗户时才有效)| +| tado.[x].[yyyyyy].Home.state.presence | 设置在家、外出或自动模式 | +| tado.[x].[yyyyyy].Home.masterswitch | 打开/关闭所有设备 | +| tado.[x].[yyyyyy].Rooms.[z].setting.mode | 空调模式(仅限空调设备)| +| tado.[x].[yyyyyy].Rooms.[z].setting.fanspeed | 风扇速度(仅限 V3 及更早版本的空调设备)| | tado.[x].[yyyyyy].Rooms.[z].setting.fanLebel | Fanlebel(仅限 V3+ 版本的 AC 设备)| -| tado.[x].[yyyyyy].Rooms.[z].setting.verticalSwing | tado.[x].[yyyyyy].Rooms.[z].setting.verticalSwing |垂直摆动(仅限 V3+ 版本的交流设备)| -| tado.[x].[yyyyyy].Rooms.[z].setting.horizontalSwing | tado.[x].[yyyyyy].Rooms.[z].setting.horizontalSwing |水平摆动(仅限 V3 及更早版本的交流设备)| +| tado.[x].[yyyyyy].Rooms.[z].setting.verticalSwing | 垂直摆动(仅限 V3+ 版本的 AC 设备)| +| tado.[x].[yyyyyy].Rooms.[z].setting.horizontalSwing | 水平摆动(仅限 V3 及更早版本的 AC 设备)| ## 需要 * Node.js 18 或更高版本 -* ioBroker 主机(js-controller)5.0 或更高版本 +* ioBroker 主机 (js-controller) 5.0 或更高版本 ## Changelog -### 0.5.0 (2023-11-25) -* (HGlab01) Breaking changes - - Node.js 18.0 or higher - - ioBroker host (js-controller) 5.0 or higher -* (HGlab01) fix jsonConf validation issue -* (HGlab01) Bump axios to 1.6.2 -* (HGlab01) update contact data - -### 0.4.12 (2023-11-14) -* (HGlab01) switch finaly to Admin5 UI -* (HGlab01) Improve REST-call handling -* (HGlab01) Bump axios to 1.6.1 - -### 0.4.11 (2023-10-09) -* (HGlab01) Bump json-explorer to 0.1.14 -* (Garfonso) add value AUTO for *.Home.state.presence (in addtion to HOME and AWAY) -* (HGlab01) Bump axios to 1.5.1 - -### 0.4.10 (2023-09-26) -* (HGlab01) Add attribute 'isBalanceHpEligible' -* (HGlab01) improve axios keep_a_live - -### 0.4.9 (2023-07-05) -* (HGlab01) Add attribute 'zonesCount' -* (HGlab01) Bump ioBroker-jsonExplorer to 0.1.12 +### 0.5.6 (2024-08-06) +* (HGlab01) Improve AccessToken Management +* (HGlab01) Bump axios to 1.7.3 +* (HGlab01) Add attribute 'language' +* (HGlab01) Add attribute 'isHeatPumpInstalled' + +### 0.5.5 (2024-06-25) +* (HGlab01) Bump axios to 1.7.2 + +### 0.5.4 (2024-04-18) +* (HGlab01) Add attribute 'runningOfflineSchedule' +* (HGlab01) Bump axios to 1.6.8 + +### 0.5.3 (2024-01-29) +* (HGlab01) Improve axios handling +* (HGlab01) Bump axios to 1.6.7 + +### 0.5.1 (2023-12-11) +* (HGlab01) Bump json-explorer to 0.1.15 +* (HGlab01) Prepare (c) for 2024 ## License MIT License -Copyright (c) 2023 HGlab01 & DutchmanNL +Copyright (c) 2024 HGlab01 & DutchmanNL 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.telegram/README.md b/docs/zh-cn/adapterref/iobroker.telegram/README.md index b60e5b11f..e07d5d584 100644 --- a/docs/zh-cn/adapterref/iobroker.telegram/README.md +++ b/docs/zh-cn/adapterref/iobroker.telegram/README.md @@ -13,7 +13,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.telegram/README.md title: ioBroker.telegram -hash: 1CX57riukuEhE4auf0j8p9GvmB3Glsfpz5vS9su8S3c= +hash: 4bqUvopK6VJFk9nKbkT2Fn54ZPPfbBbWrcZEDwLwAJw= --- ![标识](../../../en/admin/telegram.png) @@ -21,8 +21,7 @@ hash: 1CX57riukuEhE4auf0j8p9GvmB3Glsfpz5vS9su8S3c= ## 配置 请求[@BotFather](https://telegram.me/botfather) 创建新的机器人`/newbot`。 -系统会要求您输入机器人的名称,然后输入用户名。 -之后,您将获得令牌。 +系统将要求您输入机器人的名称,然后输入用户名。 之后,您将获得令牌。 ![截屏](../../../en/adapterref/iobroker.telegram/img/chat.png) @@ -109,7 +108,7 @@ function sendImage() { sendTo('telegram.0', 'send', { text: tempFilePath, caption: 'A wonderful adapter', - user: 'yourUsername', + user: 'yourUserName1,yourUserName2', }); } }); @@ -131,7 +130,7 @@ on('0_userdata.0.someState', (obj) => { - *输入* - 用于发送短信, - *upload_photo* - 用于照片, - *upload_video* - 对于视频, -- *record_video* - 对于视频, +- *record_video* - 用于视频, - *record_audio* - 用于音频, - *upload_audio* - 对于音频, - *upload_document* - 对于文件, @@ -142,7 +141,7 @@ on('0_userdata.0.someState', (obj) => { 电报 API 的描述可以在 [这里](https://core.telegram.org/bots/api) 中找到,您可以使用此 API 中定义的所有选项,只需将其包含在发送对象中即可。例如: ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { text: '/tmp/snap.jpg', caption: 'Snapshot', disable_notification: true @@ -163,23 +162,34 @@ sendTo('telegram.0', { 适配器尝试根据消息中的文本检测消息的类型(照片、视频、音频、文档、贴纸、动作、位置),如果文本是现有文件的路径,则将根据类型发送。 -将根据属性纬度检测位置: +将根据纬度和经度属性检测位置: ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { latitude: 52.522430, longitude: 13.372234, disable_notification: true }); ``` +将根据属性纬度、经度、标题和地址检测场地: + +```javascript +sendTo('telegram.0', 'send', { + latitude: 52.51630462381893, + longitude: 13.37770039691943, + title: 'Brandenburger Tor', + address: 'Pariser Platz 8, 10117 Berlin', +}); +``` + ### 明确的消息类型 如果您想将数据作为缓冲区发送,您可以额外定义消息的类型。 可能的类型如下:*贴纸*、*视频*、*文档*、*音频*、*照片*。 ```javascript -sendTo('telegram.0', { +sendTo('telegram.0', 'send', { text: fs.readFileSync('/opt/path/picture.png'), type: 'photo' }); @@ -189,8 +199,8 @@ sendTo('telegram.0', { 您可以在客户端显示键盘**ReplyKeyboardMarkup**: ```javascript -sendTo('telegram.0', { - text: 'Press button', +sendTo('telegram.0', 'send', { + text: 'Press button', reply_markup: { keyboard: [ ['Line 1, Button 1', 'Line 1, Button 2'], @@ -207,8 +217,8 @@ sendTo('telegram.0', { 您可以在客户端显示键盘**InlineKeyboardMarkup**: ```javascript -sendTo('telegram', { - user: user, +sendTo('telegram', 'send', { + user: 'my_username;username2', // optional. Separator could be ";" or "," or space text: 'Click the button', reply_markup: { inline_keyboard: [ @@ -228,8 +238,8 @@ sendTo('telegram', { ```javascript if (command === '1_2') { - sendTo('telegram', { - user: user, + sendTo('telegram', 'send', { + user: 'my_username username2', // optional. Separator could be ";" or "," or space answerCallbackQuery: { text: 'Pressed!', showAlert: false, // Optional parameter @@ -242,7 +252,7 @@ if (command === '1_2') { ### 问题 您可以向电报发送消息,下一个答案将在回调中返回。 -可以在配置中设置超时时间,默认为 60 秒。 +可以在实例配置中设置超时(默认为 60 秒)。 ```javascript sendTo('telegram.0', 'ask', { @@ -264,7 +274,21 @@ sendTo('telegram.0', 'ask', { 从 0.4.0 版本开始,您可以使用聊天 ID 发送消息进行聊天。 ```javascript -sendTo('telegram.0', {text: 'Message to chat', chatId: 'SOME-CHAT-ID-123'}); +sendTo('telegram.0', 'send', { + text: 'Message to chat', + chatId: 'SOME-CHAT-ID-123' +}); +``` + +## 线程 ID +您还可以为超级组设置一个线程 ID。 + +```javascript +sendTo('telegram.0', 'send', { + text: 'Message to chat', + chatId: 'SOME-CHAT-ID-123', + message_thread_id: 7, +}); ``` ## 更新消息 @@ -335,8 +359,8 @@ if (command === '1_2') { 您可以阅读更多[这里](https://github.com/yagop/node-telegram-bot-api/blob/release/doc/api.md#telegramboteditmessagetexttext-options--promise)。 ### 编辑消息媒体 -使用此方法编辑机器人发送的消息或通过机器人发送的消息的图片(对于内联机器人)。 -成功时,如果机器人发送了编辑后的消息,则返回编辑后的消息,否则返回 *True*。 +使用此方法编辑机器人发送的消息或通过机器人发送的消息的图片(适用于内联机器人)。 +成功时,如果机器人发送了已编辑的消息,则返回已编辑的消息;否则返回 *True*。 ```javascript if (command === '1_2') { @@ -407,7 +431,10 @@ if (command === 'delete') { 您可以阅读更多[这里](https://github.com/yagop/node-telegram-bot-api/blob/master/doc/api.md#TelegramBot+deleteMessage)。 ## 对用户回复/消息做出反应 -假设您只使用 JavaScript,而不使用 `text2command`。您已经使用 `sendTo()` 向用户发送了一条消息/问题,如上所述。用户通过按下按钮或写消息来回复。您可以提取命令并向用户提供反馈,执行命令或在 iobroker 中切换状态。 +假设您只使用 JavaScript,而不使用 `text2command`。 +您已经使用 `sendTo()` 向用户发送了一条消息/问题,如上所述。 +用户通过按下按钮或写消息来回复。 +您可以提取命令并向用户提供反馈,执行命令或在 iobroker 中切换状态。 - telegram.0 是您想要使用的 iobroker Telegram 实例 - 用户是向您注册的发送消息的 TelegramBot 用户 @@ -530,7 +557,7 @@ sendTo('telegram.0', 'call', { - `en-AU-Standard-A` - 英语(澳大利亚)(女声) - `en-AU-Standard-B` - 英语(澳大利亚)(男声) - `en-AU-Standard-C` - 英语(澳大利亚)(女声 2) -- `en-AU-Standard-D` - 英语(澳大利亚)(男 2 声) +- `en-AU-Standard-D` - 英语(澳大利亚)(男声 2 声) - `en-IN-Standard-A` - 英语(印度)(女声) - `en-IN-Standard-B` - 英语(印度)(男声) - `en-IN-Standard-C` - 英语(印度)(男 2 声) @@ -562,7 +589,7 @@ sendTo('telegram.0', 'call', { - `id-ID-Standard-A` - 印尼语(印度尼西亚)(女声) - `id-ID-Standard-B` - 印尼语(印度尼西亚)(男声) - `id-ID-Standard-C` - 印尼语(印度尼西亚)(男 2 声) -- `it-IT-Standard-A` - 意大利语(意大利)(女声 - 如果系统语言是 IT 并且未提供任何语言,则将使用女声) +- `it-IT-Standard-A` - 意大利语(意大利)(女声 - 如果系统语言为 IT 且未提供语言则使用女声) - `it-IT-Standard-B` - 意大利语(意大利)(女声 2) - `it-IT-Standard-C` - 意大利语(意大利)(男声) - `it-IT-Standard-D` - 意大利语(意大利)(男 2 声) @@ -586,7 +613,7 @@ sendTo('telegram.0', 'call', { - `pl-PL-Standard-B` - 波兰语(波兰)(男声) - `pl-PL-Standard-C` - 波兰语(波兰)(男 2 声) - `pl-PL-Standard-D` - 波兰语(波兰)(女声 2) -- `pl-PL-Standard-E` - 波兰语(波兰)(女声 3) +- `pl-PL-Standard-E` - 波兰语(波兰)(女声 3 声) - `pt-BR-Standard-A` - 葡萄牙语(巴西)(女声 - 如果系统语言为 PT 且未提供任何语言则使用) - `pt-PT-Standard-A` - 葡萄牙语(葡萄牙)(女声) - `pt-PT-Standard-B` - 葡萄牙语(葡萄牙)(男声) @@ -610,12 +637,12 @@ sendTo('telegram.0', 'call', { - `vi-VN-Standard-C` - 越南语(越南)(女声 2) - `vi-VN-Standard-D` - 越南语(越南)(男 2 声) -去做: +待办事项: - 地点 ## 根据管理员设置自动内联键盘(Easy-Keyboard) -对于每个状态,都可以启用附加设置: +对于每个状态,可以启用附加设置: ![设置](../../../en/adapterref/iobroker.telegram/img/stateSettings.png) @@ -628,7 +655,7 @@ sendTo('telegram.0', 'call', { 如果在电报适配器的配置对话框中启用了**在键盘命令中使用房间**选项,那么在第一步中将显示房间列表。***尚未实现*** ### 状态中的设置 -首先必须启用配置。 +首先,必须启用配置。 别名 设备名称。如果名称为空,则名称将从对象中获取。 @@ -638,7 +665,7 @@ sendTo('telegram.0', 'call', { 您可以打开设备、关闭设备或请求状态。 如果您单击`Door lamp ?`,您将获得`Door lamp => switched off`。 -### 只读 +### 只读 如果激活,则不会显示开/关按钮,只显示`Door lamp ?`。 ### 报告变更 @@ -647,7 +674,7 @@ sendTo('telegram.0', 'call', { ### 按钮在一行中 一个设备一行中必须显示多少个按钮。 -由于名称较长,一行中可能最好只显示 2 个(甚至只有一个)按钮。 +由于名称较长,可能最好一行中只显示 2 个(甚至只有一个)按钮。 ![设置](../../../en/adapterref/iobroker.telegram/img/stateSettings3.png) @@ -726,27 +753,21 @@ msg.payload = { Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> -### **WORK IN PROGRESS** -* (klein0r) Removed default / shadow fiel from Blockly block ask +### 3.9.0 (2024-07-22) +* (klein0r) Added option to send venue (with title and address) -### 3.6.0 (2024-06-19) -* (klein0r) Save videos which have been recorded with telegram (video_note) -* (klein0r) Added answer timeout to instance configuration -* (klein0r) Added option to send status updates to specific users -* (klein0r) Added states for thread id (of supergroups) +### 3.8.2 (2024-07-16) +* (bluefox) Username can consist of more than one user. The separator is comma, semicolon or space. -### 3.5.3 (2024-06-18) -* (foxriver76) escape all unallowed characters when sending with notification manager +### 3.8.0 (2024-07-14) +* (bluefox) Migrated GUI for Admin 7 -### 3.5.2 (2024-06-16) -* (foxriver76) escape more unallowed characters when sending with notification manager +### 3.7.1 (2024-07-03) +* (klein0r) Restored translations for messages -### 3.5.1 (2024-06-12) -* (klein0r) Fixed file handling for voice files -* (klein0r) Updated dependencies - -### 3.5.0 (2024-06-12) -* (klein0r) Added option to save media files into ioBroker file system (files tab) +### 3.7.0 (2024-07-03) +* (klein0r) Removed default / shadow fiel from Blockly block ask +* (klein0r) Added state to answer last request (same chat) ## License diff --git a/docs/zh-cn/adapterref/iobroker.tibberlink/README.md b/docs/zh-cn/adapterref/iobroker.tibberlink/README.md index f50fc7937..dbc997269 100644 --- a/docs/zh-cn/adapterref/iobroker.tibberlink/README.md +++ b/docs/zh-cn/adapterref/iobroker.tibberlink/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.tibberlink/README.md title: ioBroker.tibberlink -hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= +hash: K8hWv/0WbiSbPH9kxOdbE6JQPnr5DYtafIVCabwcbKs= --- ![标识](../../../en/adapterref/iobroker.tibberlink/admin/tibberlink.png) @@ -16,7 +16,7 @@ hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= ![GitHub 提交活动](https://img.shields.io/github/commit-activity/m/hombach/iobroker.tibberlink?logo=github&style=flat-square) ![GitHub 上次提交](https://img.shields.io/github/last-commit/hombach/iobroker.tibberlink?logo=github&style=flat-square) ![GitHub 问题](https://img.shields.io/github/issues/hombach/iobroker.tibberlink?logo=github&style=flat-square) -![GitHub 工作流程状态](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.tibberlink/test-and-release.yml?branch=main&logo=github&style=flat-square) +![GitHub 工作流程状态](https://img.shields.io/github/actions/workflow/status/hombach/iobroker.tibberlink/test-and-release.yml?branch=master&logo=github&style=flat-square) ![Appveyor-CI](https://ci.appveyor.com/api/projects/status/github/hombach/ioBroker.tibberlink?branch=master&svg=true) ![SNYK 已知漏洞](https://snyk.io/test/github/hombach/ioBroker.tibberlink/badge.svg) ![测试版](https://img.shields.io/npm/v/iobroker.tibberlink.svg?color=red&label=beta) @@ -29,7 +29,8 @@ hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= ## 版本 ## 在 ioBroker 中使用 TIBBER 能源数据的适配器 -该适配器方便连接您的 Tibber 帐户 API 中的数据以便在 ioBroker 中使用,无论是用于单个住宅还是多个住宅。 +此适配器有助于将 Tibber 帐户 API 中的数据连接到 ioBroker 中以供使用,无论是用于单个家庭还是多个住宅。 +新功能:该适配器现在支持通过家庭网络直接本地读取 Tibber 脉冲传感器,从而无需完全依赖云 API 即可进行实时监控和数据收集。 如果您目前不是 Tibber 用户,我将非常感激如果您可以使用我的推荐链接:[Tibber 推荐链接](https://invite.tibber.com/mu8c82n5)。 @@ -72,11 +73,11 @@ hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= 使用“AmountHours”参数输入所需的电池充电小时数。计算器将在指定的“AmountHours”最便宜的时段内激活电池充电(“值 YES”)并停用电池供电(“值 2 NO”)。相反,它将在成本最高的时段停用电池充电(“值 NO”)并激活电池供电(“值 2 YES”),前提是成本高于最便宜时段中的最高总价。在剩余的正常时段,如果电池的能量缓冲在经济上不可行,则两个输出都将关闭。 -- LTF 通道:功能类似于标准通道,但仅在“StartTime”和“StopTime”状态对象定义的时间范围内运行。在“StopTime”之后,通道将自行停用。“StartTime”和“StopTime”可能跨越数天。状态必须用 ISO-8601 格式的日期时间字符串填充,并带有时区偏移,例如:“2024-01-17T21:00:00.000+01:00”。此外,通道有一个名为“RepeatDays”的新状态参数,默认情况下设置为 0。如果将“RepeatDays”设置为正整数值,则一旦达到 StopTime,通道将通过将 StartTime 和 StopTime 增加“RepeatDays”中指定的天数来重复其周期。例如,对于每日重复,将“RepeatDays”设置为 1。 +- LTF 通道:功能类似于标准通道,但仅在“StartTime”和“StopTime”状态对象定义的时间范围内运行。在“StopTime”之后,通道会自动停用。“StartTime”和“StopTime”可能跨越数天。状态必须用 ISO-8601 格式的日期时间字符串填充,并带有时区偏移,例如:“2024-01-17T21:00:00.000+01:00”。此外,通道有一个名为“RepeatDays”的新状态参数,默认情况下设置为 0。如果将“RepeatDays”设置为正整数值,则一旦达到 StopTime,通道将通过将 StartTime 和 StopTime 增加“RepeatDays”中指定的天数来重复其周期。例如,对于每日重复,将“RepeatDays”设置为 1。 ### 提示 逆向使用 -例如,为了获得高峰时段而不是最佳时段,只需反转使用情况和参数:![计算器状态逆](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStatesInverse.png)通过交换 true <-> false,您将在第一行收到低成本的 true,在第二行收到高成本的 true(频道名称不是触发器,仍然可以自由选择)。 +例如,要获得高峰时段而不是最佳时段,只需反转使用情况和参数:![计算器状态逆](../../../en/adapterref/iobroker.tibberlink/docu/calculatorStatesInverse.png)通过交换 true <-> false,您将在第一行收到低成本的 true,在第二行收到高成本的 true(频道名称不是触发器,仍然可以自由选择)。 注意:对于高峰单小时,如示例中,您还需要调整小时数。 原来:5 -> 逆 (24-5) = 19 -> 您将在 5 个高峰时段获得真实结果。 @@ -85,15 +86,84 @@ hash: 82ykeoQu1uq2ZJzykQ+qKEoYmayBC0ItDo+iINz1Yfo= 要观察标准频道时间范围的动态变化,您可以选择跨越数年的有限时间范围 (LTF)。这对于“最佳单小时 LTF”场景特别有用。 +## 直接本地轮询 Pulse 数据 +为了使其工作,您需要修改 Bridge 的 Web 界面以保持永久启用状态。 +marq24 在此处描述了如何出色地实现他的 HomeAssistant 集成: + +https://github.com/marq24/ha-tibber-pulse-local + +如果一切正常,电表数据将每 2 秒写入 ioBroker 状态一次。 + 哨兵 此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。有关如何禁用错误报告的更多详细信息和信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!Sentry 报告从 js-controller 3.0 开始启动。 ## 捐赠 -如果你喜欢这个项目 — — 或者只是觉得慷慨,可以考虑给我买杯啤酒。干杯!:beers: +如果你喜欢这个项目 — — 或者只是觉得慷慨,可以考虑给我买杯啤酒。干杯!:beers: ## Changelog -! Note that missing version entries are typically dependency updates for improved security. +### 3.4.8 (2024-08-xx) + +- (HombachC) updated axios because of vulnerability +- (HombachC) added tests for Node.js 22 + +### 3.4.7 (2024-08-10) + +- (HombachC) adapter checker detected optimizations (#493) +- (HombachC) improved error message (#490) + +### 3.4.6 (2024-08-07) + +- (HombachC) Catch wrong OBIS Codes, probably caused by Pulse communication errors +- (HombachC) code cleanup + +### 3.4.5 (2024-07-31) + +- (HombachC) decode meter mode 4 for local Tipper Pulse poll (#477) +- (HombachC) decode meter mode 1 for local Tipper Pulse poll (#478) +- (HombachC) fixed wrong Pulse local status names (voltage) +- (HombachC) add docu on local Pulse poll config screen (#479) +- (HombachC) code cleanup +- (HombachC) bump dependencies + +### 3.4.4 (2024-07-28) + +- (HombachC) local poll of data - change units Wh to kWh and round to 0,1kWh (#469) + +### 3.4.3 (2024-07-14) + +- (HombachC) added unit to Pulse temperature and round to 0,1°C +- (HombachC) added unit to Pulse battery voltage and round to 100mV +- (HombachC) added unit to Pulse uptime +- (HombachC) added state with Pulse uptime as human readable string +- (HombachC) reinitialize some TibberLocal states upon adapter startup +- (HombachC) code optimisation +- (HombachC) bump dependencies + +### 3.4.2 (2024-07-13) + +- (HombachC) fix typos in units +- (HombachC) fix type mismatch for state objects (#455) +- (HombachC) code optimisation + +### 3.4.1 (2024-07-13) + +- (HombachC) fix logging error +- (HombachC) bump dependencies + +### 3.4.0 (2024-07-12) + +- (HombachC) add mode for local poll of Pulse data (#201) + +### 3.3.3 (2024-07-04) + +- (HombachC) fix sentry notified possible error +- (HombachC) try to fix startup error (#444) + +### 3.3.2 (2024-06-21) + +- (HombachC) fix 2 security issues in dependencies +- (HombachC) fix sentry notified possible error ### 3.3.1 (2024-06-13) diff --git a/docs/zh-cn/adapterref/iobroker.tractive-gps/README.md b/docs/zh-cn/adapterref/iobroker.tractive-gps/README.md index b872df319..928459172 100644 --- a/docs/zh-cn/adapterref/iobroker.tractive-gps/README.md +++ b/docs/zh-cn/adapterref/iobroker.tractive-gps/README.md @@ -3,68 +3,96 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.tractive-gps/README.md title: ioBroker.tractive-gps -hash: 4uj6KfEOqKYXoYZcri3HeySvkq0C4u6UmhrWQuNmORw= +hash: UK0rDDy+fjpro8mYDetaov7yQYXMGOmdZb5XkbGVoO8= --- ![标识](../../../en/adapterref/iobroker.tractive-gps/admin/tractive-gps.png) ![GitHub 许可证](https://img.shields.io/github/license/iobroker-community-adapters/ioBroker.tractive-gps) ![下载](https://img.shields.io/npm/dm/iobroker.tractive-gps.svg) -![GitHub 存储库大小](https://img.shields.io/github/repo-size/iobroker-community-adapters/ioBroker.tractive-gps) +![GitHub 仓库大小](https://img.shields.io/github/repo-size/iobroker-community-adapters/ioBroker.tractive-gps) ![GitHub 提交活动](https://img.shields.io/github/commit-activity/m/iobroker-community-adapters/ioBroker.tractive-gps) -![GitHub 自最新版本以来提交的内容(按日期)](https://img.shields.io/github/commits-since/iobroker-community-adapters/ioBroker.tractive-gps/latest) -![GitHub 最后一次提交](https://img.shields.io/github/last-commit/iobroker-community-adapters/ioBroker.tractive-gps) +![GitHub 自最新版本以来的提交情况(按日期)](https://img.shields.io/github/commits-since/iobroker-community-adapters/ioBroker.tractive-gps/latest) +![GitHub 上次提交](https://img.shields.io/github/last-commit/iobroker-community-adapters/ioBroker.tractive-gps) ![GitHub 问题](https://img.shields.io/github/issues/iobroker-community-adapters/ioBroker.tractive-gps) -![NPM版本](http://img.shields.io/npm/v/iobroker.tractive-gps.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.tractive-gps.svg) ![稳定存储库中的当前版本](https://iobroker.live/badges/tractive-gps-stable.svg) ![安装数量](https://iobroker.live/badges/tractive-gps-installed.svg) # IoBroker.tractive-gps -[![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/tractive-gps/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)

**版本:**

**测试:**
[![测试和发布](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml) [![CodeQL](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml) +[![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/tractive-gps/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget)
-## IoBroker 的牵引 GPS 适配器 +**版本:** + +**测试:** + +[![测试与发布](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/test-and-release.yml) [![CodeQL](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml/badge.svg)](https://github.com/iobroker-community-adapters/ioBroker.tractive-gps/actions/workflows/codeql.yml) + +## 用于 ioBroker 的 tractive-gps 适配器 ### 免责声明 -所有产品和公司名称或徽标均为其各自所有者的 Trademarks™ 或 Registered® 商标。它们的使用并不意味着它们或关联附属公司有任何从属关系或认可!这个个人项目是出于娱乐目的而进行的,没有商业目标。 **[牵引力](https://tractive.com/de/)** 是 **Tractive GmbH** 的商标。 +所有产品和公司名称或徽标均为其各自所有者的商标™ 或注册® 商标。 +它们的使用并不意味着它们或相关附属机构有任何从属关系或认可!此个人项目是出于娱乐目的而进行的,没有任何商业目的。 +**[牵引](https://tractive.com/de/)** 是 **Tractive GmbH** 的商标。 ### 哨兵 -**此适配器使用 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)!从 js-controller 3.0 开始使用 Sentry 报告。 -### 制作人员 -如果没有 @xXBJXx (https://github.com/xXBJXx) 的伟大工作,这个适配器就不可能实现,他创建了这个适配器,并希望在不久的将来再次维护它。 +### 致谢 +如果没有创建此适配器的 @xXBJXx (https://github.com/xXBJXx) 的出色工作,此适配器就不可能实现。 ### 描述 -该适配器允许您连接到 Traactive GPS 服务并检索宠物的位置。\ 该适配器为每只宠物创建一个设备并为每个位置创建一个状态。\ 该适配器还为跟踪器的电池电量和许多其他状态创建状态API 提供的状态。 +此适配器允许您连接到 Tractive GPS 服务并检索宠物的位置。 +适配器为每个宠物创建一个设备,并为每个位置创建一个状态。 +适配器还为跟踪器的电池电量和 API 提供的许多其他状态创建状态。 ### 先决条件 -要使用此适配器,您必须拥有 Traactive 帐户并为您的宠物配备跟踪器(请参阅[牵引力](https://tractive.com/de/))( **注意:** 使用 Traactive 服务的月费/年费) +要使用此适配器,您必须拥有一个 Tractive 帐户并拥有您的宠物的追踪器(参见[牵引](https://tractive.com/de/))(**注意**:使用 Tractive 服务的月费/年费) ### 安装 -该适配器是通过 ioBroker 适配器管理器安装的。\ **注意:** 该适配器至少需要 Node.js >= 16 和 js-controller 3.3.22 以及 admin >=6!安装后,您必须使用 Traactive 帐户登录并设置轮询间隔。然后适配器将从 Traactive API 获取令牌并将其存储在配置中。这个token有一个过期时间,过期后会自动更新。 +适配器通过 ioBroker 适配器管理器安装。 +安装后,您必须使用 Tractive 帐户登录并设置轮询间隔。 +然后,适配器将从 Tractive API 获取令牌并将其存储在配置中。 +此令牌具有到期时间,到期后将自动更新。 ### 配置 -在适配器配置中有两个设置选项: +在适配器配置中,有两个设置选项: * **登录**。 - 1. 在这里您可以使用您的 Traactive 帐户登录。\ - 2.设置轮询间隔。\ - 3. 手动重新颁发令牌。\ +1. 您可以在此处使用您的 Tractive 帐户登录。 +2.设置轮询间隔。 +3.手动重新签发令牌。 ![实例-tractive-gps-login.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-login.png) -* **所有设备** - 此处显示适配器找到的所有设备的列表。您可以更改列表中设备的名称。 +* **所有设备** - 此处显示适配器找到的所有设备的列表。您可以在列表中更改设备的名称。 -然后,这也将显示在对象中。\ ![实例-tractive-gps-allDevices-table.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-table.png) 要更改名称,请单击铅笔图标并输入新名称。 +这也将显示在对象中。 +![实例-tractive-gps-allDevices-table.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-table.png) 要更改名称,请单击铅笔图标并输入新名称。 ![实例-tractive-gps-allDevices-modal.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Finstances-tractive-gps-allDevices-modal.png) -### 标签 -在选项卡中,所有找到的设备都会显示地图和有关设备的一些信息。\ ![tab-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ftab-tractive-gps.png) 图像也可以替换为动物自己的图像。\ 为此,需要一个带有跟踪器名称的 PNG 文件(例如 ZSDLINVD.png)必须放置在文件夹 **iobroker-data/files/tractive-gps** 中。 -或者您可以使用“**文件**”选项卡上传文件。 (参见下图)\ **建议的图像尺寸为 1920x1080 像素。**\ ![文件-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ffiles-tractive-gps.png) +### 标签 +在选项卡中,所有找到的设备都显示一张地图和一些有关设备的信息。 +![标签-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ftab-tractive-gps.png) 图像也可以用动物自己的图像替换。 +为此,必须将带有跟踪器名称的 PNG 文件(例如,ZSDLINVD.png)放在文件夹 **iobroker-data/files/tractive-gps** 中。 +或者您可以使用选项卡 **files** 上传文件。(见下图)**图像的推荐尺寸为 1920x1080 像素。**![文件-tractive-gps.png](../../../en/adapterref/iobroker.tractive-gps/admin%2Fimages%2Ffiles-tractive-gps.png) ## Changelog +### 2.0.1 (2024-08-20) +* (bluefox) Fixing encryption of the access token + +### 2.0.0 (2024-08-18) +* (bluefox) BREAKING CHANGE: You must enter your credentials again +* (bluefox) Old code has been removed and GUI has been rewritten +* (bluefox) Dependencies have been updated + +### 1.2.0 (2024-04-28) +* (mcm1957) Adapter requires node.js >= 18 and js-controller >= 5 now +* (mcm1957) Dependencies have been updated + ### 1.1.0 (2023-11-05) * (Scrounger) Bugfix: objects will be created only if necessary * (Scrounger) Bugfix for excessive number of warnings has been added @@ -74,19 +102,10 @@ hash: 4uj6KfEOqKYXoYZcri3HeySvkq0C4u6UmhrWQuNmORw= * (mcm1957) Adapter has been moved into iobroker-community-adapters organisation * (mcm1957) Dependencies have been updated -### 0.1.2 (2023-02-24) -* (xXBJXx) Dependencies updated -* (xXBJXx) UI updated - -### 0.1.1 (2023-02-05) -* (xXBJXx) Dependencies updated - -### 0.1.0 (2023-02-05) -* (xXBJXx) first release - ## License MIT License +Copyright (c) 2023-2024 ioBroker Community Developers Copyright (c) 2023 xXBJXx Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-inventwo/README.md b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-inventwo/README.md index 1bc86f297..305186155 100644 --- a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-inventwo/README.md +++ b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-inventwo/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-2-widgets-inventwo/README.md title: 为 ioBroker.vis 2.0 引入 inventwo 小部件 -hash: 1udj/7fAB/xLRg+chT0pVlnDVsVOk2BzBWVe/IbGXZc= +hash: 7zOWdVk5ONHUBzdmQC97Qu8Litfu07Yl94t4DgEh9Yo= --- ![标识](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/admin/vis-2-widgets-inventwo.png) @@ -19,13 +19,13 @@ hash: 1udj/7fAB/xLRg+chT0pVlnDVsVOk2BzBWVe/IbGXZc= ## 内容 用于切换、导航等的各种小部件。 -![Vorschau 通用和多部件](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_universal_widget.png) +![Vorschau 通用和多功能小部件](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_universal_widget.png) 各种内容类型 ![预览 颜色选择器](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_content_types.png) -选色器 +颜色选择器 ![预览 颜色选择器](../../../en/adapterref/iobroker.vis-2-widgets-inventwo/img/preview_colorpicker.png) @@ -44,6 +44,24 @@ hash: 1udj/7fAB/xLRg+chT0pVlnDVsVOk2BzBWVe/IbGXZc= Placeholder for the next version (at the beginning of the line): ### **WORK IN PROGRESS** --> +### 0.1.11 (2024-07-18) +* Fixed issues mentioned by eslint + +### 0.1.10 (2024-07-18) +* Removed styles libraries as they are not compatible with vis 2.0 +* Fixed compare by for widget type view in dialog (#24) +* Fixed text color not working in slider and added other font styles (#25) +* Fixed switch doesn't toggle without defining values (#28) + +### 0.1.9 (2024-05-24) +* Fixed missing object id if a type is nav (#14) +* Fixed content color for icons not working (#22) + +### 0.1.7 (2024-05-22) +* Fixed missing object id if a type is nav (#14) +* Fixed image aspect ratio (#15) +* Added options to customize dialog + ### 0.1.5 (2024-04-14) * Added optional button click feedback options * Added widget type to send http requests and open urls diff --git a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md index 2c61f9cba..b0dca0fef 100644 --- a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md +++ b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-2-widgets-jaeger-design/README.md title: ioBroker.vis 2.0 的特殊 Jaeger Design 小部件 -hash: FlPUifv8rJ+ON3PymwZF9EU/ZyLAHFAES1n06U4TTIA= +hash: qJeEJ8ncgCfZoYvL/D1Bmfqc3k6U9lmz+R4Pxc9Lzm0= --- ![标识](../../../en/adapterref/iobroker.vis-2-widgets-jaeger-design/admin/vis-2-widgets-jaeger-design.png) @@ -17,7 +17,11 @@ hash: FlPUifv8rJ+ON3PymwZF9EU/ZyLAHFAES1n06U4TTIA= 您可以找到如何使用小部件[这里](https://www.youtube.com/watch?v=4bctUvfpPuQ)(德语)的视频。 -可以使用该 Widgets 的视频找到[耶尔](https://www.youtube.com/watch?v=4bctUvfpPuQ)。 +**重要提示:小部件需要非免费许可证,可在[iobroker.net](https://iobroker.net/www/pricing#commercial/iobroker.vis-2-widgets-jaeger-design)订购** + +Das Video wie man die Widgets benutzt kann man [耶尔](https://www.youtube.com/watch?v=4bctUvfpPuQ) finden。 + +Das Video wie man die Widgets benutzt kann man [耶尔](https://youtu.be/Rplr2Ba-G7o)(德语)(TEIL2) ## 小部件 ### 按钮和开关 @@ -47,6 +51,22 @@ createState('javascript.0.rss', {type: 'string'}, () => { ### **正在进行中** --> ## Changelog +### 1.2.7 (2024-07-17) +* (bluefox) allowed multi-line buttons for the thermostat + +### 1.2.6 (2024-07-16) +* (bluefox) Corrected the power state of the thermostat + +### 1.2.5 (2024-07-12) +* (bluefox) Added possibility to control other IDs with memory buttons (Dimmer, Shutter) +* (bluefox) Added the power option for thermostat +* (bluefox) Implemented the writing of specific values for state widget +* (bluefox) Added label to state widget + +### 1.2.1 (2024-07-07) +* (bluefox) Removed withStyles usage +* (bluefox) Added confirmation dialog + ### 1.1.27 (2024-05-27) * (bluefox) Added descriptions diff --git a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/README.md b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/README.md new file mode 100644 index 000000000..9a72a26c6 --- /dev/null +++ b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/README.md @@ -0,0 +1,236 @@ +--- +translatedFrom: en +translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/README.md +title: Vis 2 (o)各种小部件 +hash: 9kE+Av1tIRAcEsL/crz1sRamAiY2YQUNh6SxcJx9+/k= +--- +![安装数量](http://iobroker.live/badges/vis-2-widgets-ovarious-stable.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.vis-2-widgets-ovarious.svg) +![下载](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-ovarious.svg) +![新平台](https://nodei.co/npm/iobroker.vis-2-widgets-ovarious.png?downloads=true) + + + +# Vis 2 (o)各种小部件 +![标识](../../../en/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png) + +该适配器包含各种 vis-2 小部件。 + +好的,实际上只有一个 vis-2 小部件,但我的路线图上还有一些。 + +## JSON 模板小部件 +使用此小部件,可以根据需要显示任何具有 JSON 数据的数据点。 +显示使用模板格式完成,可以将其视为 HTML 代码 + JavaScript + 控制 JSON 属性显示的特殊标签的组合形式。 + +### 属性 JSON 数据点 +选择具有相应 JSON 数据的数据点。 + +#### 属性模板 +模板可用于确定 JSON 数据的外观。模板中可使用所有有效的 HTML 标签(包括 style 标签中的 CSS 属性)。 +还有一些特殊标签,可在其中显示 JSON 数据并执行 JavaScript 指令。 + +模板系统与某些标签配合使用。 +使用的标签具有以下含义 + +| `tag` | 描述 | +| ----- | ------------------------------------------------------------------- | +| <%= | 包含的表达式/变量的内容将被转义。| +| <%- | 所包含的表达式/变量的内容未转义。| +| <% | 无输出,用于封闭的 javascript 指令 | +| %> | 通常是一个结束标签,用来完成前面的一个标签 | + +这些标签之外的所有内容都会按原样显示,或者将其解释为 HTML。(例如,参见模板中的 p 标签、div 标签、small 标签,您有 2 个预定义变量可用 + +JSON 数据以前缀 data 的形式传递给模板。此外,当前 widgetID 也可用作变量,以便在单独的 CSS 指令中指定。 + +示例对象 +```json +{ + "onearray": ["one", "two"], + "oneobject": { + "attribute1": 1, + "attribute2": 2 + }, + "onenumber": 123, + "onetext": "onetwothree" +} +``` + +对于上面的例子,属性可以输出如下 + +```html +<%- data.onenumber %> <%- data.onetext %> +``` + +**结果** + +```html +123 onetwothree +``` + +数组可以通过索引访问。索引始终从 0 开始。但是,也存在伪数组,其中索引不从 0 开始,甚至由文本组成。这里适用对象的规则。在上面的例子中,这将是 + +```html +<%- data.onearray[0] %> <%- data.onearray[1] %> +``` + +##### 结果 +```html +one two +``` + +如果你尝试直接输出没有索引的数组,模板将输出以逗号分隔的所有元素 + +```html +<%- data.onearray %> +``` + +**结果** + +```html +one,two +``` + +数组也可以由对象集合组成。此处的示例仅包含一个简单的数组。稍后将给出带有对象的数组的示例。 + +```html +<% for (var i = 0; i < data.onearray.length ; i++ ) { %> <%- data.onearray[i] %> <% } %> +``` + +**结果** + +```html +one two +``` + +**对象** 可以再次包含单个属性、数组或对象。这意味着 JSON 数据可以嵌套到任意深度。 + +对象的属性可以使用点符号或括号符号来表示。只有当属性符合某些命名约定(第一个字符必须是字母,其余为数字或字母或下划线)时,点符号才有效。 +括号符号也适用于不符合命名约定的属性。 + +**点符号** + +```html +<%- data.oneobject.attribute1 %> +``` + +**括号表示法** + +```html +<%- data.oneobject["attribute1"] %> +``` + +**两个示例的结果** + +```html +1 +``` + +循环遍历对象的属性 + +```html +<% for (var prop in data.oneobject) { %> <%- "data.oneobject." + prop + " = " + data.oneobject[prop] %> <% } %> +``` + +**结果** + +```html +data.oneobject.attribute1 = 1 data.oneobject.attribute2 = 2 +``` + +**高级用例** + +上面的示例中仅涵盖了纯输出。现在还可以使用 HTML 标签丰富模板,以实现特定布局。以下是示例: + +```html +

Output

+ +<% for (var prop in data.oneobject) { %> +
+ <%- "data.oneobject." + prop + " = " %> + <%- data.oneobject[prop] %> +
+<% } %> +``` + +**结果** + +```html +data.oneobject.attribute1 = 1 data.oneobject.attribute2 = 2 +``` + +## Changelog + + +### 0.1.8 (2024-07-28) + +- improve icon +- remove versions from io-package.json + +### 0.1.7 (2024-07-28) + +- fix widget addressing + +### 0.1.6 (2024-07-28) + +- fix widget addressing + +### 0.1.5 (2024-07-28) + +- fix adapter checker issues + +### 0.1.4 (2024-07-28) + +- fix things from adapter checker + +### 0.1.3 (2024-07-27) + +- add icon +- add documentation + +### 0.1.2 (2024-07-27) + +- prepare release + +### 0.1.1 (2024-07-27) + +- fix widget addressing + +### 0.1.0 (2024-07-27) + +- initial Release + +## License + +The MIT License (MIT) + +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 +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/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png new file mode 100644 index 000000000..92eda1998 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-ovarious/admin/vis-2-widgets-ovarious.png differ diff --git a/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/README.md b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/README.md new file mode 100644 index 000000000..8ff8fe5bf --- /dev/null +++ b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/README.md @@ -0,0 +1,113 @@ +--- +translatedFrom: en +translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/README.md +title: Vis 2 RSS Feed 小部件 +hash: ErMD6x59cwdqkbwLVYUsR8GHNYdPgIHmHAi5lW7uc98= +--- +![标识](../../../en/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png) + +![安装数量](http://iobroker.live/badges/vis-2-widgets-rssfeed-stable.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.vis-2-widgets-rssfeed.svg) +![下载](https://img.shields.io/npm/dm/iobroker.vis-2-widgets-rssfeed.svg) +![新平台](https://nodei.co/npm/iobroker.vis-2-widgets-rssfeed.png?downloads=true) + +# Vis 2 RSS Feed 小部件 +该适配器仅包含适配器 rssfeed 的 vis-2 小部件。 + +有关小部件和功能的详细描述,请参阅适配器 rssfeed。 + +## Changelog + + +### 0.3.5 (2024-08-09) + +- improve link styling in the marquee widget +- fix key and group handling +- fix issues from adapter checker + +### 0.3.3 (2024-07-25) + +- fix widgeturl from debug to productive + +### 0.3.2 (2024-07-25) + +- introduce innerhtml component that is capable to execute raw javascript and improve links for the marquee widget +- fix translation + +### 0.3.1 (2024-07-24) + +- fix widget access url + +### 0.3.0 (2024-07-24) + +- intoroduction of the rss multi feed widget +- update icons for light and dark theme +- improved translation + +### 0.2.4 (2024-06-25) + +- fix github commands to non deprecated + +### 0.2.3 (2024-06-25) + +- switch nodeversion in github actions +- change upload to v4 +- upgrade github commands to non deprecated +- adjust copy commands in gulpfile + +### 0.2.2 (2024-06-25) + +- remove withstyles +- translate some missing keys + +### 0.2.1 (2024-06-24) + +- set node to 20 in deploy task + +### 0.2.0 (2024-06-24) + +- fine tuning + +### 0.1.3 (2024-06-22) + +- add ace build files to gulp + +### 0.1.2 (2024-06-22) + +- move library to ace/ejs lib to dependency + +### 0.1.1 (2024-06-22) + +- reverte timepout in tests + +### 0.1.0 (2024-06-22) + +- Erstes Testrelease + +## License + +The MIT License (MIT) + +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 +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/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png new file mode 100644 index 000000000..a389a5ef3 Binary files /dev/null and b/docs/zh-cn/adapterref/iobroker.vis-2-widgets-rssfeed/admin/vis-2-widgets-rssfeed.png differ diff --git a/docs/zh-cn/adapterref/iobroker.vis-2/README.md b/docs/zh-cn/adapterref/iobroker.vis-2/README.md index 26d703dec..de1b79546 100644 --- a/docs/zh-cn/adapterref/iobroker.vis-2/README.md +++ b/docs/zh-cn/adapterref/iobroker.vis-2/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-2/README.md title: ioBroker 的下一代可视化:vis-2 -hash: +1fddSVtqwpfVYHmbGCNW3hoPgPwDPyjK/kA/lN2bfw= +hash: RttxszkZBkPktx1h3S4c1CTM4MNtGAultzO499yhV3k= --- ![标识](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/admin/vis-2.png) @@ -27,7 +27,7 @@ ioBroker 平台的 WEB 可视化。 - [SVG 和 currentColor](#svg-and-currentcolor) 安装和文档 -![演示界面](packages/iobroker.vis-2/img/user0.png) ![演示界面](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/img/user7.png) +![演示界面](packages/iobroker.vis-2/img/user0.png)![演示界面](../../../en/adapterref/iobroker.vis-2/packages/iobroker.vis-2/img/user7.png) [在线演示](https://iobroker.click/) @@ -92,7 +92,7 @@ Patten 的格式如下: - `pow` - 2 的幂。 - `floor` - Math.floor - `ceil` - Math.ceil -- `json` - 获取 json 或对象属性的操作。例如,`{id;json(common.name.en)}` +- `json` - 用于获取 json 或对象属性的操作。例如,`{id;json(common.name.en)}` - `random(R)` - Math.random() * R,如果没有参数则仅使用 Math.random() - `formatValue(decimals)` - 根据系统设置格式化值并使用小数 - `date(format)` - 将值格式化为日期。格式如下:“YYYY-MM-DD hh:mm:ss.sss” @@ -124,7 +124,7 @@ Last change: {objectRed.lc;date(hh:mm)} * `view` - 实际视图的名称 * `wname` - 小部件名称 * `widget` - 是包含所有 widget 数据的对象。只能在 JS 部分使用,例如 `{a:a;widget.data.name}` -* `widgetOid` - 使用小部件的 oid 在分配部分分配小部件值,例如 `{t:widgetOid.val;t}` +* `widgetOid` - 使用小部件的 OID 在分配部分分配小部件的值,例如 `{t:widgetOid.val;t}` * `wid` - 实际小部件的名称 * `language` — 可以是 `de`、`en` 或 `ru`。 * `instance` - 浏览器实例 @@ -141,7 +141,7 @@ Last change: {objectRed.lc;date(hh:mm)} } ``` -为了那个原因。 +为此。 ## 过滤器 为了在一个视图上直观地显示所有小部件的数量,您可以使用过滤器来减少视图上同时显示的小部件的数量。 @@ -182,7 +182,7 @@ Vis 创建了 3 个变量: 如果用户在开始时更改视图,则变量将由 vis-2 填充 - `control.instance`:浏览器实例和 `ack=true` -- `control.data`:项目和视图名称,格式为 `project/view`,例如 `main/view`(并且 `ack=true`) +- `control.data`:项目和视图名称,格式为 `project/view`,例如 `main/view`(和 `ack=true`) - `control.command`: `changedView` 和 `ack=true` 您可以将 JSON 字符串或对象写入 `control.command` 中,例如 `{instance: 'AABBCCDD', command: 'cmd', data: 'ddd'}`。在这种情况下,实例和数据将从 JSON 对象中获取。 @@ -195,7 +195,7 @@ setState('vis-2.0.control.command', { instance: '*', command: 'refresh', data: ' 如果将 JSON 写为字符串,请确保它是可解析的,例如 `{"instance": "*", "command": "refresh", "data": ""}`,请注意 `"`。 -## 默认视图 +## 默认视图 您可以为每个视图定义所需的分辨率(菜单=>工具=>分辨率)。 这只是编辑模式下的可视边框,用于显示某些特定设备的屏幕尺寸。在实时模式下,它将不可见,并且边框外的所有小部件都将可见。 @@ -257,12 +257,61 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 在这种情况下,如果 SVG 采用父元素的颜色。 例如,如果它在菜单中使用并且菜单是红色的,那么圆圈将是红色的。 -## 去做 +## 开发和调试 +为了对 vis-2 编辑器本身进行调整、搜索错误和调试,必须执行以下步骤。 + +1. 通过 GitHub 的用户界面将 iobroker/iobroker.vis-2 存储库分叉到您自己的帐户中 + +2. 将存储库克隆到目录中。从 GitHub 存储库复制 URL。命令如下 + +``` +git clone https://github.com//ioBroker.vis-2.git +``` + +3. 使用 IDE 打开下载的存储库 + +4. 要安装和下载所有必要的库,请在存储库根目录中的终端中运行以下命令 + +``` +npm run install-monorepo +``` + +5.要在浏览器中启动编辑器,请执行以下命令。 + +端口 8082 上必须有一个单独运行的 iobroker 服务器实例。 + +``` +npm run start +``` + +- 可在浏览器中进行调试,例如 chrome F12 +- 如果您更改文件,则支持自动重新加载编辑器 + +待办事项 ## Changelog +### 2.10.7 (2024-07-23) +* (bluefox) Optimization of the module federation + +### 2.10.6 (2024-07-20) +* (bluefox) Improved the typing in typescript + +### 2.10.4 (2024-07-16) +* (bluefox) Corrected the jumping by object selection +* (bluefox) Implemented swipe widget + +### 2.10.3 (2024-07-11) +* (bluefox) Converted the CanJSWidget to typescript +* (bluefox) Added "clone" button to the attribute groups + +### 2.10.2 (2024-07-10) +* (bluefox) Removed incompatible package for styles +* (bluefox) All widgets must be updated +* (bluefox) The basic input value widget was migrated to ReactJS + ### 2.9.64 (2024-05-23) * (bluefox) Added possibility to clear a text field by button @@ -376,7 +425,7 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 * (foxriver76) added select box to dimension attributes if multiple widgets selected ### 2.9.18 (2024-01-15) -* (foxriver76) fixed issue, that old attributes value is shown in some scenarios +* (foxriver76) fixed issue that old attributes value is shown in some scenarios * (foxriver76) dedicated permission system extended to view level ### 2.9.17 (2024-01-13) @@ -391,14 +440,14 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 ### 2.9.14 (2024-01-09) * (foxriver76) fixed last change y-offset for some widgets * (foxriver76) fixed issue where JquiState did not respect data type -* (foxriver76) fixed issues with BulkEdtior (dialog not closing and other dialog showing wrong button) +* (foxriver76) fixed issues with BulkEdtior (dialog not closing and other dialog showing the wrong button) * (foxriver76) implemented workaround resize bug for https://github.com/devbookhq/splitter/issues/15 ### 2.9.13 (2024-01-08) * (foxriver76) correctly detect IDs in bindings when they contain hash character * (foxriver76) fix crash when multiple JquiState widgets selected -* (foxriver76) prevent showing widget in group after it is already cut out -* (foxriver76) prevent usage of widgets which are not in group for calculating rulers on group view +* (foxriver76) prevent showing widget in a group after it is already cut out +* (foxriver76) prevent usage of widgets which are not in a group for calculating rulers on group view ### 2.9.12 (2024-01-04) * (foxriver76) optimized copy/paste/cut in groups @@ -407,10 +456,10 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 * (foxriver76) fixed bug with visibility calculation ### 2.9.10 (2024-01-02) -* (foxriver76) remove accidentally added script file, which lead to crash +* (foxriver76) remove accidentally added script file, which leads to crash ### 2.9.9 (2024-01-01) -* (foxriver76) allow to import views without attribute `activeWidgets` +* (foxriver76) allow importing views without attribute `activeWidgets` * (foxriver76) make BasicBulb behave more like its old version * (foxriver76) fixed issue that data of different widget is displayed in edit mode * (foxriver76) fixed issue that every state update is used for visibility calculation @@ -423,7 +472,7 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 * (foxriver76) fixed issue on theme switch ### 2.9.7 (2023-12-19) -* (bluefox) Allowed the read only flag for Styled/Input +* (bluefox) Allowed the read-only flag for Styled/Input ### 2.9.6 (2023-12-14) * (foxriver76) fixed issues with the BulkEditor @@ -450,7 +499,7 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 * (foxriver76) fixed import of views, which were inside a folder * (foxriver76) fixed theme also applied in iframe * (foxriver76) do not simply reuse widget ids when importing or copying views -* (foxriver76) implemented basic bulb widget as react widget +* (foxriver76) implemented basic bulb widget as React widget * (foxriver76) made script tags work in basic html widget ### 2.9.2 (2023-11-29) @@ -461,19 +510,19 @@ CSS 中的 currentColor 关键字允许元素从其父元素继承当前文本 ### 2.9.1 (2023-11-28) * (foxriver76) recalculate fields after moving widgets -* (foxriver76) fixed pasting group on other view +* (foxriver76) fixed a pasting group on other view * (foxriver76) fixed theme also applied in iframe -* (bluefox) implemented Basic Image as react widget +* (bluefox) implemented Basic Image as React widget ### 2.9.0 (2023-11-27) * (bluefox) implemented SVG shape and Screen Resolution widgets natively -* (bluefox) implemented Basic iFrame as react widget +* (bluefox) implemented Basic iFrame as React widget * (foxriver76) only allow zip files at project import * (foxriver76) fix overflow being overwritten * (foxriver76) sort pages and projects alphabetically * (foxriver76) fixed problem on saving * (foxriver76) fixed problem with groups when `always render` is activated -* (foxriver76) allow to change color and write lowercase in tabs component +* (foxriver76) allow changing color and write lowercase in a tabs component * (foxriver76) fixed problem that navigation from a alwaysRender page is shown on different page ### 2.8.0 (2023-11-24) diff --git a/docs/zh-cn/adapterref/iobroker.vis-homekittiles/README.md b/docs/zh-cn/adapterref/iobroker.vis-homekittiles/README.md index 434dd8ffd..ac7f0a74f 100644 --- a/docs/zh-cn/adapterref/iobroker.vis-homekittiles/README.md +++ b/docs/zh-cn/adapterref/iobroker.vis-homekittiles/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-homekittiles/README.md title: ioBroker.vis-homekittiles -hash: DtHtYJQ2qVyk4C1ID1E1wTG7erQXaiviSwWgbin6eFM= +hash: fJIjdt/wr8vFhhwFuJOLv5/3Zr5jevRq07RH7Nbrz9I= --- # IoBroker.vis-homekittiles @@ -18,8 +18,8 @@ hash: DtHtYJQ2qVyk4C1ID1E1wTG7erQXaiviSwWgbin6eFM= **测试:**![测试与发布](https://github.com/Standarduser/ioBroker.vis-homekittiles/workflows/Test%20and%20Release/badge.svg) ## IoBroker-VIS 的 HomeKit-Tiles -Homekit Tiles 是基于 Apple HomeKit 设计的小部件集。 -小部件的特殊之处在于它们不包含任何固定样式元素,而是使用 CSS 格式化所有内容。因此,VIS 编辑器中没有针对图标、标签等的位置和/或大小的单独设置。通过更改 CSS 代码来调整设计。为此,可以使用文件 `/widgets/homekittiles/css/style.css` 中的 CSS 代码作为模板。代码插入到 VIS 编辑器中的 CSS 选项卡中,可以根据需要进行自定义。还可以通过 VIS 编辑器在小部件的“常规”部分中添加自己的 CSS 类。 +Homekit Tiles 是基于 Apple HomeKit 设计的一组小部件。 +小部件的特殊之处在于它们不包含任何固定的样式元素,而是使用 CSS 格式化所有内容。因此,VIS 编辑器中没有针对图标、标签等的位置和/或大小的单独设置。通过更改 CSS 代码来调整设计。为此,可以使用文件 `/widgets/homekittiles/css/style.css` 中的 CSS 代码作为模板。代码插入到 VIS 编辑器中的 CSS 选项卡中,可以根据需要进行自定义。还可以通过 VIS 编辑器在小部件的“常规”部分中添加自己的 CSS 类。 这些小部件是为 VIS 1.x 设计的。 @@ -28,21 +28,51 @@ Homekit Tiles 是基于 Apple HomeKit 设计的小部件集。 * [https://www.flaticon.com](https://www.flaticon.com) * [https://icons8.com](https://icons8.com) -[🇩🇪 文档](doc/homekittiles-de.md) [🇺🇸 文档](doc/homekittiles-en.md) +[🇩🇪 文档](doc/homekittiles-de.md)[🇺🇸 文档](doc/homekittiles-en.md) 要做的事情 -* 创建带图标的简单按钮 * 创建迷你媒体播放器 * 创建选择图块 -* 创建子菜单按钮 -* 单选按钮:新属性“division”,具有可选值(1:1;3:4) +* 为 Sonos Group 创建复选框 * 日期选择器:动态日/月图标 +* 新小部件:pinpad(正在进行中) +* Tiles:添加对话框按钮 ## Changelog +### **WORK IN PROGRESS** + +* Added option to show icons colored on tiles and radio +* Added new styles "big", "small" and "only icon" for all tiles + +### 0.3.1 (2024-07-12) + +* Added submenu widget + +### 0.2.7 (2024-07-10) + +* repaired Thermostat dialog tile widget + +### 0.2.6 (2024-07-05) + +* Block operation: added ability to show widget disabled +* Added JSON Table +* Navigation-Button-Set: fixed notification arrangement +* Dynamization of some input fields + +### 0.1.1 (2024-07-02) + +* Added missing translations +* Added new style "indicator" for all tiles (IF YOUR TILES LOOK BROKEN AFTER UPDATE: SELECT EVERY TILE IN EDITOR - JUST CLICK ON IT. Sorry for that.) +* Radiobutton: new property "division" with selectable values +* Radiobutton: change size automatically if direction was changed +* Signal pictures: repaired comparision with number (<=nn) +* Signal pictures: checkbox for show/not show in editor +* Thermostat dialog: sort order of attributes (dialog attrs one up) + ### 0.0.16 (2024-06-08) * (Standarduser) thermostat: fixed window-sizing diff --git a/docs/zh-cn/adapterref/iobroker.vis-map/README.md b/docs/zh-cn/adapterref/iobroker.vis-map/README.md index 17e8c064b..b232d8b0f 100644 --- a/docs/zh-cn/adapterref/iobroker.vis-map/README.md +++ b/docs/zh-cn/adapterref/iobroker.vis-map/README.md @@ -2,37 +2,44 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.vis-map/README.md -title: ioBroker.vis-map -hash: AuN4FwNGTj3kE9XUp7CpFeo9c3fj97QGvtmTjLa72nk= +title: ioBroker.vis-地图 +hash: wrWX5vCEa+TyCgDVUkiRLNIyI2SdtOdQd4cOyJHlgv4= --- ![标识](../../../en/adapterref/iobroker.vis-map/admin/vis-map.png) ![安装数量](http://iobroker.live/badges/vis-map-stable.svg) -![NPM版本](http://img.shields.io/npm/v/iobroker.vis-map.svg) +![NPM 版本](http://img.shields.io/npm/v/iobroker.vis-map.svg) ![下载](https://img.shields.io/npm/dm/iobroker.vis-map.svg) -![国家公共管理](https://nodei.co/npm/iobroker.vis-map.png?downloads=true) +![新平台](https://nodei.co/npm/iobroker.vis-map.png?downloads=true) # IoBroker.vis-map ![截屏](../../../en/adapterref/iobroker.vis-map/img/widgets.png) 小部件,可以在地图上显示坐标。 -实际上仅支持 Open Street Maps 和 Google。要使用 Google 地图,您应该获取 Google 地图的 API 密钥。 -您可以获得[这里](https://console.developers.google.com/flows/enableapi?apiid=maps_backend,geocoding_backend,directions_backend,distance_matrix_backend,elevation_backend&keyType=CLIENT_SIDE&reusekey=true) +实际上仅支持 Open Street Maps 和 Google。要使用 Google Maps,您应该获取 Google Maps 的 API 密钥。 +您可以获取它 [这里](https://developers.google.com/maps/documentation/javascript/get-api-key) ## 用法 -您可以将经度和纬度分开绑定,或者仅将对象 ID 放入 **经度** 中,其值如下所示: +您可以将经度和纬度分开绑定,或者直接将对象 ID 放入**经度**中,其值如下: -- 7.0001;49.0000(经度;纬度) -- 7,0001;49,0000(经度;纬度) +- 7.0001;49.0000(经度;纬度) +- 7,0001;49,0000(经度;纬度) - 7.0001,49.0000(经度,纬度) - 49.0000,7.0001(纬度,经度+交换标志) -- 49.0000;7.0001(纬度;经度+交换标志) +- 49.0000;7.0001(纬度;经度+交换标志) - ## Changelog +### 1.1.2 (2024-07-12) +- fix datapoint handling for lat/lan +- Make data points in 0_userdata work again + +### 1.1.0 (2024-03-07) +- (bluefox) Removed dependency to `iobroker.vis`. Only show the message if vis is not installed + ### 1.0.5 (2024-01-14) - (bluefox) Added vis-2 to the restart by installation diff --git a/docs/zh-cn/adapterref/iobroker.wifilight/README.md b/docs/zh-cn/adapterref/iobroker.wifilight/README.md index 15db14bc9..165b50e0a 100644 --- a/docs/zh-cn/adapterref/iobroker.wifilight/README.md +++ b/docs/zh-cn/adapterref/iobroker.wifilight/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.wifilight/README.md title: ioBroker.wifilight -hash: 0s+GfsnvdScrPZYX+N3JjBu9Z/g9LtFF6NewlDXsDlc= +hash: 7c2nJoRfY/j3XWOssHmvFNnG3HeclP8bAs9OJXfF87Q= --- ![标识](../../../en/adapterref/iobroker.wifilight/admin/wifilight.png) @@ -12,23 +12,23 @@ hash: 0s+GfsnvdScrPZYX+N3JjBu9Z/g9LtFF6NewlDXsDlc= ![下载](https://img.shields.io/npm/dm/iobroker.wifilight.svg) # IoBroker.wifilight -![测试和发布](https://github.com/iobroker-community-adapters/iobroker.wifilight/workflows/Test%20and%20Release/badge.svg)[![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/wifilight/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) +![测试与发布](https://github.com/iobroker-community-adapters/iobroker.wifilight/workflows/Test%20and%20Release/badge.svg) [![翻译状态](https://weblate.iobroker.net/widgets/adapters/-/wifilight/svg-badge.svg)](https://weblate.iobroker.net/engage/adapters/?utm_source=widget) -**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。**有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry 插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用哨兵报告。 +**此适配器使用 Sentry 库自动向开发人员报告异常和代码错误。** 有关更多详细信息以及如何禁用错误报告的信息,请参阅[Sentry-插件文档](https://github.com/ioBroker/plugin-sentry#plugin-sentry)!从 js-controller 3.0 开始使用 Sentry 报告。 ## 描述 -适用于 WiFi 灯的 ioBroker 适配器 +ioBroker WiFi 灯适配器 ## 信息 支持 LW12、LD382 和 LD382A。 添加了对 Mi-Light/LimitlessLED RGBW 的支持。 ## 初始创建 -这个适配器最初是由 @soef 在 https://github.com/soef/ioBroker.wifilight 创建的,但不再维护,所以我们将它移到 iobroker-community 以便修复错误。感谢@soef 的工作。 +此适配器最初由 @soef 在 https://github.com/soef/ioBroker.wifilight 上创建,但不再维护,因此我们将其移至 iobroker-community,以便修复错误。感谢 @soef 所做的工作。 ### 如何使用命令状态: -+ 可能的标识符有:``red, r, green, g, blue, b, bri, sat, transition, on, off`` + 字符串可以是带括号或不带括号的 JSON。 -+ 您还可以通过 = + 颜色范围:```0..255``` + bri 范围:``0..100`` ++ 可能的标识符为:``red, r, green, g, blue, b, bri, sat, transition, on, off`` + 字符串可以是带括号或不带括号的 JSON。 ++ 您也可以通过 = 分配值 + 颜色范围:`0..255` + bri 范围:`0..100` 一些例子: @@ -43,31 +43,38 @@ on ``` 要更改颜色,您不必使用所有三个值。 -例如,``` red = 0 ```,蓝色和绿色将保持不变。 +例如,`red = 0`,蓝色和绿色将保持不变。 ### R、g、b、w 状态: + 值 0..255 + \#rrggbb[ww] -## 安装 -使用 iobroker 中的 Adapter 面板添加实例。 +## Changelog + +### 1.3.2 (2024-08-12) +* (mcm1957) files section has been fixed -如果不存在,请在 iobroker 根目录(例如 /opt/iobroker)中执行以下命令。 +### 1.3.1 (2024-08-12) +* (p-kehling) Added ignorance of acknowledgement messages for on/off commands +* (bluefox) refactoring -``` -npm install iobroker.wifilight -``` +### 1.2.2 (2024-04-15) +* (mcm1957) Fix js-controller dependency -### 错误修复 -如果不起作用,请尝试安装 soef npm 包 +### 1.2.1 (2024-04-13) +* (mcm1957) Dependencies have been updated -``` -cd /opt/iobroker/node_modules/iobroker.wifilight -sudo npm install soef -``` +### 1.2.0 (2024-04-13) +* (mcm1957) Adapter requires node.js 18 and js-controller >= 5 now +* (mcm1957) Dependencies have been updated + +### 1.1.4 (2022-06-17) +* (Apollon77) Prevent a crash case reported by sentry -## Changelog ### 1.1.3 (2022-04-27) -* (Apollon77) Prevent crash case reported by sentry +* (Apollon77) Prevent a crash case reported by sentry ### 1.1.2 (2022-04-19) * (Apollon77) Prevent crashes when states are controlled with null as value @@ -85,6 +92,7 @@ sudo npm install soef ## License The MIT License (MIT) +Copyright (c) 2024 iobroker-community-adapters Copyright (c) 2020-2022 ioBroker Community Developers, 2019-2020 soef , Permission is hereby granted, free of charge, to any person obtaining a copy diff --git a/docs/zh-cn/adapterref/iobroker.yahka/README.md b/docs/zh-cn/adapterref/iobroker.yahka/README.md index 6de858ee6..5a8b9a515 100644 --- a/docs/zh-cn/adapterref/iobroker.yahka/README.md +++ b/docs/zh-cn/adapterref/iobroker.yahka/README.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/adapterref/iobroker.yahka/README.md title: iobroker.yahka -hash: SsZqL6Zf+r1aOVnFbH3rE1PbMBkxdSQtGk2UXpKue6E= +hash: 5kS1aNzjVYFZ7GMXeZQp0GDoEU84l7z6x91GrxmtWbQ= --- ![标识](../../../en/adapterref/iobroker.yahka/admin/yahka.png) @@ -13,32 +13,37 @@ hash: SsZqL6Zf+r1aOVnFbH3rE1PbMBkxdSQtGk2UXpKue6E= ![测试](https://travis-ci.org/ioBroker/ioBroker.yahka.svg?branch=master) ![捐](https://img.shields.io/badge/Donate-PayPal-green.svg) -#iobroker.yahka +# Iobroker.yahka ## 安装和使用 有关如何安装和配置此适配器的详细信息,请参阅[维基百科](https://github.com/jensweigele/ioBroker.yahka/wiki) -##先决条件 -在安装适配器之前,您必须安装一些软件包(适用于 Linux):`sudo apt-get install libavahi-compat-libdnssd-dev` +## 先决条件 +在安装适配器之前,您需要一些软件包(适用于 Linux):`sudo apt-get install libavahi-compat-libdnssd-dev` -## 安装最新的 **Release** -只需在“适配器”页面的 ioBroker 管理面板中点击“Homekit yahka 适配器”后面的“+”按钮。 +## 安装最新的**版本** +只需点击 ioBroker 管理面板中“适配器”页面上“Homekit yahka 适配器”后面的“+”按钮即可。 -## 安装最新的 **Beta** -如果您想处于领先地位并测试最新的测试版,您可以通过 GitHub url 安装适配器。 +## 安装最新的**Beta** +如果您想抢先测试最新的测试版,您可以通过 GitHub url 安装适配器。 -(有时需要额外上传(例如 `iobroker upload yahka`)并重新启动适配器) +(有时需要额外上传(例如`iobroker upload yahka`)并重新启动适配器) -## 备份与恢复 -注意:为了能够在另一个系统上恢复 `ioBroker.yahka`,除了通常的 `iobroker backup` 和 `iobroker restore` 外,还必须备份 `/opt/iobroker/iobroker-data` 下的 `yahka.X.hapdata` 文件夹并在必要时恢复。 [Wiki](https://github.com/jensweigele/ioBroker.yahka/wiki/ioBroker.yahka-auf-ein-anderes-System-umziehen) / [问题](https://github.com/jensweigele/ioBroker.yahka/issues/176) +## 备份和恢复 +注意:为了能够在另一个系统上恢复`ioBroker.yahka`,除了通常的`iobroker backup`和`iobroker restore`之外,还必须备份`/opt/iobroker/iobroker-data`下的`yahka.X.hapdata`文件夹,并在必要时恢复。[维基](https://github.com/jensweigele/ioBroker.yahka/wiki/ioBroker.yahka-auf-ein-anderes-System-umziehen) / [问题](https://github.com/jensweigele/ioBroker.yahka/issues/176) -## 故障排除 +备份和恢复的另一个选项是 [备份](https://github.com/simatec/ioBroker.backitup/blob/master/README.md) 适配器。这会自动备份 `yahka.X.hapdata` 文件夹。 +也可以通过 BackItUp GUI 进行恢复。 + +您可以找到详细的描述[这里](https://github.com/simatec/ioBroker.backitup/wiki/ioBroker.backitup-Wiki-Deutsch#yahka-backup)。 + +故障排除 ### 网桥不工作或设备没有响应 -尝试更改网桥的 MAC/用户名或激活 ciao 广告商 +尝试更改网桥的 MAC 地址/用户名或激活 ciao 广告商 ### 并非所有新功能都可用: -如果在 yahka 更新后并非所有新功能都可用,请尝试上传(例如 `iob upload yahka`)并重新启动适配器。 +如果 yahka 更新后并非所有新功能都可用,请尝试上传(例如`iob upload yahka`)并重新启动适配器。 -### 缺少 Avahi 守护进程(linux) +### 缺少 Avahi 守护进程 (linux) 如果您在日志中遇到以下错误: ``` @@ -57,7 +62,7 @@ uncaught 2016-07-26 18:57:17.985 error exception: dns service error: unknown `sudo nano avahi-daemon.conf ` -更改以下变量: +改变以下变量: ``` host-name=\ @@ -75,13 +80,13 @@ enable-dbus=yes #include ``` -您必须安装 pam-devel 软件包: +您必须安装 pam-devel 包: * 安装 avahi 守护进程: `sudo apt-get install pam-devel -y` -### 缺少 bonjour (windows) +### 缺少 bonjour(Windows) - 下载:`https://www.samuelattard.com/files/bonjourcore2.msi` - 执行:`msiexec /i bonjourcore2.msi /qn` - 删除:`del bonjourcore2.msi` @@ -92,14 +97,14 @@ enable-dbus=yes 然后安装 yahka 适配器。 -## 关于 HomeKit 的一些话 +关于 HomeKit 的一些话 HomeKit的架构如下: 有**设备**作为逻辑实体。每个设备可以有多个**服务**,每个服务有多个**特征**。 -最后,特性是一个可以读取或写入值的端点。 +最后,特征是一个可以读取或写入值的端点。 -服务可以具有哪些特征,由 Apple/HomeKit 定义并由服务类型决定。服务类型也由 Apple/HomeKit 定义。 +服务可以具有哪些特性,由 Apple/HomeKit 定义,并由服务类型决定。服务类型也是由 Apple/HomeKit 定义的。 例子: @@ -108,26 +113,26 @@ HomeKit的架构如下: 1.车库门开启器 2. 光 -车库门开启器服务本身可能具有不同的特征,例如:CurrentDoorState、TargetDoorState 等等。 +车库门开启器服务本身可能具有不同的特性,例如:CurrentDoorState、TargetDoorState 等等。 -此外,灯光服务可能具有不同的特性,例如:开启(以及许多其他用于改变灯光颜色等) +此外,灯光服务可以具有不同的特性,例如:开启(以及许多其他用于改变灯光颜色等的特性) ## Yahka 做什么 -使用 Yahka 可以将 ioBroker 数据点映射到 HomeKit 特性。 +使用 Yahka 可以将 ioBroker 数据点映射到 HomeKit 特征。 -由于有时映射是必要的(例如车库门的“状态”值在 HomeKit 和其他系统之间是不同的),也可以指定函数来转换值。这在下面描述。 +由于有时需要映射(例如,车库门的“状态”值在 HomeKit 和其他系统之间是不同的),因此也可以指定函数来转换值。这将在下面描述。 -为了避免过多的管理工作,您在 Yahka 中创建的所有设备都位于所谓的“桥”之后。使用此桥接器,您只需将桥接器与您的 iOS 设备配对即可访问所有设备。否则,您需要将每个 Yahka 设备与 Homekit 配对。 +为了避免过多的管理工作,您在 Yahka 中创建的所有设备都位于所谓的“桥接器”后面。使用此桥接器,您只需将桥接器与您的 iOS 设备配对即可访问所有设备。否则,您需要将每个 Yahka 设备与 Homekit 配对。 -## 设置网桥并创建设备和服务 -每个需要与 Homekit 配对的设备都需要一个“用户名”,其形式为 mac 地址。 Yahka 自动为每个 yahka 实例生成一个随机用户名。 +## 设置桥接并创建设备和服务 +每个需要与 Homekit 配对的设备都需要一个“用户名”,其形式为 mac 地址。Yahka 会为每个 yahka 实例自动生成一个随机用户名。 -**重要提示:如果您在将 Yahka 与 HomeKit 配对后更改用户名,则需要重新配置 iOS 中的所有设备(房间分配、位置等)。更改用户名对 iOS 来说意味着它是一个全新的设备!** +**重要提示:如果您在将 Yahka 与 HomeKit 配对后更改用户名,则需要重新配置 iOS 中的所有设备(房间分配、位置等)。更改用户名意味着 iOS 认为这是一个全新的设备!** -除了用户名,您还需要指定需要在 iOS 设备上输入的 PIN 码。 -这都可以通过在 Yahka 的管理面板中单击“:yahka.0”来指定。 (单击列表条目后展开右侧的面板)。桥的名称也可以在那里更改。 +除了用户名之外,您还需要指定一个 PIN 码,该 PIN 码需要在 iOS 设备上输入。 +所有这些都可以通过单击 Yahka 管理面板中的“:yahka.0”来指定。(单击列表条目后展开右侧面板)。桥的名称也可以在那里更改。 -设置网桥后,您可以使用顶部的“添加设备”按钮添加您喜欢的设备。 +设置桥接器后,您可以使用顶部的“添加设备”按钮添加您喜欢的设备。 添加/选择设备后,您可以向该设备添加服务。 需要指定服务名称和服务类型。 @@ -135,58 +140,69 @@ HomeKit的架构如下: 根据服务类型,可用特性列表会发生变化。 ## 设置特征 -如果你想支持一个特性,你必须勾选特性左侧的“启用”复选框。 -对于每个特征,您可以指定以下属性: +如果您想要支持某个特性,则必须勾选该特性左侧的“已启用”复选框。 +对于每个特性,您可以指定以下属性: -- InOutFunction:您可以指定一个预定义函数,负责将值从 HomeKit 传递到 ioBroker,反之亦然 -- InOutParameter:在这里您可以为选定的 InOutFunction 指定参数。可用/预期参数取决于所选功能。功能和参数的简要概述如下所述。 -- ConversionFunction:除了 InOutFunction,您还可以指定一个函数,将来自 HomeKit 的值转换为 ioBroker(反之亦然) +- InOutFunction:你可以指定一个预定义函数,负责将值从 HomeKit 传递到 ioBroker 以及反之亦然 +- InOutParameter:您可以在此处为所选的 InOutFunction 指定参数。可用/预期参数取决于所选的函数。下面简要概述了函数和参数。 +- ConversionFunction:除了 InOutFunction 之外,您还可以指定一个函数,将来自 HomeKit 的值转换为 ioBroker(反之亦然) - ConversionParameter:与 InOutParameter 相同 - 可用/预期参数取决于所选函数。 ## InOut 函数概述 -|函数 |预期参数 |说明 | +| 功能 | 预期参数 | 说明 | |------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|常量 |价值 |如果 HomeKit 读取该值,const 函数总是将“InOutParameter”中指定的值传递给转换函数。如果 HomeKit 想要写入值,则拒绝此操作 | -| ioBroker.状态 | ioBroker 数据点的名称 |通过此函数,适配器使用指定的 ioBroker 数据点进行读写操作。所有操作都立即完成,无需缓冲或过滤(值传递给指定的转换函数)| -| ioBroker.State.Defered | ioBroker 数据点的名称 |通过此函数,适配器使用指定的 ioBroker 数据点进行读写操作。来自 HomeKit 的写操作直接传递给转换函数。来自 ioBroker 的更改会去抖 150 毫秒——这意味着只有在 150 毫秒内没有发生其他更改时,该值才会传输到 HomeKit。 | -| ioBroker.State.OnlyACK | ioBroker 数据点的名称 |通过此函数,适配器使用指定的 ioBroker 数据点进行读写操作。来自 HomeKit 的写操作直接传递给转换函数。如果设置了“已确认”-Flag 值,ioBroker 的更改只会转发到 HomeKit。否则,最后确认的值将传输到 HomeKit | -| ioBroker.homematic。
WindowCovering.目标位置 | HomeMatic 关卡数据点的 ID
或者
具有级别数据点 ID 和工作数据点 ID 的字符串数组 |此功能专门用于控制 HomeMatic 窗帘。此函数会在窗帘移动时延迟向 HomeKit 传输值。这是避免 iOS 中的窗帘滑块闪烁所必需的 | +| const | 值 | 如果 HomeKit 读取该值,则 const 函数始终将“InOutParameter”中指定的值传递给转换函数。如果 HomeKit 想要写入该值,则此操作被拒绝 | +| ioBroker.State | ioBroker 数据点的名称 | 使用此函数,适配器使用指定的 ioBroker 数据点进行读写操作。所有操作均立即完成,无需缓冲或过滤(值将传递给指定的转换函数)| +| ioBroker.State.Deferred | ioBroker 数据点的名称 | 使用此函数,适配器使用指定的 ioBroker 数据点进行读写操作。HomeKit 的写入操作直接传递给转换函数。ioBroker 的更改会经过 150 毫秒的去抖动 - 这意味着只有在 150 毫秒内没有发生其他更改时,该值才会传输到 HomeKit。| +| ioBroker.State.OnlyACK | ioBroker 数据点的名称 | 使用此函数,适配器使用指定的 ioBroker 数据点进行读写操作。来自 HomeKit 的写入操作直接传递给转换函数。只有设置了值的“已确认”标志,来自 ioBroker 的更改才会转发到 HomeKit。否则,最后确认的值将被传输到 HomeKit | +| ioBroker.homematic。
WindowCovering.TargetPosition | HomeMatic 级别数据点的 ID
或者
带有级别数据点 ID 和工作数据点 ID 的字符串数组 | 此功能专门用于控制 HomeMatic 窗帘。此功能在窗帘移动时将值传输到 HomeKit。这是必要的,以避免 iOS 中的窗帘滑块闪烁 | ## 转换函数概述 -|函数 |预期参数 |说明 | -|-------------------------------------------------------|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -|直通 | \<无\> |来自 ioBroker 的值未经转换就传递给 HomeKit(反之亦然)| -| Homematic方向
Homekit位置状态 | \ |此函数将 Homematic 窗口覆盖的方向枚举映射到 HomeKit 的 PositionState 枚举(和返回)| -| HomematicControlModeTo
HomekitHeathingCoolingState | \ |此函数将 Homematic 的 ControlMode 枚举映射到 HomeKit 的 HeathingCoolingState 枚举(并返回)| -| 255级 | \ |此函数将值范围为 0 到 255 的 ioBroker 值缩放为值范围为 0 到 100 的 HomeKit 值(并返回)。
**示例:** ioBroker 中的 255 转换为 HomeKit 中的 100。 | -| scaleInt
scale浮动 | `{ "homekit.min": , "homekit.max": , "iobroker.min": , "iobroker.max": }` |此功能类似于“level255”,但更通用。它将范围从“iobroker.min”(如果省略则为 0)到“iobroker.max”的 ioBroker 值转换为值范围从“homekit.min”(如果省略则为 0)到“homekit.max”的 HomeKit 值(然后回来)。
**示例:** 如果参数字段为:`{ "homekit.max": 500, "iobroker.max": 250}`
ioBroker 的值实际上在发送到 HomeKit 之前乘以 2。
**最小参数仅在 0.8.0 及更高版本中可用** | -|色相 | \<无\> |此函数是 scaleInt 的特殊版本,带有参数 `iobroker.max=65535` 和 `homekit.max=360`。 | -|色相 | \<无\> |这个函数是 scaleInt 的特殊版本,参数为 iobroker.max=65535 和 homekit.max=360。 | - -## Homematic 百叶窗驱动器 \ 窗帘 +| 功能 | 预期参数 | 说明 | +|------------------------------------------------------|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| passthrough | \ | 来自 ioBroker 的值无需转换即可传递给 HomeKit(反之亦然)| +| HomematicDirectionTo
主页Kit位置状态 | \ | 此函数将 Homematic 窗帘的方向枚举映射到 HomeKit 的 PositionState 枚举(并返回)| +| Homematic控制模式
Homekit加热冷却状态 | \ | 此函数将 Homematic 的 ControlMode 枚举映射到 HomeKit 的 HeathingCoolingState 枚举(并返回)| +| 级别255 | \ | 此函数将值范围从 0 到 255 的 ioBroker 值缩放为值范围从 0 到 100 的 HomeKit 值(反之亦然)。
**示例**:ioBroker 中的 255 对于 HomeKit 转换为 100。| +| scaleInt
scaleFloat | `{ "homekit.min": , "homekit.max": , "iobroker.min": , "iobroker.max": }` | 此函数与“level255”类似,但更通用。它将范围从“iobroker.min”(如果省略则为 0)到“iobroker.max”的 ioBroker 值转换为范围从“homekit.min”(如果省略则为 0)到“homekit.max”(反之亦然)的 HomeKit 值。
**示例:**如果参数字段为:`{ "homekit.max": 500, "iobroker.max": 250}`
事实上,在将 ioBroker 的值发送给 HomeKit 之前,它会被乘以 2。
**最小参数仅在 0.8.0 及更高版本中可用** | +| 色调 | \ | 此函数是 scaleInt 的专门版本,带有参数 `iobroker.max=65535` 和 `homekit.max=360`。| +| hue | \ | 此函数是 scaleInt 的专门版本,其参数为 `iobroker.max=65535` 和 `homekit.max=360`。| + +## Homematic 百叶窗执行器 \ 窗帘 要集成 Homematic 百叶窗执行器(如 HM-LC-Bl1PBU-FM),需要进行以下设置: * 为设备添加服务 * 将服务名称设置为某个名称,将服务类型设置为“WindowCovering”。服务子类型可以留空 -* 启用并填写以下特征: +* 启用并填写以下特性: -|特征名称 | 1:输入输出功能
2:转换函数| 1:输入输出参数
2:转换参数 | +| 特性名称 | 1:InOut 函数
2:转换函数 | 1:InOut 参数
2:转换参数 | |---------------------|---------------------------------------------------------------------------|----------------------------------------------------------------| -|当前位置 | 1:ioBroker.State.OnlyACK
2:直通 | 1:_\ _.1.等级
2:\ | -|位置状态 | 1:ioBroker.State.OnlyACK
2:HomematicDirectionToHomekitPositionState | 1:_\ _。1个方向
2:\ | -|目标位置 | 1:ioBroker.homematic.WindowCovering.TargetPosition
2:直通| 1:_\ _.1.等级
2:\ | +| 当前位置 | 1:ioBroker.State.OnlyACK
2:直通 | 1:_\ _.1.级别
2:\ | +| 位置状态 | 1: ioBroker.State.OnlyACK
2:HomematicDirectionToHomekitPositionState | 1:_\ _.1.方向
2:\ | +| 目标位置 | 1:ioBroker.homematic.WindowCovering.目标位置
2:直通 | 1:_\ _.1.级别
2:\ | -值 _\_ 需要替换为设备的实际路径(例如 hm-rpc.0.NEQ0012345) +值 _\_ 需要替换为设备的实际路径(例如,hm-rpc.0.NEQ0012345) 有关配置掩码的一般信息,请参阅:TODO -有关配置、InOut 函数和转换函数的更多信息,请参阅:[维基百科](https://github.com/jensweigele/ioBroker.yahka/wiki/Configuration,-InOut-Functions-and-Conversion-Functions) +有关配置、输入输出函数和转换函数的更多信息,请参阅:[维基百科](https://github.com/jensweigele/ioBroker.yahka/wiki/Configuration,-InOut-Functions-and-Conversion-Functions) + +## 开发人员须知 +这个 repo 包含一个子模块,因此在构建之前您还需要关闭/初始化这个子模块,例如,使用`git submodule update --init --recursive` 来更新和获取其内容。 - ## Changelog +### **WORK IN PROGRESS** +* (bluefox) Revert renaming of states back: `HomematicControlModeToHomekitHeatingCoolingState => HomematicControlModeToHomekitHeathingCoolingState, Deferred => Defered` + +### 1.0.4 (2024-08-12) +* (Apollon77) Important: js-controller 5.0 is required at least +* (tarikweiss) Rewrote community types from submodule (js) to typescript +* (tarikweiss) Added the ability to set an ioBroker state for the availability indication in HomeKit + ### 1.0.3 (2023-03-29) * (TA2K) Corrected empty device list with rebuild @@ -315,7 +331,7 @@ HomeKit的架构如下: ## License The MIT License (MIT) -Copyright (c) 2016-2023 Jens Weigele (iobroker.yahka@gmail.com) +Copyright (c) 2016-2024 Jens Weigele (iobroker.yahka@gmail.com) 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/basics/adapter.md b/docs/zh-cn/basics/adapter.md index 22d0bae02..9d536dc3e 100644 --- a/docs/zh-cn/basics/adapter.md +++ b/docs/zh-cn/basics/adapter.md @@ -3,46 +3,50 @@ lastChanged: 24.08.2024 translatedFrom: de translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/basics/adapter.md -title: 控制器和适配器 -hash: 8HcEKegvo687TBc+kFOupFkmNBDZ+XMvC0iQNS62dKE= +title: 控制器和适配器:ioBroker 的构建块 +hash: S3kOycQ/YIdh5RpXKm+5OGGoGyK/AJGfrSPc7w39HDY= --- -# 控制器和适配器 -## 什么是控制器? -ioBroker 中的控制器是负责管理和协调整个 ioBroker 系统的中心组件。 -它承担诸如管理适配器、存储数据以及提供系统各个组件之间的通信接口等任务。 -目前Controller是用TypeScript编写的。 - -### 控制器的主要功能 -- - -- **适配器的管理**:控制器监视和控制ioBroker系统中安装的各种适配器。 -- **数据管理**:控制器存储和管理适配器收集的数据。 -- **系统监控**:控制器监控整个系统的运行状况,并确保所有组件和适配器正常工作。当问题发生时,它可以触发通知和警报。 - -## 什么是适配器? -ioBroker中的适配器是一个软件组件,允许将各种设备、服务或协议集成到ioBroker系统中。 -适配器充当 ioBroker 与您控制或从中收集数据的外部系统之间的接口。 - -### 适配器的主要功能 -1. **数据集成**:适配器从外部设备或服务收集数据,并使这些数据在 ioBroker 中可用。这可以包括例如传感器数据、状态信息或其他相关数据。 -2. **控制**:适配器允许通过ioBroker系统控制外部设备或服务。例如,这可以包括打开和关闭设备、设置参数或执行命令。 -3. **协议翻译**:适配器将外部设备或服务的通信协议翻译成ioBroker可以理解的格式。这允许使用不同协议的不同系统的无缝集成。 - -### 适配器示例 -- **Zigbee 适配器**:允许您集成基于 Zigbee 的设备,例如灯、传感器和开关。 -- **MQTT 适配器**:启用与基于 MQTT 的服务和设备的通信。 -- **HTTP 适配器**:允许集成通过 HTTP 通信的服务。 - -### 使用适配器的优点 -- **灵活性**:适配器允许集成各种设备和服务,无论其通信协议如何。 -- **可扩展性**:可以开发新的适配器来支持额外的设备或服务,从而允许ioBroker系统不断扩展。 -- **集中化**:通过使用适配器,所有设备和服务都可以通过ioBroker系统进行集中管理和控制。 - -### 适配器类型 -- **设备适配器**:这些适配器可以集成和控制物理设备,例如灯、传感器和开关。例如 Zigbee 适配器和 Z-Wave 适配器。 -- **协议适配器**:这些适配器将各种通信协议转换为 ioBroker 可以理解的格式。示例包括 MQTT 适配器和 HTTP 适配器。 -- **服务适配器**:这些适配器支持在线服务和 API 的集成。例如 Alexa 适配器和 Google Home 适配器。 -- **数据库适配器**:这些适配器支持在各种数据库系统中进行数据存储和查询。示例包括 SQL 适配器和 InfluxDB 适配器。 -- **可视化适配器**:这些适配器提供用于可视化和显示数据的选项。例如 Vis 适配器和 Flot 适配器。 -- **脚本适配器**:这些适配器允许您在 ioBroker 中创建和运行脚本。示例包括 JavaScript 适配器和 Blockly 适配器。 -- **专用适配器**:这些适配器提供不属于其他类别的特殊功能或集成。例如 Ping 适配器和 Backitup 适配器。 \ No newline at end of file +# 控制器和适配器:ioBroker 的构建块 +## 控制器:ioBroker 的核心 +控制器是 ioBroker 的核心元素。控制和协调整个系统的是大脑。 +他负责确保所有组件顺利协同工作并交换数据。 + +**控制器的作用是什么?** + +* **管理适配器:** 控制器监视和控制所有已安装的适配器。它确保它们正常运行并可以交换数据。 +* **存储数据:** 控制器存储适配器收集的所有数据。这意味着您可以随时访问数据并将其用于自动化或可视化。 +* **系统监控:** 控制器监控整个系统的健康状况。当问题发生时,它可以触发通知和警报。 + +**控制器是ioBroker所有功能的基础。没有他,系统将无法运行。** + +## 适配器:与世界的接口 +适配器是ioBroker与外界之间的接口。它们使得将各种设备、服务和协议集成到系统中成为可能。 + +**适配器有什么作用?** + +* **集成数据:** 适配器从外部设备或服务收集数据,并使这些数据在 ioBroker 中可用。例如,您可以访问传感器数据、状态信息或其他相关数据。 +* **控制设备:** 适配器可以通过 ioBroker 控制外部设备或服务。例如,您可以打开和关闭设备、设置参数或执行命令。 +* **转换协议:** 适配器将外部设备或服务的通信协议转换为ioBroker可以理解的格式。这使您可以无缝集成使用不同协议的不同系统。 + +**适配器是将ioBroker连接到世界的关键。** + +## 适配器示例 +* **Zigbee 适配器:** 允许您集成基于 Zigbee 的设备,例如灯、传感器和开关。 +* **MQTT 适配器:** 启用与基于 MQTT 的服务和设备的通信。 +* **HTTP 适配器:** 允许集成通过 HTTP 通信的服务。 + +## 使用适配器的优点 +* **灵活性:** 适配器允许集成各种设备和服务,无论其通信协议如何。 +* **可扩展性:** 可以开发新的适配器来支持其他设备或服务。这意味着您可以不断扩展 ioBroker 并使其适应您的需求。 +* **集中化:** 通过使用适配器,所有设备和服务都可以通过ioBroker进行集中管理和控制。 + +## 适配器类型 +* **设备适配器:** 这些适配器可以集成和控制物理设备,例如灯、传感器和开关。例如 Zigbee 适配器和 Z-Wave 适配器。 +* **协议适配器:** 这些适配器将各种通信协议转换为 ioBroker 可以理解的格式。示例包括 MQTT 适配器和 HTTP 适配器。 +* **服务适配器:** 这些适配器支持在线服务和 API 的集成。例如 Alexa 适配器和 Google Home 适配器。 +* **数据库适配器:** 这些适配器支持在各种数据库系统中进行数据存储和查询。示例包括 SQL 适配器和 InfluxDB 适配器。 +* **可视化适配器:** 这些适配器提供用于可视化和显示数据的选项。例如 Vis 适配器和 Flot 适配器。 +* **脚本适配器:** 这些适配器允许您在 ioBroker 中创建和运行脚本。示例包括 JavaScript 适配器和 Blockly 适配器。 +* **专用适配器:** 这些适配器提供不属于其他类别的特殊功能或集成。例如 Ping 适配器和 Backitup 适配器。 + +**通过控制器和适配器的正确组合,您可以根据您的个人需求定制 ioBroker 并创建智能家居或办公室。** \ No newline at end of file diff --git a/docs/zh-cn/basics/enums.md b/docs/zh-cn/basics/enums.md index 632280af8..01a0a00ef 100644 --- a/docs/zh-cn/basics/enums.md +++ b/docs/zh-cn/basics/enums.md @@ -3,7 +3,7 @@ translatedFrom: de translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/basics/enums.md title: 类别/列表 -hash: rqOKByMjzSQxp3fb+HKbbzMiZ4L35Ng+UhehMESFDjY= +hash: dRtaZaSersmPe015O54LIxsy7mWuVT4pyEN1yf2HifE= --- # 类别/列表 类别定义在 ioBroker 中发挥着重要作用。 @@ -16,4 +16,5 @@ hash: rqOKByMjzSQxp3fb+HKbbzMiZ4L35Ng+UhehMESFDjY= ## 类别的用途是什么? - **可视化**:类别有助于对可视化中的对象进行分组和排序。 - **逻辑**:在脚本中,类别可用于对类别中的所有对象执行特定操作。 -- **场景**:类别可以在场景中使用。 \ No newline at end of file +- **场景**:类别可以在场景中使用。 +- **语音控制**:类别可以在语音控制中使用,例如“打开客厅的所有灯” \ No newline at end of file diff --git a/docs/zh-cn/basics/states.md b/docs/zh-cn/basics/states.md index 276e58460..3609918d6 100644 --- a/docs/zh-cn/basics/states.md +++ b/docs/zh-cn/basics/states.md @@ -1,10 +1,10 @@ --- -lastChanged: 06.06.2019 +lastChanged: 25.08.2024 translatedFrom: de translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/basics/states.md title: 状态和数据点 -hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= +hash: 190MIPX6wgLnFl6yKQR3EpEWnybrYzc4cf2YD6kb+rE= --- # 状态和数据点 **数据点**由类型为`state`的静态对象和动态状态组成。 @@ -19,14 +19,14 @@ hash: MuOzn/4lCqzcKVo9fnOB28aNM+QE+RBdW9FF8LOvq00= * `from` - (可选)上次更新的源(适配器实例) * `user` - (可选)用户名,最后写入该值的人。 * `c` - (可选)注释 - * `expire` - (可选)值重置为“零”的时间(以秒为单位)。 + * `expire` - (可选)值设置为“零”时的时间(以秒为单位)。 静态对象的属性有id、type='state'、common、native。以下常见属性是可能的: -* `common.type`(可选)- 默认为“混合”=任何类型。可能的值:“数字”、“字符串”、“布尔值”、“数组”、“对象”、“混合”、“文件”。 +* `common.type` (可选)- 默认为 `mixed` = 任何类型。可能的值:“数字”、“字符串”、“布尔值”、“数组”、“对象”、“混合”、“文件”。 * `common.name` (可选,字符串) * `common.max` (可选,数字) -* `common.step`(可选,数字)- 增加/减少间隔。例如恒温器为 0.5 +* `common.step` (可选,数字)- 增加/减少间隔。例如恒温器为 0.5 * `common.unit` (可选,字符串) * `common.def` (可选 - 默认值) * `common.defAck` (可选 - 如果设置了 common.def,则该值用作 ack 标志,js-controller 2.0.0+) diff --git a/docs/zh-cn/cloud/androidapp.md b/docs/zh-cn/cloud/androidapp.md deleted file mode 100644 index 183d07edf..000000000 --- a/docs/zh-cn/cloud/androidapp.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: 安卓应用 -lastChanged: 14.09.2018 -editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/cloud/androidapp.md -template: true -translatedFrom: de -translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 -hash: Rj3SjOw7mcCokZKTLvjUxi2iAfUUhx8k6LRnng42m4s= ---- -# 安卓应用 -?> ***这是一个占位符***。

帮助 ioBroker 并扩展本文。请注意[ioBroker 风格指南](community/styleguidedoc),以便更容易地采用更改。 \ No newline at end of file diff --git a/docs/zh-cn/cloud/app.md b/docs/zh-cn/cloud/app.md new file mode 100644 index 000000000..9cf1c3ecc --- /dev/null +++ b/docs/zh-cn/cloud/app.md @@ -0,0 +1,23 @@ +--- +title: 应用程序(Android 和 iOS) +lastChanged: 14.09.2018 +translatedFrom: en +translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 +editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/cloud/app.md +hash: ivQYhndkr+a7XP7JqnHpqDPGVHQdPo7OBOvt+7fZOhE= +--- +# 官方 ioBroker 应用程序 +ioBroker 项目有适用于 Android 和 iOS 的官方应用程序。这些应用程序可在相应的应用商店中获取: + +- [Android 应用程序](https://play.google.com/store/apps/details?id=com.iobroker.visu&hl=en_US) +- [iOS 应用程序](https://apps.apple.com/de/app/iobroker-visu/id1673095774) + +使用该应用程序进行本地访问是免费的。对于远程访问(本地网络之外),您需要订阅[ioBroker.pro](https://iobroker.pro/www/pricing#remote) 云。 + +## 特征 +该应用程序允许您: + +- 从本地网络(免费)或世界任何地方访问您的 ioBroker 服务器(需要订阅云) +- 使用 vis-2、iQontrol 或 Lovelace 控制您的智能家居设备 +- 向您的手机发送通知 +- 将手机状态发送到 ioBroker,如电池电量、位置等。 diff --git a/docs/zh-cn/dev/adapterjsonconfig.md b/docs/zh-cn/dev/adapterjsonconfig.md index 786763196..f6c2f558f 100644 --- a/docs/zh-cn/dev/adapterjsonconfig.md +++ b/docs/zh-cn/dev/adapterjsonconfig.md @@ -3,7 +3,7 @@ translatedFrom: en translatedWarning: 如果您想编辑此文档,请删除“translatedFrom”字段,否则此文档将再次自动翻译 editLink: https://github.com/ioBroker/ioBroker.docs/edit/master/docs/zh-cn/dev/adapterjsonconfig.md title: ioBroker JSON 配置 -hash: ClDJCj9QzYDHf2oWQ0fHIOi0XwSqJVaQbYHJe8mSdQQ= +hash: yeuuz/VQ8X9abPD73ngTtsZUJ8pTPMo3NBqR6MK5IEc= --- # IoBroker JSON 配置 Admin(从版本 6 开始)支持适配器的 JSON 配置。 @@ -11,9 +11,9 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 具有多个选项卡的`jsonConfig.json`文件示例可在此处找到:https://github.com/ioBroker/ioBroker.admin/blob/master/admin/jsonConfig.json5 只有一个面板的示例可在此处找到:https://github.com/ioBroker/ioBroker.dwd/blob/master/admin/jsonConfig.json -您可以用 JSON 或 JSON5 格式定义设置。JSON5 更易于阅读,并支持注释。 +您可以用 JSON 或 JSON5 格式定义设置。JSON5 更易于阅读,并且支持注释。 -此外,对于 JSON 文件,您必须在 `common` 部分的 `io-package.json` 中定义: +此外,对于 JSON 文件,您必须在`common` 部分的`io-package.json` 中定义: ```json { @@ -25,19 +25,21 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 } ``` -表示适配器支持 JSON 配置。 +说明适配器支持 JSON 配置。 如果您测试此适配器,则可以看到几乎所有组件都在运行:https://github.com/mcm4iob/ioBroker.jsonconfig-demo。 -您可以通过管理员中的 GitHub 图标在 npm 选项卡上输入`iobroker.jsonconfig-demo`来安装它。 +您可以通过管理员中的 GitHub 图标在 npm 选项卡上输入`iobroker.jsonconfig-demo` 来安装它。 -所有标签、文本、帮助文本都可以是多种语言或仅仅是字符串。 +JSON 配置文件的模式在此处定义:https://github.com/ioBroker/adapter-react-v5/blob/main/schemas/jsonConfig.json + +所有标签、文本、帮助文本都可以是多种语言或仅为字符串。 *如果属性名称以“_”开头,则不会保存在对象中。* 包括 需要管理员 6.17.1 或更新版本。 -要编写复杂的 json 文件,可以包含其他 json 文件。 +要编写复杂的 JSON 文件,您可以包含其他 JSON 文件。 包含的文件必须与主文件位于同一目录中。 ```json5 @@ -57,6 +59,7 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `tabs` - 带有项目的标签 - `items` - 带有面板的对象 `{"tab1": {}, "tab2": {}...}` - `iconPosition` - `bottom`、`end`、`start` 或 `top`。仅适用于具有 `icon` 属性的面板。默认值:`start` +- `tabsStyle` - Mui-Tabs 组件的 React 格式的 CSS 样式(`marginLeft` 而不是 `margin-left`) - `panel` - 带有项目的标签 - `icon` - 选项卡可以有图标(base64 如 `data:image/svg+xml;base64,...`)或 `jpg/png` 图像(以 `.png` 结尾) @@ -64,6 +67,7 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `items` - 对象 `{"attr1": {}, "attr2": {}}...` - `collapsable` - 仅可能不属于 tabs[jsonConfig.json](..%2F..%2F..%2F..%2F..%2FioBroker.ring%2Fadmin%2FjsonConfig.json) - `color` - 可折叠标题的颜色 `primary` 或 `secondary` 或者无 +- `innerStyle` - Panel 组件的 React 格式(`marginLeft` 而非 `margin-left`)内层 div 的 CSS 样式。不适用于可折叠面板。 - `text` - 文本组件 - `maxLength` - 字段中文本的最大长度 @@ -72,6 +76,9 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `minRows` - 默认值为 1。如果您想要一个包含多行的文本区域,请将此属性设置为 `2` 或更大。 - `maxRows` - 文本区域的最大行数。仅当 `minRows` > 1 时使用。 - `noClearButton` - 如果为真,则不会显示清除按钮(admin >= 6.17.13) +- `validateJson` - 如果为 true,文本将被验证为 JSON +- `allowEmpty` - 如果为 true,则仅当值不为空时才会验证 JSON +- `time` - 值是毫秒或字符串的时间。仅与 readOnly 标志一起使用 - `数字` - `min` - 最小值 @@ -89,6 +96,13 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `step` - (默认 `(max - min) / 100`) - `unit` - 滑块的单位 +- `qrCode` - 在二维码中显示数据(来自 Admin 7) +- `data` - 要在二维码中编码的数据 +- `size` - QR 码的大小 +- `fgColor` - 前景色 +- `bgColor` - 背景颜色 +- `level` - QR 码级别(`L` `M` `Q` `H`) + - `ip` - 绑定地址 - `listenOnAllPorts` - 将 0.0.0.0 添加到选项 - `onlyIp4` - 仅显示 IP4 地址 @@ -104,12 +118,12 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `func` - 从 `enum.func` 中选择函数(带颜色和图标)-(仅限 Admin6) - `short` - 没有 `enum.func.` -- `allowDeactivate` - 允许让功能为空 +- `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}]` + `[{"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", ...]` (键必须是唯一的) @@ -170,6 +184,7 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `repeat` - 重复密码必须与密码进行比较 - `visible` - 如果允许通过切换查看按钮查看密码则为 true(仅适用于输入新密码时) +- `readOnly` - 只读标志。如果 readOnly 为真,则 Visible 自动为真 - `maxLength` - 字段中文本的最大长度 -`实例` @@ -189,8 +204,8 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 仅文本:实例正在运行,实例未运行 - `instance` - 检查实例是否处于活动状态。如果未定义,则将使用当前实例。您可以在文本中使用 `${data.number}` 模式。 -- `textAlive` - 默认文本为 `Instance %s is alive`,其中 %s 将被 `ADAPTER.0` 替换。 -- `textNotAlive` - 默认文本为“实例 %s 未处于活动状态”,其中 %s 将被替换为“ADAPTER.0”。 +- `textAlive` - 默认文本为 `Instance %s is alive`,其中 %s 将被 `ADAPTER.0` 替换。翻译必须存在于 i18n 文件中 +- `textNotAlive` - 默认文本为“实例 %s 未激活”,其中 %s 将被替换为 `ADAPTER.0`。翻译必须存在于 i18n 文件中 - `pattern` - 具有类似 'https://${data.ip}:${data.port}' 模式的只读字段(不会保存在配置中) @@ -203,8 +218,8 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `命令` - (默认`发送`) - `jsonData` - 字符串 - `"{\"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,但不能同时指定两者。 -- `结果` - `{结果1:{en:'A'},结果2:{en:'B'}}` -- `错误` - `{错误1:{en:'E'},错误2:{en:'E2'}}` + - `结果` - `{结果1: {en: 'A'}, 结果2: {en: 'B'}}` + - `错误` - `{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}`。 @@ -243,7 +258,7 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `table` - 包含可以删除、添加、上移、下移的项目的表格 - `items` - `[{"type": 见上文, "width": px 或 %, "title": {"en": "header"}, "attr": "name", "filter": false, "sort": true, "default": ""}]` -- `noDelete` - 布尔值,表示删除或添加是否被禁用,如果 `noDelete` 为 false,则添加、删除和上/下移动应该可以工作 +- `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` - 即使设置了过滤器,也允许添加 @@ -254,14 +269,17 @@ Admin(从版本 6 开始)支持适配器的 JSON 配置。 - `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,则添加、删除和上/下移动应该可以工作 +- `noDelete` - 布尔值,表示删除或添加被禁用,如果 `noDelete` 为 false,则添加、删除和上/下移动应该可以工作 - `clone` - [可选] - 是否应显示克隆按钮。如果为 true,则将显示克隆按钮。如果是属性名称,则此名称将是唯一的。 - `jsonEditor` - json 编辑器 +- `validateJson` - 如果为 false,则文本将不会被验证为 JSON +- `allowEmpty` - 如果为 true,则仅当值不为空时才会验证 JSON - `语言` - 选择语言 - `system` - 允许默认使用 `system.config` 中的系统语言(如果选择,则将有一个空字符串值) @@ -430,14 +448,26 @@ adapter.on('message', obj => { 显示根据实例值给定的只读控制。 -- `容器` - div,文本 +- `容器` - div,文本,html - `copyToClipboard` - 如果为 true - 显示按钮 - `alsoDependsOn` - 通过改变哪些属性,必须重新发送命令 - `command` - sendTo 命令 - `jsonData` - 字符串 - `{"subject1": "${data.subject}", "options1": {"host": "${data.host}"}}`。此数据将发送到后端 - `data` - object - `{"subject1": 1, "data": "static"}`。您可以指定 jsonData 或 data,但不能同时指定。如果未定义 jsonData,则此数据将发送到后端。 -要使用此选项,您的适配器必须实现消息处理程序:命令的结果必须是一个字符串。 +要使用此选项,您的适配器必须实现消息处理程序:命令的结果必须是具有以下参数的字符串或对象: + +``` +{ + 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 +} +``` + +例子: ``` adapter.on('message', obj => { @@ -445,6 +475,10 @@ adapter.on('message', 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; } } @@ -459,7 +493,7 @@ adapter.on('message', obj => { - `autoInit` - 如果为空,则使用当前坐标初始化字段 - `longitudeName` - 如果定义,经度将存储在此属性中,分隔符将被忽略 - `latitudeName` - 如果定义,纬度将存储在此属性中,分隔符将被忽略 -- `useSystemName` - 如果已定义,则会显示带有“使用系统设置”的复选框,并从 system.config 中读取纬度、经度,并将布尔值保存到给定的名称 +- `useSystemName` - 如果已定义,则会显示带有“使用系统设置”的复选框,并从 `system.config` 中读取纬度、经度,并将布尔值保存到给定的名称 -`界面` @@ -481,7 +515,7 @@ adapter.on('message', obj => { - `uuid` - 显示 iobroker UUID - `port` - 端口的特殊输入。它会自动检查端口是否被其他实例使用并显示警告。 -- `min` - 允许的最小端口号。它可以是 0。如果该值为零,则不会检查端口是否被占用。 +- `min` - 允许的最小端口号。它可以是 0。如果值为零,则不会检查端口是否被占用。 - `deviceManager` - 显示设备管理器。为此,适配器必须支持设备管理器协议。请参阅 iobroker/dm-utils。