Плагин HTTP-Client



  • @gis:

    @dev:

    Добрый день, доступно обновление плагина, версия 0.0.14

    • исправлена отправка команды set

    Проверил - работает отлично!

    Добрый день, отлично 😉



  • @dev:

    Коллеги! Ради интереса расскажите какое регулярное выражение нужно для HTTP-плагина чтобы "распарсить", например, 8-й канал MegaD, имея строку вида, сам не смог его сделать…

    OFF/91;OFF/41;OFF/23;OFF/20;OFF/247;OFF/28;OFF/0;OFF;OFF;ON;OFF;OFF;OFF;ON;OFF;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;ON;OFF;OFF;OFF;OFF;OFF;OFF;temp:5.37;temp:2.12;OFF;;OFF;temp:26.50/hum:34.00;OFF;OFF
    
    


  • @Alex_Jet:

    Коллеги! Ради интереса расскажите какое регулярное выражение нужно для HTTP-плагина чтобы "распарсить", например, 8-й канал MegaD, имея строку вида, сам не смог его сделать…

    > OFF/91;OFF/41;OFF/23;OFF/20;OFF/247;OFF/28;OFF/0;OFF;OFF;ON;OFF;OFF;OFF;ON;OFF;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;ON;OFF;OFF;OFF;OFF;OFF;OFF;temp:5.37;temp:2.12;OFF;;OFF;temp:26.50/hum:34.00;OFF;OFF
    > 
    

    Попробуйте так: Регулярное выражение

    ([^\;]*)\;
    
    

    Флаг: gm

    Элемент массива: 9



  • @intrapro:

    @Alex_Jet:

    Коллеги! Ради интереса расскажите какое регулярное выражение нужно для HTTP-плагина чтобы "распарсить", например, 8-й канал MegaD, имея строку вида, сам не смог его сделать…

    > > OFF/91;OFF/41;OFF/23;OFF/20;OFF/247;OFF/28;OFF/0;OFF;OFF;ON;OFF;OFF;OFF;ON;OFF;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;ON;OFF;OFF;OFF;OFF;OFF;OFF;temp:5.37;temp:2.12;OFF;;OFF;temp:26.50/hum:34.00;OFF;OFF
    > > 
    

    Попробуйте так: Регулярное выражение

    > ([^\;]*)\;
    > 
    

    Флаг: gm

    Элемент массива: 9

    Увы, но не вышло… почему-то разбирает всегда 0 канал (["OFF/128;","OFF/128"]) при разных значениях в поле "Элемент массива".

    Еще у меня есть два вопроса:

    1. Почему когда период опроса ставишь 0, то опрос не отключается?

    2. Вы не думали над идеей привязывать данные каналов не только к самим устройствам (dval), а к их возможным параметрам, которые будут отображаться на вкладке "Параметры" в боковом меню устройства?



  • @Alex_Jet:

    @intrapro:

    @Alex_Jet:

    Коллеги! Ради интереса расскажите какое регулярное выражение нужно для HTTP-плагина чтобы "распарсить", например, 8-й канал MegaD, имея строку вида, сам не смог его сделать…

    > > > OFF/91;OFF/41;OFF/23;OFF/20;OFF/247;OFF/28;OFF/0;OFF;OFF;ON;OFF;OFF;OFF;ON;OFF;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF/0;OFF;ON;OFF;OFF;OFF;OFF;OFF;OFF;temp:5.37;temp:2.12;OFF;;OFF;temp:26.50/hum:34.00;OFF;OFF
    > > > 
    

    Попробуйте так: Регулярное выражение

    > > ([^\;]*)\;
    > > 
    

    Флаг: gm

    Элемент массива: 9

    Увы, но не вышло… почему-то разбирает всегда 0 канал (["OFF/128;","OFF/128"]) при разных значениях в поле "Элемент массива".

    Еще у меня есть два вопроса:

    1. Почему когда период опроса ставишь 0, то опрос не отключается?

    2. Вы не думали над идеей привязывать данные каналов не только к самим устройствам (dval), а к их возможным параметрам, которые будут отображаться на вкладке "Параметры" в боковом меню устройства?

    Добрый день, мы добавим 4 тип парсера, где можно будет прописать произвольный код на JS 😉



  • @Alex_Jet:

    2. Вы не думали над идеей привязывать данные каналов не только к самим устройствам (dval), а к их возможным параметрам, которые будут отображаться на вкладке "Параметры" в боковом меню устройства?

    Да, Вы правы, нужна привязка канала не к устройству, а к свойству, так называемый Составной канал. Мы даже попробовали реализовать, но получилось тяжеловесно. Сейчас убрали из релиза. Возможно, нужно придумать новое название 🙂 чтобы посмотреть под другим углом



  • А не научите как забирать данные о погоде отсюда - https://weather.com/ru-RU/weather/today?



  • @Alex_Jet:

    А не научите как забирать данные о погоде отсюда - https://weather.com/ru-RU/weather/today?

    Интересный ресурс.

    У них есть API. Сначала открываете карту: https://www.wunderground.com/wundermap?lat=37.769699&lon=-122.393303&zoom=10&type=terrain&tl.play=0&tl.spd=2&extremes=0&fault=0&femaflood=0&fire=0&firewfas=0&fissures=0&fronts=0&hurrevac=0&hur=0&lightning=0&livesurge=0&mm=0&ndfd=0&rad=1&rad.num=1&rad.spd=25&rad.opa=81&rad.type=00Q&rad.type2=&rad.smo=1&rad.stm=0&dir=1&dir.mode=driving&sst=0&sat=0&seismicrisk=0&svr=0&ski=0&snowfall=0&stormreports=0&tor=0&tfk=0&tsunami=0&riv=0&wxsn=1&wxsn.mode=temp&wxsn.opa=50&wxsn.bcdgtemp=0&wxsn.rf=1&cams=0&pix=0

    Выбираете ближайшую или интересующую погодную станцию: https://www.wunderground.com/dashboard/pws/IFIRSANO5

    А там, если нажать F12 можно найти API по которому берутся данные и которые можно регулярным выражением разобрать:

    https://api.weather.com/v2/pws/observations/current?apiKey=6532d6454b8aa370768e63d6ba5a832e&stationId=IFIRSANO5&format=json&units=e

    Судя по всему данные практически в реальном времени там обновляются



  • Интересный ресурс.

    У них есть API. Сначала открываете карту: https://www.wunderground.com/wundermap?

    Так интересный ресурс weather.com или wunderground.com? Первый показывает погоду для моего месторазмещения лучше всего, но как получить с него данные - вопрос! Второй показывает единственную станцию примерно в 15 км от моего месторасположения, поэтому не катит…



  • @Alex_Jet:

    Интересный ресурс.

    У них есть API. Сначала открываете карту: https://www.wunderground.com/wundermap?

    Так интересный ресурс weather.com или wunderground.com? Первый показывает погоду для моего месторазмещения лучше всего, но как получить с него данные - вопрос! Второй показывает единственную станцию примерно в 15 км от моего месторасположения, поэтому не катит…

    Так посмотрите API, он идет на weather.com это единый проект. Текущее местоположение скорее всего приравнивается к ближайшей станции. Они же не могут в каждом квартале иметь станцию



  • Здравствуйте.

    Повесил PTZ камеру, хочу реализовать управление.

    вариант 1, реализовать через NVR Shinobi.

    У него есть API, в котором такая информация.

    http://xxx.xxx.xxx.xxx/[API KEY]/control/[GROUP KEY]/[MONITOR ID]/[ACTION]

    center

    up

    down

    left

    right

    enable_nv

    disable_nv

    zoom_in

    zoom_out

    Как сделать при помощи плагина кнопки вправо=влево-вверх-вниз?

    Вариант 2. Стандартное управление через ONVIF.

    Вдруг вы умеете посылать нужные команды HTTP на порт Onvif?



  • @Erik:

    Здравствуйте.

    Повесил PTZ камеру, хочу реализовать управление.

    вариант 1, реализовать через NVR Shinobi.

    У него есть API, в котором такая информация.

    http://xxx.xxx.xxx.xxx/[API KEY]/control/[GROUP KEY]/[MONITOR ID]/[ACTION]

    center

    up

    down

    left

    right

    enable_nv

    disable_nv

    zoom_in

    zoom_out

    Как сделать при помощи плагина кнопки вправо=влево-вверх-вниз?

    Вариант 2. Стандартное управление через ONVIF.

    Вдруг вы умеете посылать нужные команды HTTP на порт Onvif?

    По первому варианту: создаете сценарий в котором только http-get запрос с нужной функцией, на мнемосхеме привязываете его к примитиву "кнопка". Единственная проблема - придется много раз в нее нажимать, чтобы двигать камеру. Не реализована функция "зажать и держать, чтобы нажатие повторялось". Может разработчики с этим что-то придумают? У меня такая же беда при управлении громкостью по ИК



  • @homa:

    По первому варианту: создаете сценарий в котором только http-get запрос с нужной функцией, на мнемосхеме привязываете его к примитиву "кнопка". Единственная проблема - придется много раз в нее нажимать, чтобы двигать камеру. Не реализована функция "зажать и держать, чтобы нажатие повторялось". Может разработчики с этим что-то придумают? У меня такая же беда при управлении громкостью по ИК

    Спасибо. Длительность нажатия в шиноби регулируется. Можно одним нажатием на 90 градусов поворот сделать. 🙂



  • Добрый вечер! Для создания погодного виджета решил воспользоваться Яндекс.Погода API. Они отдают данные в JSON формате. Создал несколько разных датчиков, разместил на страничке, привязал к каналам. Все замечательно. Но возникла одна проблемка. Данные о направлении ветра и погодных условиях приходят на английском или абревиатурой. Например, n - северный ветер, ne - северо-восточный, или cloudy - облачно. Как можно в зависимости от приходящих данных выводить значение на русском?



  • @int144:

    Добрый вечер! Для создания погодного виджета решил воспользоваться Яндекс.Погода API. Они отдают данные в JSON формате. Создал несколько разных датчиков, разместил на страничке, привязал к каналам. Все замечательно. Но возникла одна проблемка. Данные о направлении ветра и погодных условиях приходят на английском или абревиатурой. Например, n - северный ветер, ne - северо-восточный, или cloudy - облачно. Как можно в зависимости от приходящих данных выводить значение на русском?

    Добрый день, к сожалению для JSON нет предварительной обработки значения, мы обязательно учтем в следующих версиях ваше пожелание, спасибо.



  • А можно из сценария дать команду плагину чтобы он обратился к устройству и callback-ом вернул в переменную сценария значение из body?

    Также как это можно сделать в плагине megad (правда тут всегда ответ done…):

    this.pluginCommand({ unit:"megad4", command:{url:"/sec/?cmd=15:2", onResponse:[{id:"15",value:"TOGGLE"}]} });
    
    


  • @Nikpell:

    Добрый вечер, Уважаемые.

    Никто не пытался настроить модуль для ZONT. Описание API у них не плохое, но я еще чайник и получить информацию смог только одним методом- devises, а выбить значение из строки- никак. Может кто подскажет чайнику как это сделать?

    С уважением.

    Парсером по через HTTP плагином не пробовали ?



  • Участник @dev написал в Плагин HTTP-Client:

    @int144:

    Добрый вечер! Для создания погодного виджета решил воспользоваться Яндекс.Погода API. Они отдают данные в JSON формате. Создал несколько разных датчиков, разместил на страничке, привязал к каналам. Все замечательно. Но возникла одна проблемка. Данные о направлении ветра и погодных условиях приходят на английском или абревиатурой. Например, n - северный ветер, ne - северо-восточный, или cloudy - облачно. Как можно в зависимости от приходящих данных выводить значение на русском?

    Добрый день, к сожалению для JSON нет предварительной обработки значения, мы обязательно учтем в следующих версиях ваше пожелание, спасибо.

    Доброго времени суток!
    Когда можно ожидать данной функции.
    Или подскажите как можно выполнить арифметическую операцию над получеными данными. Грубо говоря нужно полученные данные канала разделить на 16
    И еще вопрос: не будет ли мешать работе системы установленый сервер Apache на котором будут выполнятся cgi скрипты?



  • @ellab
    Добрый день, Apache мешать не будет, в извлечение данных JSON можно написать так:

    data.values.var1 / 16
    

    Если вам только нужно получать данные, без управления то можно использовать сниппеты



  • @dev Черт... Круто насколько) Не перестаю удивляться мощи Intrahouse!
    А с SET командой в HTTP тоже прокатит?


Авторизуйтесь, чтобы ответить