Раздражающая проблема, которую я имею, состоит в том, что upower займет несколько минут, или больше обновить мое состояние батареи (Эта проблема подобна этому сообщению, но я предоставляю подробную информацию своего ноутбука). Это означает, бужу ли я свой ноутбук от спящего режима, он показывает неправильный процент батареи в течение нескольких минут, и когда я включаю свое зарядное устройство, значок батареи не указывает так (хотя аппаратный свет заряда включает). Кроме тех случаев я не возражаю против времени обновления.
Любопытно, когда я отключаю свое зарядное устройство, обновления значка сразу. Я предложил временное решение для обновления на следе, который может или не может работать, но это, кажется, должна быть хорошая фиксация. Под управлением Ubuntu 16.04 на Acer Aspire E5-575G-53VG.
acpi
всегда показывает корректный процент батареи и состояние. sudo service upower restart
вынуждает состояние батареи upower обновить.
Вывод upower --monitor-detail
при включении зарядного устройства:
Monitoring activity from the power daemon. Press Ctrl+C to cancel.
[00:55:46.411] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.9157 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 6.6933 W
voltage: 12.562 V
time to empty: 7.6 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (rate):
1485928546 6.693 discharging
1485928537 10.856 discharging
1485928517 6.083 discharging
1485928504 10.423 discharging
1485928485 6.149 discharging
1485928466 21.190 discharging
1485928463 6.371 discharging
1485928449 7.071 discharging
[00:55:46.414] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.9157 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 6.6933 W
voltage: 12.562 V
time to empty: 7.6 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (rate):
1485928546 6.693 discharging
1485928537 10.856 discharging
1485928517 6.083 discharging
1485928504 10.423 discharging
1485928485 6.149 discharging
1485928466 21.190 discharging
1485928463 6.371 discharging
1485928449 7.071 discharging
[00:55:46.417] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.9157 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 6.6933 W
voltage: 12.562 V
time to empty: 7.6 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (rate):
1485928546 6.693 discharging
1485928537 10.856 discharging
1485928517 6.083 discharging
1485928504 10.423 discharging
1485928485 6.149 discharging
1485928466 21.190 discharging
1485928463 6.371 discharging
1485928449 7.071 discharging
[00:55:46.419] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.9157 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 6.6933 W
voltage: 12.562 V
time to empty: 7.6 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (rate):
1485928546 6.693 discharging
1485928537 10.856 discharging
1485928517 6.083 discharging
1485928504 10.423 discharging
1485928485 6.149 discharging
1485928466 21.190 discharging
1485928463 6.371 discharging
1485928449 7.071 discharging
[00:55:46.422] device changed: /org/freedesktop/UPower/devices/line_power_ACAD
native-path: ACAD
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: yes
icon-name: 'ac-adapter-symbolic'
[00:55:46.422] device changed: /org/freedesktop/UPower/devices/line_power_ACAD
native-path: ACAD
power supply: yes
updated: Wed 01 Feb 2017 12:55:46 AM EST (0 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: yes
icon-name: 'ac-adapter-symbolic'
[00:55:46.422] daemon changed:
daemon-version: 0.99.4
on-battery: no
lid-is-closed: no
lid-is-present: yes
critical-action: HybridSleep
Вывод, когда я отключаю зарядное устройство:
Monitoring activity from the power daemon. Press Ctrl+C to cancel.
[00:58:17.752] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.765] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.773] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.781] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.789] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.797] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.803] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.809] device changed: /org/freedesktop/UPower/devices/battery_BAT1
native-path: BAT1
vendor: PANASONIC
model: AS16B5J
serial: 2217
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: yes
has statistics: yes
battery
present: yes
rechargeable: yes
state: discharging
warning-level: none
energy: 50.838 Wh
energy-empty: 0 Wh
energy-full: 55.6554 Wh
energy-full-design: 62.16 Wh
energy-rate: 10.8669 W
voltage: 12.656 V
time to empty: 4.7 hours
percentage: 91%
capacity: 89.5357%
technology: lithium-ion
icon-name: 'battery-full-symbolic'
History (charge):
1485928697 91.000 discharging
1485928672 0.000 unknown
History (rate):
1485928697 10.867 discharging
1485928672 0.000 unknown
[00:58:17.811] device changed: /org/freedesktop/UPower/devices/line_power_ACAD
native-path: ACAD
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: no
icon-name: 'ac-adapter-symbolic'
[00:58:17.811] device changed: /org/freedesktop/UPower/devices/line_power_ACAD
native-path: ACAD
power supply: yes
updated: Wed 01 Feb 2017 12:58:17 AM EST (0 seconds ago)
has history: no
has statistics: no
line-power
warning-level: none
online: no
icon-name: 'ac-adapter-symbolic'
[00:58:17.811] daemon changed:
daemon-version: 0.99.4
on-battery: yes
lid-is-closed: no
lid-is-present: yes
critical-action: HybridSleep
То, что я заметил, - то, что, когда зарядное устройство включается, состояние батареи тихо discharging
. Однако /org/freedesktop/UPower/devices/line_power_ACAD
отчеты online
правильно. Любая справка с этой проблемой ценится. Я не вспоминаю наличие этой проблемы о KDE.
При работе над одним из моих предыдущих проектов я обнаружил, что индикатор питания на Единице действительно имеет по-видимому событийно-ориентированную задержку обновления, и это останавливает форму демон UPower, который является тем, что индикатор, кажется, использует для получения информации о питании. Это мешает пользовательским сценариям, которые пытаются контролировать использование батареи через демона UPower с определенным количеством точности. Однако сервис UPower действительно имеет призывы к обновлению/обновлению той информации. Сценарий ниже использует в своих интересах это вызов dbus. Сценарий должен быть скопирован и сохранен как файл, предпочтительно в ~/bin
папка.
Использование очень просто: ./update_battery.py <SECONDS>
, где <SECONDS>
то, как часто Вы хотите обновить информацию. Очевидно, необходимо иметь в виду, что очень частое обновление приведет к более высокому использованию ресурсов, таким образом, я рекомендовал бы что-то более или менее разумное, например, 3 - 10 секунд.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import dbus
import time
import sys
def run_dbus_method(bus_type, obj, path, interface, method, arg):
if bus_type == "session":
bus = dbus.SessionBus()
elif bus_type == "system":
bus = dbus.SystemBus()
else:
return None
proxy = bus.get_object(obj, path)
dbus_method = proxy.get_dbus_method(method, interface)
return dbus_method(arg) if arg else dbus_method()
def find_battery_path():
call = [ 'system', 'org.freedesktop.UPower',
'/org/freedesktop/UPower', 'org.freedesktop.UPower',
'EnumerateDevices', None ]
devices = run_dbus_method(*call)
for i in devices:
if 'BAT' in i: return str(i)
def main():
bat_path = find_battery_path()
call = [ 'system', 'org.freedesktop.UPower',
bat_path, 'org.freedesktop.UPower.Device',
'Refresh', None ]
timeout = int(sys.argv[1])
while True:
run_dbus_method(*call)
time.sleep(timeout)
if __name__ == '__main__': main()
Ответ Sergiy работал, но он вызывал некоторые проблемы производительности микрозадержки для меня. Я изменил его, чтобы быть более эффективным.
прежде всего я изменил обновление-battery.py для удаления цикла сна:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import dbus
def run_dbus_method(bus_type, obj, path, interface, method, arg):
if bus_type == "session":
bus = dbus.SessionBus()
elif bus_type == "system":
bus = dbus.SystemBus()
else:
return None
proxy = bus.get_object(obj, path)
dbus_method = proxy.get_dbus_method(method, interface)
return dbus_method(arg) if arg else dbus_method()
def find_battery_path():
call = ['system', 'org.freedesktop.UPower',
'/org/freedesktop/UPower', 'org.freedesktop.UPower',
'EnumerateDevices', None]
devices = run_dbus_method(*call)
for i in devices:
if 'BAT' in i:
return str(i)
return None
def main():
bat_path = find_battery_path()
call = ['system', 'org.freedesktop.UPower',
bat_path, 'org.freedesktop.UPower.Device',
'Refresh', None]
run_dbus_method(*call)
if __name__ == '__main__':
main()
затем я сделал отдельный сценарий удара, который называет обновление-battery.py каждые 5 секунд, но только называет его при необходимости. Я назвал этот keep-battery-updated и добавил его как сценарий запуска.
#!/bin/bash
#
# @version 1.0
# @script keep-battery-updated
# @description keeps the battery status updated
#
##
while sleep 5; do
badbattery=$(upower -i /org/freedesktop/UPower/devices/battery_BAT0 | grep state: | cut -d ':' -f 2 | xargs)
case $badbattery in
discharging)
badbattery="Discharging"
;;
charging)
badbattery="Charging"
;;
fully-charged)
badbattery="Full"
;;
esac
goodbattery=$(acpi -V | grep Battery | sed -n 1p | cut -d ':' -f 2 | cut -d ',' -f 1 | xargs)
if [ $badbattery != $goodbattery ]; then
python3 /usr/local/bin/update-battery.py
fi
done
Теперь батарея обновляется каждые 5 секунд без значимых проблем производительности до сих пор