Geo Home Smart Meter integration

If this is of any use (because the above website seems to have stopped working):

command_line:
- sensor:
    command: >-
      curl "https://data.nationalgas.com/api/find-gas-data-download?applicableFor=Y&dateFrom={{now().strftime('%Y-%m-%dT00:00:00')}}&dateTo={{now().strftime('%Y-%m-%dT23:59:59')}}&ids=PUBOB4515&latestFlag=Y&type=CSV&dateType=GASDAY" -s
      | python3 /config/my_python_scripts/csv2json.py
    name: Gas Calorific Value
    unique_id: calorific_value_SO
    unit_of_measurement: "MJ/m³"
    scan_interval: 86400
    value_template: '{{ value_json["Value"]}}'
    json_attributes:
      - Generated Time
      - Data Item

need to have an additional python script (in my example, named csv2json.py)

# convert csv to json
# https://blog.backslasher.net/python-csv-to-json.html

import csv
import sys
import json

csv.field_size_limit(sys.maxsize)

for row in csv.DictReader(sys.stdin):
    sys.stdout.write(json.dumps(row)+"\n")

Same challenges of couse, of determining your local area.

1 Like

I have older GEO Solo III Wireless PV Monitor and Meter Set
I have tried these URLs:

BASE_URL = "https://api.geotogether.com/"
LOGIN_URL = "usersservice/v2/login"
DEVICE_DETAILS_URL = "api/userapi/v2/user/detail-systems?systemDetails=true"
LIVE_DATA_URL = "api/userapi/system/smets2-live-data/"
PERIODIC_DATA_URL = "api/userapi/system/smets2-periodic-data/"
DAILY_DATA_URL = "api/userapi/system/smets2-daily-data/"

And I can login and get auth Token.
I can also get System details including systemId.
But when I use the Token and systemId to query any of the other URLs, I do get response, but there is no values, only 0s or nulls for each field.

Is there a different API for older Geo devices?

Sorry, I don’t know about all of the different devices. Perhaps someone else has the info

Found this:
solo3.energynote.eu/geosuite/app/assets/scripts/script.js

    angular
        .module('app')
        .constant("ENV_VALUES", {
            local: 'local',
            dev: 'dev',
            trial: 'trial',
            prod: 'prod'
        })
        .constant("DATA_API_CONFIG", {
            endpoint: 'https://dev-ds-rest.geosmartdata.eu/api',
            //endpoint: 'http://trial-ds-rest.geosmartdata.eu/api',
            //endpoint: 'http://solo3.energynote.eu/api',
           storedTokenKey: 'auth.userToken',
            local: {
                originHostname: ['localhost', '127.0.0.1'],
                newEndpoint: 'https://dev-api.geotogether.com'
            },
            dev: {
                originHostname: ['dev-ds-rest.geosmartdata.eu', 'dev-cosy.geosmartdata.eu'],
                newEndpoint: 'https://dev-api.geotogether.com'
            },
            trial: {
                originHostname: ['trial-ds-rest.geosmartdata.eu', 'trial-cosy.geosmartdata.eu'],
                newEndpoint: 'https://trial-api.geotogether.com'
            },
            prod: {
                originHostname: ['solo3.energynote.eu', 'cosy.geotogether.com'],
                newEndpoint: 'https://api.geotogether.com' 
            }
        })

I don’t have high hopes, but this URL: http://solo3.energynote.eu is the one I use to login and see my data, so maybe there are some other endpoints mentioned there in that js.

Found it:

https://api.geotogether.com/api/userapi/system/live-data/systemId
{"id":"xxxxxxxxxxxxxxxxxxxxx,"power":
[{"type":"CONSUMPTION","watts":627,"valueAvailable":true},
{"type":"IMPORT","watts":627,"valueAvailable":true},
{"type":"GENERATION","watts":0,"valueAvailable":true},
{"type":"EXPORT","watts":0,"valueAvailable":true}],"deviceStatus":
[{"nodeAddress":70,"batteryIndicator":0,"signalStrength":-128,"flags":0,"batteryLow":false,"lastPacketReceivedTimestamp":1705428452},
{"nodeAddress":71,"batteryIndicator":3,"signalStrength":0,"flags":0,"batteryLow":false,"lastPacketReceivedTimestamp":1705428452}],
"energies":[
{"energyType":"GENERATION","tierType":"GENERATION","energyKWh":0.346,"cost":0},
{"energyType":"IMPORT","tierType":"IMPORT_STANDING_CHARGE","energyKWh":0,"cost":0},
{"energyType":"EXPORT","tierType":"EXPORT","energyKWh":0,"cost":0},
{"energyType":"IMPORT","tierType":"IMPORT_T2","energyKWh":3.168,"cost":133.988},
{"energyType":"CONSUMPTION","tierType":"IMPORT_T2","energyKWh":3.514,"cost":14.627},
{"energyType":"IMPORT","tierType":"IMPORT_T3","energyKWh":13.098,"cost":160.447},
{"energyType":"IMPORT","tierType":"IMPORT_T1","energyKWh":8.53,"cost":178.923},
{"energyType":"CONSUMPTION","tierType":"IMPORT_T1","energyKWh":8.53,"cost":0},
{"energyType":"CONSUMPTION","tierType":"IMPORT_T3","energyKWh":13.098,"cost":0}]}
https://api.geotogether.com/userapi/system/summaries/systemId
{"values":[{"id":"xxxxxxxxxxxxxxxxxxxxxxx","year":2024,"month":1,"day":16,
"energyCostTotals":
{"CONSUMPTION:IMPORT_T1":0,
"IMPORT:IMPORT_T3":160.447,
"CONSUMPTION:IMPORT_T2":14.627,
"CONSUMPTION:IMPORT_T3":0,
"GENERATION:GENERATION":0,
"IMPORT:IMPORT_T2":137.372,
"IMPORT:IMPORT_T1":178.923,
"EXPORT:EXPORT":0},
"energyKwhTotals":{
"CONSUMPTION:IMPORT_T1":8.53,
"IMPORT:IMPORT_T3":13.098,
"CONSUMPTION:IMPORT_T2":3.594,
"CONSUMPTION:IMPORT_T3":13.098,
"GENERATION:GENERATION":0.346,
"IMPORT:IMPORT_T2":3.248,
"IMPORT:IMPORT_T1":8.53,
"EXPORT:EXPORT":0}}]}

Great integration!
It worked straight away for me with the same username and password as for the app and a quick HA restart.

Where can we change this setting? I found this hard-coded in sensor.py:

# Polling interval. Will only be polled if there are subscribers.
update_interval=timedelta(seconds=120),

The IHD and app updates every 10 seconds which I get might be overwhelming for their servers, but I don’t think it is very useful at only 2 minutes. 30 or 60 seconds would sound more reasonable to me for live checking the energy usage.
It would be nice to bring this setting into a user-editable interface.

Just been told by Geo support that they don’t provide API access? I’ve just had a new S2 meter including a Geo IHD.
It is a Trio II

I have also been told this service is not available from GEO support ?

They definitely do - for example Schneider sell the GeoTogether Trio in order to use their Wiser Insights+ service. That would not work without an API.

And this integration works for me using the API.

However, the hardware and firmware seems to be rubbish. GeoTogether’s app often shows the device as offline when it can still be pinged. The device itself often shows it is offline, and needs a power cycle to reconnect to the WiFi and then communicate back to Geo’s servers.

I just had this problem. When I installed the integration, it defaulted to a username and password of admin and *******.

If I clicked submit, it made these sticky. No amount of changing them would work.

I removed the integration, restarted HA, reinstalled the integration and then set the username / password correctly the first time in, then it worked fine.

Ping! Resurrecting an old thread. Is this still functional? When I try to add the github repo as a custom repo in HA it says it is not a valid addon repo.

Yes, it’s still active. The last update was last week. I don’t know why HACS complained. The repo is GitHub - mmillmor/geo_home: Geo Home smart meter integration for Home Assistant - make sure you are using the right URL

Does anyone know if it’s possible to see exported kwh?
I can see this number on my actual meter screen and also on the Trio screen but poking around the few API endpoints listed in this thread I can’t see this export number anywhere.
Is there any documentation for the Geotogether API?

I don't get paid for my exported electricity as the company that installed the solar panels, for free, get it. However, with my live data, through the geotogether API, I see exported electricity as a negative value - But this is only when more solar is generated than I'm actually using. I don't see a total exported figure anywhere. My solar panels have a separate smart meter just for the panels and I assume that this meter is sending the actual values somewhere. Unfortunately I don't have access to that as I don't know the meter number and it isn't tied to my account. My solar energy provider (A Shade Greener) does have a website where I can see what solar is generated per day so I can see my totals there.
I haven't managed to find any documentation for the Geotogether API though I have found various python scripts that use it. There's some examples in this topic.

So they’re shutting off geo in October and selling something else called Seezero. Maybe it’ll replace the trio as the main smart home screen given out. Don’t know.

This thing has been awesome and I’m totally stuck with how to replace it. I’ve tried making ibput numbers to turn into sensors with my tariff but I can’t seem to do that right. It would only be able to track the plugs anyway… not the untracked consumption or how much is left on the meter.. etc etc.

I’m really stuck for alternatives… I’m going to try this seezero thing (they’ve given me a discount…) but it won’t even have an app until next year and if there’s honestly nothing else I hope someone is able to make an integration as good as this and it can work again. (The energy monitoring I mean… this geo integration will probably die).

I read it as the app. Is no longer supported. To me, it suggests the geo will still tx. Data as before. (To HA). They state, the geo device will continue to work.
I wouldn’t rush into the new kit yet.
At least, I’m not doing that yet.

I’m pretty sure it’s going to completely stop working I’m afraid. The way it works is the data is sent from your display to Geo Home, and then we log in to Geo Home to pull the data. If we can’t log in to Geo Home because the app doesn’t exist, we can’t pull the data.

Sorry, it’s out of my control

Martin

I emailed Geo and asked regarding the data after 19th October and they confirmed it would no longer be available. Also, it will be 2027 before the new device will provide a new data facility.

Actually, I thought they had already switched it off as I lost data at 16:30 on 26th Sept. But it looks as if it has just come back, a short while ago 11:30 28th Sept.

Same here. I wonder if someone turned it off prematurely by mistake and then got a telling off this morning

Mine has stopped working today.
Geo home App doesn’t show anything and home assistant hasn’t updated since 2am