м (→conditions) Метка: отменено |
м (→mode) |
||
| (не показано 5 промежуточных версий этого же участника) | |||
| Строка 18: | Строка 18: | ||
{ | { | ||
"active": true, | "active": true, | ||
"mode": "single", | |||
"name": "my automation 1", | "name": "my automation 1", | ||
"triggers": | "triggers": | ||
| Строка 34: | Строка 35: | ||
{ | { | ||
"active": true, | "active": true, | ||
"mode": "queued", | |||
"name": "my automation 2", | "name": "my automation 2", | ||
"debounce": 10, | "debounce": 10, | ||
"triggers": | "triggers": | ||
[ | [ | ||
| Строка 58: | Строка 59: | ||
=== <code>active</code> === | === <code>active</code> === | ||
Включение/выключение автоматизации. | Включение/выключение автоматизации. | ||
=== <code>mode</code> === | |||
Режим работы в случае повторного срабатывания триггера, когда действия автоматизации еще выполняются. Возможные значения: | |||
* <code class="value">single</code> - ничего не делать | |||
* <code class="value">restart</code> - прервать выполнение и выполнить новый набор действий | |||
* <code class="value">queued</code> - не прерывать выполнение, а по окончании выполнить новый набор действий | |||
* <code class="value">parallel</code> - не прерывать выполнение и выполнить новый набор действий параллельно с текущим | |||
[[File:Automation Mode.png]] | |||
=== <code>name</code> === | === <code>name</code> === | ||
| Строка 64: | Строка 74: | ||
=== <code>debounce</code> === | === <code>debounce</code> === | ||
Минимальный допустимый интервал между срабатываниями автоматизации в секундах. | Минимальный допустимый интервал между срабатываниями автоматизации в секундах. | ||
=== <code>triggers</code> === | === <code>triggers</code> === | ||
| Строка 72: | Строка 79: | ||
=== <code>conditions</code> === | === <code>conditions</code> === | ||
Массив [[Automation/Database/Conditions|условий]] автоматизации. Автоматизация сработает только в случае, если | Массив [[Automation/Database/Conditions|условий]] автоматизации. Автоматизация сработает только в случае, если заданные условия выполнены. Данное поле не является обязательным. | ||
=== <code>actions</code> === | === <code>actions</code> === | ||
Текущая версия от 16:49, 9 июля 2025
Файл базы данных
База данных это файл, в котором хранится описание автоматизаций. По умолчанию это /opt/homed-automation/database.json. Путь к файлу базы данных может быть изменен в конфигурации. Не обязательно редактировать базу данных автоматизаций вручную, намного проще настраивать автоматизации через веб-интерфейс.
Элементы автоматизаций
Структура базы данных
База данных HOMEd Automation это JSON-объект. Общая структура базы данных выглядит так:
{
"automations":
[
{
"active": true,
"mode": "single",
"name": "my automation 1",
"triggers":
[
...
],
"conditions":
[
...
],
"actions":
[
...
]
},
{
"active": true,
"mode": "queued",
"name": "my automation 2",
"debounce": 10,
"triggers":
[
...
],
"actions":
[
...
]
}
],
"states":
{
...
}
}
Параметры автоматизаций
active
Включение/выключение автоматизации.
mode
Режим работы в случае повторного срабатывания триггера, когда действия автоматизации еще выполняются. Возможные значения:
single- ничего не делатьrestart- прервать выполнение и выполнить новый набор действийqueued- не прерывать выполнение, а по окончании выполнить новый набор действийparallel- не прерывать выполнение и выполнить новый набор действий параллельно с текущим
name
Название автоматизации, чтобы было проще отличать автоматизации друг от друга.
debounce
Минимальный допустимый интервал между срабатываниями автоматизации в секундах.
triggers
Массив триггеров автоматизации. Триггеры это события, которые вызывают срабатывание автоматизации, такие как изменение состояния устройства или выход какого-то параметра за заданный предел.
conditions
Массив условий автоматизации. Автоматизация сработает только в случае, если заданные условия выполнены. Данное поле не является обязательным.
actions
Массив действий автоматизации. Действия это итоговый результат автоматизации, например, действие может изменить состояние устройства или отправить сообщение в Telegram.
Состояния
Состояния это способ обмена данными между автоматизациями. У каждого состояния есть название. Состояния могут быть установлены или удалены соответсующими действиями и могут использоваться в условиях. В базе данных состояния сохраняются во вложенном объекте "states":
{
"states":
{
"windowIsOpen": true,
"mySpecialState": "hello",
"numericData": 24.2,
...
}
}
Примеры
{
"automations":
[
{
"active": true,
"name": "управление лампой на столе",
"triggers":
[
{
"type": "property",
"endpoint": "zigbee/freePad/1",
"property": "action",
"equals": "singleClick"
}
],
"conditions":
[
{
"type": "property",
"endpoint": "zigbee/roomLight/2",
"property": "status",
"equals": "off"
}
],
"actions":
[
{
"type": "property",
"endpoint": "zigbee/tableLight",
"property": "status",
"value": "toggle"
}
]
},
{
"active": true,
"name": "управление светом в комнате",
"triggers":
[
{
"type": "property",
"endpoint": "zigbee/freePad/2",
"property": "action",
"equals": "singleClick"
},
{
"type": "telegram",
"message": "включи свет в комнате"
}
],
"actions":
[
{
"type": "property",
"endpoint": "zigbee/roomLight/2",
"property": "status",
"value": "on"
}
]
},
{
"active": true,
"name": "уведомление о похолодании",
"triggers":
[
{
"type": "property",
"endpoint": "zigbee/outdoorTemperature",
"property": "temperature",
"below": 10
}
],
"actions":
[
{
"type": "telegram",
"message": "на улице холодно"
}
]
}
]
}
