Nel nostro centro elaborazione dati (CED) ho realizzato un sistema su misura per monitorare i consumi elettrici delle apparecchiature, con l’obiettivo di migliorare l’efficienza, prevenire overload e ottimizzare l’uso delle risorse.
Il mio obiettivo era duplice:
Il sistema interroga periodicamente dispositivi PDU APC Metered e UPS agli ioni di litio (Li-Ion) APC Schneider Electric, entrambi compatibili con SNMP v1/v2c.

Vengono raccolti dati su:
Ho sviluppato applicazioni (Agenti) Delphi 12.2 compatibili con Windows e Linux per interrogare i dispositivi via SNMP, elaborare i dati e inviarli in formato Excel al gestionale Xtumble che mi permette poi di avere i dati storicizzati in cloud, consultabile via web, ma principalmente associare ai centri di costo appropriato tutte le rilevazioni di consumo.
Grazie ad Xtumble evito di dover sviluppare tutte le features di invio mail, push notifications e allarmi che sono già gestite di base dal gestionale, mi basta configurare le regole di avviso.
In Delphi, l’accesso SNMP è stato realizzato con il componente TidSNMP della libreria Indy.
var
SNMP: TidSNMP;
begin
SNMP := TidSNMP.Create(nil);
try
SNMP.Host := '192.168.1.100';
SNMP.Community := 'public';
SNMP.Query.Clear;
SNMP.Query.Add('1.3.6.1.4.1.318.1.1.12.1.16.0');
SNMP.SendQuery;
if SNMP.Reply.Count > 0 then
ShowMessage('Consumo: ' + SNMP.Reply.ValueFromIndex[0] + ' Watt');
finally
SNMP.Free;
end;
end;
Per capire quali OID fossero disponibili, abbiamo usato snmpwalk su Linux:
snmpwalk -v2c -c public 192.168.1.100
Questo ci ha permesso di individuare i parametri più utili da monitorare.
I dati raccolti vengono salvati in file Excel che vengono inviati e importati dal gestionale Xtumble per:
In fase di sviluppo:
Se vuoi saperne di più su come integrare SNMP in Delphi o monitorare dispositivi APC, scrivimi nei commenti!