Wb-mqtt-snmp не работает почему-то

По инструкции в WiKi прикручиваю snmp девайс (температуру, давление, влажность отдает)

В веб-морде - неверный конфиг. Не открывается.
Работать тоже не работает ничего.
OID верные. Проверил iReasoning MIB browser

Где косяк?
действия, которые сделаны - ниже все.

Подправил конфиг /etc/wb-mqtt-snmp.conf

wb-mqtt-snmp.conf

{
“debug”: false,
“devices”: [
{
“address”: “10.11.0.32”,
“device_type”: “art-greenhouse-snmp”
}
]
}

Сделал шаблон /usr/share/wb-mqtt-snmp/templates/config-art-greenhouse-snmp.json

config-art-greenhouse-snmp.json

{
“device_type”: “art-greenhouse-snmp”,
“snmp_version”: “2c”,
“oid_prefix”: “SNMPv2-MIB”,
“community”: “art-home”,
“snmp_timeout”: 5,
“channels”: [
{
“name”: “out_temp”,
“oid”: “.1.3.6.1.4.1.17095.1.2.0.0”,
“type”: “text”,
“poll_interval”: 1000
},
{
“name”: “out_humidity”,
“oid”: “.1.3.6.1.4.1.17095.1.2.8”,
“type”: “text”,
“pool_interval”: 1000
},
{
“name”: “greenhouse_temp”,
“oid”: “.1.3.6.1.4.1.17095.1.2.31”,
“type”: “text”,
“pool_interval”: 1000
},
“name”: “greenhouse_humidity”,
“oid”: “.1.3.6.1.4.1.17095.1.2.40”,
“type”: “text”,
“pool_interval”: 1000
}
]
}

Перезапустил сервис invoke-rc.d wb-mqtt-snmp restart

MIB файл скопировал в /root/.snmp/mib/smeteo.mib

smeteo.mib

– SMALL_METEO SNMP STACK SMIV1 SPECIFICATION CONTROL MIB

SMALL_METEO-MIB DEFINITIONS ::= BEGIN

IMPORTS
MODULE-IDENTITY,enterprises,
IpAddress ,Integer32 FROM SNMPv2-SMI
– Gauge, TimeTicks FROM RFC1155-SMI
DisplayString FROM SNMPv2-TC
OBJECT-TYPE FROM RFC-1212
NOTIFICATION-TYPE FROM SNMPv2-SMI
– TRAP-TYPE FROM RFC-1215
SnmpSecurityModel,
SnmpMessageProcessingModel,
SnmpSecurityLevel,
SnmpAdminString FROM SNMP-FRAMEWORK-MIB
KeyChange FROM SNMP-USER-BASED-SM-MIB
TEXTUAL-CONVENTION FROM SNMPv2-TC
MODULE-COMPLIANCE, OBJECT-GROUP ,
NOTIFICATION-GROUP FROM SNMPv2-CONF;

info MODULE-IDENTITY
LAST-UPDATED “20012013”
ORGANIZATION “SMALL_METEO”
CONTACT-INFO “www.elephant.embedders.org
DESCRIPTION “SMALL-METEO MIB for SNMP application.”
REVISION “20012013”
DESCRIPTION “The MIB module for 1.70.”
::= { small-meteo 1 }

small-meteo OBJECT IDENTIFIER ::= { enterprises 17095 }
product OBJECT IDENTIFIER ::= { info 1 }
sensor OBJECT IDENTIFIER ::= { info 2 }

name OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Name of product.”
::= { product 1 }
version OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Version string.”
::= { product 2 }
date OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“Date of version”
::= { product 3 }
contact OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION
“contact url”
::= { product 4 }

– socket 1 –
sensor0 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“temperature sensor socket1”
::= { sensor 0 }
senserror0 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error socket1”
::= { sensor 1 }

sensor1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“humidity sensor socket1”
::= { sensor 8 }
senserror1 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error sensor socket1”
::= { sensor 9 }

– socket 2 –
sensor2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“temperature sensor socket2”
::= { sensor 32 }
senserror2 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error sensor socket2”
::= { sensor 31 }
sensor3 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“humidity sensor socket2”
::= { sensor 40 }
senserror3 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error sensor socket2”
::= { sensor 41 }

– socket 3 –
sensor4 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“temperature sensor socket3”
::= { sensor 64 }
senserror4 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error sensor socket3”
::= { sensor 65 }

sensor5 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“pressure HPa socket3”
::= { sensor 72 }
senserror5 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error socket3”
::= { sensor 73 }

sensor6 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“pressure mmHg socket3”
::= { sensor 80 }
senserror6 OBJECT-TYPE
SYNTAX DisplayString (SIZE (0…15))
ACCESS read-only
STATUS mandatory
DESCRIPTION
“error socket3”
::= { sensor 81 }
END

Добрый день, sibmax!

Первое, что вижу: не хватает открывающей фигурной скобки в шаблоне перед
“name”: “greenhouse_humidity”,

Проверить шаблон на валидность можно тут.

Спасибо. Поправил. Не работает.

Перенес все в /etc/wb-mqtt-snmp.conf
Тоже не работает.

Сам девайс из консоли WB отвечает.

root@WBArtHome:~# snmpwalk -v 2c -c public 10.11.0.32
iso.3.6.1.2.1.1.2.0 = OID: iso.3.6.1.4.1.17095.1

Это текст конфига.

root@WBArtHome:~# vim /etc/wb-mqtt-snmp.conf
{
“debug”: false,
“num_workers”: 1,
“devices”: [
{
“address”: “10.11.0.32”,
“name”: “art-greenhouse-snmp”
“community”: “public”,
“channels”: [
“name”: “out_temp”,
“oid”: “.1.3.6.1.4.1.17095.1.2.0.0”,
“type”: “text”,
“pool_interval”: 1000
]
}
]
}

А какой вывод вы получаете от snmpget именно для OID’а .1.3.6.1.4.1.17095.1.2.0.0 , который прописан у вас в конфиге?
Просто snmpwalk может слегка вводить в заблуждение.

не понял что надо сказать этому snmpget…
Это скриншот виндовой проги, комп в той-же подсети.
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

А у вас в MIB-браузере OID .1.3.6.1.4.1.17095.1.1.1.0, а в шаблоне .1.3.6.1.4.1.17095.1.2.0.0

Вот команда для контроллера:

snmpget -v 2c -c public 10.11.0.32 .1.3.6.1.4.1.17095.1.2.0.0

root@WBArtHome:/usr/share/wb-rules-system/scripts# snmpget -v 2c -c public 10.11.0.32 .1.3.6.1.4.1.17095.1.2.0.0
iso.3.6.1.4.1.17095.1.2.0.0 = STRING: “-0.7”

Собственно все верно.
Сейчас текущая температура на улице у нас.

Это та-же информация с веб-морды девайса
%D0%B8%D0%B7%D0%BE%D0%B1%D1%80%D0%B0%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5

Мне кажется, что проблемы в строковом значении, которое не воспринимается как число.

А должно быть обязательно число?
Вроде ж как текст и описано в конфиге.
По идее, в топик попасть и текст может видимо?

У вас там вместо poll_interval написано pool_interval :joy:

1 лайк

у нас была проблема убрали первую цифру OID и вписали iso. и в конце OID добавили .1 и все заработало

1 лайк