Övervaka en äldre UPS-status med en Raspberry Pi
UPS-enheten har en seriell port och fungerar bra med Windows, tillsammans med en följetong till USB-adapter och Opti-UPS 'Sentry' programvara, UPS kan berätta Windows när det har växlat till batteri läge på en AC strömavbrott. Detta gör att Windows avslutas korrekt om det behövs.
Sentry programvaran är inte tillgänglig för Linux och seriella är standardiserade och inte lätt att tyda. Det är inte ens stöds av MUTTERN (http://www.networkupstools.org)
Så jag beslutade att använda främre leds på enheten för att fastställa det aktuella läget för UPS-enheten, den gröna LED betyder UPS på AC läge, betyder orange batteri läge.
Jag tog UPS isär och lödda två kablarna till batteriet läge ledde, matas dessa utanför UPS-enheten och ansluten dem upp till en Raspberry Pi GPIO port och marken.
Nu när nätströmmen misslyckas, UPS skickar 1.8V till främre LED och Raspberry Pi läser en logik 1 på sin GPIO pin (stift 5 Ange som indata).
Detta innebär att jag kan övervaka som stift med ett BASH-script, och har skriptet stängningen min NAS och andra nätverksenheter alla som drivs av UPS - över SSH.
Exempelskriptet har jag gjort kontrolleras GPIO stiftet efter några sekunder, och om det står "1" sedan nätströmmen är ner, sedan skickar mig en push anmälan till min iPhone med jakt/Growl. Om nätkontakten förblir avstängd längre än 30 sekunder utfärdar skriptet en avstängningskommandot till min NAS-enhet. GPIO stiftet sedan övervakas igen, tills strömmen kommer tillbaka, och sedan skickar den en WakeOnLan ett paket till NAS att driva upp igen.
Måste du aktivera passwordless ssh inloggningar till dina egna enheter om du använder denna metod.