This script retrieves meter reads from Geohome and pushes them to Tado EnergyIQ to help provide the most up to date insight into heating energy usage.
While this project is called 'gassyoctopus' ("Gas Sync for Octopus"), it in reality doesn't use the Octopus APIs at all as they don't reveal total consumption/the actual meter read. This instead uses the Geohome Trio hub connected to my SMETS2 Smart Meter... so it's probably useful to non-Octopus customers as well.
- Deploy the Cloudformation template on your AWS account
- Go to the newly created lambda (gassyoctopus-lambda-[randomid]) and upload the latest zipped release
- Go to the newly created Secret (home/gassyoctopus-secret-[randomID]) and edit the values to reflect your own Geohome and Tado accounts
- The sync will automatically happen at 23:30 GMT - you can edit this in Eventbridge Schedules, or manually run the Lambda to test it.
- Deploy the function on AWS Lambda.
- Add the
AWS-Parameters-and-Secrets-Lambda-Extension
layer to your Lambda. - Create a secret on Secret Manager (e.g. called
home/gassysecrets
) with this key/value structure:
{
"geohomeUsername": "<your Geohome Username>",
"geohomePassword": "<your Geohome Password>",
"geohomeSystemId": "<your Geohome SystemID>",
"tadoUsername": "<your Tado Username>",
"tadoPassword": "<your Tado Password>",
"tadoHomeId": "<your Tado HomeId>"
}
- Add the name of the secret as an environment variable called
GASSYOCTOPUS_SECRET_ARN
to your Lambda. Ensure your Lambda Execution role has permissions toGetSecretValue
on the secret itself. - Setup an Eventbridge Schedule to run the same time every day to trigger the Lambda.
- Profit (or save money with Tado!)
Distributed under the MIT License.
- node-tado-client by mattdavis90