Geo Home Smart Meter integration

I’ve got a smart meter from edf in the UK. It uses geo Home smart displays (https://geotogether.com/) to monitor the energy. With an optional WiFi module, you can upload the readings to an app too. I’ve written a component to read the current power consumption, meter readings for both gas and electricity, along with the current prices. You can install it using HACS with this custom repository https://github.com/mmillmor/geo_home

Don’t forget, you need to e-mail [email protected] to ask them to enable your meter for you to be able to get api access. If you don’t do that, you will get a 401 error.

Hey, i just found this after installing the Geo Home myself, how would i go about installing and configuring this?

Ok ignore me i got this to work, well to install and setup the sensors at least!

it did however require the removal of the £ from sensor.py.

However, its not reporting or gathering any information?

This is the error line from the HA logs


2022-03-04 14:50:49 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved

Traceback (most recent call last):

File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run

result = self.fn(*self.args, **self.kwargs)

File "/config/custom_components/geo_home/geohome.py", line 95, in async_get_device_data

for powerItem in powerArray:

TypeError: 'NoneType' object is not iterable

Hi, you shouldn’t need to edit anything for it to work. When you install it, it just needs the username and password you set up to connect to geohome. If you need to remove the £ sign, that implies something else went wrong, but I’m struggling to think what.

That error implies geohome didn’t return any info to you. Was your password correct?

Password is all correct yeah…

I wonder if perhaps the API may be different? this is the unit i have

For what it’s worth, I’m quite new to HA but found the sensor.py file kept giving UTF-8 errors (try opening it in HA file editor). I opened in word and saved it as a UTF-8 text file and all works with me now.

That may be where the £ was breaking for me

I got the same issue and had to remove the £ symbol from line 102 of sensor.py

Now I get the following error.

Im using the same device as Teshiburu :slight_smile:

Logger: homeassistant.setup
Source: setup.py:317
First occurred: 15:52:29 (1 occurrences)
Last logged: 15:52:29

Unable to prepare setup for platform geo_home.sensor: Platform not found (cannot import name ‘SensorStateClass’ from ‘homeassistant.components.sensor’ (/usr/src/homeassistant/homeassistant/components/sensor/init.py)).

Any tips on what you did to install this?

this worked for my install.

However once I have added “Geo Home” I am not getting any values from the entities. I’m not sure this works with “The Hub” monitors

yeah i suspect the same, it doesnt seem to work with the “hub” @mmillmor is there anything we can do to provide you with the info that would be required to get the hub to work?

@mmillmor - is there anything we can do to assist with this, kinda want to get it it working before i kick it to the kurb in favor of a shelly device…

This is the error message we all seem to be getting now:


2022-06-03 12:13:12 ERROR (MainThread) [homeassistant] Error doing job: Future exception was never retrieved

Traceback (most recent call last):

File "/usr/local/lib/python3.9/concurrent/futures/thread.py", line 58, in run

result = self.fn(*self.args, **self.kwargs)

File "/config/custom_components/geo_home/geohome.py", line 99, in async_get_device_data

for powerItem in powerArray:

TypeError: 'NoneType' object is not iterable

I’ve had a bit of a play with the API that this connects to, and it seems that our “hub” devices dont actually report any stats back, which is really annoying, I’m kinda at the end of my ability, because the data is there the app on my phone knows exactly what ive used…

{
    "latestUtc": 0,
    "id": "b0bc652d-d9b6-43fd-a294-XXXXXXXX",
    "power": null,
    "powerTimestamp": 0,
    "localTime": 0,
    "localTimeTimestamp": 0,
    "creditStatus": null,
    "creditStatusTimestamp": 0,
    "remainingCredit": null,
    "remainingCreditTimestamp": 0,
    "zigbeeStatus": null,
    "zigbeeStatusTimestamp": 0,
    "emergencyCredit": null,
    "emergencyCreditTimestamp": 0,
    "systemStatus": null,
    "systemStatusTimestamp": 0,
    "temperature": 0.0,
    "temperatureTimestamp": 0,
    "ttl": 0
}

Despite being able to iterate out the connected devices, the api doesnt return any data, this is so infuritating!!!

    "systemRoles": [{
        "name": "4acfea35-30e9-4b94-81c4-XXXXXX",
        "systemId": "b0bc652d-d9b6-43fd-XXXXXX",
        "roles": ["READ", "WRITE"]
    }],
    "systemDetails": [{
        "name": "Home",
        "devices": [{
            "deviceType": "MINI_HUB_COSY",
            "sensorType": 110,
            "nodeId": 0,
            "versionNumber": {
                "major": 4,
                "minor": 5
            },
            "pairedTimestamp": 0,
            "pairingCode": "DXXX9",
            "upgradeRequired": false
        }, {
            "deviceType": "LED_TX",
            "sensorType": 118,
            "nodeId": 70,
            "versionNumber": {
                "major": 4,
                "minor": 8
            },
            "pairedTimestamp": 1654253884,
            "pairingCode": "4DXXXH",
            "upgradeRequired": false
        }],
        "systemId": "b0bc652d-d9b6-43fd-a294-XXXXX"
    }]
}

Even reports wifi disconnects… why dont you show the poxy data damn you

  "systemStatus": [{
        "component": "WIFI",
        "statusType": "STATUS_ERROR",
        "systemErrorCode": "ERROR_CODE_WIFI_NOT_CONNECTED",
        "systemErrorNumber": 39
    }],

I have successfully installed the wifi module and connected to the wifi, but the System Status says I am not connected to the Geo Cloud. Problem with Cloud Status:41
Anyone experience this, or got any ideas?
Thanks

I have copied and pasted the folder and restarted HA twice, but I can’t find any trace of it in the HA interface. where am I supposed to look and how do I log into the GEO account etc?

ok I have found where to add it, I have signed in with my GEO app user/password and I get this

2022-08-19 19:08:09.638 ERROR (MainThread) [homeassistant.loader] Unexpected exception importing platform custom_components.geo_home.sensor

2022-08-19 19:08:09.644 ERROR (MainThread) [homeassistant.setup] Unable to prepare setup for platform geo_home.sensor: Platform not found (Exception importing custom_components.geo_home.sensor).

Saving Sensor.Py as a UTF-8 document cured these errors

I am at this stage - what did you use as your username? I only signed in on the app with my email, but the email does not appear to work.

For what its worth to people looking to do the same thing as this, I have contacted the geo home people to ask for documentation of their API to try and fix this issue for good and hopefully fix the issues with this integration as it would be super handy to get it working!

Also - looking at the forks of this repo, some have been updated to fix some of the issues that I have been having! https://github.com/balneaves/home-assistant-components

will report back if it fixes it

EDIT: This repo seems to work a lot better - but I am still having the “what the heck is my username” issue

I managed to get the data from Geo Together’s API into HA using REST sensors as described here.

An integration would be more user friendly (especially if installable from HACS) to set up, but the sensor approach has been working reliably for a few months. Maybe this can help development?