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

Использование SnmpWidget на Android устройствах для управления оборудованием NetPing

Использование SnmpWidget на Android устройствах для управления оборудованием NetPing

SnmpWidget – приложение, которое позволяет посылать SNMP SET команды и SNMP GET запросы с помощью экранных виджетов Android. Этот функционал позволяет использовать связку SnmpWidget + NetPing для построения несложных систем "умный дом".

Коснувшись экрана телефона, вы можете:

  • Включить/выключить канал электропитания устройства NetPing;
  • Прочитать значение температурного датчика и отобразить его на экране;
  • Управлять IO линиями*;
  • Отправить ИК команду*

* не проверено, теоретически должно работать.

Вышеуказанные действия могут быть произведены автоматически при наступлении какого-либо события: включение экрана телефона, изменение месторасположения телефона, по таймеру и многих других. Сценарии использования ограничиваются только вашей фантазией. Например, связку SnmpWidget + NetPing можно использовать для управления освещением в квартире, на даче (как дома, так и на улице). На дворе ноябрь месяц, и скоро нужно будет украшать новогоднюю ёлку. Украсив ёлку гирляндой, которая управляется с экрана телефона, вы порадуете себя и удивите знакомых! 

С помощью SnmpWidget вы можете получать показания датчиков, подключенных к NetPing, и отображать их на экране телефона, самый простой сценарий – датчик температуры. Для примера возьмём устройство NetPing 2/PWR-220 v3/ETH и с помощью SnmpWidget будем управлять освещением. Также добавим датчик температуры, чтобы знать точную температуру на улице, а не ту, которую телефон подгрузил из интернета для вашего населенного пункта. Подключаем к устройству NetPing осветительные приборы (лампу) и датчики температуры. Затем устанавливаем на ваше устройство Android приложение SnmpWidget из Google Play Market.

По ссылке доступна бесплатная версия SnmpWidget – она может создать всего один виджет. Пожалуйста, используйте её для теста. Для написания этого примера использовалась полная версия SnmpWidget.

Пример 1. Управление каналом электропитания NetPing 2/PWR-220 v3/ETH

Добавим виджет для управления первым каналом электропитания NetPing 2/PWR-220 v3/ETH (допустим, вы включили туда лампу). После того как вы добавите виджет, на экране появится окно с настройками для данной копии программы.

Управление каналом электропитания NetPing 2PWR-220 v3ETH
В этом окне уже введена необходимая конфигурация. В конце данной статьи вы найдёте шаблон конфигурации, который можно импортировать в SnmpWidget, нажав на кнопку Import.

Краткое описание полей которые нужно заполнить:

  • Widget name  это имя виджета, оно отображается на экране, позволяет понять, чем управляет данная копия виджета;
  • Wifi Host – это адрес (и опционально порт) устройства NetPing, на который будут отправляться SNMP пакеты при активном WiFi подключении;
  • Mobile Host – это адрес (и опционально порт) устройства NetPing, на который будут отправляться SNMP пакеты при активном 3G/мобильном подключении. Вы можете использовать доменные имена, но для надёжности лучше использовать IP адрес;
    *Примечание: Для отправки SNMP команд с помощью мобильного подключения на вашем маршрутизаторе должен быть сконфигурирован проброс порта для SNMP (udp 161).
    *Примечание: В разделе Advanced opt. есть опция wifi ssid. С помощью этой опции вы можете задать "домашний" ssid. SnmpWidget будет пользоваться мобильным профилем, если ssid активного WiFi соединения не равно введённому вами. Полезно, например, когда вы подключились в офисе к корпоративной WiFi сети и хотите управлять устройством NetPing, которое стоит у вас дома.
  • Community – SNMP community, которое вы сконфигурировали на устройстве NetPing;
  • OID – SNMP OID переменные можно посмотреть в MIB файле соответствующей прошивки устройства NetPing. MIB файл можно скачать на странице описания устройства NetPing, раздел "Документация и файлы", подраздел "Дополнительные технические файлы". Для управления первым каналом на NetPing 2/PWR-220 v3/ETH нужно использовать следующий oid: 1.3.6.1.4.1.25728.5800.3.1.3.1;
  • PDU Type – указываем SET. Нам нужен SET виджет для изменения состояния канала;
  • Value Type – указываем INT. За подробностями отсылаю к MIB файлу производителя (см. раздел ссылки в конце статьи);
  • Value 1 Label, Value 2 Label – это текстовые метки которые отображаются на экране для каждого виджета. С помощью этой метки можно понять, какую следующую команду пошлёт SnmpWidget;
  • Value1, Value 2 – это значения которые SnmpWidget посылает в SET команде

Доступны дополнительные опции в разделах Advanced и Style, они позволяют регулировать:

  • количество перепосылок SNMP пакетов;
  • время ожидания ответа;
  • поведение в случае, если ответ не пришел;
  • цвет и размер шрифта

В результате мы получим виджет:

SnmpWidget и NetPing

Состояние виджета "Включить" означает, что при клике по виджету он пошлёт SNMP Set команду с Value 2 (включить лампу) и, если операция прошла удачно (загорится лампа), перейдёт в состояние "Выключить". "Лампа"  имя виджета.

Клик по виджету вызывает переход в следующее состояние (1 -> 2; 2 -> 1). Если операция прошла успешно, он покажет на экране небольшое сообщение с текстом "SNMP set OK <адрес>". В случае неуспеха на экране появится сообщение об ошибке.

Пример 2. Виджет для отслеживания температуры с помощью термодатчика, подключенного к устройству NetPing.

Виджет для отслеживания температуры с помощью термодатчика, подключенного к устройству NetPing

Чтобы создать GET виджет, вы выбираете PDU type get. Остальные поля заполняются аналогично SET виджету. SNMP OID переменные для датчиков температуры можно посмотреть в MIB файле соответствующей прошивки устройства NetPing. MIB файл можно скачать на странице описания устройства NetPing, раздел "Документация и файлы", подраздел "Дополнительные технические файлы". Например, термодатчик номер 6, подключенный к NetPing 2/PWR-220 v3/ETH, имеет oid 1.3.6.1.4.1.25728.8800.1.1.2.6

В результате мы получим на экране GET виджет, который при каждом клике по нему будет опрашивать устройство NetPing и отображать полученное значение.

Вот как это выглядит:

SnmpWidget и NetPing

Пример 3. Управление виджетами из сторонних приложений.

Мы создали два виджета, которые выполняют действие по клику. С помощью SnmpWidget можно "активировать" виджет не только по клику, но и по различным событиям. Для этого требуются сторонние приложения (Proference, Tasker или др). Вы можете найти их в Google Play Market. Proference позволяет создать до трёх правил бесплатно. Данный пример будет продемонстрирован с помощью этой программы.

Наша цель:

  • сделать так, чтобы SnmpWidget автоматически обновлял температуру на экране телефона при включении экрана;
  • сделать так, чтобы SnmpWidget автоматически опрашивал состояние канала электропитания и "синхронизировал" состояние виджета "Лампа" при включении экрана

SnmpWidget слушает "broadcast intents". Вы можете генерировать их из сторонних приложений и таким образом управлять виджетами.

  1. Для начала нужно установить Proference;
  2. В настройках Proference создаём правило;
  3. В правиле добавляем Conditions – screen is on;
  4. В правиле добавляем Actions – Send a broadcast intent;
  5. В broadcast intent указываем:

Action: k4.snmpwidget.TOGGLE_WIDGET
When: ставим галку на Start
Extra key: NAME
Extra value: {0,}

key – это регулярное выражение, которое применяется к именам виджетов. В случае совпадения к этому виджету будет применено действие, указанное с помощью extra STATE. Регулярное выражение {0,} совпадает с любой строкой (действие будет выполнено для всех виджетов).

Жмём кнопку Add extra и заполняем второе extra значение:

  • Extra key: STATE
  • Extra value: update

Жмём на кнопку Add extra ещё раз. Теперь, когда вы включаете экран телефона, SnmpWidget будет автоматически обновлять температуру.

Что же касается виджета "Лампа", то функция update крайне полезна, когда этой "Лампой" управляет несколько человек с разных устройств. Допустим, вы включили лампу, и в следующий раз SnmpWidget с вашего телефона пошлёт команду на выключение. Допустим, что другой человек со своего телефона выключил лампу. В таком случае вам придётся два раза кликнуть по виджету, чтобы снова включить лампу. Функция update решает эту проблему.

При включении экрана SnmpWidget пошлёт GET запрос для OID, который вы указали в настройках лампы. SnmpWidget попытается соотнести ответ от NetPing с одним из двух состояний, в случае успеха виджет на вашем телефоне перейдёт в актуальное состояние. С виду сложно, но на практике вы этих тонкостей просто не заметите. Всю рутину возьмет на себя SnmpWidget.

Ниже приведены два профиля виджетов, которые вы можете импортировать в SnmpWidget на вашем устройстве. Вам потребуется указать ваши настройки (адреса, community, oid). Отредактируйте эти строки и сохраните их на /sdcard вашего устройства как текстовый файл. Затем при добавлении нового виджета нажмите на Import и укажите имя файла.

Профиль для виджета лампа:

WidgetName;Лампа
WifiHost;192.168.1.1:161
WifiSSID;
MobileHost;1.1.1.1:1000
IgnoreTimeout;false
WifiTimeout;300
MobileTimeout;1000
Retransmit;2
Color;0xffffffff
NameColor;0xffffffff
LabelTextSize;0.0
NameTextSize;0.0
SnmpVersion;2c
Community;private
Oid;1.3.6.1.4.1.25728.5800.3.1.3.1
PDUtype;set
ValType;int
Label1;Выключить
Value1;0
Label2;Включить
Value2;1
Профиль для температурного виджета:
WidgetName;На улице °С
WifiHost;192.168.1.1:161
WifiSSID;
MobileHost;1.1.1.1:10000
IgnoreTimeout;false
WifiTimeout;300
MobileTimeout;1000
Retransmit;2
Color;0xff00ffff
NameColor;0xff00ffff
LabelTextSize;28
NameTextSize;0.0
SnmpVersion;2c
Community;private
Oid;1.3.6.1.4.1.25728.8800.1.1.2.6
PDUtype;get
ValType;null
Label1;No data
Value1;0
Label2;No data
Value2;1

Разработчик: Кирилл Телегин katelegin@gmail.com

Ссылки:

Бесплатная версия SnmpWidget:
https://play.google.com/store/apps/details?id=k4.snmpwidgetfree&feature=search_result#?t=W251bGwsMSwxLDEsIms0LnNubXB3aWRnZXRmcmVlIl0.

Полная версия SnmpWidget:
https://play.google.com/store/apps/details?id=k4.snmpwidget&feature=more_from_developer#?t=W251bGwsMSwxLDEwMiwiazQuc25tcHdpZGdldCJd

MIB файл для NetPing 2/PWR-220 v3/ETH можно найти на этой странице:
http://www.netping.ru/products/netping-2-pwr-220-v3-eth#files


  • Все устройства

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


Каталог устойств мониторинг серверных комнат и шкафов
Все устройства
Устройство UniPing v3
Устройство NetPing 2/PWR-220 v1/SMS
Устройство NetPing 2/PWR-220 v3/ETH
Устройство NetPing /PWR-220 v3/ETH
Устройство UniPing server solution
Устройство UniPing server solution v3/SMS
Устройство NetPing IO v2
Устройства NetPing
Каталог датчиков для устройств NetPing
Устройство NetPing 8/PWR-220 v3/SMS
Устройство NetPing 2/PWR-220 v2/SMS
Устройство NetPing 4/PWR-220 v3/SMS
Устройство NetPing SMS
Адаптер WiFi VAP11N
Коммутатор PS104GT
Устройство NetPing Mini-UPS
Коммутатор NP-SM4
Сплиттер POE 12В (стандарта 802.3af)
IRC-TR v2 (ИК модуль расширения)
Каталог устройств удалённого управления и распределения электропитания NetPing
Устройство UniPing server solution v3
Датчик разбития стекла (Стекло-3 ИО 329-4), 2м
Переходник для NetPing IO v2
Устройство NetPing PWR68-01
Датчик мониторинга 220В 1-wire
Адаптер DKST910.8
Устройство NetPing DKST61-01
Блок питания 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М-A10R с базой Е412NL
МОЛЛЮСК-12/1,5
Внешний ИБП SKAT-12DC-1.0 Li-ion
ИКС-1 извещатель охранный инфракрасный активный однолучевой
Готовое решение для мониторинга серверной комнаты на основе UniPing server solution v3/SMS
▼ Все теги
Новинки
Датчик воздушного потока LCF013
Датчик воздушного потока позволяет контролировать наличие или отсутствие напора воздушного потока. Содержит подробнее...

Цена: 2 587 руб.

ИКС-1 извещатель охранный инфракрасный активный однолучевой
Извещатель предназначен для регистрации пересечения нарушителями контролируемой зоны, образованной оптическим подробнее...

Цена: 3 854 руб.

Внешний ИБП SKAT-12DC-1.0 Li-ion
Малогабаритный источник бесперебойного питания (ИБП) со встроенной Li-Ion АКБ. Для питания устройств подробнее...

Цена: 3 200 руб.

МОЛЛЮСК-12/1,5
Малогабаритный блок питания с выходным напряженим 12 В. Имеет уникальный корпус, который позволяет осуществить подробнее...

Цена: 950 руб.

Датчик дыма комбинированный (дым/тепло) ИП 212/101-2М-A10R с базой Е412NL
Комбинированный извещатель предназначен для обнаружения возгораний в помещениях различных зданий и сооружений подробнее...

Цена: 2 098 руб.

MP701 Исполнительный элемент (4 независимых канала по 2 кВт 10А)
Силовой модуль коммутации предназначен для обеспечения управления при помощи устройств NetPing силовыми подробнее...

Цена: 1 400 руб.

BM8070D Силовое реле 16А/250В на DIN-рейку
Блок реле для удалённой коммутации мощной нагрузки при помощи устройств NetPing. Изготавливается в корпусе подробнее...

Цена: 1 350 руб.

Датчик движения (SWAN-QUAD ИК детектор квадросенсор), (2м)
Пассивный инфракрасный детектор движения позволяет регистрировать любое движение в зоне до 18 метров. подробнее...

Цена: 1 516 руб.

МАЯК-12-СТ
Оповещатель охранно-пожарный световой стробоскопический предназначен для выдачи световых стробоскопических подробнее...

Цена: 385 руб.

Датчик протечки H2О
Датчик протечки позволяет определить наличие воды в точке установки датчика. Устанавливается в нескольких подробнее...

Цена: 1 450 руб.

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

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