So there I was, walking back from picking up a fob for my flat building's car park when I realised Octopus Energy, our energy supplier have smart meters. They must have an API, so I did a bit of digging and that's when I came across it. Neat, now I'd rather not have to pay for a little smart meter that'll just show our energy usage, rather, a dashboard that can be display on a tablet, that's stuck on the wall, and it could be used to display the following:
Weather
Energy Usage
Probably just start off with Octopus Energy since they have a fully public facing API while others such as OVO doesn't.
Water Usage
If only united utilities actually had a public API, so for now this is just a goal
Tasks
CRUD abilities allowing anyone with the correct permissions, to do so.
Personal Greeting
Good morning Oscar, it's currently 6:45am on Tuesday 9th September 2025.
Email integration
This would definitely be a future feature.
So let's break down the idea shall we?
The dashboard will most likely be a PWA, just for simplicity sake. Now before we can turn it into a PWA... we need to make the website first. So we'll utilise Symfony for the framework and just because of familiarity with development, use Forumify for security and role based access control because who knows, maybe we'll turn this into a SaaS platform for people.
I'd split the development into two phases:
Phase 1
As this is just a small project I wanted to do within a day on a random Tuesday, Phase 1's end goal is to have a fully functioning dashboard that allows me to display my flat's energy usage, the weather, and then tasks to remind me to do. This means, I won't likely fully utilise Forumify's RBAC functionality, just it's user security, so I can make the website live, and only I can access it with my account.
Phase 2
This phase's endgoal would be turning Pulse into an actual SaaS platform style website where anyone can create an account, setup their data and then install the PWA and have their own smart home dashboard anywhere. Ideally, free of charge,
As of writing this post, I have just begin developing Pulse with the forumify plugin setup being completed.
So there I was, walking back from picking up a fob for my flat building's car park when I realised Octopus Energy, our energy supplier have smart meters. They must have an API, so I did a bit of digging and that's when I came across it. Neat, now I'd rather not have to pay for a little smart meter that'll just show our energy usage, rather, a dashboard that can be display on a tablet, that's stuck on the wall, and it could be used to display the following:
So let's break down the idea shall we?
The dashboard will most likely be a PWA, just for simplicity sake. Now before we can turn it into a PWA... we need to make the website first. So we'll utilise Symfony for the framework and just because of familiarity with development, use Forumify for security and role based access control because who knows, maybe we'll turn this into a SaaS platform for people.
I'd split the development into two phases:
Phase 1
As this is just a small project I wanted to do within a day on a random Tuesday, Phase 1's end goal is to have a fully functioning dashboard that allows me to display my flat's energy usage, the weather, and then tasks to remind me to do. This means, I won't likely fully utilise Forumify's RBAC functionality, just it's user security, so I can make the website live, and only I can access it with my account.
Phase 2
This phase's endgoal would be turning Pulse into an actual SaaS platform style website where anyone can create an account, setup their data and then install the PWA and have their own smart home dashboard anywhere. Ideally, free of charge,
As of writing this post, I have just begin developing Pulse with the forumify plugin setup being completed.
{ "name": "citadel/pulse", "type": "forumify-plugin", "keywords": ["symfony-ux"], "description": "Smart Home Dashboard", "minimum-stability": "stable", "license": "proprietary", "require": { "forumify/forumify-platform": "^0.4.20" }, "autoload": { "psr-4": { "Citadel\\Pulse\\": "src/" } }, "extra": { "forumify-plugin-class": "Citadel\\Pulse\\CitadelPulse" } }Here's a little snippet of the composer.json.