I will be working on battery for most of next week, so I spent some time tweaking my setup. I have been running 2.6.21 because of my efforts to make gflrx play nice with CONFIG_PARAVIRT, so I had tickless kernel needed for powertop. To my horror, most of interrupts on my laptop was created by PostgreSQL (which I will stop when using battery) and ACPI! And that's because I'm using dwm with a primitive shell grep/sed pipe to produce status.
So, polling ACPI every 3 seconds (which is reasonable refresh time for me, even for clock) is too much. And than I started dreaming: network traffic would be nice. And a disk! Battery status when (dis)charging goes without saying. So, in the end, I also added a temperature, and got something like this (when on power):
2007-05-27 22:15:40 | 0.30 0.13 0.06 | 5M D 1k | 32b > 54b | 59 C
perl code it's nice and short but completely broken about estimates for charging time (how does acpi command-line tool calculate that?)
When started as stand-alone utility it can be poor man's replacement for dstat :-)