Skip to content

Commit e52e4b8

Browse files
JacobErnst98Jellyfroglaf
authored
Added support for ESPHOME OS (librenms#16571)
* Support for ESPHOME OS * added esphome_esp8266.json * mib support * Removed skip values for heap in mempools * Update includes/definitions/discovery/esphome.yaml Co-authored-by: Jellyfrog <[email protected]> * Some changes and test data re-done * Updated logo * Updated test data * Update logos to remove width/height * More changes * Mib definitions * Another logo update --------- Co-authored-by: Jellyfrog <[email protected]> Co-authored-by: Neil Lathwood <[email protected]>
1 parent 0cabf34 commit e52e4b8

File tree

10 files changed

+1268
-0
lines changed

10 files changed

+1268
-0
lines changed

html/images/logos/esphome.svg

+1
Loading

html/images/os/esphome.svg

+1
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
mib: ESPHOME-ESP8266-SNMP-MIB:HOST-RESOURCES-MIB:SNMPv2-MIB
2+
modules:
3+
os:
4+
hardware:
5+
- ESPHOME-ESP8266-SNMP-MIB::chipModel.0
6+
- ESPHOME-ESP8266-SNMP-MIB::chipRevision.0
7+
hardware_template: 'Model: {{ $ESPHOME-ESP8266-SNMP-MIB::chipModel.0 }} Revision: {{ $ESPHOME-ESP8266-SNMP-MIB::chipRevision.0 }}'
8+
version: SNMPv2-MIB::sysDescr.0
9+
version_regex: '/version (?<version>[^ ]+)/'
10+
mempools:
11+
data:
12+
- # Heap ESP32 only
13+
oid: ESPHOME-ESP32-SNMP-MIB::heap
14+
total: ESPHOME-ESP32-SNMP-MIB::heapSize
15+
free: ESPHOME-ESP32-SNMP-MIB::freeHeap
16+
precision: 1
17+
descr: 'Heap'
18+
class: Heap
19+
- # SPI RAM If Attached
20+
oid: HOST-RESOURCES-MIB::hrStorage
21+
total: HOST-RESOURCES-MIB::hrStorageSize
22+
used: HOST-RESOURCES-MIB::hrStorageUsed
23+
precision: 1
24+
descr: '{{ $HOST-RESOURCES-MIB::hrStorageDescr }}'
25+
class: '{{ $HOST-RESOURCES-MIB::hrStorageDescr }}'
26+
index: '{{ $index }}'
27+
skip_values:
28+
- #Skip flash as the storage module should load that
29+
oid: HOST-RESOURCES-MIB::hrStorageDescr
30+
op: '='
31+
value: 'FLASH'
32+
sensors:
33+
dbm:
34+
data:
35+
- # RSSI
36+
oid: ESPHOME-ESP8266-SNMP-MIB::wifi
37+
descr: 'BSSID: {{ $ESPHOME-ESP8266-SNMP-MIB::bssi }}'
38+
group: 'RSSI of SSID: {{ $ESPHOME-ESP8266-SNMP-MIB::ssid }}'
39+
value: ESPHOME-ESP8266-SNMP-MIB::rssi
40+
num_oid: .1.3.9999.4.{{ $index }}
41+
state:
42+
data:
43+
- # Chip Type
44+
oid: ESPHOME-ESP8266-SNMP-MIB::chipType
45+
descr: 'Chip Type'
46+
num_oid: .1.3.9999.2.1
47+
states:
48+
- { value: 32, generic: 0, graph: 0, descr: 'ESP32' }
49+
- { value: 8266, generic: 0, graph: 0, descr: 'ESP8266' }
50+
frequency:
51+
data:
52+
- # Chip Frequency
53+
oid: ESPHOME-ESP8266-SNMP-MIB::cpuClock
54+
descr: 'Chip Frequency'
55+
num_oid: .1.3.9999.2.2.0
56+
multiplier: 1000000
57+
count:
58+
data:
59+
- # Total RAM
60+
oid: HOST-RESOURCES-MIB::hrMemorySize
61+
descr: 'Total RAM'
62+
num_oid: .1.3.6.1.2.1.25.2.2.0
63+
multiplier: 1000
64+
- # Core Count
65+
oid: ESPHOME-ESP8266-SNMP-MIB::numCores
66+
descr: 'Core Count'
67+
num_oid: .1.3.9999.2.4.0
68+
percent:
69+
data:
70+
- # ESP8266 only Heap Fragmentation In percents
71+
oid: ESPHOME-ESP8266-SNMP-MIB::heapFragmentation
72+
descr: 'Heap Fragmentation In percents'
73+
num_oid: .1.3.9999.8266.2.0
74+

includes/definitions/esphome.yaml

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
os: esphome
2+
text: 'ESP-Home'
3+
type: appliance
4+
icon: esphome
5+
snmp_bulk: false
6+
over:
7+
- { graph: device_mempool, text: 'Memory Usage' }
8+
- { graph: device_dbm, text: 'Wifi RSSI' }
9+
discovery:
10+
- sysDescr:
11+
- 'ESPHome'

mibs/esphome/ESPHOME-ESP32-SNMP-MIB

+193
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
ESPHOME-ESP32-SNMP-MIB DEFINITIONS ::= BEGIN
2+
3+
IMPORTS
4+
sysDescr,
5+
snmp
6+
FROM SNMPv2-MIB
7+
hrMemorySize,
8+
hrSystemUptime,
9+
hrStorageIndex,
10+
hrStorageDescr,
11+
hrStorageAllocationUnits,
12+
hrStorageSize,
13+
hrStorageUsed,
14+
hrStorageGroup
15+
FROM HOST-RESOURCES-MIB
16+
DisplayString,
17+
TEXTUAL-CONVENTION
18+
FROM SNMPv2-TC
19+
MODULE-IDENTITY,
20+
OBJECT-TYPE,
21+
Integer32
22+
FROM SNMPv2-SMI
23+
OBJECT-GROUP
24+
FROM SNMPv2-CONF;
25+
26+
esphome MODULE-IDENTITY
27+
LAST-UPDATED "201704200000Z"
28+
ORGANIZATION "."
29+
CONTACT-INFO
30+
""
31+
DESCRIPTION
32+
"r"
33+
REVISION "201704200000Z"
34+
DESCRIPTION
35+
""
36+
::= { 1 3 9999 }
37+
38+
39+
chipGroup OBJECT-GROUP
40+
OBJECTS {
41+
chipType,
42+
cpuClock,
43+
chipModel,
44+
numCores,
45+
chipRevision }
46+
STATUS current
47+
DESCRIPTION
48+
"Chip Storage Group"
49+
::= { groups 2 }
50+
51+
wifiGroup OBJECT-GROUP
52+
OBJECTS {
53+
rssi,
54+
bssi,
55+
ssid,
56+
ipaddress }
57+
STATUS current
58+
DESCRIPTION ""
59+
::= { groups 4 }
60+
61+
espHeapGroup OBJECT-GROUP
62+
OBJECTS {
63+
heapSize,
64+
freeHeap,
65+
minimumFreeHeap,
66+
maximumAllocatedHeap }
67+
STATUS current
68+
DESCRIPTION ""
69+
::= { groups 32 }
70+
71+
maxFreeHeapBlock OBJECT-TYPE
72+
SYNTAX INTEGER
73+
MAX-ACCESS read-only
74+
STATUS current
75+
DESCRIPTION ""
76+
::= { heap 3 }
77+
78+
79+
chipType OBJECT-TYPE
80+
SYNTAX DisplayString (SIZE (0..255))
81+
MAX-ACCESS read-only
82+
STATUS current
83+
DESCRIPTION ""
84+
::= { chip 1 }
85+
86+
87+
cpuClock OBJECT-TYPE
88+
SYNTAX DisplayString (SIZE (0..255))
89+
MAX-ACCESS read-only
90+
STATUS current
91+
DESCRIPTION ""
92+
::= { chip 2 }
93+
94+
95+
chipModel OBJECT-TYPE
96+
SYNTAX DisplayString (SIZE (0..255))
97+
MAX-ACCESS read-only
98+
STATUS current
99+
DESCRIPTION ""
100+
::= { chip 3 }
101+
102+
103+
numCores OBJECT-TYPE
104+
SYNTAX DisplayString (SIZE (0..255))
105+
MAX-ACCESS read-only
106+
STATUS current
107+
DESCRIPTION ""
108+
::= { chip 4 }
109+
110+
111+
chipRevision OBJECT-TYPE
112+
SYNTAX DisplayString (SIZE (0..255))
113+
MAX-ACCESS read-only
114+
STATUS current
115+
DESCRIPTION ""
116+
::= { chip 5 }
117+
118+
119+
-- memory size, expressed in units of 1024bytes
120+
121+
KBytes ::= Integer32 (0..2147483647)
122+
123+
124+
wifi OBJECT IDENTIFIER ::= { esphome 4 }
125+
126+
chip OBJECT IDENTIFIER ::= { esphome 2 }
127+
128+
heap OBJECT IDENTIFIER ::= { esphome 32 }
129+
130+
rssi OBJECT-TYPE
131+
SYNTAX DisplayString (SIZE (0..255))
132+
MAX-ACCESS read-only
133+
STATUS current
134+
DESCRIPTION ""
135+
::= { wifi 1 }
136+
137+
138+
bssi OBJECT-TYPE
139+
SYNTAX DisplayString (SIZE (0..255))
140+
MAX-ACCESS read-only
141+
STATUS current
142+
DESCRIPTION ""
143+
::= { wifi 2 }
144+
145+
146+
ssid OBJECT-TYPE
147+
SYNTAX DisplayString (SIZE (0..255))
148+
MAX-ACCESS read-only
149+
STATUS current
150+
DESCRIPTION ""
151+
::= { wifi 3 }
152+
153+
154+
ipaddress OBJECT-TYPE
155+
SYNTAX DisplayString (SIZE (0..255))
156+
MAX-ACCESS read-only
157+
STATUS current
158+
DESCRIPTION ""
159+
::= { wifi 4 }
160+
161+
heapSize OBJECT-TYPE
162+
SYNTAX INTEGER
163+
MAX-ACCESS read-only
164+
STATUS current
165+
DESCRIPTION ""
166+
::= { heap 1 }
167+
168+
freeHeap OBJECT-TYPE
169+
SYNTAX INTEGER
170+
MAX-ACCESS read-only
171+
STATUS current
172+
DESCRIPTION ""
173+
::= { heap 2 }
174+
175+
176+
minimumFreeHeap OBJECT-TYPE
177+
SYNTAX INTEGER
178+
MAX-ACCESS read-only
179+
STATUS current
180+
DESCRIPTION ""
181+
::= { heap 3 }
182+
183+
maximumAllocatedHeap OBJECT-TYPE
184+
SYNTAX INTEGER
185+
MAX-ACCESS read-only
186+
STATUS current
187+
DESCRIPTION ""
188+
::= { heap 4 }
189+
190+
191+
groups OBJECT IDENTIFIER ::= { esphome 9999 }
192+
193+
END

0 commit comments

Comments
 (0)