Примеры применения
30.10.2015

Пример интеграции устройств NetPing с сервисом xively.com

TitleОблачный сервис xively позволяет осуществлять мониторинг показаний с датчиков устройства NetPing.
Description

Интеграция NetPing c облачным сервисом xively. Процесс настройки сервиса.

Keywordsоблачные сервисы, мониторинг датчиков, интернет вещей, IoT, Internet of Things, xively

Пример интеграции устройств NetPing с сервисом xively.com

Как и большинство проектов концепции интернет вещей (Internet of Things, IoT) или облачных сервисов, сервис xively.com:

  • Предоставляет платформу (backend) для интеграции с различными устройствами: сервис не привязывается к какой-то конкретной аппаратной платформе, а использует стандартный механизм HTTP API – это с легкостью позволяет интегрировать любое устройство;
  • Может служить платформой для разработки собственных приложений: в разделе для разработчиков есть готовые библиотеки для написания приложений, в том числе и мобильных, на различных языках программирования для разных аппаратных платформ;
  • Предлагает возможность некоторой автоматизации – триггеры: сервис позволяет осуществлять взаимодействие между различными устройствами через механизм HTTP POST запросов

Подробности можно узнать на сайте проекта в разделе для разработчиков.

В данной статье будет показана организация мониторинга датчиков на примере интеграции устройств NetPing с данным сервисом. Для интеграции используется REST API, которое предоставляет xively.com и URL-encoded команды, которые поддерживаются устройствами NetPing. Интеграция реализована на базе PowerShell скрипта.

Скрипт выполняется по расписанию с заданной периодичностью планировщика Windows в PowerShell окружении. Первым этапом скрипт собирает данные с датчиков температуры и влажности, подключенных к устройству NetPing. На втором этапе данные отправляются на сервер xively.com.

Требования для осуществления интеграции устройств NetPing с облачным сервисом xively

Для реализации представленного решения потребуется следующее оборудование:

Если оборудование NetPing для доступа к сети интернет использует маршрутизатор/роутер с функцией NAT и/или Firewall, и планируется выполнять PowerShell скрипт на ПК, расположенном вне локальной сети, необходимо разрешить входящие пакеты по протоколу HTTP в сторону устройства NetPing для доступа к нему из интернета. За дополнительной информацией нужно обратиться к документации на оборудование маршрутизатора/роутера или к системному администратору сети.

При необходимости устройство NetPing может быть подключено к роутеру по беспроводной технологии Wi-Fi посредством адаптера VAP11N. Адаптер приобретается отдельно. За дополнительной информацией можно обратиться к руководству пользователя данного адаптера.

Настройка UniPing server solution v3/SMS

Привести устройство UniPing server solution v3/SMS в рабочее состояние, подключить датчики температуры и влажности, подключить устройство к сети интернет – всё согласно соответствующим разделам руководства пользователя.

Пусть доступ к устройству NetPing по протоколу HTTP в сети интернет можно получить по следующим параметрам:

  • IP адрес/хост: xively.netping.ru
  • TCP-порт: 8080

Тогда доступ к подключенным датчикам температуры можно получить по следующим URL-адресам:

  • http://xively.netping.ru:8080/thermo.cgi?t1
  • http://xively.netping.ru:8080/thermo.cgi?t2
  • http://xively.netping.ru:8080/thermo.cgi?t2

Доступ к подключенному датчику влажности можно получить по URL-адресу:

  • http://xively.netping.ru:8080/relhum.cgi?h1

Все согласно документации на URL-encoded команды.

Пример скрипта на PowerShell

Скрипт считывает показания датчиков c устройства UniPing server solution v3/SMS и отправляет их в облачный сервис xively.com.

#UniPing server solution v3/SMS PowerShell Script for xively.com service
#Проверить работу можно по адресу https://personal.xively.com/feeds/623518124

#URLs датчиков и логин/пароль от устройства NetPing
$user = "пользователь"
$pass= "пароль"
$uri1 = "http://np.tst.netping.ru:8080/thermo.cgi?t1"
$uri2 = "http://np.tst.netping.ru:8080/thermo.cgi?t2"
$uri3 = "http://np.tst.netping.ru:8080/thermo.cgi?t3"
$uri4 = "http://np.tst.netping.ru:8080/relhum.cgi?h1"

$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)

$Temp1Reqest = Invoke-RestMethod -Method Get -Uri $uri1 -Credential $cred
if ($Temp1Reqest.ToLower().Contains("ok")){
$temperature1=[convert]::ToInt32($Temp1Reqest.Split(",").Trim("")[1])
}
else {Write-Host "Sensor Temp1 error!"}

$Temp2Reqest = Invoke-RestMethod -Method Get -Uri $uri2 -Credential $cred
if ($Temp2Reqest.ToLower().Contains("ok")){
$temperature2=[convert]::ToInt32($Temp2Reqest.Split(",").Trim("")[1])
}
else {Write-Host "Sensor Temp2 error!"}

$Temp3Reqest = Invoke-RestMethod -Method Get -Uri $uri3 -Credential $cred
if ($Temp3Reqest.ToLower().Contains("ok")){
$temperature3=[convert]::ToInt32($Temp3Reqest.Split(",").Trim("")[1])
}
else {Write-Host "Sensor Temp3 error!"}

$Humid1Reqest = Invoke-RestMethod -Method Get -Uri $uri4 -Credential $cred
if ($Humid1Reqest.ToLower().Contains("ok")){
$humidity1=[convert]::ToInt32($Humid1Reqest.Split(",").Trim("")[1])
}
else {Write-Host "Sensor Humid1 error!"}


#Данные аккаунта xively.com
#URL для наблюдения:https://personal.xively.com/feeds/623518124

$apiKey = "тут_ваш_API_key"
$feed_url = "https://api.xively.com/v2/feeds/тут_ваш_feed"

$body = @{
version = "1.0.0"
datastreams = @(@{
id = "sensor1"
current_value = $temperature1
}
@{
id = "sensor2"
current_value = $temperature2
}
@{
id = "sensor3"
current_value = $temperature3
}
@{
id = "sensor4"
current_value = $humidity1
}
)
}

Invoke-RestMethod -Method Put -Uri $feed_url -Body (ConvertTo-Json $body) -Headers @{ "X-ApiKey" = $apiKey }

В начале скрипта PowerShell прописать значения имени пользователя и пароля от своего устройства NetPing:

  • $user ="логин"
  • $pass="пароль"

Настройка сервиса xively.com

Для начала работы с сервисом xively.com нужно пройти регистрацию:

После регистрации необходимо добавить новое устройство кнопкой «Add Device»:

Кнопка добавления нового устройства в xively.com

Заполнить поля «DeviceName» и «DeviceDescription» для удобства дальнейшей работы с устройством и его идентификации. Нажать «Add Device».

Добавление нового устройства в xively.com

Перейти к добавлению каналов (Channels) для отображения показаний с датчиков, подключенных к устройству NetPing – «Add Channel».

Кнопка добавления канала в сервисе xively.com

Добавить два датчика температуры и датчик влажности. Важным полем является «ChannelID». Именно оно используется в сервисе для идентификации канала данных. Остальные поля опциональные:

Добавление канала термодатчика 1 в сервисе xively.com

Добавление канала термодатчика 2 в сервисе xively.com

Добавление канала датчика влажности в сервисе xively.com

Последняя версия API сервиса xively.com избавляет от необходимости ручного добавления датчиков. Все они будут созданы автоматически при первом удачном запросе скрипта к сервису. Опционально можно будет внести описание и прочие характеристики датчиков в web-интерфейсе сервиса xively.com

Далее необходимо внести в скрипт PowerShell данные для работы с зарегистрированным аккаунтом xively.com согласно данному скриншоту:

Изменения данных в скрипте PowerShell для работы с зарегистрированным аккаунтом xively.com

Заменить на свои данные в данных строках:

  • $apiKey= "тут_ваш_API_key"
  • $feed_url= "https://api.xively.com/v2/feeds/тут_ваш_feed"

Далее настроить автоматический запуск скрипта PowerShell. Рекомендуемый интервал запуска – 5 минут. Для настройки можно воспользоваться следующей статьёй на сайте Microsoft или аналогичной из других источников.

Триггеры

Одной из интересных дополнительных опций сервиса являются триггеры: возможность послать какой-либо HTTP POST запрос при наступлении заданного события с датчиком. Настроим пример триггера, который будет срабатывать при превышении температуры на «temp_sensor1» выше 30 градусов Цельсия. При наступлении такого события будем, например, включать реле Relay1 на устройстве NetPing, а при понижении – отключать. К реле может быть подключено какое-либо устройство охлаждения.

Раздел «Triggers». Добавить новый триггер – «Add Trigger»:

Кнопка добавления нового триггера в сервисе xively.com

Выбрать temp_sensor1:

Добавление термодатчика в настройки триггера сервиса xively.com

И настроить условия:

Настройка условий триггера в сервисе xively.com

Для условия > 30 будет выполняться URL-encoded команда включения реле:

  • http://user:password@xively.netping.ru:8080/relay.cgi?rn=1

где:

user – логин для доступа к устройству NetPing;
password – пароль для доступа к устройству NetPing;
n – порядковый номер реле, записывается после символа «?r» (следует указать 1)

Настроенный триггер в сервисе xively.com

Аналогично добавить второй триггер, но с другим условием и действием:

Настройка триггера в сервисе xively.com

Для условия <= 30 будет выполняться URL-encoded команда выключения реле:

  • http://user:password@xively.netping.ru:8080/relay.cgi?rn=0

где:

user – логин для доступа к устройству NetPing;
password – пароль для доступа к устройству NetPing;
n – порядковый номер реле, записывается после символа «?r» (следует указать 1)

Подробнее о других URL-encoded командах можно найти информацию в документации.

Результат

Таким образом, если все было настроено верно, каждые 5 минут скрипт будет считывать данные с датчиков температуры, датчика влажности и отправлять их на сервер xively.com. Вы можете наблюдать изменение данных в виде графиков в панели управления xively.com, а также использовать богатейший API xively.com для реализации собственных всевозможных проектов. Также, в случае наступления заданных событий в триггерах будут выполняться соответствующие HTTP POST запросы.


  • Устройство UniPing server solution v3/SMS
  • Устройство UniPing server solution v3
  • Устройство UniPing v3
  • Устройство NetPing IO v2
  • Устройство NetPing 8/PWR-220 v3/SMS
  • Устройство NetPing 4/PWR-220 v3/SMS
  • Устройство NetPing 2/PWR-220 v2/SMS
  • Устройство NetPing 2/PWR-220 v1/SMS
  • Устройство NetPing 2/PWR-220 v3/ETH

Основные теги


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство UniPing server solution v3/SMS
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Устройство NetPing /PWR-220 v3/ETH
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Блок питания 48В 1,5А (мод.HRS20005)
Датчик температуры TS, 1м
Датчик температуры, (T811), 2м
Датчик температуры WT, 1м
Датчик протечки, модель 2605, 2м
Датчик протечки H2О
Датчик температуры 1-wire, (THS), 2м
МАЯК-12-СТ
Датчик движения (PYRONIX COLT QUAD PI ПИК детектор), 2м
Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
BM8070D Силовое реле 16А/250В на DIN-рейку
MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A1R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Датчик охранный (Извещатель охранный ИО102-20/Б2П, 2м)
Блок розеток SNR-PDU-08S-1
Устройство NetPing 2/PWR-220 v4/SMS
Устройство UniPing server solution v4/SMS
Устройство NetPing 8/PWR-220 v4/SMS
VT592 кабельный датчик протечки
WLC10 кабель протечки
NetPing Connection board v2 (коммутационная плата для UniPing v3)
Инжектор питания POE (стандарта 802.3af)
NetPing датчик наличия электропитания 995S1
Устройство NetPing 2/PWR-220 v12/ETH
Устройство NetPing 2/PWR-220 v13/GSM3G
Датчик наличия 220В (мод. HRS05005), 1.5м
NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
NetPing датчик качества электропитания 1-wire 910S20
PLController R15250 силовое реле 15A/250В на DIN-рейку
NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Устройство NetPing server solution v5
Устройство NetPing ИК модуль, модель 3801
Устройство NetPing server solution v5/GSM3G
Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство NetPing 4/PWR-220 v6.2/GSM3G
NetPing IO v3
NetPing Input+Relay v1
NetPing NP-GB322
Устройство NetPing 4/PWR-220 v6.4/ETH
▼ Все теги
Новинки
NetPing v4
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet на DIN-рейку. Позволяет удаленно подробнее...

Цена: 10 650 руб.

Источник питания СКАТ MOLLUSK-VRK 12/2
Адаптер питания может использоваться для питания устройств NetPing и некоторых моделей управляемых коммутаторов.Выходное подробнее...

Цена: 950 руб.

Устройство NetPing 4/PWR-220 v6.4/ETH
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU).4 канала подробнее...

Цена: 15 730 руб.

NetPing NP-GB322
Коммутатор Ethernet на 5 портов 10/100/1000 BASE-TX с поддержкой PoE (электропитание по Ethernet-кабелю) 5 подробнее...

Цена: 4 290 руб.

NetPing Input+Relay v1
Компактное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно подробнее...

Цена: 6 200 руб.

NetPing IO v3
Компактное бескорпусное устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет подробнее...

Цена: 2 875 руб.

Устройство NetPing 4/PWR-220 v6.2/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

Устройство NetPing 4/PWR-220 v6.1/GSM3G
Устройство удаленного управления розетками электропитания по сети Ethernet/Internet (IP PDU) c поддержкой подробнее...

Цена: 20 280 руб.

NetPing блок розеток 1-wire 888S0201
Блок розеток предназначен для удаленного управления нагрузкой. Устройство не является самостоятельным, подробнее...

Цена: 10 980 руб.

Устройство NetPing ИК модуль, модель 3801
ИК-контроллер для дистанционного и автоматического управления устройствами с инфракрасным интерфейсом подробнее...

Цена: 8 580 руб.

Устройство NetPing server solution v5
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 18 000 руб.

Устройство NetPing server solution v5/GSM3G
Устройство удаленного мониторинга датчиков по сети Ethernet/Internet. Позволяет удаленно получать информацию подробнее...

Цена: 27 300 руб.

PLController R15250 силовое реле 15A/250В на DIN-рейку
Силовое реле в корпусе для крепления на DIN-рейку предназначено для удаленной коммутации мощной нагрузки.Напряжение подробнее...

Цена: 1 429 руб.

NetPing адаптер датчиков с аналоговым интерфейсом 0-20мА, модель 886A01
Адаптер предназначен для подключения аналоговых датчиков, передающих сигнал изменением протекающего подробнее...

Цена: 3 354 руб.

NetPing датчик качества электропитания 1-wire 910S20
Датчик предназначен для мониторинга качества электропитания в розетке. Датчик должен быть подключен подробнее...

Цена: 2 240 руб.

NetPing удлинитель-разветвитель 1-wire на 5 портов, модель R912R1
Активный удлинитель-разветвитель для подключения датчиков 1-wire к устройствам NetPing5 портов для подключения подробнее...

Цена: 1 400 руб.

Устройство NetPing 2/PWR-220 v12/ETH
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU)2 независимые управляемые подробнее...

Цена: 8 973 руб.

Устройство NetPing 2/PWR-220 v13/GSM3G
Управляемый блок удаленного распределения питания по сети Ethernet/Internet (IP PDU) c поддержкой управления подробнее...

Цена: 15 700 руб.

NetPing датчик наличия электропитания 995S1
Датчик позволяет определить наличие напряжения в розетке питания. Выполнен в корпусе блока питания с подробнее...

Цена: 1 224 руб.

WLC10 кабель протечки
Чувствительный кабель для использования совместно с датчиком VT592. Может быть смонтирован в труднодоступных подробнее...

Цена: 6 700 руб.

VT592 кабельный датчик протечки
Датчик предназначен для работы совместно с кабелем протечки WLC10. Возможность подключения датчика к подробнее...

Цена: 3 800 руб.

-+ руб. руб.
Итого руб.

Данные о заказе