Difference between revisions of "Webhooks/ru"
(ru) |
(ru) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 32: | Line 32: | ||
Сервер отвечает в формате JSON. При ошибке в ответе <code>"result":"ERROR"</code> и сообщение, например <code>Error Key</code> (неверный ключ) или <code>Action not found</code>. | Сервер отвечает в формате JSON. При ошибке в ответе <code>"result":"ERROR"</code> и сообщение, например <code>Error Key</code> (неверный ключ) или <code>Action not found</code>. | ||
| − | == | + | == Пример == |
| − | + | Настройки хранятся в файле <code>/home/settings/webhooks.json</code>. Пример с событием с обратной связью и двумя действиями: | |
<syntaxhighlight lang="json" line> | <syntaxhighlight lang="json" line> | ||
{ | { | ||
| Line 61: | Line 61: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| − | + | См. также: [[IFTTT (IF This, Then That)]], [[API2]]. | |
Latest revision as of 12:38, 5 November 2026
Webhooks связывают систему Larnitech с любым интернет-сервисом, который умеет отправлять или принимать HTTP-запросы (например, IFTTT). Они настраиваются в LT Setup на вкладке Webhooks, у которой две части:
- Events (события): сервер Larnitech отправляет HTTP-запрос на внешний адрес, когда в системе что-то происходит.
- Actions (действия): внешний сервис отправляет HTTP-запрос серверу Larnitech, и сервер меняет состояние элемента.
События
Поля события:
| Поле | Описание |
|---|---|
| Name | Название события. По нему событие вызывается из сценария. |
| URL | Адрес, на который обращается сервер. |
| Method | GET (по умолчанию) или POST.
|
| Feedback | Необязательно. Адрес элемента и регулярное выражение: найденное в ответе значение записывается в этот элемент. |
Событие отправляется из сценария. В LT Setup откройте Scripts → Scripts from logic → Add Blockly script, на вкладке Triggers добавьте событие устройства, поместите в него блок Make webhook с вкладки Automation и выберите название события.
Действия
У действия есть название, элемент и состояние, которое нужно установить (включить, выключить, переключить, уровень, режим, целевая температура и т. д., в зависимости от типа элемента).
Чтобы выполнить действие, обратитесь по адресу:
- в локальной сети:
http://CONTROLLER_IP/webhook/?key=API_KEY&name=ACTION_NAME - через интернет:
https://service.larnitech.com/webhook/?key=API_KEY&sn=SERIAL&name=ACTION_NAME
где:
API_KEY: ключ API сервера (ключTCP-API, см. API2);SERIAL: серийный номер сервера;ACTION_NAME: название действия из поля Name.
Сервер отвечает в формате JSON. При ошибке в ответе "result":"ERROR" и сообщение, например Error Key (неверный ключ) или Action not found.
Пример
Настройки хранятся в файле /home/settings/webhooks.json. Пример с событием с обратной связью и двумя действиями:
1{
2 "events": [
3 {
4 "name": "997:1_button_pressed",
5 "url": "https://maker.ifttt.com/trigger/997:1_button_pressed/with/key/YOUR_IFTTT_KEY",
6 "method": "POST"
7 },
8 {
9 "name": "447:145_sensor_state",
10 "url": "https://example.com/weather.json",
11 "feedback": { "addr": "447:145", "regexp": "/\"temp\":\"(-?[0-9]+)\",/" }
12 }
13 ],
14 "actions": [
15 {
16 "name": "401:1_lamp_on",
17 "status": [ { "request": "status-set", "addr": "401:1", "status": { "state": "on" } } ]
18 },
19 {
20 "name": "401:1_lamp_reverse",
21 "status": [ { "request": "status-set", "addr": "401:1", "status": { "state": "reverse" } } ]
22 }
23 ]
24}
См. также: IFTTT (IF This, Then That), API2.