Использование 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 можно найти на этой странице:
https://netping.ru/products/netping-2-pwr-220-v3-eth

?
×

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

    Наши операторы свяжутся с вами при первой возможности

    ×

      Обращение в техническую поддержку

      Сформулируйте, пожалуйста, тему и текст вашего обращения. Вам ответят в течении рабочего дня.

      ×
      Ваша заявка отправлена. Мы свяжемся с вами при первой возможности.