Skip to content

ESPHome omrežno spremljanje

ESPHome je priljubljen sistem za nadzor naprav Espressif ESP8266 in ESP32. Ta članek opisuje, kako spremljati več naprav z uporabo prilagojene ESPHome SNMP komponente in priljubljenega orodja za omrežno spremljanje.

Zahvaljujoč temu lahko zaznate in ste obveščeni o nenavadnih vedenjih vaših naprav, kot so ponovni zagon, šibek Wi-Fi signal ali pomanjkanje prostega pomnilnika.

SNMP podpira veliko aplikacij, vendar ta članek obravnava integracijo z odprtokodnim orodjem Zabbix. Predpostavlja se, da imate nameščeno in delujočo različico Zabbix 6.4.

INFO

Navodila za namestitev Zabbix so na voljo na spletni strani Zabbix: https://www.zabbix.com/download

SNMP komponenta

ESPHome ne podpira SNMP privzeto. Vendar pa omogoča priročen način za integracijo z zunanjimi komponentami.

Za dodajanje SNMP protokola ESPHome napravi se sklicujte na SNMP komponento, ki se nahaja na https://github.com/aquaticus/esphome-snmp.

Dodajte naslednjo kodo v vašo ESPHome YAML konfiguracijsko datoteko:

yaml
# Enable SNMP component
snmp:

# Retrieve SNMP component from github
external_components:
   - source: github://aquaticus/esphome-snmp

Ko je naložena na ploščo, bi morali v dnevniku videti naslednje sporočilo:

log
[00:00:00][C][snmp:268]: SNMP Config:
[00:00:00][C][snmp:269]:   Contact: ""
[00:00:00][C][snmp:270]:   Location: ""

Testiranje SNMP

Zdaj lahko poskusite pridobiti nekaj informacij s plošče. Obstaja veliko programov, ki lahko brskajo po SNMP podatkih. Tukaj je nekaj primerov:

Windows

Linux

Tukaj je vzorčna koda za uporabo na Linuxu. Zamenjajte IP naslov 192.168.1.10 z vrednostjo, ki ustreza naslovu vaše plošče.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.1.0

Rezultat zgornje poizvedbe je videti kot spodaj. To je opis sistema. To je SMTP objekt sysDescr, ki se prevede v 1.3.6.1.2.1.1.1.0 ID objekta.

log
iso.3.6.1.2.1.1.1.0 = STRING: "ESPHome version 2023.3.2 compiled Mar 29 2023, 00:00:01, Board wemos_d1_mini32”

Lahko poskusite pridobiti čas delovanja sistema.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.25.1.1.0

Rezultat:

log
iso.3.6.1.2.1.25.1.1.0 = Timeticks: (66281) 0:11:02.81

Vrednost časovnih kljukic se nenehno spreminja. Vsak klic vam da drugačno številko.

Za seznam vseh objektov, ki jih zagotavlja komponenta SNMP, glejte dokumentacijo komponente.

Predloge

Prenesite datoteko predloge iz: https://github.com/aquaticus/esphome_zabbix_templates

Sestavljena je iz 3 predlog:

  • Esphome by SNMP - osnovna predloga
  • Esphome ESP32 by SNMP - predloga za naprave ESP32 (vključno s C3, S2 in tako naprej)
  • Esphome ESP8266 by SNMP - predloga za ESP8266

Glavna razlika med predlogama ESP8266 in ESP32 so podatki o kupu.

Uvozite datoteko predloge s klikom na gumb Import v Zbiranje podatkov→Predloge.

Gostitelji

Odprite vmesnik Zabbix in pojdite na Nadzor→Gostitelji. Kliknite Ustvari gostitelja v zgornjem desnem kotu.

Zabbix gostitelji

  1. Kot predlogo izberite Esphome ESP32 by SNMP ali Esphome ESP8266 by SNMP
  2. Dodajte SNMP vmesnik.
  3. Izpolnite polja IP ali DNS
  4. Preostala polja pustite z privzetimi vrednostmi.
  5. Na koncu kliknite gumb Add.

Na seznamu nadzorovanih gostiteljev (Nadzor→Gostitelji) bi morali videti nov vnos.

V stolpcu Razpoložljivost bo ikona SNMP. Sprva bo siva, vendar bi se po nekaj sekundah morala obarvati zeleno.

Razpoložljivost SNMP

Nadzor

Ko vidite zeleno ikono, lahko pregledate podatke SNMP.

Če kliknete na povezavo Najnovejši podatki, boste videli seznam zbranih elementov.

Nov gostitelj

Alarm

Zabbix lahko samodejno zazna nenormalne situacije. V terminologiji Zabbix se to imenuje "Sprožilec". Predloga ESPHome vsebuje sprožilce, ki zaznajo tipične težave, na primer, da je bila plošča ponastavljena. Za seznam razpoložljivih sprožilcev izberite Sprožilci iz menija, ko kliknete ime gostitelja.

Tukaj je privzeti seznam sprožilcev:

  • Programska oprema se je spremenila
  • Visoka izguba ICMP pinga
  • Visok odzivni čas ICMP pinga
  • Nedosegljivo z ICMP pingom
  • Gostitelj je bil ponovno zagnan
  • Ni zbiranja podatkov SNMP
  • Ime sistema se je spremenilo
  • Šibek WiFi signal za 5 minut
  • WiFi povezava izgubljena

Lahko ustvarite tudi svoje sprožilce, na primer za spremljanje uporabe kupa.

Omrežna razpoložljivost

SNMP komponenta lahko zagotovi omrežno razpoložljivost (SNMP objekt sysUpTime1.3.6.1.2.1.1.3). Ta parameter je ključen za zaznavanje dogodkov izgube povezave.

Na žalost ESPHome WiFi komponenta ne zagotavlja te informacije. Zaradi tega SNMP komponenta privzeto vedno poroča sysUpTime kot 0.

Za pridobitev smiselnih podatkov morate spremeniti izvirno WiFi komponento in dodati eno funkcijo.

To lahko storite ročno ali uporabite že spremenjeno iz repozitorija.

Ročna sprememba WiFi komponente

Klonirajte in namestite ESPHome iz GitHuba.

Uredite dve datoteki wifi_component.cpp in wifi_component.h v imeniku esphome/components/wifi.

V vrstici 282 datoteke wifi_component.h dodajte dve vrstici (lahko kjerkoli v javnem delu):

cpp
#define WIFI_CONNECTED_TIMESTAMP_AVAILABLE
  uint32_t wifi_connected_timestamp() {return connected_timestamp_;}

 protected:
  uint32_t connected_timestamp_{0};

V wifi_component.cpp dodajte v vrstici 518 tik pred sporočilo dnevnika "WiFi Connected":

cpp
this->connected_timestamp_ = millis();

Preizkus omrežne razpoložljivosti

Sestavite in naložite novo programsko opremo.

Zdaj, ko preberete objekt sysUpTime 1.3.6.1.2.1.1.3, bi morali dobiti različne vrednosti vsakič, ko se izvede operacija pridobivanja.

bash
snmpget -v2c -c public 192.168.1.10 1.3.6.1.2.1.1.3.0

Videti bi morali vrednost, ki ni 0.

Seznam razpoložljivih OID-ov

Za ogled celotnega seznama objektov, ki jih zagotavlja ESPHome SNMP komponenta, si oglejte seznam OID-ov