Raspberry Pi : Centralised and extendible U.I. for I.O.T.

IOT ‘Control Ware Bloat’ and a simplified, extendible, and centralised interface.

A few months back I upgraded our home network firewall capabilities with a Raspberry Pi that I had spare from an old project and was no longer using. The Pi had previously been connected to a 7inch touch screen and was mostly used for code scripting and basic Pi project tutorials. After dismantling the setup with a re-arrange of the home office, the Raspberry Pi was left sitting in a box until the idea came to put it to good use and apply it as a dedicated Firewall system.

This setup started me thinking more about the Raspberry Pi devices and the various roles they can play in the home network. I came across the Pi Cluster rack on Amazon.com, and triggered memories of recent experiences with OpenStack, NextCloud, and a suite of custom Python scripts I created, designed to distribute and load balance various tasks over a cluster of machines. I started to think about various server applications and practical usability using these awesome, effective devices.

One thing that I wanted to design, again inspired by the Firewall project and recent web application development projects, a custom smart home interface that runs as a web application hosted on the home network. The reason for this: tie in the controls with an at home virtual assistance, also presented as a web application.

The beauty of this, in addition to actually having a virtual assistance and smart home interface, is that a personally developed web application interface for each of these can easily be combined on the landing page. A home virtual assistant with voice control and text to speech, can also be asked to then control the smart devices in the home. Tie in some natural language capabilities and you could essentially start working it towards a comparable version of JARVIS from Iron Man! (Way too awesome of a thought to explain how that vision plays out in my mind – what a dream!)
The extendibility and integration opportunities become basically endless, but more importantly each new feature can be implemented and additional controls added to the existing control suite as simply as extending the site map and html pages, buttons, links, sliders etc.

Various parts – home assistant, smart home control page, voice control, calendar controls, weather, media centre, device connectivity administration, communications centre for emails, sms, photos and video message, network storage, DMS, etc etc. The list goes on.

A web application would be hosted on the Raspberry Pi device, it would then be a simple Python web app hosted using NGINX and GUNICORN and available to other devices on the home network, the web app landing page could have additional pages and controls added as each new feature is created and then integrated into the original webapp.

The Raspberry Pi would have a connected touch screen, as well as a connected USB speaker/microphone as used in a videoconferencing meeting room to pick up the vocal commands and to play back the text to speech read outs.

=/