Severn Trent Smart Water Meter

Hello,

I’m in the UK and my water supply company, Severn Trent have just fitted me with a smart water meter. I can login on line and view readings but anyone have a clue on how I can integrate this with the energy dashboard in HA please?

What water meter did they install for you.i had mine recently replaced.

Same one as me. I rang back and they said:

“While you now have a smart water meter, we need to get a reciever fitted in your area to collect the data” :man_facepalming:

I also asked about an API to collect the data, but the guy didn’t know what I meant.

I’ll keep the thread updated.

Cyble 5 is the meter

This may be a good link to look at : Domotizes the Itron water meter with esp and cc1101 in ha for 10€ - Haade.fr

Would need to change 4 find the right frequency for your CC1101 transmitter
as the STW looks like its using 868mhz, also not sure as long as Severn Trent have not done anything odd.

I am still waiting on my smart meter which is due in 1 week…

If you do manage to get something working keep me updated.

I can now login to the Severn Trent portal and view hourly water consumption but no idea now to get this data pulled into HA. I presume there is some sort of API url but now idea how to find this.

interestingly my Severn Trent meter is using 433Mhz. Im going to attempt the above to get mine working, will report back if I get it going!

Also here, in Italy, the water company installed a Cyble 5. Any idea how to collect data? The protocol is LoRa 868 MHz?

Hey
Did anyone get any further with this one for Severn Trent Water in UK?
I have exactly the same meter.

Did anyone make any progress on this at all?
It looks as though Severn Trent have plans to roll this out wider: Smart Metering Project | Green recovery | Wonderful on Tap | Severn Trent Water

I had a conversation with them in Jan:

[07/01/2025, 13:24:52] Steve Baxter: So an API i a way of querying billing data automatically. In this case I would like to pull the billing and usage data into Home Assistant (I use this for controlling lots of things around the house). Octopus have this for energy usage for example.
[07/01/2025, 13:25:13] Steve Baxter: For example, other people are asking here Severn Trent Smart Water Meter
[07/01/2025, 13:25:34] Steve Baxter: This is a technical query and probably needs to go to whoever maintains your billing and usage system.
[07/01/2025, 13:25:48] Steve Baxter: (they will know what I mean by an API)
[07/01/2025, 14:34:20] Severn Trent: Apologises for the delay in response. I am currently looking into this for you.
[07/01/2025, 14:54:47] Severn Trent: I’ve spoken with one of our Project Managers I have been advised it isn’t something Severn Trent currently offer unfortunately, is there anything else I can assist you with today ?
[07/01/2025, 15:09:04] Steve Baxter: Thanks. Can I request that this is something you look at?
[07/01/2025, 15:10:43] Severn Trent: Sorry this doesn’t appear to be something Severn Trent is currently in the process of actioning.

I recently had a chat with STW’s customer service team, one of whom had the datasheet for my meter.

It’s using 868MHz. I’m yet to get my Flipper Zero on it, but that was a very helpful bit of info as all I’ve found on 433MHz has been door bells. I’m not sure my neighbours like me making them ring from a distance :joy:

1 Like

Interesting…
https://www.stwater.co.uk/about-us/open-data-strategy/

Clearly the focus here is on more generalised output but it does suggest that someone at STW understands the value of data!

Open data is non-personal and non-commercially sensitive

yeah doesn’t directly apply here, but is a nice initiative.

My online account view uses a GraphQL API to fetch the data. It makes a curl request with a JSON object:

{
  "query": "query MeterReadings($accountNumber: String!, $activeFrom: DateTime) {
    account(accountNumber: $accountNumber) {
      properties(activeFrom: $activeFrom) {
        activeWaterMeters {
          id
          numberOfDigits
          readings(first: 50, excludeHeld: true, excludeQuarantined: true) {
            edges {
              node {
                valueCubicMetres
                readingDate
                source
              }
            }
          }
        }
      }
    }
  }",
  "variables": {
    "accountNumber": "A-********",
    "activeFrom": "2025-08-18T11:39:34.944Z"
  },
  "operationName": "MeterReadings"
}

and returns

{
    "data": {
        "account": {
            "properties": [
                {
                    "activeWaterMeters": [
                        {
                            "id": "*******",
                            "numberOfDigits": 5,
                            "readings": {
                                "edges": [
                                    {
                                        "node": {
                                            "valueCubicMetres": "22.000",
                                            "readingDate": "2025-08-18",
                                            "source": "CUSTOMER"
                                        }
                                    },
                                    {
                                        "node": {
                                            "valueCubicMetres": "7.000",
                                            "readingDate": "2025-04-07",
                                            "source": "OPS"
                                        }
                                    }
                                ]
                            }
                        }
                    ]
                }
            ]
        }
    }
}

The authentication appears to be via a JWT, which - slightly excitingly - is issued by kraken.tech. This is the smart utility platform created by Octopus Energy, and sold to other utility companies, suggesting the API is going to be of a fairly high quality.

The lack of any API key is disappointing, but the auth seems very simple: another GraphQL API request of the format

{
    "query": "mutation ObtainKrakenToken($input: ObtainJSONWebTokenInput!) {
      obtainKrakenToken(input: $input) {
        token
        payload
        refreshToken
        refreshExpiresIn
      }
    }",
    "variables": {
        "input": {
            "email": "****@gmail.com",
            "password": "********"
        }
    },
    "operationName": "ObtainKrakenToken"
}

which returns

{
    "data": {
        "obtainKrakenToken": {
            "token": "***",
            "payload": {
                "sub": "kraken|account-user:****",
                "gty": "EMAIL-AND-PASSWORD",
                "email": "****@gmail.com",
                "tokenUse": "access",
                "iss": "https://api.st.kraken.tech/v1/graphql/",
                "iat": 1755517909,
                "exp": 1755518809,
                "origIat": 1755517909
            },
            "refreshToken": "****",
            "refreshExpiresIn": 1755519709
        }
    }
}

I’ll do some more research into whether the Severn Trent instance of Kraken does indeed supports API keys, and they’re just not exposing it via a UI - in my Octopus account I can see there is a GraphQL request that will create an API key for me:

{
    "query": "mutation regenerateSecretKey {
      regenerateSecretKey {
        key
        __typename
      }
    }",
    "variables": {},
    "operationName": "regenerateSecretKey"
}

…which might also work for Severn Trent… :crossed_fingers:

2 Likes

Hi,

I used AI to create a custom integration that pulls some basic info from Severn Trent. You need to provide your account credentials when you set it up. You can either manually download and install or add as a custom repository via HACS.

This is very much a use at your own risk and I’ve only got a single account to test with so it may not work work everyone but feel free to give it a go and if anyone has any ideas for features then please let me know.

xpenno255/ha_severn_trent: Pulls usage information from Severn Trent Account

1 Like

Nicely done, works for me!

1 Like

Severn Trent haven’t bothered to read my meter for nearly 3 years now. Quite looking forward to a smart meter!