Main

Устройства NetPing

Компания Netping производит и реализует набор устройств, с помощью которых имеется возможность получать информацию с датчиков, а так же организовать управление удалённой нагрузкой с помощью ethernet-сети (по протоколу SNMP). В нашем примере мы возьмём два устройства: UniPing v3 и NetPing 2/PWR-220 v3.

Итак, к устройству Uniping мы подключим два датчика температуры, одну управляемую розетку, так же инфра-красный интерфейс IRC-TR v2. Непосредственный монтаж и базовая настройка достаточно просты (смотрим документацию к устройству), так что буквально через несколько минут можно получить устройство, которое считывает показания датчиков и управляет нагрузкой через встроенный веб-интерфейс.

Веб-интерфейс устройства:

Наша задача в том, чтобы сделать интеграцию данного устройства в нашу систему Умного Дома.

Итак, для начала добавим данные устройства через панель управления (модуль SNMP):

Указываем название устройства, адрес, а так же read/write community -- эти данные нужны для обращения к устройству (берутся из документации производителя):

Далее, нам необходимо добавить SNMP-свойства, с которыми будет работать система. Для этого нужно знать внутренний идентификатор свойств в устройстве (OID) -- эти данные так же обычно доступны в документации к устройству. Кроме того, в интернете можно найти специальное ПО, позволяющее "просканировать" устройство на предмет доступных свойств.

В нашем случае, мы добавим три свойства с известными идентификаторами:

  • Датчик температуры 1 (oid: 1.3.6.1.4.1.25728.8800.1.1.2.1)
  • Датчик температуры 2 (oid: 1.3.6.1.4.1.25728.8800.1.1.2.2)
  • Порт IO1 (oid: 1.3.6.1.4.1.25728.8900.1.1.3.1)

Получаем вот такую картину настройки устройства:

Дополнительно были заданы интервалы периодического опроса датчиков температуры. Если всё настроено правильно, то значения должны "подхватиться" сразу при добавлении свойств.

Последним шагом интеграции будет привязка SNMP-свойств к объектам внутри системы MajorDoMo. Для этого нужно указать их в полях "Связанные объект" и "Связанное св-во":

При наличии данной привязки система будет автоматически синхронизировать значения SNMP-свойств со значениями свойств указанных объектов, последние же можно использовать для отображения значений в меню, построение графиков и т.п. При этом связь будет двухсторонней -- если, к примеру, установить значение свойства объекта netping_o1.status в 1 (например в сценарии через setGlobal('netping_o1.status',1); или через выключатель в меню управления), то система отправит команду установки на связанное SNMP-свойство.

Пример настройки пункта меню для управления розеткой:

Результат:

Вот и всё. Абсолютно таким же образом мы добавляем второе устройство NetPing:

 
 

Обсуждение

 

sergejey: Обсуждение страницы Устройства NetPing

Amarok: Прописал всё по вашей статье. Статус устройства Алиса считывает, положение выключателя меняется, но вот переключать не выходит. Что-то упустил я? Clipboard01.jpgClipboard02.jpg

kosch1: Добрый день! У меня сделано включение выключение Бойлера с контролем температуры и контролем работы тэна через токовое реле. если хочешь выложу сценарий.

Amarok: Добрый день! У меня сделано включение выключение Бойлера с контролем температуры и контролем работы тэна через токовое реле. если хочешь выложу сценарий. Будет не плохо. Благодарю за ранее

kosch1: $snmp_host = '192.168.0.123'; // адрес устройства $snmp_community = 'SWITCH'; // "секретное слово" $snmp_oid = '.1.3.6.1.4.1.25728.8900.1.1.2.9'; // идентификатор параметра, Вход 9 NetPing485 $result = snmpget($snmp_host, $snmp_community, $snmp_oid); // чтение порта $result = substr($result,8,10);// выделение символа из строки //echo $result; if ($result == "1" ){ setGlobal('BollerStation.State',"220В Подано"); //echo "равно"; } else { setGlobal('BollerStation.State',"Питание Отключено"); //echo "не равно"; } //------------------------------------------ //Считывание срабатывания токового реле на бойлере $snmp_host = '192.168.0.118'; // адрес устройства $snmp_community = 'SWITCH'; // "секретное слово" $snmp_oid = '.1.3.6.1.4.1.25728.8900.1.1.2.3'; // иентдификатор параметра, Вход 3 NetPing IO $result = snmpget($snmp_host, $snmp_community, $snmp_oid); //чтение порта $result = substr($result,8,10);// выделение символа из строки echo $result; if ($result == "1" ){ setGlobal('BollerStation.ten',"Тэн включен"); } else { setGlobal('BollerStation.ten',"Тен Выключен"); }

kosch1: Меню управления

Amarok: Мой сценарий: if (getGlobal('netping_o1.status') == "1" ){ setGlobal('netping_o1.status',"1"); } else { setGlobal('netping_o1.status',"0"); }

Amarok: Странно, приведенный мною выше скрипт работает если дергай выключатель. Если же вызываю его через запуск по ссылке: http://127.0.0.1:80/objects/?script=mattress или через командную строку: D:\_majordomo\htdocs\obj.bat script:mattress то ничего не происходит. Где подкрутить?

Amarok: Кхм?...

Amarok: тема ап

sergejey: Вернулся из двух-недельного отпуска и только сейчас руки дошли до форума :) Я в личку ответил, но на всякий случай продублирую тут вместо if (getGlobal('netping_o1.status') == "1" ){ setGlobal('netping_o1.status',"1"); } else { setGlobal('netping_o1.status',"0"); } стоит попробовать if (getGlobal('netping_o1.status') != "1" ){ setGlobal('netping_o1.status',"1"); } else { setGlobal('netping_o1.status',"0"); }

I_I_Imonder: посоветуйте какой программой вытащить OID из UniPing RS232

I_I_Imonder: посоветуйте какой программой вытащить OID из UniPing RS232 есть живые?

I_I_Imonder: не могу получить SNMP свойства из Netping RS232, перепробовал кучу софта, есть проверенный способ? кто как делал?

denis: посоветуйте какой программой вытащить OID из UniPing RS232 есть живые? как я понимаю без MIB-файла никак( Надо обращаться к производителю. вот похоже этот файл: https://netpingeastcoltd-public.sharepoint.com/Pub/DKSF_50.12.5_MB.mib на странице http://netping.ru/product_item.aspx?id=_nping_bases_UniPing-rs232 но после общения с дилерами в СПб желание покупать что-то у этой конторы пропало)) я лучше ардуину куплю за эти деньги.

rusmur: Друзья, сделал подключение MDM к UniPing , по статье автора. У меня один термодатчик и одна розетка на io1, при вводе в полях "Значение" все правильно считывается и отображается. Но вот переключатель на закладке "Розетки" как у автора в статье, для моей розетки(выхода io1) не работает. В чем может быть проблема? В полях "Запускать Объект.Метод", "Сценарий" и "Код" для типа "Выключатель" выхода io1 точно ничего вводить не нужно??? OID на закладке SNMP я задал правильный int read/write. Проект MDM по моему очень нужный и интересный. И еще один вопрос, в MDM можно ли создать условие по типу проверяем температуру термодатчика TS1 и если температура > 20 градусов, включить выход io1 на котором висит розетка.

sergejey: Друзья, сделал подключение MDM к UniPing , по статье автора. У меня один термодатчик и одна розетка на io1, при вводе в полях "Значение" все правильно считывается и отображается. Но вот переключатель на закладке "Розетки" как у автора в статье, для моей розетки(выхода io1) не работает. В чем может быть проблема? В полях "Запускать Объект.Метод", "Сценарий" и "Код" для типа "Выключатель" выхода io1 точно ничего вводить не нужно??? OID на закладке SNMP я задал правильный int read/write. А можно набросать снимков экрана, как сейчас настроено? (удобно через программу на http://clip2net.com) Задан ли связанный объект/свойство в модуле SNMP для термодатчика и io1 ?

rusmur: А можно набросать снимков экрана, как сейчас настроено? (удобно через программу на http://clip2net.com) Задан ли связанный объект/свойство в модуле SNMP для термодатчика и io1 ? Я пока просто хочу добиться такого-же интерфейсного переключателя как у тебя для управления выводом-розеткой io1. Потом буду добиваться вывода температуры с датчика ts1 в интерфейс под переключателем управления io1.:) Если есть такая возможность хочу настроить чтобы при повышении температуры ts1 переключался выход io1 и присылалось письмо на мой майл. (Есть такие возможности у MDM на данный момент?) И еще у меня на входе io2 датчик наличия 220v тоже фирмы Алентис но я пока его не касаюсь. Просто пользоваться встроенной консолью UniPinga не оч. удобно, а PRTG не дает такого интерфеса для пользователя настроенной системы как MDM да и не все там можно настроить. PRTG все-таки для умного дома не очень подходит это больше административная консоль. Под рукой нет UniPingа сейчас завтра смогу сделать скрины. В связанном объекте - "netping_o1" в связанном св-ве - "status" на закладке SNMP. У меня UniPing server solution. Я так понял что в "Связанный объект" и "связанном свойстве" на закладке SNMP можно ввести произвольные строки, главное их же прописать при создании меню выключателя в полях "Связанный Объект.свойство"? У меня так и сделано.

nknvrd: Друзья, сделал подключение MDM к UniPing , по статье автора. У меня один термодатчик и одна розетка на io1, при вводе в полях "Значение" все правильно считывается и отображается. Но вот переключатель на закладке "Розетки" как у автора в статье, для моей розетки(выхода io1) не работает. В чем может быть проблема? В полях "Запускать Объект.Метод", "Сценарий" и "Код" для типа "Выключатель" выхода io1 точно ничего вводить не нужно??? OID на закладке SNMP я задал правильный int read/write. А можно набросать снимков экрана, как сейчас настроено? (удобно через программу на http://clip2net.com) Задан ли связанный объект/свойство в модуле SNMP для термодатчика и io1 ? Что конкретно вас интересует, не совсем понял? Опишите, может помогу, под рукой есть устройство Uniping

I_I_Imonder: Друзья! а кто нибудь пробовал управлять устройствами через netping rs232 по com - порту? поделитесь опытом

Zaezd2008: Столкнулся с проблемой. Пример, вот так работает замечательно: -setGlobal('netping_o1.io1',1); Но есть потребность послать одновременно на io1 и io2 логическую 1: -setGlobal('netping_o1.io1',1); -setGlobal('netping_o1.io2',1); В итоге работает не одновременно, а последовательно, что недопустимо. Если имеются варианты другого кода, уважаемые гуру прошу помощи. Есть возможность посыла URL команд: http://192.168.0.100/io.cgi?io1=f,5 http://192.168.0.100/io.cgi?io2=f,5 Но как послать эти команды из мажородомо, притом одновременно?

sergejey: Можете попробовать так: getURL('http://192.168.0.100/io.cgi?io1=f,5',0); getURL('http://192.168.0.100/io.cgi?io2=f,5',0); Но они всё равно последовательно отправятся. Даже если их одновременно послать, то мне кажется контроллер их все равно последовательно выполнит.

Zaezd2008: Можете попробовать так: getURL('http://192.168.0.100/io.cgi?io1=f,5',0); getURL('http://192.168.0.100/io.cgi?io2=f,5',0); Так, к сожалению, вообще не работает, ни 1 ый ни 2 ой... Попробовал как двойную ссылку вот такую: <a href="#" onclick="javascript:window.open('http://192.168.0.100/io.cgi?io1=f,5');window.open('http://192.168.0.100/io.cgi?io2=f,5');return false;">тест</a> Контроллер на нетпинге выполняет одновременно io1 и io2! Как бы теперь это в кнопку меню "затянуть"..

[ Обсудить на форуме ]

 

MajorDomo

Информация

Проекты

Партнёры

edit SideBar

 
 
 

 

Blix theme adapted by David Gilbert, powered by PmWiki