diff --git a/doc/content/en/docs/dashboard/automation/tasks.md b/doc/content/en/docs/dashboard/automation/tasks.md index 050901a5f..09b9364bb 100755 --- a/doc/content/en/docs/dashboard/automation/tasks.md +++ b/doc/content/en/docs/dashboard/automation/tasks.md @@ -9,20 +9,51 @@ description: > {{< figure src="/smart-home/tasks_window1.png" >}} -  +### Automation through Tasks in the Smart Home System -  +The Smart Home system provides a powerful automation mechanism through the use of Tasks. Tasks are programmatic scenarios that are triggered in response to specific events, executed when conditions are met, and can impact devices in the home through a set of actions. This ensures flexibility and intelligence in managing a smart home. -Unfinished article +#### Components of a Task -### Configuration: +1. **Triggers:** + - **Event Definition:** A task begins execution in response to specific events, such as changes in the state of a device, temporal events, sensors, and other external factors. + - **Example:** Initiating a task when a door is opened, when there's motion in a room, on a schedule, etc. +2. **Conditions:** + - **Execution Logic:** A task can contain conditions that determine whether actions should be executed based on the current state of the system. + - **Example:** Execute actions only if the room temperature is above a certain threshold. -### Commands: -* Arbitrary set +3. **Actions:** + - **Device Management:** A task can influence devices in the system by changing their states, issuing commands, and performing other actions. + - **Example:** Turn on the lights when there is motion in the corridor, send a notification when a door is open. -### Attributes: -* Arbitrary set +#### Advantages of Automation through Tasks -### Status: -* Arbitrary set +1. **Flexibility in Configuration:** + - Users can create complex automation scenarios by combining various triggers, conditions, and actions to suit their needs. + +2. **Intelligent Scenarios:** + - Automatic response to events and changes in the system makes the smart home more intelligent, providing a personalized experience. + +3. **Efficient Energy Consumption:** + - Automation can be configured to optimize energy consumption, such as turning off lights and heating when there are no people in the house. + +4. **Management of Multiple Devices:** + - Tasks allow simultaneous control of multiple devices, creating complex scenarios. + +5. **Ease of Use:** + - The intuitive interface of the Smart Home system makes it easy for both novice and experienced users to create and manage tasks. + +#### Example of a Scenario through Tasks + +1. **Scenario "Welcome":** + - **Triggers:** + - Upon opening the door. + - **Conditions:** + - If it is morning or daytime. + - **Actions:** + - Turn on the lights in the hallway. + - Start playing music on the audio system. + - Send a notification that someone has arrived. + +This scenario demonstrates how a task can be used to automate welcoming actions upon opening the door during specific times of the day. diff --git a/doc/content/en/docs/dashboard/automation/triggers.md b/doc/content/en/docs/dashboard/automation/triggers.md index 4401b55f3..ba76fc507 100755 --- a/doc/content/en/docs/dashboard/automation/triggers.md +++ b/doc/content/en/docs/dashboard/automation/triggers.md @@ -9,13 +9,57 @@ description: > {{< figure src="/smart-home/triggers_window1.png" >}} -  +Triggers in the Smart Home system are key elements that initiate the execution of tasks in response to specific events or conditions. Currently, the system supports three main types of triggers, each with its advantages, providing flexibility in automation configuration. -  +#### 1. **Trigger "State Change":** -Each type of trigger has its own handler for performing the corresponding actions. +- **Description:** + - Activates upon the change of the state of a specific device or group of devices in the Smart Home system. -Here are examples of different types of triggers and their respective handlers: +- **Advantages:** + - **Reacting to Changes:** Ideal for scenarios where specific reactions are needed, such as turning lights on/off, opening doors, etc. + - **Customization Flexibility:** Allows selecting specific devices and state parameters for triggering. + +#### 2. **Trigger "System":** + +- **Description:** + - Activates upon the occurrence of system events, such as system start/stop, device connection/disconnection, and other events on the system bus. + +- **Advantages:** + - **System Monitoring:** Used for monitoring the overall system state and detecting events related to the functioning of the smart home. + - **Integration with External Systems:** Enables interaction with systems operating within the system bus. + +#### 3. **Trigger "Time (Cron)":** + +- **Description:** + - Activates at specified time intervals according to a schedule defined in cron format. + +- **Advantages:** + - **Regular Execution:** Ideal for tasks that need to be executed regularly on a schedule. + - **Energy Savings:** Can be used to optimize energy consumption, such as turning off lights or heating during nighttime. + +#### Examples of Trigger Usage + +1. **Trigger "State Change":** + - **Scenario:** + - Turn on the air conditioner when the window in the bedroom is opened. + - **Trigger Configuration:** + - Device: Window in the bedroom. + - State: Open. + +2. **Trigger "System":** + - **Scenario:** + - Send a notification upon connecting a new device to the system. + - **Trigger Configuration:** + - System Event: Connection of a new device. + +3. **Trigger "Time (Cron)":** + - **Scenario:** + - Turn off the lights in all rooms after midnight. + - **Trigger Configuration:** + - Time Interval: "0 0 * * *" corresponding to every midnight. + +#### Examples in Coffeescript 1. `TriggerAlexa`: ```coffeescript @@ -24,7 +68,7 @@ automationTriggerAlexa = (msg) -> Done p return false ``` -The `automationTriggerAlexa` handler is invoked in response to a trigger from Amazon Alexa. It takes the `msg` message object and can perform specific actions related to this trigger. +The `automationTriggerAlexa` handler is called in response to a trigger from Amazon Alexa. It takes the message object `msg` and can perform specific actions related to this trigger. 2. `TriggerStateChanged`: ```coffeescript @@ -34,7 +78,8 @@ automationTriggerStateChanged = (msg) -> Done p.new_state.state.name return false ``` -The `automationTriggerStateChanged` handler is called when the state of a device changes. It takes the `msg` message object and can perform specific actions based on the new state of the device. +The `automationTriggerStateChanged` handler is called when the state of a device changes. It takes the message object +`msg` and can perform specific actions based on the new state of the device. 3. `TriggerSystem`: ```coffeescript @@ -43,7 +88,7 @@ automationTriggerSystem = (msg) -> Done p.event return false ``` -The `automationTriggerSystem` handler is invoked in response to system events. It takes the `msg` message object and can perform specific actions related to this event. +The `automationTriggerSystem` handler is called in response to system events. It takes the message object `msg` and can perform specific actions related to this event. 4. `TriggerTime`: ```coffeescript @@ -52,17 +97,21 @@ automationTriggerTime = (msg) -> Done p return false ``` -The `automationTriggerTime` handler is called after a certain amount of time has passed. It takes the `msg` message object and can perform specific actions related to this time. +The `automationTriggerTime` handler is called after a specified period of time has elapsed. It takes the message object `msg` and can perform specific actions related to this time. -Each trigger handler can execute the necessary logic in response to the corresponding trigger and then return `false` to indicate that further processing is not required. +Each trigger handler can execute the necessary logic in response to the corresponding trigger and then return the value `false` to indicate that further processing is not required. Example implementation: ```coffeescript -automationTriggerStateChanged = (msg) -> +automationTriggerStateChanged = (msg)-> #print '---trigger---' p = msg.payload if !p.new_state || !p.new_state.state return false return msg.new_state.state.name == 'DOUBLE_CLICK' ``` + +#### Conclusion + +The use of different types of triggers in the Smart Home system allows users to create complex and intelligent automation scenarios that seamlessly respond to changes in the system and external events. This provides users with a personalized and efficient smart home experience. diff --git a/doc/content/en/docs/dashboard/gate/_index.md b/doc/content/en/docs/dashboard/gate/_index.md index 3199ce64a..bc8b8f149 100755 --- a/doc/content/en/docs/dashboard/gate/_index.md +++ b/doc/content/en/docs/dashboard/gate/_index.md @@ -7,16 +7,32 @@ description: > --- -Unfinished article +Gate Server in the Smart Home system is a key component that provides secure and convenient remote access to the smart home, even in the absence of a static IP address. This server enables users to control and monitor their home from anywhere in the world via the internet, ensuring data security and comfortable interaction. -### Configuration: +#### Advantages of the Gate Server in the Smart Home System +1. **Security:** + - **Data Encryption:** All data transmitted between devices and the Gate Server is encrypted to prevent unauthorized access. + - **Authentication:** Built-in authentication mechanisms ensure that only authorized users have access to the system. -### Commands: -* Arbitrary set +2. **Convenience of Remote Access:** + - **No White IP:** Users can connect to the system even without a static IP address, making remote access more convenient and accessible. -### Attributes: -* Arbitrary set +3. **Configuration Flexibility:** + - **Connect to Test Gateway:** Smart Home provides a built-in Gate client that can connect to a test gateway at https://gate.e154.ru:8443 for testing and configuring remote access. -### Status: -* Arbitrary set +4. **Scalability:** + - **Support for Multiple Devices:** The Gate Server is designed to handle simultaneous requests from multiple devices, ensuring system scalability. + +#### Working with the Gate Client in the Smart Home System + +1. **Setting Up the Gate Client:** + - Enable the Gate Server mode in the Smart Home system, specifying the address of the test gateway or setting up your Gate Server. + - Configure security parameters such as encryption and authentication. + +2. **Connecting to the Gate Server:** + - The Gate client automatically establishes a secure connection with the Gate Server, without requiring a white IP address. + - Users can use mobile applications or the web interface for remote access. + +3. **Secure Remote Management:** + - Users can control devices, monitor the home's status, and receive notifications even when away from home. diff --git a/doc/content/en/docs/dashboard/gate/client.md b/doc/content/en/docs/dashboard/gate/client.md deleted file mode 100755 index 5d661711a..000000000 --- a/doc/content/en/docs/dashboard/gate/client.md +++ /dev/null @@ -1,22 +0,0 @@ - ---- -title: "Gate client" -linkTitle: "Client" -date: 2024-01-04 -description: > - ---- - -Unfinished article - -### Configuration: - - -### Commands: -* Arbitrary set - -### Attributes: -* Arbitrary set - -### Status: -* Arbitrary set diff --git a/doc/content/en/docs/dashboard/gate/server.md b/doc/content/en/docs/dashboard/gate/server.md deleted file mode 100755 index 9d6b0697a..000000000 --- a/doc/content/en/docs/dashboard/gate/server.md +++ /dev/null @@ -1,22 +0,0 @@ - ---- -title: "Gate server" -linkTitle: "Server" -date: 2024-01-04 -description: > - ---- - -Unfinished article - -### Configuration: - - -### Commands: -* Arbitrary set - -### Attributes: -* Arbitrary set - -### Status: -* Arbitrary set diff --git a/doc/content/en/docs/plugins/mqtt_bridge.md b/doc/content/en/docs/plugins/mqtt_bridge.md index aad437a66..f119a0379 100755 --- a/doc/content/en/docs/plugins/mqtt_bridge.md +++ b/doc/content/en/docs/plugins/mqtt_bridge.md @@ -7,16 +7,40 @@ description: > --- -Unfinished article +The MQTT Bridge plugin provides functionality for integrating devices through the MQTT protocol. This plugin allows efficient data exchange between devices and the Smart Home system using an MQTT broker. -### Configuration: +#### Device Settings +Each device created using the MQTT Bridge plugin has the following settings: -### Commands: -* Arbitrary set +- **`keepAlive` (type: Int)**: The time in seconds after which the device sends a ping to maintain an active connection with the broker. -### Attributes: -* Arbitrary set +- **`pingTimeout` (type: Int)**: The time in seconds expected to receive a response to the ping from the broker. -### Status: -* Arbitrary set +- **`broker` (type: String)**: The address of the MQTT broker to which the device will connect. + +- **`clientID` (type: String)**: The client identifier used when connecting to the broker. + +- **`connectTimeout` (type: Int)**: The time in seconds allocated for establishing a connection with the broker. + +- **`cleanSession` (type: Bool)**: A flag indicating whether to use a "clean" session when connecting. + +- **`username` (type: String)**: The username for authentication when connecting to the broker. + +- **`password` (type: Encrypted)**: The encrypted password for authentication when connecting to the broker. + +- **`qos` (type: Int)**: The Quality of Service level for interacting with the broker. + +- **`direction` (type: String)**: The direction of interaction (e.g., "inbound" or "outbound"). + +- **`topics` (type: String)**: A list of topics with which the device will interact. + +#### Device Statuses + +Each device created using the MQTT Bridge plugin can have the following statuses: + +- **`connected`**: The device is successfully connected to the MQTT broker and ready for data exchange. + +- **`offline`**: The device is not connected to the broker or has lost the connection. + +These settings and statuses provide flexibility in integrating devices through the MQTT protocol, allowing easy configuration and monitoring of their state within the Smart Home system. diff --git a/doc/content/en/docs/plugins/node.md b/doc/content/en/docs/plugins/node.md index 6dbdcfd06..06d7880d8 100755 --- a/doc/content/en/docs/plugins/node.md +++ b/doc/content/en/docs/plugins/node.md @@ -7,16 +7,32 @@ description: > --- -Unfinished article +The Node plugin is designed for the integration of external Node agents, providing the ability to work with Modbus devices on remote servers in the network or from other subnets. This plugin simplifies the connection and interaction with remote Modbus agents, expanding the functionality of the Smart Home system. -### Configuration: +#### Device Properties +- **`thread` (type: Int)**: Identifier of the thread in which the Node agent is operating. -### Commands: -* Arbitrary set +- **`rps` (type: Int)**: Number of requests per second (Requests Per Second) processed by the agent. -### Attributes: -* Arbitrary set +- **`min` (type: Int)**: Minimum response time from the agent in milliseconds. -### Status: -* Arbitrary set +- **`max` (type: Int)**: Maximum response time from the agent in milliseconds. + +- **`latency` (type: Int)**: Delay between the request and response from the agent in milliseconds. + +- **`startedAt` (type: Time)**: Time when the Node agent was started. + +#### Device Settings + +- **`node_login` (type: String)**: Login for authentication on the Node agent. + +- **`node_pass` (type: String)**: Password for authentication on the Node agent. + +#### Device Statuses + +- **`wait` (type: String)**: The agent is waiting for connections and requests from the Smart Home system. + +- **`connected` (type: String)**: Successful connection established with the Node agent. + +- **`error` (type: String)**: An error occurred during the interaction with the Node agent. diff --git a/doc/content/en/docs/plugins/notify/email.md b/doc/content/en/docs/plugins/notify/email.md index 4fa83ac7d..54f8b6e5d 100755 --- a/doc/content/en/docs/plugins/notify/email.md +++ b/doc/content/en/docs/plugins/notify/email.md @@ -7,16 +7,38 @@ description: > --- -Unfinished article +The Email plugin provides the ability to integrate email sending functionality into the Smart Home system. This plugin allows users to configure email parameters and send notifications or messages from devices within the smart home. -### Configuration: +#### Device Settings +- **`email` (type: String)**: The email through which messages are sent. -### Commands: -* Arbitrary set +- **`auth` (type: String)**: Authentication method for accessing the mail server (e.g., "PLAIN" or "LOGIN"). -### Attributes: -* Arbitrary set +- **`pass` (type: Encrypted)**: Encrypted password for authentication when accessing the mail server. -### Status: -* Arbitrary set +- **`smtp` (type: String)**: Outgoing mail server (SMTP) address. + +- **`port` (type: Int)**: Outgoing mail server port (e.g., 587 for TLS or 465 for SSL). + +- **`sender` (type: String)**: Sender's email address. + +#### Message Attributes + +- **`addresses` (type: String)**: A list of recipient email addresses, separated by commas. + +- **`subject` (type: String)**: The subject of the email message. + +- **`body` (type: String)**: The body text of the email message. + +#### Example in Coffeescript + +```coffeescript +msg = notifr.newMessage(); +msg.entity_id = 'email.google'; +msg.attributes = { + 'body': 'some text msg', + 'addresses': 'john.smith@example.com,jane.doe@example.com', + 'subject': 'Important Notification', +}; +``` diff --git a/doc/content/en/docs/plugins/onvif.md b/doc/content/en/docs/plugins/onvif.md index 14fb51e9b..fe27fbcd9 100755 --- a/doc/content/en/docs/plugins/onvif.md +++ b/doc/content/en/docs/plugins/onvif.md @@ -7,16 +7,67 @@ description: > --- -Unfinished article +The Smart Home project provides the ONVIF plugin, enabling interaction with surveillance cameras using the ONVIF protocol. This plugin implements several JavaScript methods for camera control and snapshot retrieval. -### Configuration: +#### JavaScript Methods +1. **`Camera.continuousMove(X, Y)`**: This method allows for smooth camera movement to the specified coordinates X and Y. -### Commands: -* Arbitrary set +2. **`Camera.stopContinuousMove()`**: This method stops continuous camera movement. -### Attributes: -* Arbitrary set +3. **`OnvifGetSnapshotUri(entityId)`**: Method for obtaining the snapshot URI for the specified device identifier. -### Status: -* Arbitrary set +4. **`DownloadSnapshot(entityId)`**: Method for downloading a snapshot from the device based on its identifier. + +#### Device Status + +- **`motion` (type: Boolean)**: Status indicating the presence of motion detected by the surveillance camera. + +#### Device Settings + +- **`address` (type: String)**: IP address of the surveillance camera. + +- **`onvifPort` (type: Int)**: Port for connecting to the camera via the ONVIF protocol. + +- **`rtspPort` (type: Int)**: Port for video transmission via the RTSP protocol. + +- **`userName` (type: String)**: User name for authentication when accessing the camera. + +- **`password` (type: Encrypted)**: Encrypted password for authentication. + +- **`requireAuthorization` (type: Bool)**: Flag indicating whether authorization is required for interacting with the camera. + +#### Control Commands + +- **`continuousMove`**: Command to initiate continuous camera movement. + +- **`stopContinuousMove`**: Command to stop continuous camera movement. + +#### Device Statuses + +- **`connected`**: The device is successfully connected and ready to operate. + +- **`offline`**: The device is unavailable or disconnected from the system. + +These functions allow the integration of surveillance cameras into the Smart Home system and efficient management through the ONVIF plugin. + +Example of using the "onvif" plugin to implement camera control: + +```javascript +continuousMove = function (args) { + var X, Y; + X = args['X'] || 0; + Y = args['Y'] || 0; + if (Math.abs(X) > Math.abs(Y)) { + Y = 0; + } else { + X = 0; + } + return Camera.continuousMove(X, Y); +}; + +stopStop = function (args) { + return Camera.stopContinuousMove(); +}; + +``` diff --git a/doc/content/en/docs/plugins/scene.md b/doc/content/en/docs/plugins/scene.md index b67b31128..6754df687 100755 --- a/doc/content/en/docs/plugins/scene.md +++ b/doc/content/en/docs/plugins/scene.md @@ -7,16 +7,35 @@ description: > --- -Unfinished article +The Scene plugin in the Smart Home system provides a powerful tool for creating and managing automation scenarios. This plugin does not have specific parameters but allows users to combine various actions and device states, creating intelligent scenarios for different events and needs. -### Configuration: +#### Advantages of Using the Scene Plugin +1. **Customization Flexibility:** Users can create scenarios considering different conditions and preferences to optimize the home environment. -### Commands: -* Arbitrary set +2. **Integration with Devices:** The Scene plugin allows the combination of various devices (lighting, thermostats, audio systems) for joint impact and the creation of harmonious scenarios. -### Attributes: -* Arbitrary set +3. **Time Management:** Scenarios can be automated to activate at specific times of the day, making them convenient for daily routines. -### Status: -* Arbitrary set +#### Examples of Using the Scene Plugin + +1. **"Good Morning" Scenario:** + - **Description:** Activates every morning for a comfortable wake-up. + - **Actions:** + - Turn on bedroom lights at 50% brightness. + - Start morning music in the living room. + - Set the thermostat temperature to the optimal level. + +2. **"Evening Mode" Scenario:** + - **Description:** Automatically sets the home for comfort before bedtime. + - **Actions:** + - Dim the lighting in the living room and bedroom. + - Turn on soft light in the hallway and kitchen. + - Set the thermostat to a comfortable temperature. + - Start background music for relaxation. + +#### Integration with Other Plugins + +The Scene plugin easily integrates with other components of the Smart Home system, allowing the creation of more complex and intelligent scenarios. + +These capabilities make the Scene plugin an integral part of the Smart Home automation system, providing users with convenience and intelligent features in their daily lives. diff --git a/doc/content/en/docs/plugins/speedtest.md b/doc/content/en/docs/plugins/speedtest.md index 84db2632c..4886eb975 100755 --- a/doc/content/en/docs/plugins/speedtest.md +++ b/doc/content/en/docs/plugins/speedtest.md @@ -7,16 +7,44 @@ description: > --- -Unfinished article +The Speedtest plugin provides the capability to measure internet connection speed directly from the Smart Home system. This plugin allows users to check the quality of their internet connection and use the obtained data to make decisions regarding network optimization. -### Configuration: +#### Device Properties +Each device created using the Speedtest plugin has the following properties: -### Commands: -* Arbitrary set +- **`Point`**: Geographical coordinates of the Speedtest node. -### Attributes: -* Arbitrary set +- **`Name` (type: String)**: Name of the conducted Speedtest. -### Status: -* Arbitrary set +- **`Country` (type: String)**: Country where the test is conducted. + +- **`Sponsor` (type: String)**: Name of the Speedtest sponsor. + +- **`Distance` (type: Float)**: Distance to the Speedtest server in kilometers. + +- **`Latency` (type: String)**: Latency (ping) to the Speedtest server. + +- **`Jitter` (type: String)**: Indicator of internet connection stability. + +- **`DLSpeed` (type: Float)**: Download Speed in megabits per second. + +- **`ULSpeed` (type: Float)**: Upload Speed in megabits per second. + +- **`location` (type: Point)**: Geographical coordinates of the device location. + +#### Device Settings + +Each device created using the Speedtest plugin contains the following settings: + +- **`location` (type: Point)**: Geographical coordinates indicating the device location for conducting the Speedtest. + +- **`city` (type: String)**: Name of the city where the testing will take place. + +#### Device Statuses + +Each device created using the Speedtest plugin can have the following statuses: + +- **`completed`**: Testing has been successfully completed, and the data is available for analysis. + +- **`in process`**: Testing is currently in progress. diff --git a/doc/content/ru/docs/dashboard/automation/tasks.md b/doc/content/ru/docs/dashboard/automation/tasks.md index 050901a5f..c7380795c 100755 --- a/doc/content/ru/docs/dashboard/automation/tasks.md +++ b/doc/content/ru/docs/dashboard/automation/tasks.md @@ -9,20 +9,51 @@ description: > {{< figure src="/smart-home/tasks_window1.png" >}} -  +### Автоматизация через Задачи в системе Smart Home -  +Система Smart Home предоставляет мощный механизм автоматизации через использование Задач (Tasks). Задачи представляют собой программные сценарии, которые запускаются в ответ на определенные события (триггеры), выполняются при выполнении условий и могут воздействовать на устройства в доме через набор действий. Это обеспечивает гибкость и интеллектуальность в управлении умным домом. -Unfinished article +#### Компоненты Задачи -### Configuration: +1. **Триггеры (Triggers):** + - **Определение Событий:** Задача начинает выполнение в ответ на определенные события, такие как изменение состояния устройства, временные события, датчиков и других внешних факторов. + - **Пример:** Запуск задачи при открытии двери, при движении в комнате, по расписанию и т.д. +2. **Условия (Conditions):** + - **Логика выполнения:** Задача может содержать условия, которые определяют, должны ли выполниться действия в зависимости от текущего состояния системы. + - **Пример:** Выполнить действия только если температура в комнате выше определенного порога. -### Commands: -* Arbitrary set +3. **Действия (Actions):** + - **Управление Устройствами:** Задача может воздействовать на устройства в системе, изменяя их состояния, запуская команды и выполняя другие действия. + - **Пример:** Включить свет при движении в коридоре, отправить уведомление при открытой двери. -### Attributes: -* Arbitrary set +#### Преимущества Автоматизации через Задачи -### Status: -* Arbitrary set +1. **Гибкость настройки:** + - Пользователи могут создавать сложные сценарии автоматизации, комбинируя различные триггеры, условия и действия под свои потребности. + +2. **Интеллектуальные Сценарии:** + - Автоматическое реагирование на события и изменения в системе делает умный дом более интеллектуальным, предоставляя персонализированный опыт. + +3. **Эффективное Энергопотребление:** + - Автоматизация может быть настроена для оптимизации энергопотребления, например, выключение света и отопления при отсутствии людей в доме. + +4. **Управление Множеством Устройств:** + - Задачи позволяют одновременно управлять несколькими устройствами, создавая комплексные сценарии. + +5. **Легкость Использования:** + - Интуитивный интерфейс системы Smart Home делает создание и управление задачами доступным даже для неопытных пользователей. + +#### Пример Сценария через Задачи + +1. **Сценарий "Добро Пожаловать":** + - **Триггеры:** + - При открытии двери. + - **Условия:** + - Если время дня — утро или день. + - **Действия:** + - Включить свет в прихожей. + - Включить музыку на аудиосистеме. + - Отправить уведомление о том, что кто-то пришел. + +Этот сценарий демонстрирует, как задача может быть использована для автоматизации приветственных действий при от diff --git a/doc/content/ru/docs/dashboard/automation/triggers.md b/doc/content/ru/docs/dashboard/automation/triggers.md index 86e85418b..7a7df5da4 100755 --- a/doc/content/ru/docs/dashboard/automation/triggers.md +++ b/doc/content/ru/docs/dashboard/automation/triggers.md @@ -9,13 +9,57 @@ description: > {{< figure src="/smart-home/triggers_window1.png" >}} -  +Триггеры в системе Smart Home представляют собой ключевые элементы, которые запускают выполнение Задач в ответ на определенные события или условия. В настоящее время система поддерживает три основных типа триггеров, каждый из которых обладает своими преимуществами и обеспечивает гибкость в настройке автоматизации. -  +#### 1. **Триггер "State Change" (Изменение Состояния):** -Каждый тип триггера имеет свой собственный обработчик (handler) для выполнения соответствующих действий. +- **Описание:** + - Активируется при изменении состояния определенного устройства или группы устройств в системе Smart Home. -Вот примеры различных типов триггеров и соответствующих им обработчиков: +- **Преимущества:** + - **Реакция на Изменения:** Идеально подходит для сценариев, где требуется реагировать на конкретные изменения, например, включение/выключение света, открытие двери и т.д. + - **Гибкость Настройки:** Позволяет выбирать конкретные устройства и параметры состояний для триггерирования. + +#### 2. **Триггер "System" (Системные События):** + +- **Описание:** + - Активируется при возникновении системных событий, таких как запуск/остановка системы, подключение/отключение устройств и другие события системной шины. + +- **Преимущества:** + - **Мониторинг Системы:** Используется для мониторинга общего состояния системы и детектирования событий, связанных с функционированием умного дома. + - **Интеграция с Внешними Системами:** Позволяет взаимодействовать с системами, работающими в рамках системной шины. + +#### 3. **Триггер "Time (Cron)" (Временной Триггер):** + +- **Описание:** + - Активируется с заданным временным интервалом в соответствии с расписанием, заданным в формате cron. + +- **Преимущества:** + - **Регулярное Выполнение:** Идеально подходит для задач, которые должны выполняться регулярно по расписанию. + - **Энергосбережение:** Может использоваться для оптимизации энергопотребления, например, выключения света или отопления в ночное время. + +#### Примеры Использования Триггеров + +1. **Триггер "State Change":** + - **Сценарий:** + - Включить кондиционер при открытии окна в спальне. + - **Настройка Триггера:** + - Устройство: Окно в спальне. + - Состояние: Открыто. + +2. **Триггер "System":** + - **Сценарий:** + - Отправить уведомление при подключении нового устройства к системе. + - **Настройка Триггера:** + - Системное событие: Подключение нового устройства. + +3. **Триггер "Time (Cron)":** + - **Сценарий:** + - Выключить свет во всех комнатах после полуночи. + - **Настройка Триггера:** + - Временной интервал: "0 0 * * *", что соответствует каждой полуночи. + +#### Примеры на Coffescript 1. `TriggerAlexa`: ```coffeescript @@ -71,3 +115,7 @@ automationTriggerStateChanged = (msg)-> return false return msg.new_state.state.name == 'DOUBLE_CLICK' ``` + +#### Заключение + +Использование различных типов триггеров в системе Smart Home позволяет пользователям создавать сложные и интеллектуальные сценарии автоматизации, гармонично реагирующие на изменения в системе и внешние события. Это предоставляет пользоват diff --git a/doc/content/ru/docs/dashboard/gate/_index.md b/doc/content/ru/docs/dashboard/gate/_index.md index 3199ce64a..c804902b0 100755 --- a/doc/content/ru/docs/dashboard/gate/_index.md +++ b/doc/content/ru/docs/dashboard/gate/_index.md @@ -7,16 +7,33 @@ description: > --- -Unfinished article +Gate-сервер в системе Smart Home представляет собой ключевой компонент, обеспечивающий безопасный и удобный удаленный доступ к умному дому даже при отсутствии статического IP-адреса. Этот сервер позволяет пользователям управлять и мониторить свой дом из любой точки мира через интернет, обеспечивая защиту данных и комфортное взаимодействие. -### Configuration: +#### Преимущества Gate-сервера в системе Smart Home +1. **Безопасность:** + - **Шифрование данных:** Все данные, передаваемые между устройствами и Gate-сервером, шифруются для предотвращения несанкционированного доступа. + - **Аутентификация:** Встроенные механизмы аутентификации гарантируют, что только авторизованные пользователи имеют доступ к системе. -### Commands: -* Arbitrary set +2. **Удобство Удаленного Доступа:** + - **Без белого IP:** Пользователи могут подключаться к системе даже при отсутствии статического IP-адреса, что делает удаленный доступ более удобным и доступным. -### Attributes: -* Arbitrary set +3. **Гибкость настройки:** + - **Подключение к тестовому шлюзу:** Smart Home предоставляет встроенный Gate-клиент, который может подключаться к тестовому шлюзу по адресу https://gate.e154.ru:8443 для тестирования и настройки удаленного доступа. + +4. **Масштабируемость:** + - **Поддержка множества устройств:** Gate-сервер спроектирован для обработки одновременных запросов от множества устройств, обеспечивая масштабируемость системы. + +#### Работа с Gate-клиентом в системе Smart Home + +1. **Настройка Gate-клиента:** + - Включите режим Gate-сервера в системе Smart Home, указав адрес тестового шлюза или установив свой Gate-сервер. + - Настройте параметры безопасности, такие как шифрование и аутентификация. + +2. **Подключение к Gate-серверу:** + - Gate-клиент автоматически устанавливает безопасное соединение с Gate-сервером, не требуя белого IP-адреса. + - Пользователи могут использовать мобильные приложения или веб-интерфейс для удаленного доступа. + +3. **Безопасное Удаленное Управление:** + - Пользователи могут управлять устройствами, мониторить статус дома и получать уведомления даже находясь вдали от дома. -### Status: -* Arbitrary set diff --git a/doc/content/ru/docs/dashboard/gate/client.md b/doc/content/ru/docs/dashboard/gate/client.md deleted file mode 100755 index 5d661711a..000000000 --- a/doc/content/ru/docs/dashboard/gate/client.md +++ /dev/null @@ -1,22 +0,0 @@ - ---- -title: "Gate client" -linkTitle: "Client" -date: 2024-01-04 -description: > - ---- - -Unfinished article - -### Configuration: - - -### Commands: -* Arbitrary set - -### Attributes: -* Arbitrary set - -### Status: -* Arbitrary set diff --git a/doc/content/ru/docs/dashboard/gate/server.md b/doc/content/ru/docs/dashboard/gate/server.md deleted file mode 100755 index 9d6b0697a..000000000 --- a/doc/content/ru/docs/dashboard/gate/server.md +++ /dev/null @@ -1,22 +0,0 @@ - ---- -title: "Gate server" -linkTitle: "Server" -date: 2024-01-04 -description: > - ---- - -Unfinished article - -### Configuration: - - -### Commands: -* Arbitrary set - -### Attributes: -* Arbitrary set - -### Status: -* Arbitrary set diff --git a/doc/content/ru/docs/plugins/mqtt_bridge.md b/doc/content/ru/docs/plugins/mqtt_bridge.md index aad437a66..543d36bba 100755 --- a/doc/content/ru/docs/plugins/mqtt_bridge.md +++ b/doc/content/ru/docs/plugins/mqtt_bridge.md @@ -1,22 +1,46 @@ --- title: "MQTT bridge" -linkTitle: "mqtt_bridge" +linkTitle: "mqtt bridge" date: 2024-01-04 description: > --- -Unfinished article +Плагин MQTT Bridge предоставляет функциональность для интеграции устройств через протокол MQTT. Этот плагин позволяет эффективно обмениваться данными между устройствами и системой Smart Home, используя брокер MQTT. -### Configuration: +#### Настройки устройства +Каждое устройство, созданное с использованием плагина MQTT Bridge, обладает следующими настройками: -### Commands: -* Arbitrary set +- **`keepAlive` (тип: Int)**: Время в секундах, через которое устройство отправляет пинг для поддержания активного соединения с брокером. -### Attributes: -* Arbitrary set +- **`pingTimeout` (тип: Int)**: Время в секундах, ожидаемое для получения ответа на пинг от брокера. -### Status: -* Arbitrary set +- **`broker` (тип: String)**: Адрес брокера MQTT, к которому устройство будет подключаться. + +- **`clientID` (тип: String)**: Идентификатор клиента, используемый при подключении к брокеру. + +- **`connectTimeout` (тип: Int)**: Время в секундах, выделенное для установки соединения с брокером. + +- **`cleanSession` (тип: Bool)**: Флаг, указывающий, следует ли использовать "чистую" сессию при подключении. + +- **`username` (тип: String)**: Имя пользователя для аутентификации при подключении к брокеру. + +- **`password` (тип: Encrypted)**: Зашифрованный пароль для аутентификации при подключении к брокеру. + +- **`qos` (тип: Int)**: Уровень обслуживания сообщений (Quality of Service) для взаимодействия с брокером. + +- **`direction` (тип: String)**: Направление взаимодействия (например, "inbound" или "outbound"). + +- **`topics` (тип: String)**: Список тем, с которыми устройство будет взаимодействовать. + +#### Статусы устройства + +Каждое устройство, созданное с использованием плагина MQTT Bridge, может иметь следующие статусы: + +- **`connected`**: Устройство успешно подключено к брокеру MQTT и готово к обмену данными. + +- **`offline`**: Устройство не подключено к брокеру или потеряло соединение. + +Эти настройки и статусы обеспечивают гибкость в интеграции устройств через протокол MQTT, позволяя легко настраивать и мониторить их состояние в рамках системы Smart Home. diff --git a/doc/content/ru/docs/plugins/node.md b/doc/content/ru/docs/plugins/node.md index 183239c05..014886ad7 100755 --- a/doc/content/ru/docs/plugins/node.md +++ b/doc/content/ru/docs/plugins/node.md @@ -7,16 +7,32 @@ description: > --- -Не законченная статья +Плагин Node разработан для интеграции внешних агентов Node, обеспечивая возможность работы с Modbus-устройствами на удаленных серверах в сети или из других подсетей. Этот плагин упрощает подключение и взаимодействие с удаленными Modbus-агентами, расширяя функциональность системы Smart Home. -### Настройка: +#### Свойства устройства +- **`thread` (тип: Int)**: Идентификатор потока, в котором работает агент Node. -### Команды: -* произвольный набор +- **`rps` (тип: Int)**: Количество запросов в секунду (Requests Per Second), обрабатываемых агентом. -### Атрибуты -* произвольный набор +- **`min` (тип: Int)**: Минимальное время ответа от агента в миллисекундах. -### Статус -* произвольный набор +- **`max` (тип: Int)**: Максимальное время ответа от агента в миллисекундах. + +- **`latency` (тип: Int)**: Задержка между запросом и ответом от агента в миллисекундах. + +- **`startedAt` (тип: Time)**: Время запуска агента Node. + +#### Настройки устройства + +- **`node_login` (тип: String)**: Логин для аутентификации на агенте Node. + +- **`node_pass` (тип: String)**: Пароль для аутентификации на агенте Node. + +#### Статусы устройства + +- **`wait` (тип: String)**: Агент ожидает подключения и запросов от системы Smart Home. + +- **`connected` (тип: String)**: Установлено успешное соединение с агентом Node. + +- **`error` (тип: String)**: Произошла ошибка при взаимодействии с агентом Node. diff --git a/doc/content/ru/docs/plugins/notify/email.md b/doc/content/ru/docs/plugins/notify/email.md index 4fa83ac7d..b9db31924 100755 --- a/doc/content/ru/docs/plugins/notify/email.md +++ b/doc/content/ru/docs/plugins/notify/email.md @@ -7,16 +7,38 @@ description: > --- -Unfinished article +Плагин Email предоставляет возможность интегрировать функциональность отправки электронных сообщений в систему Smart Home. Этот плагин позволяет пользователям настраивать параметры электронной почты и отправлять уведомления или сообщения с устройств в рамках умного дома. -### Configuration: +#### Настройки устройства +- **`email` (тип: String)**: Электронная почта, через которую осуществляется отправка сообщений. -### Commands: -* Arbitrary set +- **`auth` (тип: String)**: Метод аутентификации для доступа к почтовому серверу (например, "PLAIN" или "LOGIN"). -### Attributes: -* Arbitrary set +- **`pass` (тип: Encrypted)**: Зашифрованный пароль для аутентификации при доступе к почтовому серверу. -### Status: -* Arbitrary set +- **`smtp` (тип: String)**: Адрес сервера исходящей почты (SMTP). + +- **`port` (тип: Int)**: Порт сервера исходящей почты (например, 587 для TLS или 465 для SSL). + +- **`sender` (тип: String)**: Адрес отправителя электронного сообщения. + +#### Атрибуты сообщения + +- **`addresses` (тип: String)**: Список адресов электронной почты получателей, разделенных запятыми. + +- **`subject` (тип: String)**: Тема электронного сообщения. + +- **`body` (тип: String)**: Текст тела электронного сообщения. + +#### Пример на Coffeescript + +```coffeescript +msg = notifr.newMessage(); +msg.entity_id = 'email.google'; +msg.attributes = { + 'body': 'some text msg', + 'addresses': 'john.smith@example.com,john.smith@example.com', + 'subject': 'john.smith@example.com', +}; +``` diff --git a/doc/content/ru/docs/plugins/onvif.md b/doc/content/ru/docs/plugins/onvif.md index 14fb51e9b..8458c2221 100755 --- a/doc/content/ru/docs/plugins/onvif.md +++ b/doc/content/ru/docs/plugins/onvif.md @@ -1,22 +1,73 @@ --- -title: "Onvif" +title: "Plugin ONVIF" linkTitle: "onvif" date: 2024-01-04 description: > --- -Unfinished article +Проект Smart Home предоставляет плагин ONVIF, который обеспечивает возможность взаимодействия с камерами наблюдения по протоколу ONVIF. Данный плагин реализует несколько методов JavaScript, предназначенных для управления камерами и получения снимков. -### Configuration: +#### Методы JavaScript +1. **`Camera.continuousMove(X, Y)`**: Этот метод позволяет осуществлять плавное движение камеры по координатам X и Y. -### Commands: -* Arbitrary set +2. **`Camera.stopContinuousMove()`**: Данный метод останавливает непрерывное движение камеры. -### Attributes: -* Arbitrary set +3. **`OnvifGetSnapshotUri(entityId)`**: Метод для получения URI снимка для указанного идентификатора устройства. -### Status: -* Arbitrary set +4. **`DownloadSnapshot(entityId)`**: Метод для загрузки снимка с устройства по его идентификатору. + +#### Статус устройства + +- **`motion` (тип: Boolean)**: Статус, отображающий наличие движения, определенного камерой наблюдения. + +#### Настройки устройства + +- **`address` (тип: String)**: IP-адрес камеры наблюдения. + +- **`onvifPort` (тип: Int)**: Порт для соединения с камерой по протоколу ONVIF. + +- **`rtspPort` (тип: Int)**: Порт для передачи видео по протоколу RTSP. + +- **`userName` (тип: String)**: Имя пользователя для аутентификации при доступе к камере. + +- **`password` (тип: Encrypted)**: Зашифрованный пароль для аутентификации. + +- **`requireAuthorization` (тип: Bool)**: Флаг, указывающий, требуется ли авторизация для взаимодействия с камерой. + +#### Команды управления + +- **`continuousMove`**: Команда для запуска непрерывного движения камеры. + +- **`stopContinuousMove`**: Команда для остановки непрерывного движения камеры. + +#### Статусы устройства + +- **`connected`**: Устройство успешно подключено и готово к работе. + +- **`offline`**: Устройство недоступно или отключено от системы. + +Эти функции позволяют интегрировать камеры наблюдения в систему Smart Home и эффективно управлять ими через плагин ONVIF. + +Пример использования плагина "onvif" для реализации управления камерой: + +```javascript +continuousMove = function (args) { + var X, Y; + X = args['X'] || 0; + Y = args['Y'] || 0; + if (Math.abs(X) > Math.abs(Y)) { + Y = 0; + } else { + X = 0; + } + return Camera.continuousMove(X, Y); +}; + +stopStop = function (args) { + return Camera.stopContinuousMove(); +}; + +``` diff --git a/doc/content/ru/docs/plugins/scene.md b/doc/content/ru/docs/plugins/scene.md index 3acf531c6..6afd39085 100755 --- a/doc/content/ru/docs/plugins/scene.md +++ b/doc/content/ru/docs/plugins/scene.md @@ -7,16 +7,35 @@ description: > --- -Не законченная статья +Плагин Scene в системе Smart Home предоставляет мощный инструмент для создания и управления сценариями автоматизации. Этот плагин не имеет конкретных параметров, но позволяет пользователям комбинировать различные действия и состояния устройств, создавая интеллектуальные сценарии для различных событий и потребностей. -### Настройка: +#### Преимущества использования плагина Scene +1. **Гибкость настройки:** Пользователи могут создавать сценарии, учитывающие различные условия и предпочтения, чтобы оптимизировать окружение в доме. -### Команды: -* произвольный набор +2. **Интеграция с устройствами:** Плагин Scene позволяет объединять различные устройства (освещение, термостаты, аудиосистемы) для совместного воздействия и создания гармоничных сценариев. -### Атрибуты -* произвольный набор +3. **Управление временем:** Сценарии можно автоматизировать, чтобы активироваться в определенное время суток, что делает их удобными для ежедневных рутинных действий. -### Статус -* произвольный набор +#### Примеры использования плагина Scene + +1. **"Добро утро" сценарий:** + - **Описание:** Активируется каждое утро для комфортного пробуждения. + - **Действия:** + - Включить свет в спальне на 50% яркости. + - Запустить утреннюю музыку в гостиной. + - Установить температуру термостата на оптимальный уровень. + +2. **"Вечерний режим" сценарий:** + - **Описание:** Автоматически настраивает дом для уюта перед сном. + - **Действия:** + - Затемнить освещение в гостиной и спальне. + - Включить мягкий свет в коридоре и кухне. + - Установить термостат на комфортную температуру. + - Запустить фоновую музыку для релаксации. + +#### Интеграция с другими плагинами + +Плагин Scene легко интегрируется с другими компонентами системы Smart Home, позволяя создавать более сложные и интеллектуальные сценарии. + +Эти возможности делают плагин Scene неотъемлемой частью системы автоматизации Smart Home, обеспечивая пользователей удобством и интеллектуальными функциями в их повседневной жизни. diff --git a/doc/content/ru/docs/plugins/speedtest.md b/doc/content/ru/docs/plugins/speedtest.md index 84db2632c..389f8f211 100755 --- a/doc/content/ru/docs/plugins/speedtest.md +++ b/doc/content/ru/docs/plugins/speedtest.md @@ -7,16 +7,44 @@ description: > --- -Unfinished article +Плагин Speedtest предоставляет возможность измерения скорости интернет-соединения непосредственно из системы Smart Home. Этот плагин позволяет пользователям проверять качество своего интернет-подключения, а также использовать полученные данные для принятия решений по оптимизации сетевых параметров. -### Configuration: +#### Свойства устройства +Каждое устройство, созданное с использованием плагина Speedtest, обладает следующими свойствами: -### Commands: -* Arbitrary set +- **`Point`**: Географические координаты узла Speedtest. -### Attributes: -* Arbitrary set +- **`Name` (тип: String)**: Название проведенного теста Speedtest. -### Status: -* Arbitrary set +- **`Country` (тип: String)**: Страна, в которой проводится тест. + +- **`Sponsor` (тип: String)**: Название спонсора теста Speedtest. + +- **`Distance` (тип: Float)**: Расстояние до сервера Speedtest в километрах. + +- **`Latency` (тип: String)**: Задержка (пинг) до сервера Speedtest. + +- **`Jitter` (тип: String)**: Индикатор стабильности интернет-соединения. + +- **`DLSpeed` (тип: Float)**: Скорость загрузки (Download Speed) в мегабитах в секунду. + +- **`ULSpeed` (тип: Float)**: Скорость выгрузки (Upload Speed) в мегабитах в секунду. + +- **`location` (тип: Point)**: Географические координаты местоположения устройства. + +#### Настройки устройства + +Каждое устройство, созданное с использованием плагина Speedtest, содержит следующие настройки: + +- **`location` (тип: Point)**: Географические координаты, указывающие местоположение устройства для проведения теста Speedtest. + +- **`city` (тип: String)**: Название города, в котором будет производиться тестирование. + +#### Статусы устройства + +Каждое устройство, созданное с использованием плагина Speedtest, может иметь следующие статусы: + +- **`completed`**: Тестирование завершено успешно, и данные доступны для анализа. + +- **`in process`**: Тестирование находится в процессе выполнения. diff --git a/static_source/admin/src/views/Scripts/index.vue b/static_source/admin/src/views/Scripts/index.vue index af3769b5c..dcfe9038c 100644 --- a/static_source/admin/src/views/Scripts/index.vue +++ b/static_source/admin/src/views/Scripts/index.vue @@ -208,6 +208,7 @@ const schema = reactive([ {{ t('scripts.addNew') }}
([ -