UPS-laitteisto

UPS, tuo unohdettu ja väsymätön datankerääjä

Tällä kertaa Zouppenin säätönurkkauksessa sähköasioita. Varoitus: Artikkeli on jännitteinen ja sisältää kompleksilukujen jäänteitä.

Elokuun alkupuolella havahduin tilanteeseen, että meillä on ollut vuosia ajossa Network UPS Tools eli nut, jota on lähinnä käytetty siihen, että UPS:n tilasta tehdään tarvittaessa hälytyksiä Icingaan. UPS kerää kuitenkin muutakin tietoa: sähkönkulutustietoja, oman lämpötilansa ja paljon muuta. Tässä esimerkki datasta:

$ upsc ups
Init SSL without certificate database
ambient.temperature: 26
ambient.temperature.high: 40
battery.charge: 100
battery.charger.status: resting
battery.runtime: 18724
battery.runtime.low: 2
battery.voltage: 104.3
device.mfr: Eaton
device.model: PW9120 3000i
device.part: 05147365-5501   
device.serial: RV091A0200      
device.type: ups
driver.name: bcmxcp_usb
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: no
driver.version: 2.7.4
driver.version.internal: 0.31
input.frequency: 50.0
input.frequency.high: 52
input.frequency.low: 48
input.frequency.nominal: 50
input.transfer.boost.high: 195
input.transfer.high: 276
input.transfer.low: 160
input.transfer.trim.low: 254
input.voltage: 239
input.voltage.nominal: 230
output.current:  0.6
output.current.nominal: 13.0
output.frequency: 50.0
output.frequency.nominal: 50
output.phases: 1
output.voltage: 230
output.voltage.nominal: 230
ups.alarm: INVERTER_TEMP_SENSOR_FAILED DC_START_OCCURED INVERTER_ON_DELAY AUTO_OFF_COMMAND_EXECUTED ON_BUCK ON_BOOST ON_DOUBLE_BOOST TRANSFORMER_OVER_TEMP CABINET_DOOR_OPEN_VOLT_PRESENT AUTO_SHUTDOWN_PENDING STARTUP_FAILURE_CHECK_EPO OUTGOING_MODEM_CALL_STARTED
ups.beeper.status: disabled
ups.firmware: Cont:02.03 Inve:02.03
ups.load:   4.7
ups.mfr: Eaton
ups.model: PW9120 3000i
ups.power: 141
ups.power.nominal: 3000
ups.realpower: 80
ups.serial: RV091A0200      
ups.status: ALARM OL
ups.test.result: Done and passed

Dataa on siis paljon. Sieltä löytyy mm. seuraavat meitä kiinnostavat kentät:

ambient.temperatureUPS:n lämpötila (°C)
battery.chargeAkun varaustila (%)
battery.voltageAkun jännite (V)
input.frequencySähköverkon taajuus (Hz)
input.voltageSähköverkon jännite (V)
ups.powerUPS:n kuorman näennäisteho (VA)
ups.realpowerUPS:n kuorman pätöteho (W)

Muut selittävätkin itsensä, mutta pätöteho ja näennäisteho saattavat olla tuntemattomia, ellei ole sähköalan diplomi-, normi-, tai valeinsinööri. Seuraava kuva havainnollistaa asiaa trigonometrian keinoin:

Tekijä: Wikieditor4321, Lähde: Wikimedia Commons

UPS:n mittaamista parametreista kuvassa näkyy näennäisteho (engl. apparent power) sekä pätöteho (engl. real power). Usein emme ole kiinnostuneet loistehon (engl. reactive power) määrästä vaan tehokertoimesta. Tehokerroin voidaan johtaa seuraavasti:

Skippaan kuitenkin kompleksilukumatematiikan, koska olen valeinsinööri ja siten kiinnostunut vain lopputuloksesta, eli alimmasta rivistä. Tehokerroin on pätöteho jaettuna näennäisteholla (eli kompleksiluvun itseisarvolla).

Tehokerroin kuvaa kuinka ”hyvää” kuormitus on. Täydellinen tehokerroin on 1. Esimerkiksi vedenkeittimellä on sellainen. Vedenkeittimessä vastus ”luo” virran, joka on samassa vaiheessa jännitteen kanssa. Sen sijaan usein sähkömoottoreiden, loisteputkien ja pienitehoisten hakkurivirtalähteiden virta ei ole jännitteen kanssa vaiheessa. Tämä aiheuttaa joko induktiivista tai kapasitiivista kuormitusta, jotka parhaassa tapauksessa kumoavat toisensa. Näin ei kuitenkaan yleensä tapahdu, vaan kuormitus on epäideaalia ja kuormittaa näin sähköverkkoa.

Online-UPS:n tapauksessa, menemättä asiaan liian syvälle, sen korjaaminen on UPS:n tehtävä, koska kuorma ei ole suoraan kytketty sähköverkkoon. Alla yksinkertaistettu havainnekuva:

https://upload.wikimedia.org/wikipedia/commons/thumb/e/ea/Ups-online.svg/640px-Ups-online.svg.png
Tekijä: Tomia, Lähde: Wikimedia Commons

Huono tehokerroin lisää UPS:n sähkönkulutusta jonkin verran. Olen tietysti kiinnostunut siitä, kuinka paljon sen vaikutus on, joten tehokerroin on yksi kiinnostava mitattava johdannaissuure.

Seuraavaksi tämä kaikki täytyykin saada Grafanaan, joka on hieno vapaakoodinen visualisointivärkki. Datan valuttaminen tietokantaan tapahtuu monilla skripteillä ja työkaluilla, joista kaikkien esittely tässä hengästyttäisi sekä kirjoittajaa että lukijaa. Se olisi oman artikkelinsa aihe.

Eräs näistä työkaluista on systemdb, jonka kirjoitin helpottamaan synkronointia datankeruulaitteen ja tietokantapalvelimen välillä. Ensiksi jokin ohjelma tuottaa lokia, yleensä systemd:n journaliin. Toinen skripti lukee eri palveluiden tuottamia lokeja ja tuottaa niistä CSV-muotoista dataa. Kolmas komponentti tässä on systemdb, joka auttaa synkronoinnissa. Se osaa kertoa, missä kohtaan lokia ollaan menossa ja pyytää sitä uudemmat datat ja suorittaa varsinaiset tietokantaoperaatiot.

Lopulta data on tietokannassa ja se näyttää tältä:

Kuvassa näkyy myös kokonaiskulutus, joka saadaan suoraan sähkömittarista. Se on oma tarinansa.

Käykää ihailemassa reaaliaikaista dataa osoitteessa https://jyvaskyla.hacklab.fi/tilastot/