Difference between revisions of "Webhooks/ru"

From Larnitech wiki page
Jump to navigation Jump to search
(ru)
 
(ru)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
<languages/>
 
<languages/>
−
'''Webhooks''' connect the Larnitech system with any internet service that can send or receive HTTP requests (for example [[IFTTT (IF This, Then That)|IFTTT]]). They are set up in LT Setup on the '''Webhooks''' tab, which has two parts:
+
'''Webhooks''' связывают систему Larnitech с любым интернет-сервисом, который умеет отправлять или принимать HTTP-запросы (например, [[IFTTT (IF This, Then That)|IFTTT]]). Они настраиваются в LT Setup на вкладке '''Webhooks''', у которой две части:
−
* '''Events''': the Larnitech server sends an HTTP request to an external URL when something happens in the system.
+
* '''Events''' (события): сервер Larnitech отправляет HTTP-запрос на внешний адрес, когда в системе что-то происходит.
−
* '''Actions''': an external service sends an HTTP request to the Larnitech server, and the server changes the state of an item.
+
* '''Actions''' (действия): внешний сервис отправляет HTTP-запрос серверу Larnitech, и сервер меняет состояние элемента.
  
−
== Events ==
+
== События ==
−
An event has the following fields:
+
Поля события:
 
{|class="wikitable"
 
{|class="wikitable"
−
!Field!!Description
+
!Поле!!Описание
 
|-
 
|-
−
|Name||Name of the event. It is used in the script that sends the event.
+
|Name||Название события. По нему событие вызывается из сценария.
 
|-
 
|-
−
|URL||Address that the server calls.
+
|URL||Адрес, на который обращается сервер.
 
|-
 
|-
−
|Method||<code>GET</code> (default) or <code>POST</code>.
+
|Method||<code>GET</code> (по умолчанию) или <code>POST</code>.
 
|-
 
|-
−
|Feedback||Optional. Item address and a regular expression: the value found in the answer is written to that item.
+
|Feedback||Необязательно. Адрес элемента и регулярное выражение: найденное в ответе значение записывается в этот элемент.
 
|}
 
|}
−
The event is sent from a script. In LT Setup open '''Scripts → Scripts from logic → Add Blockly script''', add the device event on the '''Triggers''' tab, put the '''Make webhook''' block from the '''Automation''' tab into it and choose the event name.
+
Событие отправляется из сценария. В LT Setup откройте '''Scripts → Scripts from logic → Add Blockly script''', на вкладке '''Triggers''' добавьте событие устройства, поместите в него блок '''Make webhook''' с вкладки '''Automation''' и выберите название события.
  
−
== Actions ==
+
== Действия ==
−
An action has a name, an item and the state to set (on, off, reverse, level, mode, target temperature and so on, depending on the item type).
+
У действия есть название, элемент и состояние, которое нужно установить (включить, выключить, переключить, уровень, режим, целевая температура и т. д., в зависимости от типа элемента).
  
−
To run an action, call the URL:
+
Чтобы выполнить действие, обратитесь по адресу:
−
* in the local network: <code><nowiki>http://CONTROLLER_IP/webhook/?key=API_KEY&name=ACTION_NAME</nowiki></code>
+
* в локальной сети: <code><nowiki>http://CONTROLLER_IP/webhook/?key=API_KEY&name=ACTION_NAME</nowiki></code>
−
* over the internet: <code><nowiki>https://service.larnitech.com/webhook/?key=API_KEY&sn=SERIAL&name=ACTION_NAME</nowiki></code>
+
* через интернет: <code><nowiki>https://service.larnitech.com/webhook/?key=API_KEY&sn=SERIAL&name=ACTION_NAME</nowiki></code>
−
where:
+
где:
−
* <code>API_KEY</code>: API key of the server (the <code>TCP-API</code> key, see [[API2]]);
+
* <code>API_KEY</code>: ключ API сервера (ключ <code>TCP-API</code>, см. [[API2]]);
−
* <code>SERIAL</code>: serial number of the server;
+
* <code>SERIAL</code>: серийный номер сервера;
−
* <code>ACTION_NAME</code>: name of the action from the '''Name''' field.
+
* <code>ACTION_NAME</code>: название действия из поля '''Name'''.
  
−
The server answers with JSON. An error answer has <code>"result":"ERROR"</code> and a message, for example <code>Error Key</code> (wrong key) or <code>Action not found</code>.
+
Сервер отвечает в формате JSON. При ошибке в ответе <code>"result":"ERROR"</code> и сообщение, например <code>Error Key</code> (неверный ключ) или <code>Action not found</code>.
  
−
== Example ==
+
== Пример ==
−
The settings are stored in <code>/home/settings/webhooks.json</code>. Example with one event with feedback and two actions:
+
Настройки хранятся в файле <code>/home/settings/webhooks.json</code>. Пример с событием с обратной связью и двумя действиями:
 
<syntaxhighlight lang="json" line>
 
<syntaxhighlight lang="json" line>
 
{
 
{
Line 61: Line 61:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
−
See also: [[IFTTT (IF This, Then That)]], [[API2]].
+
См. также: [[IFTTT (IF This, Then That)]], [[API2]].

Latest revision as of 12:38, 5 November 2026

Other languages:
English • ‎русский

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.