Bug 153398

Summary: plasma battery applet doesn't display correct battery status
Product: [Plasma] plasma4 Reporter: Fede <flagzeta>
Component: generalAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: normal CC: s.illes79
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Compiled Sources   
OS: Linux   
Latest Commit: Version Fixed In:
Attachments: power management engine patch
battery applet patch

Description Fede 2007-12-04 03:07:35 UTC
Version:            (using KDE KDE 3.96.0)
Installed from:    Compiled From Sources
Compiler:          g++ 4.13 

i started the battery monitor and it says "no battery".

this is the output of acpi command:
flagz@deepblue:~$ acpi
     Battery 1: charged, 98%

so.. the battery is present.

i have a hp-nc8430 if it can help...
if i need to be more specific let me know
Comment 1 Pino Toscano 2007-12-05 11:13:19 UTC
Re-unconfirm (owner changing confirmed the bug).
Comment 2 Sebastian Kügler 2007-12-05 12:25:35 UTC
Can you check lshal and / or solidshell and see what those provide? The commands

$ lshal|grep battery

and

$ solidshell hardware list|grep BAT

Should give you a clue where it goes wrong. If lshal shows the battery and solidshell doesn't, complain on hardware-devel@kde.org, if lshal doesn't list it, complain to HAL developers. If both, lshal and solidshell show the battery, I'm the guilty party, bug me in that case.
Comment 3 Maor 2007-12-05 18:13:34 UTC
I can confirm same thing with my battery bot lshal and solidshell output seems to be ok.

lshal:
 battery.alarm.design = 780  (0x30c)  (int)
  battery.alarm.unit = 'mAh'  (string)
  battery.charge_level.capacity_state = 'ok'  (string)
  battery.charge_level.current = 76712  (0x12ba8)  (int)
  battery.charge_level.design = 86580  (0x15234)  (int)
  battery.charge_level.granularity_1 = 865  (0x361)  (int)
  battery.charge_level.granularity_2 = 865  (0x361)  (int)
  battery.charge_level.last_full = 76712  (0x12ba8)  (int)
  battery.charge_level.low = 2619  (0xa3b)  (int)
  battery.charge_level.percentage = 100  (0x64)  (int)
  battery.charge_level.rate = 0  (0x0)  (int)
  battery.charge_level.unit = 'mWh'  (string)
  battery.charge_level.warning = 8658  (0x21d2)  (int)
  battery.is_rechargeable = true  (bool)
  battery.model = 'DELL CR1607'  (string)
  battery.present = true  (bool)
  battery.rechargeable.is_charging = false  (bool)
  battery.rechargeable.is_discharging = false  (bool)
  battery.reporting.current = 7800  (0x1e78)  (int)
  battery.reporting.design = 7800  (0x1e78)  (int)
  battery.reporting.granularity_1 = 78  (0x4e)  (int)
  battery.reporting.granularity_2 = 78  (0x4e)  (int)
  battery.reporting.last_full = 6911  (0x1aff)  (int)
  battery.reporting.low = 236  (0xec)  (int)
  battery.reporting.rate = 1  (0x1)  (int)
  battery.reporting.technology = 'LION'  (string)
  battery.reporting.unit = 'mAh'  (string)
  battery.reporting.warning = 780  (0x30c)  (int)
  battery.serial = '847'  (string)
  battery.technology = 'lithium-ion'  (string)
  battery.type = 'primary'  (string)
  battery.vendor = 'Sanyo'  (string)
  battery.voltage.current = 12246  (0x2fd6)  (int)
  battery.voltage.design = 11100  (0x2b5c)  (int)
  battery.voltage.unit = 'mV'  (string)
  info.capabilities = {'battery'} (string list)
  info.category = 'battery'  (string)
  linux.acpi_path = '/proc/acpi/battery/BAT0'  (string)
  battery.present = false  (bool)
  battery.type = 'primary'  (string)
  info.capabilities = {'battery'} (string list)
  info.category = 'battery'  (string)
  linux.acpi_path = '/proc/acpi/battery/BAT1'  (string)

solidshell:
udi = '/org/freedesktop/Hal/devices/acpi_BAT0'
udi = '/org/freedesktop/Hal/devices/acpi_BAT1'
Comment 4 Sebastian Kügler 2007-12-05 18:43:33 UTC
Looks like you have two batteries (or at least battery bays) is that right?

The batteryapplet only checks for the first, and when that's not present, it gives up. You probably only have a battery in the second bay, which is where it goes wrong.
Comment 5 Maor 2007-12-05 19:38:23 UTC
You are right i have two battery bay and only one is connected.
Comment 6 Fede 2007-12-06 01:05:31 UTC
lshal works, solidshell doesn't...

flagz@deepblue:~$ lshal | grep battery
  battery.charge_level.capacity_state = 'ok'  (string)
  battery.charge_level.current = 53251  (0xd003)  (int)
  battery.charge_level.design = 54662  (0xd586)  (int)
  battery.charge_level.granularity_1 = 1440  (0x5a0)  (int)
  battery.charge_level.granularity_2 = 1440  (0x5a0)  (int)
  battery.charge_level.last_full = 54662  (0xd586)  (int)
  battery.charge_level.low = 547  (0x223)  (int)
  battery.charge_level.percentage = 97  (0x61)  (int)
  battery.charge_level.rate = 0  (0x0)  (int)
  battery.charge_level.unit = 'mWh'  (string)
  battery.charge_level.warning = 2736  (0xab0)  (int)
  battery.is_rechargeable = true  (bool)
  battery.model = 'Primary'  (string)
  battery.present = true  (bool)
  battery.rechargeable.is_charging = false  (bool)
  battery.rechargeable.is_discharging = false  (bool)
  battery.reporting.current = 3698  (0xe72)  (int)
  battery.reporting.design = 3796  (0xed4)  (int)
  battery.reporting.granularity_1 = 100  (0x64)  (int)
  battery.reporting.granularity_2 = 100  (0x64)  (int)
  battery.reporting.last_full = 3796  (0xed4)  (int)
  battery.reporting.low = 38  (0x26)  (int)
  battery.reporting.rate = 0  (0x0)  (int)
  battery.reporting.technology = 'LIon'  (string)
  battery.reporting.unit = 'mAh'  (string)
  battery.reporting.warning = 190  (0xbe)  (int)
  battery.serial = '03558'  (string)
  battery.technology = 'lithium-ion'  (string)
  battery.type = 'primary'  (string)
  battery.vendor = 'Hewlett-Packard'  (string)
  battery.voltage.current = 16586  (0x40ca)  (int)
  battery.voltage.design = 14400  (0x3840)  (int)
  battery.voltage.unit = 'mV'  (string)
  info.capabilities = {'battery'} (string list)
  info.category = 'battery'  (string)
  linux.acpi_path = '/proc/acpi/battery/C1B9'  (string)
  battery.present = false  (bool)
  battery.type = 'primary'  (string)
  info.capabilities = {'battery'} (string list)
  info.category = 'battery'  (string)
  linux.acpi_path = '/proc/acpi/battery/C1B8'  (string)


sorry for the very stupid question.. how can i assign the bug to hardware-devel@kde.org? i've never used bugzilla. can u do it from there?
Comment 7 Kevin Ottens 2007-12-06 03:46:11 UTC
> sorry for the very stupid question.. how can i assign the bug to
> hardware-devel kde org? i've never used bugzilla. can u do it from there?


You can't yet, but I'm reading here too. :-)

Regarding the test with solidshell it should be:
solidshell hardware list details | grep -i bat

Otherwise depending on your kernel Sebas proposed test might not work.
Comment 8 Fede 2007-12-06 12:44:20 UTC
ok, now it works...

solidshell output
-----------------
flagz@deepblue:~$ solidshell hardware list details | grep -i bat
  product = 'Battery Bay'  (string)
  Battery.plugged = true  (bool)
  Battery.type = 'PdaBattery|UpsBattery|PrimaryBattery'  (0x3)  (enum)
  Battery.chargePercent = 97  (0x61)  (int)
  Battery.rechargeable = true  (bool)
  Battery.chargeState = 'NoCharge'  (0x0)  (enum)
  product = 'Battery Bay'  (string)
  Battery.plugged = false  (bool)
  Battery.type = 'PdaBattery|UpsBattery|PrimaryBattery'  (0x3)  (enum)
  Battery.chargePercent = 0  (0x0)  (int)
  Battery.rechargeable = false  (bool)
  Battery.chargeState = 'NoCharge'  (0x0)  (enum)

-----------------

so is it a problem of the applet??
Comment 9 Pino Toscano 2007-12-18 21:20:45 UTC
*** Bug 154284 has been marked as a duplicate of this bug. ***
Comment 10 Maor 2007-12-22 16:57:50 UTC
Created attachment 22652 [details]
power management engine patch
Comment 11 Maor 2007-12-22 17:02:40 UTC
Created attachment 22653 [details]
battery applet patch

These patches adding support for devices with multiple battery (small fixes
from what i sent earlier to the list). 

Maor.
Comment 12 Sebastian Kügler 2007-12-23 02:28:27 UTC
Thanks Maor, I've committed your patches.