Найти в Дзене
MySmartHome

Получение данных по http в умном доме

При построении автоматических систем часто бывает необходимо подключить устройства, не имеющие интерфейса для интеграции но, практически все современные гаджеты имеют web-интерфейс с отображением состояния и возможностью изменения настроек. Для этих целей в intraHouse есть плагин "HTTP-клиент". С его помощью можно получить любую информацию с web-страницы.

Добавляем устройство:

Устанавливаем плагин и добавляем канал:

-2

Указываем URL - адрес страницы устройства, при необходимости прописываем авторизацию и необходимые хедеры:

-3

В плагине имеется возможность указать дополнительные хедеры для http-запросов. Это значительно упрощает задачу при сложных процессах авторизации на сайтах.

Теперь добавляем канал для устройства:

Обрабатывать значения можно с помощью таблиц JSON, TEXT GET и TEXT SEARCH. Нас интересует параметр температура, скорость вращения вентилятора, свободное пространство и состояние RAID-массива, разбираем страницы со свойствами устройства:

-4

Получаем ссылку на текстовое состояние датчика:

-5

Её и указываем на вкладке "Команды":

-6

По аналогии поступаем с остальными значениями. Для парсинга полученных страниц используем конструктор регулярных выражений:

-7

Полученное регулярное выражение прописываем в обработчике запроса:

-8

Те же действия производим и для остальных, интересующих нас параметров. Моя СХД из примера использует сложный механизм авторизации, поэтому пришлось использовать отдельный канал под каждый датчик. В обычных условиях достаточно добавить один канал на ресурс и по одному субканалу на каждый датчик.

Значение свободного места отсутствует в явном виде на странице, мы имеем только общее количество байт и количество использованных байт. Поэтому необходимо написать простой скрипт по его расчету:

-9
-10

Таким образом остается только добавить устройство на мнемосхему и, при необходимости, построить график и настроить оповещения о превышении температуры, проблемах с массивом или отсутствии свободного места.

-11

С помощью HTTP-клиента можно получать большое количество разнообразных данных практически с любых устройств, а также с любых сайтов. Это значительно расширяет область применения системы и позволяет анализировать данные с не поддерживающихся из коробки устройств. Кроме того, некоторыми из них можно управлять с помощью запросов GET, POST, PUT и тд.

Оригинал статьи размещен здесь: https://vk.com/my_smart_home