Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Hardware => Téma založeno: Abby 14 Srpna 2025, 22:06:53

Název: UPS
Přispěvatel: Abby 14 Srpna 2025, 22:06:53
Zdravím, mám nainstalovaný Ubuntu Server 25.04 čistě jen terminál bez GUI. A potřebovala bych nastavit UPS, aby se to v případě přepnutí na baterii vypnulo buď po předem nastavené době nebo lépe po poklesu kapacity baterie na nějakou hodnotu, třeba 20%. UPS je značky Cyberpower a komunikuje přes USB. Synology NAS s ní umí pracovat perfektně, takže to musí zvládnout jakýkoliv Linux (DSM je taky Linux). Ale Google moc neradí. Poradíte? Díky.
Název: Re:UPS
Přispěvatel: ramael 14 Srpna 2025, 22:25:50
Podle tohohle https://github.com/bjonnh/cyberpower-usb-watcher by to mela byt trivialita. Vypadá to, ze se ta UPSka chova podle standardu USB HID. Jaky konkretni typ mas? Treba by se dalo dohledat vice.
Název: Re:UPS
Přispěvatel: Abby 14 Srpna 2025, 22:38:36
Konkrétně mám tuhle: https://www.alza.cz/cyberpower-vp1000elcd-fr-d6251440.htm

A právě Synology NAS ji vidí bez problémů a podle nastavení funguje správně, vypne se buď po nastavené době nebo při dosažené kapacity baterie. A na Macu funguje bez nutnosti jakékoliv instalace SW, stejně jako APC, takže nejspíš používá nějaký standardní komunikační protokol.
Název: Re:UPS
Přispěvatel: ramael 14 Srpna 2025, 23:16:21
Tak podle google to komunikuje standardem USB HID. Takze muzes pouzit to prve co jsem ti odkazal nebo NUT https://github.com/networkupstools/nut
Ja bych sel do toho prvniho, protoze mensi footprint. Dyk vis, ja jsem minimalsta.
Název: Re:UPS
Přispěvatel: Abby 15 Srpna 2025, 11:22:05
Tak jsem nainstalovala požadovaný balíček libhidapi-libusb0 a zadala jsem tohle:

Kód: [Vybrat]
virtualenv --python=python3 venv
source venv/bin/activate
pip install -r requirements.txt
./server.py


a vyhodilo mi to tohle:

Kód: [Vybrat]
virtualenv --python=python3 venv
source venv/bin/activate
pip install -r requirements.txt
./server.py
virtualenv: command not found
-bash: venv/bin/activate: No such file or directory
Command 'pip' not found, did you mean:
  command 'wip' from snap wip (1.5.0)
  command 'rip' from deb exult-studio (1.10.1-3)
  command 'pic' from deb groff-base (1.23.0-7)
  command 'zip' from deb zip (3.0-14ubuntu2)
  command 'ip' from deb iproute2 (6.13.0-1ubuntu1)
  command 'php' from deb php-cli (2:8.4+96ubuntu1)
  command 'php' from deb php8.4-cli (8.4.5-1ubuntu1)
See 'snap info <snapname>' for additional versions.
-bash: ./server.py: No such file or directory

A jsem v koncích, protože vůbec netuším, co to po mě chce...

edit: jestli by možná nebylo lepší použít SW přímo od výrobce https://www.cyberpower.com/global/en/product/sku/powerpanel_for_linux , ale otázka zní, jak to tam dostat, jsem připojená přes SSH a mám tam jenom terminál, žádné GUI.
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 18:17:01
Tak jsem si přečetl něco o tom. Pro Tebe asi bude nejjednodušší nainstalovat nut
Kód: [Vybrat]
sudo apt update
sudo apt install nut nut-client nut-server
A pak editovat pět souborů:
Kód: [Vybrat]
[cyberpower]
    driver = usbhid-ups
    port = auto
    desc = "CyberPower VP1000ELCD-FR"
Kód: [Vybrat]
LISTEN 127.0.0.1 3493
LISTEN IPadresaServeruKterouMuPřidělilRouter 3493
MAXAGE 15
Kód: [Vybrat]
[upsmon]
    password = monitor_heslo_který_si_vymyslíš
    upsmon master
Kód: [Vybrat]
MONITOR cyberpower@localhost 1 upsmon monitor_heslo_který_si_vymyslíš master

SHUTDOWNCMD "/sbin/shutdown -h now"

MINSUPPLIES 1
FINALDELAY 5

NOTIFYFLAG ONBATT SYSLOG+WALL
NOTIFYFLAG LOWBATT SYSLOG+WALL
NOTIFYFLAG ONLINE SYSLOG+WALL
Kód: [Vybrat]
MODE=standalone
Pak už jen start a kontrola služeb:
Kód: [Vybrat]
sudo systemctl enable --now nut-driver
sudo systemctl enable --now nut-server
sudo systemctl enable --now nut-monitor

systemctl status nut-driver nut-server nut-monitor
journalctl -u nut-driver -u nut-server -u nut-monitor -e

upsc cyberpower@localhost ups.status
Tohle nastavení by ti mělo fungovat tak nějak v základu podle toho co je nastaveno na UPSce. Samozřejmě jde to UPS nastavení i přepsat v těch konfigurákách. Takhle bys mohla z jakéhokoliv zařízení v domácí síti vidět textový výstup stavu UPSky. Pokud o těch pár textových řádků nestojíš, vynech v /etc/nut/upsd.conf tento řádek "LISTEN IPadresaServeruKterouMuPřidělilRouter 3493"
Pokud to chceš sledovat i pěkně v grafice na jakémkoliv zařízení na síti, bude třeba ještě něco doinstalovat a pohrát si s dalšíma konfigurákama.
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 20:48:00
Tak jsem se dostala až ke spuštění služeb a tvrdí mi to toto:

Kód: [Vybrat]
sudo systemctl enable --now nut-driver
Failed to enable unit: Unit nut-driver.service does not exist

A určitě jsem nic nevynechala a udělala jsem všechno podle tvého návodu...
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 20:51:56
Tak tuhle radku zkus vynechat. Dulezite je co bude psat ten posledni prikaz.
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 20:53:56
Jasný. Tak poslední příkaz píše toto:

Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
Error: Driver not connected

A předtím příkaz:

Kód: [Vybrat]
systemctl status nut-driver nut-server nut-monitor
Unit nut-driver.service could not be found.
● nut-server.service - Network UPS Tools - power devices information server
     Loaded: loaded (/usr/lib/systemd/system/nut-server.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-08-18 18:51:24 UTC; 3min 46s ago
 Invocation: eefa87cd8c304b93ac614097cd49701e
   Main PID: 1083 (upsd)
      Tasks: 1 (limit: 3824)
     Memory: 1M (peak: 1.6M)
        CPU: 56ms
     CGroup: /system.slice/nut-server.service
             └─1083 /lib/nut/upsd -F

srp 18 18:51:24 leviathan upsd[1083]: Can't connect to UPS [cyberpower] (usbhid-ups-cyberpower): No such file or directory
srp 18 18:51:24 leviathan nut-server[1083]: Can't connect to UPS [cyberpower] (usbhid-ups-cyberpower): No such file or directory
srp 18 18:51:24 leviathan nut-server[1083]: Found 1 UPS defined in ups.conf
srp 18 18:51:24 leviathan upsd[1083]: Found 1 UPS defined in ups.conf
srp 18 18:51:24 leviathan nut-server[1083]: Running as foreground process, not saving a PID file
srp 18 18:51:24 leviathan nut-server[1083]: upsnotify: failed to notify about state 2: no notification tech defined, will not spam more about it
srp 18 18:51:24 leviathan upsd[1083]: Running as foreground process, not saving a PID file
srp 18 18:51:24 leviathan upsd[1083]: upsnotify: failed to notify about state 2: no notification tech defined, will not spam more about it
srp 18 18:51:25 leviathan upsd[1083]: User upsmon@127.0.0.1 logged into UPS [cyberpower]
srp 18 18:51:25 leviathan nut-server[1083]: User upsmon@127.0.0.1 logged into UPS [cyberpower]

● nut-monitor.service - Network UPS Tools - power device monitor and shutdown controller
     Loaded: loaded (/usr/lib/systemd/system/nut-monitor.service; enabled; preset: enabled)
     Active: active (running) since Mon 2025-08-18 18:51:24 UTC; 3min 46s ago
 Invocation: d3e5870e4988442c8181ce6dc479979c
   Main PID: 1090 (upsmon)
      Tasks: 2 (limit: 3824)
     Memory: 3.7M (peak: 4.6M)
        CPU: 59ms
     CGroup: /system.slice/nut-monitor.service
             ├─1090 /lib/nut/upsmon -F
             └─1097 /lib/nut/upsmon -F

srp 18 18:54:25 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:30 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:35 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:40 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:45 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:50 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:54:55 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:55:00 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:55:05 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
srp 18 18:55:10 leviathan nut-monitor[1097]: Poll UPS [cyberpower@localhost] failed - Driver not connected
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 21:02:34
Kód: [Vybrat]
sudo upsdrvctl startA pak zase
Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Jsem na mobilu tak to neformatuju.
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 21:04:29
To nevadí, vyznám se v tom a rozhodně moc díky 👍🏻

Kód: [Vybrat]
sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.8.1
Network UPS Tools - Generic HID driver 0.52 (2.8.1)
USB communication driver (libusb 1.0) 0.46

Fatal error: 'maxretry' is not a valid variable name for this driver.

Look in the man page or call this driver with -h for a list of
valid variable names and flags.
upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 21:11:14
Sakra. Co vypise tohle?
Kód: [Vybrat]
grep -R "maxretry" -n /etc/nut
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 21:24:50
Kód: [Vybrat]
sudo grep -R "maxretry" -n /etc/nut
/etc/nut/ups.conf:48:#    maxretry: OPTIONAL.  Specify the number of attempts to start the driver(s),
/etc/nut/ups.conf:57:#              driver(s), as specified by 'maxretry'. Caution should be taken
/etc/nut/ups.conf:79:# Set maxretry to 3 by default, this should mitigate race with slow devices:
/etc/nut/ups.conf:80:maxretry = 3
/etc/nut/ups.conf:93:#                driver if `maxretry>1`, or trying another driver if
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 21:29:06
Tak smaz 80 radek v /etc/nut/ups.conf
Je tam toto: maxretry = 3
Pak dej
Kód: [Vybrat]
sudo upsdrvctl stop
sudo upsdrvctl start
A pak opet
Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 21:31:08
Kód: [Vybrat]
sudo upsdrvctl stop
Network UPS Tools - UPS driver controller 2.8.1
Can't open /run/nut/usbhid-ups-cyberpower.pid: No such file or directory
Can't open /run/nut/usbhid-ups-auto.pid either: No such file or directory

Kód: [Vybrat]
sudo upsdrvctl start
Network UPS Tools - UPS driver controller 2.8.1
Network UPS Tools - Generic HID driver 0.52 (2.8.1)
USB communication driver (libusb 1.0) 0.46
libusb1: Could not open any HID devices: insufficient permissions on everything
No matching HID UPS found
upsnotify: failed to notify about state 4: no notification tech defined, will not spam more about it
Driver failed to start (exit status=1)

Mimochodem existuje v nano nějaká snadná možnost, jak vybrat veškerý text a vymazat ho? Nebo nějaký editor pro terminál, který by měl normální klávesové zkratky a fungovalo třeba CTRL+A?
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 21:49:13
Problem s opravnenim. Copak napise toto
Kód: [Vybrat]
lsusb | grep -i cyber
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 21:53:52
Nenapíše to nic.
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 22:00:23
Blbe se zeptam. Mas tu UPS pripojenou USBeckem k tomu PC?
Pokud ano odpoj ji. Pak spust
Kód: [Vybrat]
sudo udevadm monitor --kernel --udev --property --subsystem-match=usbA opet UPS pripoj. Co to vypise sem postni.
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 22:16:00
To byla náhodou moc dobrá otázka. Omlouvám se. Připojenou UPS kabelem mám, ale při manipulaci se mi povytáhl konektor a nevšimla jsem si toho.

Teď to píše:
Kód: [Vybrat]
sudo lsusb | grep -i cyber
Bus 001 Device 003: ID 0764:0501 Cyber Power System, Inc. CP1500 AVR UPS

ale
Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
Error: Driver not connected

edit: po restartu to píše toto:
Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
OL
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 22:37:40
Takze to pada na pravech. Nejspis.
Tak tam tohle cele nakopiruj a odentruj
Kód: [Vybrat]
sudo tee /etc/udev/rules.d/99-nut-cyberpower.rules >/dev/null <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="0764", ATTR{idProduct}=="0501", MODE="0660", GROUP="nut"
EOF

sudo udevadm control --reload-rules
sudo udevadm trigger -s usb

A pak

Kód: [Vybrat]
sudo systemctl stop nut-monitor nut-server
sudo upsdrvctl stop
sudo upsdrvctl start
sudo systemctl start nut-server nut-monitor

upsc cyberpower@localhost ups.status

Jinak to "OL" co mam v emailu na konci prispevku znamena ze je UPS na siti. Jestli ten driver spadnul potom tak je problem jinde nez v pravech...
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 22:41:47
Tak jsem to všechno udělala a ups.status je:

Kód: [Vybrat]
upsc cyberpower@localhost ups.status
Init SSL without certificate database
OL
Název: Re:UPS
Přispěvatel: ramael 18 Srpna 2025, 22:49:35
Huraaa, funguje. Kdyz odpojis UPC od site, tak ti to napise ze to jde na baterku. Ted ti to vypne PC podle nastaveni v UPS.
Musim jit spat. Zitra napisu systemd sluzbu aby ti ten driver naskocil i po restartu PC. Nezapomen si v biosu nastavit aby ti PC po power on nastartoval.
Název: Re:UPS
Přispěvatel: Abby 18 Srpna 2025, 22:57:30
Jééé, mockrát děkuju ❤️

To nastavení UPS je konkrétně jak? Přímo v UPS se nic nenastavuje, ta jen ukazuje stav baterie, spotřebu, zatížení a výdrž v minutách. Jediné, co se na ní dá nastavit, je jestli bude pípat nebo bude potichu.

V biosu to nastavené mám, děkuju 🙂
Název: Re:UPS
Přispěvatel: Roman Vacho 19 Srpna 2025, 12:28:41
A proč že jste nepoužili ovladače výrobce? Vždyť ty ovladače se instalují z CLI. A dokonce k tomu máš i návod. Plus to umí e-maily a cloud.
Ale když ten Ramael je tak šikovný...
Název: Re:UPS
Přispěvatel: Abby 19 Srpna 2025, 12:34:18
To mě taky napadlo, ale neumím z terminálu stáhnout soubor. Navíc to Ramael opravdu dokázal vyřešit 👍🏻

edit: ještě potřebuju nastavit pravidla, jak se to na UPS má chovat a podle všeho, co psal Ramael, se to nespustí automaticky při startu systému, ale jinak je to super. Není důležité jak, ale že to funguje. A klobouk dolů před Ramaelem, já bych si poradit nedokázala...
Název: Re:UPS
Přispěvatel: ramael 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
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.
Název: Re:UPS
Přispěvatel: Abby 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
Název: Re:UPS
Přispěvatel: ramael 19 Srpna 2025, 20:25:40
Moje chybka. To první má být
Kód: [Vybrat]
systemctl list-unit-files | grep -i 'nut\|driv'
Název: Re:UPS
Přispěvatel: Abby 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
Název: Re:UPS
Přispěvatel: ramael 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 (https://networkupstools.org/docs/developer-guide.chunked/_variables.html). 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)
Název: Re:UPS
Přispěvatel: Abby 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?
Název: Re:UPS
Přispěvatel: ramael 19 Srpna 2025, 21:08:46
Ano, přesně tak by to mělo dle popisu fungovat.
Název: Re:UPS
Přispěvatel: Abby 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?
Název: Re:UPS
Přispěvatel: ramael 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 (https://manpages.ubuntu.com/manpages/bionic/en/man5/ups.conf.5.html)
Název: Re:UPS
Přispěvatel: Abby 19 Srpna 2025, 21:21:11
Děkuju, nejlepší asi bude, když to prostě vyzkouším 🙂
Název: Re:UPS
Přispěvatel: ramael 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í.
Název: Re:UPS
Přispěvatel: Abby 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.
Název: Re:UPS
Přispěvatel: Abby 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 🙂
Název: Re:UPS
Přispěvatel: Roman Vacho 20 Srpna 2025, 12:29:27
Ramaeli díky za vhled do problematiky.
Název: Re:UPS
Přispěvatel: sabraq 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.
Název: Re:UPS
Přispěvatel: Abby 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?
Název: Re:UPS
Přispěvatel: ramael 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.
Název: Re:UPS
Přispěvatel: ramael 21 Srpna 2025, 18:00:42
Po síti jsou dvě možnosti na které jsem narazil:
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
Název: Re:UPS
Přispěvatel: ramael 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í  :)
Název: Re:UPS
Přispěvatel: Abby 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 👍🏻
Název: Re:UPS
Přispěvatel: Abby 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ý ❤️
Název: Re:UPS
Přispěvatel: ramael 23 Srpna 2025, 13:01:05
Ukaz obsah souboru /usr/bin/my_mail.sh
Samozrejme si misto Tveho ciloveho emailu zadej treba hvezdicky.
Název: Re:UPS
Přispěvatel: Abby 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.
Název: Re:UPS
Přispěvatel: Abby 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...
Název: Re:UPS
Přispěvatel: ramael 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
Název: Re:UPS
Přispěvatel: Abby 23 Srpna 2025, 14:06:45
Asi ano

Kód: [Vybrat]
ps -o user= -C upsmon
root
nut

Kód: [Vybrat]
grep -i USER /etc/nut/upsmon.conf
grep: /etc/nut/upsmon.conf: Permission denied
Název: Re:UPS
Přispěvatel: ramael 23 Srpna 2025, 14:40:07
Kód: [Vybrat]
sudo grep -i USER /etc/nut/upsmon.conf
Název: Re:UPS
Přispěvatel: Abby 23 Srpna 2025, 15:39:36
Kód: [Vybrat]
sudo grep -i USER /etc/nut/upsmon.conf
# RUN_AS_USER <userid>
# waits to run the SHUTDOWNCMD.  The other one switches to another userid
# The default unprivileged user is set at compile-time with the option
#   'configure --with-user=...'
# You can override it with '-u <user>' when starting upsmon, or just
# must be readable by this user!  Since it contains passwords, DO NOT
# user, since it creates an opportunity for an attack by changing the
# For best results, you should create a new normal user like "nutmon",
# This user should not have write access to upsmon.conf.
# RUN_AS_USER nut
# MONITOR <system> <powervalue> <username> <password> ("primary"|"secondary")
# <username> and <password> must match an entry in that system's
# upsd.users.  If your NUT username is "monuser" and your password is
# "blah", the upsd.users would look like this:
# [monuser]
# MONITOR su700@server.example.com 1 monuser secretpass secondary
# MONITOR myups@localhost 1 monuser pass primary # (or secondary)
# By default, upsmon sends walls (global messages to all logged in users)
# WALL   - Write the message to all users on the system
# See 'docs/security.txt' or the Security chapter of NUT user manual
# See 'docs/security.txt' or the Security chapter of NUT user manual
# See 'docs/security.txt' or the Security chapter of NUT user manual
Název: Re:UPS
Přispěvatel: ramael 23 Srpna 2025, 19:37:20
Pridej do toho souboru /etc/nut/upsmon.conf toto:
Kód: [Vybrat]
RUN_AS_USER rootA restart:
Kód: [Vybrat]
sudo systemctl restart nut-server nut-monitorSnad to bude fungovat
Název: Re:UPS
Přispěvatel: Abby 23 Srpna 2025, 20:58:36
Přidala jsem, zítra to vyzkouším a dám vědět.
Název: Re:UPS
Přispěvatel: Abby 24 Srpna 2025, 18:17:58
Tak to funguje, mockrát děkuju, jsi zlatej. Prodleva mezi přepnutím na baterii a odesláním e-mailu je cca 30 sekund, to samé po přepnutí zpět na proudy. Ještě musím vyzkoušet to vypnutí při poklesu baterky a zapnutí při nahození zpět, to ještě nevím, jak a jestli funguje, ale snad to bude ok, dám po vyzkoušení vědět.

Mimochodem, abych nezakládala nové téma, mohl bys mi ještě poradit zálohování? Na NAS SMB disk, aby se automaticky zálohovalo (stačí 1x denně), nejlépe přírůstkově, aby se záloha podle nastavení nebo místa na disku odmazávala od nejstarších s možností jednoduchého obnovení třeba nabootováním z flashky (kdyby to šlo přidat do grubu, bylo by to asi nejlepší, ale flashka stačí) v případě crashe nebo nějakého problému. Vlastně něco jako je třeba Acronis. Moc díky :-)

edit: NAS je Synology a podporuje případně i NFS sdílení, rsync a tak, tak jestli by se dalo použít něco z toho nebo prostě co nejjednodušší záloha a co nejjednodušší obnova, záloha na pozadí a konfigurace v terminálu a obnova kdyby nejlépe byla v grafice nebo třeba jen jeden příkaz, prostě fakt co nejjednodušší :-)
Název: Re:UPS
Přispěvatel: ramael 26 Srpna 2025, 06:49:24
Obávám se že se zálohováním nepomůžu a bude třeba otevřít nové téma. Jde to mimo oblast mých zájmů. Sám to nepoužívám.

Abby umíš html a css? Pokud ano, asi bych ti pomohl s tou vizualizací.
Název: Re:UPS
Přispěvatel: Abby 26 Srpna 2025, 10:57:47
Člověk nemůže umět všechno, i tak obdivuji tvoje znalosti 👍🏻

Bohužel, kdysi jsem zkoušela nějaké jednoduché webové stránky, ale bylo to tak ve stylu "Hello World" 🙂 Grafana jsem zkoušela rozběhnout na Home Assistant na výstup z mojí meteostanice a skončila jsem spuštěním po instalaci, dál jsem se nedostala.