Xcel Energy ITron Gen 5 Riva

I’m also in the Denver area and havent had any issues with it stopping receiving data. My scan intervals are set at 5 and command timeout also at 5.

My curl command is the same as you have.

Only difference I have is I dont use a value template for reading #1 and for reading #3 my value template is:

  value_template: "{{ value | multiply(0.001) | round(3)}}"

I’ve been up and running since Apr 20 and hasnt missed any data yet.

1 Like

Whoa! I didn’t know you could do that! I don’t have solar, but finding an inverter that works locally with HA was a big concern. If the meter just does it for me, then I can avoid that pain.

I haven’t noticed any missing data for a while. My timeout is 16 and my scan interval is 180 (so 3 mins). Is it possible your automation is triggering too quickly sometimes?

I also have these if statements in the value templates:

    # For instant power consumption
    value_template: "{{ float(value) if is_number(value_json) }}"
    # For total consumption
    value_template: "{{ float(value) | multiply(0.001) | round(3) if is_number(value) }}"
1 Like

This is an excellent writeup and there are many more steps than I thought there would be.

Can you change the TOU input numbers from an automation instead of using node red? I don’t have NR installed ATM.

There are quite a few tricks in the billing, it seems. And some extra tricks to get HA to do the multiplication correctly. Glad you figured it out. I will have some time in a few weeks to try it.

You might consider making a new post, so it doesn’t get buried as the 195th comment here. It is really good info.

Quick link to the TOU pricing numbers. I assume these are the values you used?

https://co.my.xcelenergy.com/s/billing-payment/residential-rates/time-of-use-pricing

You could probably use an automation to change the TOU pricing. It was just easier for me to use Node Red. I use it for most all of my automations and just more comfortable using it over the HA automations.

I used the actual rates which are out to 5 decimal places rather than the rounded values.

2 Likes

I finally got a successful response back from the meter after hours of no response. This query was sent manually from a different RPi4 than my HassOS RPi. I wanted to see what the complete transaction looked like, not just the grepped meter value. I checked that I used the correct command to generate my key and cert files. Does anybody who is familiar with this kind of input see anything wrong that would upset the meter agent and cause it to close the port?

root@192:~# OPENSSL_CONF=openssl.conf curl --ciphers ECDHE-ECDSA-AES128-CCM8 --insecure -v --url https://192.168.0.12:8081/upt/1/mr/1/r --cert cert.pem --key key.pem
*   Trying 192.168.0.12:8081...
* Connected to 192.168.0.12 (192.168.0.12) port 8081 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* Cipher selection: ECDHE-ECDSA-AES128-CCM8
* TLSv1.0 (OUT), TLS header, Certificate Status (22):
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.3 (IN), TLS handshake, Server hello (2):
* TLSv1.2 (IN), TLS handshake, Certificate (11):
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
* TLSv1.2 (IN), TLS handshake, Request CERT (13):
* TLSv1.2 (IN), TLS handshake, Server finished (14):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Certificate (11):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, CERT verify (15):
* TLSv1.2 (OUT), TLS header, Finished (20):
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
* TLSv1.2 (OUT), TLS header, Certificate Status (22):
* TLSv1.2 (OUT), TLS handshake, Finished (20):
* TLSv1.2 (IN), TLS header, Finished (20):
* TLSv1.2 (IN), TLS header, Certificate Status (22):
* TLSv1.2 (IN), TLS handshake, Finished (20):
* SSL connection using TLSv1.2 / ECDHE-ECDSA-AES128-CCM8
* ALPN, server did not agree to a protocol
* Server certificate:
*  subject: [NONE]
*  start date: Mar 17 01:53:09 2023 GMT
*  expire date: Dec 31 23:59:00 9999 GMT
*  issuer: C=US; O=Itron; CN=IEEE 2030.5 MICA; serialNumber=7
*  SSL certificate verify result: self-signed certificate in certificate chain (19), continuing anyway.
* TLSv1.2 (OUT), TLS header, Supplemental data (23):
> GET /upt/1/mr/1/r HTTP/1.1
> Host: 192.168.0.12:8081
> User-Agent: curl/7.81.0
> Accept: */*
>
* TLSv1.2 (IN), TLS header, Supplemental data (23):
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Date: Thu, 25 May 2023 22:22:09 GMT
< Content-Length: 252
< Content-Type: application/sep+xml
<
<Reading
     xmlns="urn:ieee:std:2030.5:ns"
     href="/upt/1/mr/1/r">
    <qualityFlags>01</qualityFlags>
    <timePeriod>
        <duration>1</duration>
        <start>1685053328</start>
    </timePeriod>
    <value>567</value>
</Reading>
* Connection #0 to host 192.168.0.12 left intact

In order to hopefully add something of value as well, I want to post what I found regarding reading the actual meter display:


TL Index is the smaller numbers displayed at the top left. Symbols in parentheses are the small icons displayed at the bottom)

1 Like

Wow. That is a big doc.

These are the numbers?

Where are the holidays defined?

It would be nice if the meter just told us if it was recording peak, mid, or normal.

Yea those are the TOU rate. Holidays are defined on Page 19.

Holiday New Year’s Day, Martin Luther King, Jr. Day, Presidents’ Day, Memorial Day, Independence Day, Labor Day, Columbus Day, Veterans Day, Thanksgiving Day, and Christmas Day.

Some of these move around and arent on the same day of the month each year so I’m not sure what to do about that. Currently, I’m going to have to update my template conditions at the beginning of each year to make sure I have them set to the correct day. Realistically, it’s probably close enough for me to not even bother changing them every year.

And if you look at your electric bill you’ll see some other charges e.g., Service & Facility, GRSA E, EGCRR, Trans Cost Adj, etc. These are all defined in that pdf. Some are just base charges (Service & Facility, Renew. Energy Std Adj, Colo Energy Plan Adj, and Energy Assistance Chg) so I have those just summed up and added to the usage costs in my billed_elec_cost sensor. It does look like some of these change month to month so there’s going to be some error in the billed cost I’m calculating but it will be minimal. The others are based on usage and are defined on the rate schedule.

Well after looking again, Renew. Energy Std Adj and Colo Energy Plan Adj are supposedly 1% of the total electric bill but when I try to calcuate that I’m off a few cents so I’m not entirely sure what they are using to calc that 1%.

1 Like

For those of you in the Denver area with solar, do you have 2 meters and have them both linked up to HA? I’ve got two of the new smart meters but was only able to set up the one directly fed by solar. That means I can see how much electricity is being generated / used from the panels but until I can get the other one set up, I can’t see how much electricity is being pulled from the grid.

Currently have an open ticket with Xcel about getting the other meter on my WiFi. Having the issue where the “EDIT” button doesn’t appear to do anything. Dev tools show there’s an error response coming back from a background call that I’ve shared with support.

That’s interesting. I’m in Denver, have solar and have 2 new Gen 5 Riva meters. When signing up of Energy Launchpad, I never had the option to choose which meter to connect. As you can see from my Itron meter display key a few posts above, the main meter shows HanCOn (connected to wifi) and solar meter shows Hand15 (disconnected from wifi). As the main meter shows both power pulled from the grid and power delivered to the grid, there really is no need to connect to the solar meter imho. I can get the total solar power generated from my Enphase Envoy and subtracting the value of power delivered to the grid from the Xcel meter gives me the amount of solar power consumed by my residence.

I’m happy you’re paying for attention. I am really mostly interested in getting within 2-5%. Having a good way to visualize the approximate price is worth a lot. Recomputing the bill isn’t as important. But I am happy someone is doing it.

Thanks for the work on this… I’m in Denver and just got my new meter, and I’m excited to play around with it this weekend. I’m curious, what are the long-term thoughts on the integration? Will it be integrated into HA directly or as a HA add-on? It’s such a nice compliment to the Energey monitoring dashboard, and it would be great to see it gain wider adoption.

1 Like

I’m in the Minnesota (St. Paul area). Just got a brand new Itron Riva Gen5 meter. Does anyone know what the IR test LEd outputs? I know it pulses something every few seconds, but it’s not in a regular interval, so I’m assuming it’s a pulse of data in some sort of protocol. What is the IR LED pulsing? The Excel Launchpad is not even showing up here … not available yet I assume.

2 Likes

On some meters the LED pulses once per watthour. I’d like to find an affordable way to display cumulative usage in watthours; there are generic counters but I’m not sure what the pulse is like. Does your meter display any info other than cumulative kWh?
EDIT: I see the meter cycles through a bunch of values including: time, kWh in A, B and C timeframes, total kWh, and some other things (‘handle’ number, etc) and one reading in units of kW, but it stays fixed at 4.165 or something. Could that be max power? And there are 2 rectangles and an arrow that emulate the spinning disk on mechanical meters. I don’t know how fast it spins in watt-hours.

I have ideas for some experiments but I’d rather keep them private for now… but anyone who has this working and would like to see what can be learned please PM me?

I thought mine might be pulse per watthour, but I would expect the pulses to be equal in time between pulses … mine are not. It seems like it might be sending out a stream of pulses (some sort of data protocol) each time the LCD screen changes to display other data. I know the IR LED is definitely pulsing because I can see it with an IR light sensor.

I emailed Xcel Energy about my new meter and they only said that our Itron Riva Gen5 meters are very new in our area and things on their website are not yet set up. I would simply be happy with an API that I could access using PHP, or even an ESP32 microcontroller.

I’d like to rework the MQTT container into an official integration. That step just takes quite a bit more time to match the HA code quality standards. It’s a possibility, I would just need to do a lot more homework on what we’re looking at requirements wise.

I’m also interested in hearing from anyone who believes the meter may be erroneously causing their bill to go up, as was suspected by some in the Gatesville TX deployment.

I’m in the same boat where the edit button doesn’t work no matter what browser or device I use. Been emailing the Xcel energy launchpad team to try to get this fixed. Every few weeks they email and say it should be fixed but still the same issue. The last time I checked in Chrome dev tools when I click the edit button and look in the network tab the response contains this error so I’m thinking I’m in an area they haven’t fully setup.

"actions": [
        {
            "id": "175;a",
            "state": "ERROR",
            "returnValue": {
                "cacheable": false
            },
            "error": [
                {
                    "message": "DeviceUtilID is not setup for HAN Wifi [EI03########]"
                }
            ]
        }

I live in Denver and I see others in this thread from Denver that appear to be up and running but maybe they are doing certain areas in phases.

If you want to bug the launchpad team, here’s the email I have been going back and forth with: [email protected]

On my Xcel page I can see granular usage and solar production so I’m pretty sure my meters are reporting at least hourly usage data back to Xcel.

Thanks for the reminder, I’d gotten the “everything is good, try again” email back on May 22nd, still nothing. I re-emailed this morning and got this:

Sorry about the continued issue. We are expecting a new fix to be implemented early next week. We will send you an email when you can try again.

I don’t have high hopes, it’s been really frustrating where I had an SDR dongle capturing everything great until the meter change…

Interesting - I’ve been wondering if these things are accurate. Ever since having mine installed, it’s really gamified electricity use in my house. I’ve REALLY been trying to cut back use (including the fact that I have yet to kick on my AC this season along with TOU adjustments) and I’ve been pretty shocked that my bill is still nearly $50.

I seem to remember someone on Reddit complaining about it, too.

I could be getting old, but that seems high to me.