Skip to content


Subversion checkout URL

You can clone with
Download ZIP
A ruby library to access PG&E SmartMeter data

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.

Smartermeter - the smarter way to read your PGE SmartMeter

So I have PGE SmartMeter and I like playing with data. However I didn't really want to jump through 37 hoops to see the data on PG&E's website. So I made this.

While making this library I discovered that PG&E doesn't even manage the software for the energy reporting. It's all done by Not terribly useful but an interesting piece of trivia.

Getting Started

gem install smartermeter

Google PowerMeter

Once you've configured smartermeter once, you might want to use it with Google PowerMeter.

  1. Visit:
  2. Then sign in with your desired Google Account.
  3. Follow the directions on screen.
  4. On the final screen copy the entire "authInfo" into your favorite editor. Pull out the "token" and the "path" from the string.
  5. Take the "path" you collected previously and append ".d1" to the end of it.
  6. Then append the following to your ~/.smartermeter file to automatically upload data as it's retrieved from PG&E.

    :transport: :google_powermeter :google_powermeter: :token: "your-token" :variable: "your-path-with.d1-appended"

To Build

In order to build the self contained binaries, you'll need a working jruby interpreter.

git clone git://
cd smartermeter
rake rawr:prepare
rake rawr:bundle:exe # builds a windows executable
rake rawr:bundle:app # builds an OSX executable
rake build # builds a ruby gem


  • How much lag is there?

    It'll show you the last full day's worth of data. The PGE website claims that data becomes available around 3-10pm on the following day. However my experience says that it's sometimes available earlier.

  • How long is data saved for?

    I don't know. If you know tell me.

  • How can I help?

    Make sure it works, make cool things with it or send me git pull requests.

Something went wrong with that request. Please try again.