Hunger Meter

Rating: 
4.7
Your rating: None Average: 4.7 (10 votes)

Simple monitor showing current battery consumption. Visible in cover action as
well, so you can peek to see how battery hungry is your phone at it’s current
state even from running applications.

It displays three values - current consumption which is by default last 1s,
average which is by default average for last 10s and long average which is 24
hours. You can configure these time intervals via Settings menu as well as
sampling intervals. Short values are kept only during application runtime, long
average value is kept even between application runs. There is an option to
store these statistics even to permanent storage to keep them available after
reboot.

Hunger meter can help you decide whether changes you did to your device setup
are going to help you get better battery life or not (for example which
applications doesn’t hurt keep running on background and which does). It also
gives you estimate how long will your battery last given your customs and
average consumption.

NOTE: Running this application can also increase a consumption a little. It
periodically takes measurements to average them and displaying graph can take
some more effort as well.

Sources are available on Github. Patches are welcome.

Screenshots: 
Changelog: 

4.0.1:

  • Minor polishing of hardcoded settings

4.0.0:

  • Long term graph
  • Adaptive grid

3.1.1:

  • Fix font size in grid
  • More future proof graph algorithm

3.1.0:

  • Improved cover action
    • Show battery info there (thanks to Gianguido Sorà for initial implementation an inspiration)
    • Swithing between info displayed
  • Option to select whether battery should be displayed first

3.0.0:

  •  Long time statistics
  • Option to display time intervals used
  • Use mW instead of W

2.1.0:

  • Improved about page
  • Showing time intervals

2.0.0:

  • New icon
  • Persistent settings

1.4.0:

  • Landscape support

1.3.1:

  • Polishing battery info

1.3:

  • Displaying info about battery

Comments

zagrim's picture

Hi, and thanks for the app.

Would it be possible to have an even longer period (>> 60 sec) available for short average interval, something like 120 sec or 180 sec? 60 sec average tends to be too volatile at least on my Jolla to actually be able to reliably judge the effect of e.g. disabling wifi.

Other than that, I think it is a very nice app even as it is, without any fancier data analysis.

miska's picture

120s added, for longer periods I guess the better way is long term graph implemented recently.

Boxeri's picture

Hello

Nice and good application.

I noticed that there were already discussion about the battery full indication, but could you still elaborate/explain it to me?

I took the following screenshots on my Jolla and to me there seems to be somekind of problem with the battery left calculation.

 

1 What it shows at the battery info page

2 What it shows as consumption

 

When thinkin that my basically full battery is said to be empty in 10h with those consumption readings this just doesn't make sense. I understand that it seems to make simply calculation with current battery divided by avarage consumtion but that seems to give a really "wrong" answer here. My battery normally lasts for couple of days. So the calculation can't be made with saved avarages or something since I think the current is not just realistic?

miska's picture

Can't see a screenshot, so I will just explain how it works. Kernel reports current buttery consumption. This application asks the kernel in time intervals what is the consumption of the device. Then there are two configurable time intervals. First is something like a second, second one is something like ten seconds. Application takes all measurements it did in those intervals, averages them and outputs the results. These are the top two numbers.

Third number is a little bit more sofisticated. Application asks system timelly how much energy is left in battery. And it computes how much energy disappeared since the last measurements. It counts only consumption - not charging. So you will get average even over night when device sleeps and such.

Time left is in case of charging estimate till you will have your battery full given current (one the first two) speed of charging. If you are discharging (not connected to the charger), it estimates time left based on the third number (if it is available), if not than from larger of the first two.

If you just started application for the first time, it doesn't have enough data to use third consumption, so it will use one the first two. So 10h is the best guess it has. If you wouldn't let your Jolla sleep, keep display always on and such, you will drain your battery in something like that. If you keep it (HungerMeter) running for a longer time period (or launch it few times a day), it will gather enough statistics to use the third option and after full charge it will show your couple of days left given your average usage.

Boxeri's picture

Allright, thanks for clearing that out. It was pretty much as I expected, just need time for more accuracy.

Any chance you could add a timer "Time since last recharge"? Can this be taken with some command? I remember once knowing such command on my linux laptop, I think.

 

miska's picture

What would you define as last recharge? Full battery? Almost full? Pluged into charger for few minutes? I have no plans to implement that, what I have in my plans is to show all data I gather, which includes when you were charging your phone and how much did you charged it. This should give you same info you are asking (with a little manual counting) but with better overview. But didn't get to it yet :-)

Boxeri's picture

Great, that would indeed sound just what I was hoping for.

Before you get to this stage with your application, is there any command I could check how long since the phone was last connected to a charger?

miska's picture

sqlite3 /tmp/harbour-hungermeter/measurements.sqlite 'select time,energy from data where state!=-1 order by time;'

This would work only if measurement interval get's triggered during your stay on charger. But if you instead of 'select ...' use '.dump', you'll see all info I have gathered :-)

naytsyrhc's picture

Thank you for this very very useful app. It's one of those apps that I have open all the time. I was just wondering, does it also collect data in the background (i.e. if not open)?. I think that would be really nice.

miska's picture

Currently it only collects data when application is running (but it's collecting even in minimized state and long long statistics are persistent between application runs (optionally between reboots)). Was thinking about collecting data without need to actually run the whole application, but on top of my todo is first displaying all the data I already collect :-D

There are those long long term statistics, that would deserve some graphing or even listing completelly. For now I only show average of them, while I have much more/better data.

Apart from that, I'm not sure how will harbour QA look at application collecting data when it is not running, but at some point, I'll probably give it a try.

naytsyrhc's picture

Thanks for the fast answer. Nice to hear, that you're working on more detailed information display. Do you think, this could result in something similar to BatteryUsage app on N9 (http://store.ovi.com/content/138659)? That was very detailed.

And one other thing: I realised that your app sometimes gives different battery percentage than the Jolla does itself. E.g. currently Jolla say 90%, but your app says 99,25% which comes from the fact, that nominal full capacity is 7236 mWh and current measures 7182 mWh. Because the real full battery is probably above the nominal capacity. From Jollas calculation it seems that full capacity of my battery currently is 7980 mWh.

miska's picture

hmmm, probably not. I have no idea how to distribute consumption between applications and be fair :-/ If you know where some aplpication like that have a source, I'll be happy to take a look and inspiration :-) What could be possible in far away future is to show what applications were running at what point in time and let you spot that rapidly decreesing battery life time was caused by this particular application that was started... But that is really far future.

hmm, yes, I use energy_full and not energy_full_design as as battery get's older, energy_full will decrease over the time and I thought that people would be more interested in whether it makes sense to charge the battery...

naytsyrhc's picture

Concerning Battery Charge Indication: Yes of course. I like it the way you implemented it. Was just curious to know.

Concerning App-Consumption: was just a question. I don't have the source code and I don't know how to solve that issue. So, everything is fine.

RR_aus_H's picture

Thank you for this usefull app.

Maybe it is possible to set the x-axis of the Power -Diagram to 1 hour or more

for a "long-time diagnosis" when you are using GPS-Navigation and Bluetooth and so on.

miska's picture

Well, that is the long term plan, but I need to figure out how to store longterm data first. Obvious answer would be sqlite, but libsqlite is not part of officially supported libraries in SDK and thus would exclude me from Harbour. Other option is to use my own format, but that sounds silly. Have been reading about Qt SQL, but so far it looks either I'm missing something or is not part of SDK. Using QML to access database is something I would like to avoid. So I'll probably end up with my own format, which I don't like. Once I get over it, I'll start working on it, but with FOSDEM and DevConf around the corner, I doubt I'll have a time soon. And I also should do other stuff as well :-)

tl;dr Will be there one day, but most probably not during at least next three weeks.

Victorious's picture

Thank you very much! Gorgeous and very useful program!

s1gk1ll's picture

Hello miska.

Is it possible to provide/link the source code?

Thanks.

miska's picture

Yep, I'll share it probably later today/during next week, was working on some cleanups so I wouldn't have to be totally ashamed of it :-)

s1gk1ll's picture

LOL, There's no need to be ashamed ;)

Ok, I'll be waiting. Thanks.

miska's picture

Sources published, patches welcome :-)

s1gk1ll's picture

I'll let you know if anything useful comes up ;)
Thanks.