Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: UPS  (Přečteno 6942 krát)

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #25 kdy: 19 Srpna 2025, 20:18:35 »
Uff :-[
Ani nevím že výrobce nabízí nějaký ovladač. Mě to téma oslovilo protože @Abby psala že to komunikuje přes USB a ostatní s tím komunikují normálně. Píšu návody a knihovny pro dorostence jak si napsat vlastní ovladače k perifériím pokud dodržují standardy a poskytují dokumentaci. Tohle téma (UPS) bych mohl s nima také odzkoušet. Bohužel jak je české školství tak nějak finančně poddimenzované, tak skoro veškerý HW nakupuju ze svého aby si to mohli ošahat na živo. A v tomto případě by to nebylo jinak. Ještě jsem limitován jazykem python a micropython, prý by překládané jazyky (C++ nebo Rust) nezvládli a potřebují rychlé výsledky aby je to zaujalo. A při prvním rychlém duckduckování a googlení jsem nabyl dojmu, že Cyberpower ty standardy dodržuje a i něco poskytuje. Proto jsem do toho šel. Na svém bych si to napsal od začátku do konce sám bez nut a dalších programů. Ale takhle na dálku (bez vlastního HW) by to byl očistec na který nemám čas.
Proč bych nepoužil originál ovladače i kdybych o nich věděl? Protože
    • při update by se museli separátně také updatovat
    • dále bych ten ovladač musel nejspíš nutu nějak vnutit (asi začleněním do nějaké jeho databáze)
    • ovladač(hid) od systému (ikdyž je to ubuntu) je všeobecný a dobře funkční
    • nut si k tomu připisuje své propriety, takže při update by se nemělo stát že to nebude spolu komunikovat
Asi tak nějak to vidím, ale mohu se mýlit.
Tak a teď poprosím o dva výpisy:
Kód: [Vybrat]
systemctl list-unit-files | grep -i 'nut\|driv'
upsc cyberpower@localhost
To první vypíše jaké služby jsou spuštěné s názvy obsahujícími nut a driv, je možné že si nut ty ovladače spouští sám, tak abych nepsal nějakou službu co už běží elegantně v rámci systému. To druhé vypíše všechny parametry které UPS poskytuje a má nastavené. Ty můžeme předefinovat.
« Poslední změna: 26 Srpna 2025, 06:39:26 od ramael »
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #26 kdy: 19 Srpna 2025, 20:23:21 »
Prosímtě neber to hlavně špatně, já jsem moc ráda, že to za mě řešíš a jsem ti moc vděčná ❤️ A je mi vlastně vcelku jedno, jak to je nastavené, hlavně když to funguje. A od tebe to fungovat bude.

Tady jsou ty výpisy:
Kód: [Vybrat]
list-unit-files | grep -i 'nut\|driv'
list-unit-files: command not found

Kód: [Vybrat]
upsc cyberpower@localhost
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 20
battery.mfr.date: CPS
battery.runtime: 3066
battery.runtime.low: 300
battery.type: PbAcid
battery.voltage: 13.5
battery.voltage.nominal: 12
device.mfr: CPS
device.model: VP1000ELCD
device.serial:                 
device.type: ups
driver.debug: 0
driver.flag.allow_killpower: 0
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.state: quiet
driver.version: 2.8.1
driver.version.data: CyberPower HID 0.8
driver.version.internal: 0.52
driver.version.usb: libusb-1.0.27 (API: 0x100010a)
input.frequency: 500.0
input.transfer.high: 295
input.transfer.low: 167
input.voltage: 233.0
input.voltage.nominal: 230
output.voltage: 232.0
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.load: 10
ups.mfr: CPS
ups.model: VP1000ELCD
ups.productid: 0501
ups.realpower.nominal: 550
ups.serial:                 
ups.status: OL
ups.test.result: No test initiated
ups.timer.shutdown: -60
ups.timer.start: -60
ups.vendorid: 0764

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #27 kdy: 19 Srpna 2025, 20:25:40 »
Moje chybka. To první má být
Kód: [Vybrat]
systemctl list-unit-files | grep -i 'nut\|driv'
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #28 kdy: 19 Srpna 2025, 20:26:48 »
Kód: [Vybrat]
systemctl list-unit-files | grep -i 'nut\|driv'
nut-driver-enumerator.path                   enabled         enabled
nut-client.service                           alias           -
nut-driver-enumerator.service                enabled         enabled
nut-driver@.service                          indirect        enabled
nut-monitor.service                          enabled         enabled
nut-server.service                           enabled         enabled
nut-driver.target                            enabled         enabled
nut.target                                   enabled         enabled

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #29 kdy: 19 Srpna 2025, 21:03:00 »
Takže službu psát nemusím. nut si ji nastavil sám nut-driver-enumerator.**                   enabled         enabled
A teď k tomu druhému výpisu. Tady je specifikace. Podle toho se tvá UPS přepne usb.status do LB (stav kdy se blíží kritická hodnota baterie) při 10% nabití. To přepnutí vyšle signál po USB a nut zařídí ukončení systému. Můžeš to v nut přepsat a klíďo vypínat dřív. Nebo jesli jsi drsňák tak i déle  ;)
Pokud chceš něco (zdaleka ne všechno jde) přepsat, musíš editovat soubor /etc/nut/ups.conf a připsat tam do sekce [cyberpower] třeba toto:
Kód: [Vybrat]
override.battery.charge.low = 20    # % kapacity co jsi psala v úvodním postu kdy se nastaví LB
override.battery.runtime.low = 300    # kolik sekund do vypnutí
Je to jednoduché. Napíšeš override tečka a za tím co chceš přepsat z tvého výpisu.
Po editaci bude asi lepší spustit
Kód: [Vybrat]
sudo systemctl restart nut-server nut-monitor
pokud zadáš něco špatně, tak to jen skončí chybou a můžeš si to zase opravit (smazat řádek, dát jinou hodnotu nebo zakomentovat řádek)
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #30 kdy: 19 Srpna 2025, 21:06:38 »
Moc děkuju. Takže kdybych chtěla vypínat při 50% baterky, tak doplním

Kód: [Vybrat]
override.battery.charge.low = 50
a při kapacitě baterie 50% se PC vypne? A když se vrátí normální proud do sítě, tak se PC zapne? Mám v biosu povoleno zapnutí po ztrátě napájení nebo jak přesně to tam je.

To "kolik sekund do vypnutí", to je čas od přepnutí UPS do režimu baterie?
« Poslední změna: 19 Srpna 2025, 21:08:22 od Abby »

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #31 kdy: 19 Srpna 2025, 21:08:46 »
Ano, přesně tak by to mělo dle popisu fungovat.
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #32 kdy: 19 Srpna 2025, 21:10:42 »
A když je podle výpisu aktivní i runtime.low 300 a změnila jsem charge.low na 50, co z toho má prioritu?

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #33 kdy: 19 Srpna 2025, 21:16:10 »
Jestli jsem to dobře pochopil, tak klesne baterie na 50% a pošle se BL. Pokud se stav BL nezmění do pěti minut, vypne se PC.
Tady je něco nejen o tom přepisování: https://manpages.ubuntu.com/manpages/bionic/en/man5/ups.conf.5.html
« Poslední změna: 20 Srpna 2025, 22:06:41 od ramael »
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #34 kdy: 19 Srpna 2025, 21:21:11 »
Děkuju, nejlepší asi bude, když to prostě vyzkouším 🙂

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #35 kdy: 19 Srpna 2025, 21:35:18 »
Po rychlém přelétnutí tohoto https://roll.urown.net/server/server-ups.html mám dojem že obě ty proměnné přepínají stav na LB podle toho co nastane dřív. Buď procenta nebo čas do úplného vybití.
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #36 kdy: 19 Srpna 2025, 23:37:27 »
Díky, já to zítra vyzkouším a uvidíme, co to udělá. Ale tak jak to píšeš to zní fajn.

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #37 kdy: 20 Srpna 2025, 11:20:26 »
Mám ještě otázku, dá se nějak nastavit, aby při přepnutí na UPS odešel e-mail s informací, že se to stalo? A nejlépe aby i při zapnutí počítače odešel e-mail, že se počítač zapnul. Jde to nějak udělat?
A s tím sledováním stavu UPS z jiného zařízení, jak se to dělá? Nejlépe aby mi to řeklo, jestli se jede ze sítě nebo z baterky a jaký je stav baterky v %.
Díky 🙂

Roman Vacho

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 6306
Re:UPS
« Odpověď #38 kdy: 20 Srpna 2025, 12:29:27 »
Ramaeli díky za vhled do problematiky.
Vyřešená vlákna je vhodné uzavřít "Topic Solved" dole pod vláknem.

Prosím označit text kódu v editoru # pro lepší formátování textu případného výpisu. Děkuji.

sabraq

  • Závislák
  • ***
  • Příspěvků: 3556
  • Bootloader-není téma k hovoru,ani zbytný prostor
Re:UPS
« Odpověď #39 kdy: 21 Srpna 2025, 07:18:57 »
Taky díky, tak tahle je to s tím zálohováním!:D Už jsem si tak nějak zvykl, že "aj tý" "požralo" kdejaké technické obory.
PP v kolečku - není licence,pouze upozornění na reklamu
"Dress code" - oblečení podle předpisu(ne kódované oblečení)
CC v kolečku - je licence,značí,že se někdo nesmírně snaží

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #40 kdy: 21 Srpna 2025, 15:40:17 »
Ještě jednou mockrát díky Ramaeli, funguje to bezvadně 👍🏻 ❤️ Akorát se chci ještě zeptat, jak mohu zjistit stav UPSky po síti?

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #41 kdy: 21 Srpna 2025, 17:06:10 »
Jsem si včera při přepínání mezi terminálama a chromiem omylem zavřel chromium. No a přišel jsem o celý příspěvek. Tak dnes ještě jednou.
Nejdříve je třeba si nainstalovat msmtp. Pak si nastavit jeho konfigurační soubor. Dále vytvořit skript který bude posílat emaily. A nakonec upravit soubor /etc/nut/upsmon.conf aby to spolu "mluvilo".
Skoro all-in-one, stačí následující kód celý nakopírovat, vložit do terminálu a odentrovat:
Kód: [Vybrat]
sudo -i

# instalace smtp serveru
apt install msmtp

# vytvoření konfiguráku. Pozor na inline komentáře, ten program je nezná. Docela mne to potrápilo.

cat << MSMTPRC > /etc/msmtprc
defaults
auth           on
tls            on
# následující je třeba mít off kvůli seznam.cz a jejich portu 465
# pokud chceš použít port 587 tak dej míto off on
tls_starttls   off
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile        /var/log/msmtp.log

account default
host smtp.seznam.cz
port 465
user tvoje.adresa@seznam.cz
from tvoje.adresa@seznam.cz
password heslo_k_emailu_uvedeném_výše
MSMTPRC

# Nastavení vlastníka a skupiny, aby nikdo nepřečetl heslo
chown root:root /etc/msmtprc
# Nastavení práv
chmod 600 /etc/msmtprc

# Teď vytvoříme skript na posílání emailů
cat << 'MAILSCRIPT' > /usr/bin/my_mail.sh
#!/usr/bin/env bash

set -euo pipefail

TO="adresa.na.kterou.to@chceš.posílat"          # kam posílat

# nut předává UPSNAME a NOTIFYTYPE
UPS="${UPSNAME:-cyberpower}"
TYPE="${NOTIFYTYPE:-UNKNOWN}"


case "$TYPE" in
  ONBATT)
    subj="[NUT][$UPS] Běží na baterii"
    body="UPS $UPS přešla na baterii."
    ;;

  ONLINE)
    subj="[NUT][$UPS] Zpět na síti"
    body="UPS $UPS je zpět ONLINE."
    ;;

  LOWBATT)
    subj="[NUT][$UPS] NÍZKÁ BATERIE"
    body="UPS $UPS hlásí LOWBATT – blíží se vypnutí!"
    ;;

  FSD)
    subj="[NUT][$UPS] Zahajuji vypnutí"
    body="upsmon spouští řízené vypnutí (FSD)."
    ;;

  *)
    exit 0
    ;;
esac

# Pokud tě odesílání nepůjde odkomentuj následující řádek a bude to vypisovat co se děje
#printf '%s\n%s\n\n%s\n' "To: $TO" "Subject: $subj" "$body" | msmtp -t -v

# Následující řádek při nefunkčnosti naopak zakomentuj. Ten je na ostrý provoz
printf '%s\n%s\n\n%s\n' "To: $TO" "Subject: $subj" "$body" | msmtp -t
MAILSCRIPT

# přidělíme tomu spouštěcí práva
chmod +x /usr/bin/my_mail.sh

Teď bude přeba editovat soubor /etc/nut/upsmon.conf
Smaž tyhle řádky:
Kód: [Vybrat]
  NOTIFYFLAG ONBATT SYSLOG+WALL
  NOTIFYFLAG LOWBATT SYSLOG+WALL
  NOTIFYFLAG ONLINE SYSLOG+WALL
a místo nich tam nakopíruj tohle:
Kód: [Vybrat]
NOTIFYCMD /usr/bin/my_mail.sh

NOTIFYFLAG ONBATT  SYSLOG+EXEC
NOTIFYFLAG ONLINE  SYSLOG+EXEC
NOTIFYFLAG LOWBATT SYSLOG+EXEC
NOTIFYFLAG FSD     SYSLOG+EXEC

A pak pro jistotu restart služeb:
Kód: [Vybrat]
  sudo systemctl restart nut-server nut-monitor
A mělo by to fungovat. Pořádně si přečti každý řádek a nastav podle sebe ty emaily (v souborech /etc/msmtprc a /usr/bin/my_mail.sh). Je to nastavené na emaily od seznamu a funguje to (otestoval jsem to odesílání). Sama to můžeš také na sucho testnout:
Kód: [Vybrat]
  env NOTIFYTYPE=ONBATT /usr/bin/my_mail.sh
A měla bys dostat email.
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #42 kdy: 21 Srpna 2025, 18:00:42 »
Po síti jsou dvě možnosti na které jsem narazil:
  • Hned v mém prvním odkazu je v tom repu obrázek jak to může vypadat na jakémkoli přístroji v síti. Ale cesta k tomu je daleká. Je třeba si nainstalovat prometheus a grafana a ještě nějaký mezičlánek mezi nut a prometheus (třeba nut-exporter). A napsat dost konfiguráků aby to spolu mluvilo. Ale výsledek vypadá bombasticky. S tím už by ses musela poprat sama nebo někým jiným, tolik času nemám.
  • Nebo jak bylo v /etc/nut/upsd.conf:
Kód: [Vybrat]
LISTEN 127.0.0.1 3493
LISTEN IPadresaServeruKterouMuPřidělilRouter 3493
MAXAGE 15
tak si na PC z kterého chceš sledovat nainstaluj nut-client (na macOS by to mělo být jen nut) a použij ten samý příkaz jakým se testovalo. Jen je třeba místo localhost napsat IP adresu serveru:
Kód: [Vybrat]
upsc cyberpower@ipserveru ups.status
a mělo by to fungovat. Pokud to vyhodí nějakou chybovou hlášku tak si na serveru do souboru /etc/nut/upsd.users přidej toto:
Kód: [Vybrat]
[smirak]
    password = nejake_rozumne_heslo
a na stroji kde se chceš kouknout zadej
Kód: [Vybrat]
upsc -u smirak -p nejake_rozumne_heslo cyberpower@ipserveru ups.status
« Poslední změna: 21 Srpna 2025, 18:10:39 od ramael »
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #43 kdy: 23 Srpna 2025, 12:32:59 »
Ještě bych chtěl dodat k těm emailům, že díky bezpečnostní politice google, toto nastavení nefunguje u gmailu. To je třeba nastavovat složitěji a uživatel si musí vygenerovat zvláštní klíč. Ač gmail používám, tak se mi v tom vrtat nechtělo.

Děkuju za poděkování  :)
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #44 kdy: 23 Srpna 2025, 12:34:37 »
Tak to právě nastavuju a skončila jsem u příkazu cat << MSMTPRC > /etc/msmtprc
 a nevím co s tím...

A zkopírovat a vložit to celé mi nefunguje.

edit: tak řádek po řádku a asi to dělá co má, dám za chvíli vědět. Ale tohle je pro mě totální španělská vesnice 🙂 A obdivuji tě, že tomu rozumíš a dokážeš si s tím poradit 👍🏻
« Poslední změna: 23 Srpna 2025, 12:38:26 od Abby »

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #45 kdy: 23 Srpna 2025, 12:50:26 »
Tak tu mám problém s odesíláním:

Kód: [Vybrat]
env NOTIFYTYPE=ONBATT /usr/bin/my_mail.sh
/usr/bin/my_mail.sh: line 11: syntax error near unexpected token `ONBATT'

edit: problém jsem vyřešila, ono mi to při kopírování a vkládání těch příkazů nějak změnilo mezery, vypadalo to jako mezera, ale byla to chyba, takže jsem mezery vymazala a vytvořila znova a už to funguje.

Co se týče toho sledování stavu po síti, to asi nechám být, ono to koneckonců není až tak potřeba a vždycky se můžu přihlásit přes SSH nebo se podívat na displayi UPS. Spíš by bylo prima, kdyby existoval nějaký spolehlivý selftest baterky, protože už se mi stalo několikrát, že UPS se tvářila v pořádku, ale baterka neudržela počítač v provozu ani sekundu, prostě baterka mrtvá, ale navenek ok... Po výměně samozřejmě všechno v pořádku.

Mockrát děkuju, jsi zlatý ❤️
« Poslední změna: 23 Srpna 2025, 13:02:22 od Abby »

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #46 kdy: 23 Srpna 2025, 13:01:05 »
Ukaz obsah souboru /usr/bin/my_mail.sh
Samozrejme si misto Tveho ciloveho emailu zadej treba hvezdicky.
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #47 kdy: 23 Srpna 2025, 13:04:10 »
Už je to v pořádku, moc děkuju. Nevím proč, ale ty mezery dělaly problém. Kopírovala jsem to přes TextEdit (něco jako Notepad ve Windows) a on tam asi něco přidal. Zrovna tak jsem musela opravit uvozovky, protože na začátku dal uvozovky dole. A jakmile bylo něco ve smyslu více mezer za sebou, tak to byl problém. Ale už to funguje, moc díky 👍🏻

Ještě zkusím odpojit UPS od sítě jak se to zachová naostro.

Abby

  • Stálý člen
  • **
  • Příspěvků: 1498
Re:UPS
« Odpověď #48 kdy: 23 Srpna 2025, 13:12:40 »
Tak po odpojení UPS od sítě mi žádný e-mail nepřišel a po zapojení zpět taky ne...

Ale jinak to po odpojení hlásí

Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
OB DISCHRG

a po zapojení do sítě

Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
OL CHRG

Takže to podle všeho funguje. Do 50% baterky, kdy by se to mělo vypnout, se mi čekat nechce...
« Poslední změna: 23 Srpna 2025, 13:21:34 od Abby »

ramael

  • Stálý člen
  • **
  • Příspěvků: 845
Re:UPS
« Odpověď #49 kdy: 23 Srpna 2025, 13:42:28 »
Prvni co mne napada opet prava?

Kód: [Vybrat]
ps -o user= -C upsmon
grep -i USER /etc/nut/upsmon.conf
Jinak opet jsem na mobilu v praci
« Poslední změna: 26 Srpna 2025, 06:43:55 od ramael »
Lenovo: ThinkPad X380 Yoga Joutůůůůb
Codeberg  GitHub

 

Provoz zaštiťuje spolek OpenAlt.