In December 2019, Smart Meter Texas (SMT) introduced their "2.0" with marginally improved API. It's still not a smooth process, but doable.
- Get your ESIID from your Electric bill
- Create a userID at https://smartmetertexas.com
- Pick an API process
- Pick an access method
Despite wording impling otherwise, given the complexity required and manual steps, it's obvious this is not really set up with everyday residential users in mind. Instead, I suspect this is more geared towards companies which would then provide the data to end users. Make no mistake, residential users are allowed - it's just the steps aren't user friendly:
- Have a public / private SSL certificate. You can use Let's Encrypt to generate one, or use an existing one (I re-used my Nabu Casa / Home Assistant certificate, which is based on Let's Encrypt)
- Determine your public IP address of your router by visiting https://whatismyipaddress.com/ from the network that you will be accessing the API from
- Send an email to [email protected] with your public IP address, ESIID, userID, and public certificate
- Wait a number of days for the outsourced overseas IBM employees to respond
- When they say go, you should be able to use the official API. As if we need more proof how silly this process is, they will email you an outdated interface guide in response. You can find the latest here https://www.smartmetertexas.com/Smart_Meter_Texas_Interface_Guide.pdf or with all their other documentation: https://smartmetertexas.com/quickrefguides
As a bonus, if you're using generating a cert from Let's Encrypt or others, you have to re-contact them every 3 months to update it. Oh, and yes, your IP address might change some day, at which point you might need to email support again to update the IP. Or maybe by then, they won't care about the IP address. I tried to get support to use a domain name and they would not.
Use login tokens instead. No waiting. No SSL certificate. First documented here: https://github.com/keatontaylor/smartmetertexas-api/ and on that repo's wiki
First off, whatever method you use, PLEASE make sure not to poll for results faster than every 900 seconds / 15 minutes. Some programs might default polling to every 10 seconds. There is no reason to, and enterprises entities might start taking notice and add additional restrictions when polling rates are so high.
- See the Curl examples in this repo
- https://github.com/cmulk/python_smartmetertx
- unofficial api: https://github.com/grahamwetzler/smart-meter-texas
- unofficial api: https://github.com/thejcannon/strickland-cannon-coop-src/blob/master/backend/strickland_cannon_coop/scripts/electricity.py
- unofficial api: https://github.com/BrittanyMcNeal/Electricity-Usage-and-Automation (based on https://github.com/ankitkchoudhary/electricity-usage-monitoring)
- Someone has been kind enough to create an integration, available starting in 0.115: https://rc.home-assistant.io/integrations/smart_meter_texas ** Unfortunately, it doesn't work reliably due to authentication errors
- official api: see the Curl examples in this repo
- unofficial api: due to the token usage, probably easier to just use python
- unofficial api, running in a Docker Container: https://github.com/scadaguru/pysmtreader
- unofficial api: https://github.com/stmrocket/ha-smartmetertexas
- official api: https://old.reddit.com/r/homeassistant/comments/ep3pki/texas_smart_meteroncor_users_api_work/ (older; and I've archived the node-red code here)
- official api: https://github.com/johnavich/SMT-NodeRed-Official (as of 2023)
Examples: