Плагин SNMP



  • Добрый день,
    @Erik:

    1. Есть сторонние SNMP консоли, которые развиваются уже не один десяток лет, и имеют хорошо развитую систему отчетов, и, главное, корреляции событий. Если, например, при получении определенного аварийного трапа от устройства правильнее всего его перезагрузить по питанию, нужно послать snmp трап умному дому с командой переключить конкретную розетку.

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

    @Erik:

    2. Функция SNMP концентратора. Сбор трапов с устройств в локальной сети и передача их на удаленный сервер, если необходимо.

    Вы можете эту задачу сейчас решить, создаете слушающий трап в плагине и привяжите к устройству, далее в сценарии можно сделать http запрос и передать на удаленный сервер.

    @Erik:

    Судя по описанию в модуль MIB-ы (описания устройств) подгружать пока некуда, а без них что-то сделать - большой объем ручной настройки. Если концентратор передаст туда, где загружены нужные mib-ы, будет сложение функциональностей двух систем

    Типовые MIB'ы обычно принадлежат к целому семейству устройств и содержат очень большой поток информации обычно у конкретного устройства нет и половины заявленного в MIB файле. Была идея формировать каналы автоматически на основании MIB файла, но таблица каналов получалась очень большая для привязки устройств. Вы всегда можете посмотреть содержание MIB файла сторонней программой или в и интернете есть готовые таблицы где сможете получить необходимые OID.

    Сейчас плагин может делать GET, TABLE запросы и слушать входящий TRAP для получения состояния устройства и управлять устройством через команду SET (вкладка "Команды") При тестирование мы не встретили устройство которому нужно было посылать TRAP чтобы изменить значение.



  • @Erik:

    Пока писал, еще "хотелка" сформулировались.

    Настраиваемый SNMP-MIB умного дома. Чтобы всем его устройствам/сценариям можно было сопоставить SNMP переменную, и управлять ей SNMP командой.

    Добрый день, создаете виртуальное устройство, в плагине SNMP создаете канал, выбираете тип запроса GET/TABLE и время опроса или входящий TRAP, прописываете необходимый OID для запроса/слушания. Переходите в раздел "Команды" и настраиваете действия для виртуально устройства on/off/toggle, прописываете необходимый OID, тип значения и передаваемое значение.

    Теперь вы можете считывать SNMP переменную и управлять ей (SNMP командой) через виртуальное устройство.



  • Вот. Осталось сделать это интуитивно понятным в интерфейсе. 🙂

    Хотя нет.

    Вы не поняли.

    Из сторонней SNMP консоли управлять умным домом.

    чтобы "лампочке на кухне" присвоить OID, и SET-запросом из сторонней консоли изменяя этот OID с 0 на 1 включать "лампочку на кухне".

    А не привязывать виртуальное устройство в УД к внешнему SNMP прибору.

    Видится (например) как дополнительное поле в свойствах устройств. Куда при необходимости устройством управлять ставится OID.

    И хорошо, бы иметь возможность по итогу сформировать MIB-файл для добавления его в стороннюю консоль.



  • @Erik:

    Вот. Осталось сделать это интуитивно понятным в интерфейсе. 🙂

    Хотя нет.

    Вы не поняли.

    Из сторонней SNMP консоли управлять умным домом.

    чтобы "лампочке на кухне" присвоить OID, и SET-запросом из сторонней консоли изменяя этот OID с 0 на 1 включать "лампочку на кухне".

    А не привязывать виртуальное устройство в УД к внешнему SNMP прибору.

    Видится (например) как дополнительное поле в свойствах устройств. Куда при необходимости устройством управлять ставится OID.

    И хорошо, бы иметь возможность по итогу сформировать MIB-файл для добавления его в стороннюю консоль.

    Добрый день, планируется реализовать механизм Аддонов, данное нововведение поможет реализовать такие вещи как HTTP API, SNMP для управления и интеграцией с самой системой intraHouse.

    Первый Аддон планируется сделать для управления системой через sms/email/телеграмм/голосовой ввод



  • @dev:

    Добрый день, планируется реализовать механизм Аддонов, данное нововведение поможет реализовать такие вещи как HTTP API, SNMP для управления и интеграцией с самой системой intraHouse.

    Первый Аддон планируется сделать для управления системой через sms/email/телеграмм/голосовой ввод

    Хорошие планы!



  • Добрый день.

    А можно решить такую задачку?

    Есть роутер zixel keenetic_4G, можно ли организовать получение информации о подключенных к его Wi-Fi пользователях, и при подключении конкретного пользователя, запускать определенный сценарий.

    В качестве примера использования: Пришел домой, телефон автоматически подключился к сети, умный дом запустил определенный сценарий.



  • @Andrey:

    Добрый день.

    А можно решить такую задачку?

    Есть роутер zixel keenetic_4G, можно ли организовать получение информации о подключенных к его Wi-Fi пользователях, и при подключении конкретного пользователя, запускать определенный сценарий.

    В качестве примера использования: Пришел домой, телефон автоматически подключился к сети, умный дом запустил определенный сценарий.

    Дать телефонам статический IP (через DHCP, но постоянные), и пинговать их плагином Ping.

    Как появятся в сети - объект поменяет статус, что можно использовать для запуска скриптов.

    Только WiFI не всегда не телефонах включен. Поэтому + / -



  • Спасибо, за идею… попробую.👍



  • Наверно лучше через блютуз так сделать, но как?…



  • Либо другой вариант - поставить на телефон приложение Tasker.

    https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru

    У него есть много настроек, в т.ч. выполнить определенные действия при попадании в определенную Wi-Fi сеть.

    Действием может быть в т.ч. дергание необходимого URL, который, в свою очередь, запустит сценарий в IntraHouse.

    Приложение , правда, платное, ограничения бесплатной версии на память не помню.



  • @filippovsky:

    Либо другой вариант - поставить на телефон приложение Tasker.

    https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru

    У него есть много настроек, в т.ч. выполнить определенные действия при попадании в определенную Wi-Fi сеть.

    Действием может быть в т.ч. дергание необходимого URL, который, в свою очередь, запустит сценарий в IntraHouse.

    Приложение , правда, платное, ограничения бесплатной версии на память не помню.

    Слишком сложно, пинг проще. Но можно проследить момент если вифи не включен, также не понятно как реагировать на переподключение к сети, если перезагружаешь дома телефон, либо выключаешь\включаешь вифи находясь дома. Много сложностей, по-моему проще считыватель на сходе. Чиркнул брелком и необходимые скрипты для каждого члена семьи запустились



  • @homa:

    @filippovsky:

    Либо другой вариант - поставить на телефон приложение Tasker.

    https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru

    У него есть много настроек, в т.ч. выполнить определенные действия при попадании в определенную Wi-Fi сеть.

    Действием может быть в т.ч. дергание необходимого URL, который, в свою очередь, запустит сценарий в IntraHouse.

    Приложение , правда, платное, ограничения бесплатной версии на память не помню.

    Слишком сложно, пинг проще. Но можно проследить момент если вифи не включен, также не понятно как реагировать на переподключение к сети, если перезагружаешь дома телефон, либо выключаешь\включаешь вифи находясь дома. Много сложностей, по-моему проще считыватель на сходе. Чиркнул брелком и необходимые скрипты для каждого члена семьи запустились

    С Таскером конечно немного муторнее, хотя настроек там море и стоит копейки - но это скорее для совсем гиков)))

    Между Wi-Fi и NFC/Em-Marine - огромная пропасть! Не надо это путать. Одно дело когда подъехал к дому, зацепился Wi-Fi и включилось уличное освещение, ну может начали открываться ворота территории/гаража. Другое дело когда с помощью Wi-Fi еще снялась охрана с дома и включился свет/розетки и т.д. А вдруг вы решили дойти до соседа, магазина/посидеть в авто и послушать музыку, а в это время дом без сигнализации, территория не охвачена видеонаблюдением и пр? Поэтому нельзя по Wi-Fi снимать сигнализацию, деактивировать камеры, включать свет в доме. Это как раз прерогатива NFC/Em-Marine, которые располагаются у входной двери дома/гаража.

    И скрипты для каждого члена семьи - это как-то излишне. А если вечером приехала семья в полном составе? Как это отследить и что активировать? Можно конечно отслеживать пингом смартфоны всех членов семьи и без разницы кто снимет охрану - запустить сценарий "Все дома"… а так - если дети хотят удобств, вероятно надо на входе их комнат тоже размещать NFC/Em-Marine считыватели - "чиркнул" и включился нужный свет/открылось нужное окно в зависимости от времени суток, запустился плей-лист плеера в данной комнате, включился компьютер/монитор.



  • @Alex_Jet:

    @homa:

    @filippovsky:

    Либо другой вариант - поставить на телефон приложение Tasker.

    https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=ru

    У него есть много настроек, в т.ч. выполнить определенные действия при попадании в определенную Wi-Fi сеть.

    Действием может быть в т.ч. дергание необходимого URL, который, в свою очередь, запустит сценарий в IntraHouse.

    Приложение , правда, платное, ограничения бесплатной версии на память не помню.

    Слишком сложно, пинг проще. Но можно проследить момент если вифи не включен, также не понятно как реагировать на переподключение к сети, если перезагружаешь дома телефон, либо выключаешь\включаешь вифи находясь дома. Много сложностей, по-моему проще считыватель на сходе. Чиркнул брелком и необходимые скрипты для каждого члена семьи запустились

    С Таскером конечно немного муторнее, хотя настроек там море и стоит копейки - но это скорее для совсем гиков)))

    Между Wi-Fi и NFC/Em-Marine - огромная пропасть! Не надо это путать. Одно дело когда подъехал к дому, зацепился Wi-Fi и включилось уличное освещение, ну может начали открываться ворота территории/гаража. Другое дело когда с помощью Wi-Fi еще снялась охрана с дома и включился свет/розетки и т.д. А вдруг вы решили дойти до соседа, магазина/посидеть в авто и послушать музыку, а в это время дом без сигнализации, территория не охвачена видеонаблюдением и пр? Поэтому нельзя по Wi-Fi снимать сигнализацию, деактивировать камеры, включать свет в доме. Это как раз прерогатива NFC/Em-Marine, которые располагаются у входной двери дома/гаража.

    И скрипты для каждого члена семьи - это как-то излишне. А если вечером приехала семья в полном составе? Как это отследить и что активировать? Можно конечно отслеживать пингом смартфоны всех членов семьи и без разницы кто снимет охрану - запустить сценарий "Все дома"… а так - если дети хотят удобств, вероятно надо на входе их комнат тоже размещать NFC/Em-Marine считыватели - "чиркнул" и включился нужный свет/открылось нужное окно в зависимости от времени суток, запустился плей-лист плеера в данной комнате, включился компьютер/монитор.

    А если дома, лежа в кровати, перезагрузил смартфон, вифи переподключился, ворота тоже откроются? Всетаки это наверное ручная функция, ну и на радиобрелки иногда посматриваю, но мне в этом плане в квартире проще)



  • @homa:

    А если дома, лежа в кровати, перезагрузил смартфон, вифи переподключился, ворота тоже откроются? Всетаки это наверное ручная функция, ну и на радиобрелки иногда посматриваю, но мне в этом плане в квартире проще)

    У вас какой-то не надежный телефон… но в принципе Вы правы. Wi-Fi в плане выполнения по наличию подключения сценариев штука не нужная. Легче в iH сделать мобильный интерфейс с нужными кнопками. Собственно, что я и сделал у себя.



  • Добрый день! У меня есть плавающий параметр по snmp. Его значение неважно, но важно понимать доступность OIDа (мак-адрес устройства). Как прописать обработку значений? (value == null)?"0":"1" такая запись переводит сенсор в 1, но когда значение перестает появляться не переводит в 0.

    Лог когда устройство доступно:

    29.05 10:02:22.194 snmp1: GET 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, oid: 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, value: 2
    29.05 10:02:22.194 IH: set {"SENSORA15":{"aval":1,"err":0}}
    
    

    Лог когда устройство не доступно:

    29.05 10:05:01.387 IH: set {}
    29.05 10:05:02.389 IH: set {}
    
    


  • @homa:

    Добрый день! У меня есть плавающий параметр по snmp. Его значение неважно, но важно понимать доступность OIDа (мак-адрес устройства). Как прописать обработку значений? (value == null)?"0":"1" такая запись переводит сенсор в 1, но когда значение перестает появляться не переводит в 0.

    Лог когда устройство доступно:

    > 29.05 10:02:22.194 snmp1: GET 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, oid: 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, value: 2
    > 29.05 10:02:22.194 IH: set {"SENSORA15":{"aval":1,"err":0}}
    > 
    

    Лог когда устройство не доступно:

    > 29.05 10:05:01.387 IH: set {}
    > 29.05 10:05:02.389 IH: set {}
    > 
    

    Как вариант - использовать не значение, а флаг ошибки. Для этого использовать настройку на уровне устройства: Установить ошибку если нет данных в течение (сек). Сервер будет устанавливать ошибку, а плагин сбрасывать



  • @intrapro:

    @homa:

    Добрый день! У меня есть плавающий параметр по snmp. Его значение неважно, но важно понимать доступность OIDа (мак-адрес устройства). Как прописать обработку значений? (value == null)?"0":"1" такая запись переводит сенсор в 1, но когда значение перестает появляться не переводит в 0.

    Лог когда устройство доступно:

    > > 29.05 10:02:22.194 snmp1: GET 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, oid: 1.3.6.1.2.1.17.7.1.2.2.1.2.1.0.80.86.177.76.217, value: 2
    > > 29.05 10:02:22.194 IH: set {"SENSORA15":{"aval":1,"err":0}}
    > > 
    

    Лог когда устройство не доступно:

    > > 29.05 10:05:01.387 IH: set {}
    > > 29.05 10:05:02.389 IH: set {}
    > > 
    

    Как вариант - использовать не значение, а флаг ошибки. Для этого использовать настройку на уровне устройства: Установить ошибку если нет данных в течение (сек). Сервер будет устанавливать ошибку, а плагин сбрасывать

    Почему-то при такой настройке датчик переходит в ошибку через значительно большее время, чем прогнозируется или не переходит вообще

    upd:

    поставил перевод в ошибку через 1с, получил такую картинку причем по логам snmp устройство офлайн
    snmp1.JPG



  • Не совсем понятно. Поясните вопрос подробнее. Можно дать скриншоты.



  • Большинство устройств не требует разделения community на RO и RW

    Судя по информации в инете, это используется в Cisco

    В данной реализации плагина используется общий community



  • @jejg3:

    для авторизации протокол snmp предусматривает наличие community:

    • rocommunity для запросов get, get next, tablr и trap;

    • rwcommunity для запросов set.

    Они задаются на девайсах, к которым нужен доступ. Тут бывает 2 строки, для разного уровня доступа задаются разные коммунити.

    А в клиенте/консоли указывается, с каким коммунити взаимодействовать с устройством.

    Тут обычно одна строка. Какую укажешь (или какую знаешь) - такой уровень и будет.

    Консоли/клиенту не нужно указывать 2. Всегда достаточно одного. Если нужно и читать и писать - укажите RW.

    Если нужно только читать - укажите RO.

    Если нужно, чтобы ктототам видел статусы. но не мог влиять на работу - скажите ему только коммунити для RO.

    Это такой нехитрый механизм безопасности SNMP.


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