Xcel Smart Meter - zbrewer/homelab GitHub Wiki
My utility provider is Xcel Energy and they installed an ITron Riva Gen 5 smart meter in order to do time-of-use billing. This meter can be integrated into a homelab/smart home using the Xcel's "Launchpad" platform in order to give instantaneous and cumulative electricity use. This also includes electricity fed back into the grid if excess energy is produced with solar, for example.
Setup
Connecting the Meter to WiFi
In order to use this feature, Launchpad must be configured from Xcel's website to connect the meter to WiFi. From the account home page, click on View Billing Accounts
and then Manage Account
next to the correct account entry on the next page. Go to the Authorized Devices
page and click Edit Connected Devices
. There should be an option to enroll in Launchpad on this page. This will take some amount of time (in my case it was only a few minutes) and then you should receive and email from Xcel that your account has been successfully enrolled.
Once you receive this confirmation, return to the same Edit Connected Devices
page and click Manage
. There should be an entry for XCEL ENERGY LAUNCHPAD
. Click Edit
and enter the information of the WiFi network you would like to use. This should take you back to the "Connected Devices" page which you can refresh until you can see that it is connected.
At this point, it is helpful to assign a reserved IP address. Since the meter should now be connected, get it's MAC address from your WiFi AP logs and create a DHCP entry for it. You may have to restart the AP and/or force the meter to reconnect in order to ensure the new IP takes effect.
Exporting Readings to MQTT
For this step, a MQTT broker must first be installed. I'm using Mosquitto as a Home Assistant add-on which is well documented.
With that requirement yet, download the generate_keys
script from the xcel_itron2mqtt project on the host that will run the docker image. Move the script into the root directory of the Docker Compose stack that will run xcel_itron2mqtt, make it executable, and run it. This will print a LFDI string.
Go back to the Connected Devices
page on Xcel's website and click Add a Device
. Use the LFDI string that you just generated and set the other options as you see fit.
Now, return to the Docker server and create a Docker Compose file using this example as a template. Ensure that the bind mount for the certs
directory points to the directory created by the generate_keys
script. Creating the Docker Compose configuration may also require creating a new MQTT user for publishing the metrics to the broker. You may also have to open the ports from the xcel_itron2mqtt container to the energy meter and/or to the MQTT broker if they are on different VLANs.
With the configuration created, start the container (using the docker compose up -d
command). You should start seeing new published topics for the meter. These can be explored using MQTT Explorer (optionally installed as a Home Assistant add-on), if desired.