This is a specification for a "Smart Home" consisting of services over a LAN/WLAN.
A service is composed of one or more edge devices with a front end. Edge devices may be utilized by one or more services, but a service will only have one front end. Front end's are the primary means of interacting with edge devices however there may be additional local I/O on the edge device
- LCD read outs
- Kill switches
- etc.
It is up to the definition of a specific service to specify these additional non standard interactions.
Edge devices either serve data and/or interact with the real world.
- serve environmental data
- control a plug, motor, etc.
- self contained
- communicates over HTTP
The front end is where the "business logic" is implemented and the user is offered an appropriate interface to realize the necessary control over the service.
- systemd as a front end:
- minimal user interface
- one time actions:
- systemd unit:
- simple
- one-shot
- systemd unit:
- regularly scheduled actions:
- systemd unit
- systemd timer
- script as a front end:
- moderate user interface
- short lived processes offers direct control over:
- starting
- stopping
- parameters
- web server as a front end:
- maximal user interface
- more powerful than the systemd or script front ends
- can offer the functionality of one or more systemd and script frontend via web control
- easy to use
Edge devices hosts:
- esp32
- raspberry pi
- single board computers
Frontend hosts:
Ideally able to run a linux operating system:
- SBC (single board computer)
- can be low power, more ram offers more performance
- odroid 8gb