Pulling power info from Southern Company?

Has anyone pulled in information directly from Southern Company? ( Alabama Power , Georgia Power , Gulf Power, Mississippi Power)

Here’s information on the api with npmjs

Is there some public page that shows the information you need without having to log in with your credentials?
If so you could get the info you need with a scrape sensor.

I’m not with Southern Companies, but I’ve been watching for a similar solution.

There’s no way to get my smart meter data from my power company’s web site without credentials. Even with them, it’s pretty primitive.

I see the folks over in the UK and Europe seem to have standard interfaces they can use to access their meter data, but I’ve never heard of anyone being able to do that in the US.

I’d be interested to hear what others have done.

Curious, did anyone get a working solution here?

Bump. Checking again, did anyone get this working?

Seems like we should be able to integrate with https://github.com/apearson/southern-company-api? Has anyone tried it?

1 Like

It seems like capturing radio from the meter is not viable, so it would be nice to have an integration with the API.

I got as far as installing this add-on and it’s running, but I’m not getting anywhere for Nicor Gas, a Southern Company entity.

I had to add init: false to the yaml and json and re-install. It’s now running on HA on port 8000, but I don’t see a way to interact with it.

Logs suggest a failure:

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[email protected] start
node index.js
Starting listener on port 8000.
/node_modules/southern-company-api/dist/main.js:133
throw new Error(Could not find ScWebToken in response);
^
Error: Could not find ScWebToken in response
at SouthernCompanyAPI. (/node_modules/southern-company-api/dist/main.js:133:23)
at Generator.next ()
at fulfilled (/node_modules/southern-company-api/dist/main.js:5:58)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

I don’t have the patience to continue from here, but if anyone else has a clue, I’m all ears.

I tried rebuilding the Auth calls in that library in a PR here: [DRAFT] Refactor auth calls by alex-hall · Pull Request #28 · apearson/southern-company-api · GitHub

In all honestly I don’t remember how far I got, but I remembered being very confused about the order of operations of those calls and the library relying on really specific casing on certain variables. Seems that PR died on the vine

My uneducated guess would be that Nicor Gas either implemented different APIs or there is something else that has changed. We would likely have to extend the original library to support a Nicor specific API or flow.

If you have any interest - I am currently developing a integration for Southern Company in core.

I’m building the api in python using information from the original southern-company-api in ts.

If you’re still interested, I would love having someone else who is able to test/ help develop. I use Georgia power, so it would be good to have another test case from a different southern company company.

I am also a Georgia Power Customer and would love to help in any way that I can. My python skills are not great, but I can fumble through. If nothing else, I would be willing to help test anything you need. Feel free to PM me or reply. I’m also on the Discord, but not super active.

Awesome!
I got it all functional, but my code is dirty, I have very limited error checking, and it could definitely use a bit more data as right now it only has statistics and no sensors. it also doesn’t have much testing at all. basically, it will not get passed the PR review cycle in its current state.

Here is my repo for the ha integration: GitHub - Lash-L/core at southern_company

Here is my repo for the underlying api: GitHub - Lash-L/southern_company_api: An api to control southern company websites

If you want to help, just go through the code, see what changes you want to make, and make a PR.

I think I’m going to create a bunch of issues later to keep track of what I still need to do.

1 Like

I’m interested in testing. do you have a write up of how to get this going?

I do not, but I could throw something together. You’re just looking to test, not develop, correct? As that would give two different steps.

correct… i don’t know Python so I can’t help with any development

Will test. Not sure how to add an unofficial integration into HA, except via “custom repository” feature of HACS.

@enzo2 @surge919
Give me until later today and I will have a HACS integration up and running you can test with.

What power companies do you have?

Georgia Power

@enzo2 @surge919 Wont be today. I tried getting it as a custom hacs integration, but when I run it it has a config flow error that does not happen when it is not a hacs integration. Not sure what to do and don’t have the time to debug it right now.

I’m also with Georgia Power and looking for a solution if I can help.