Software apps and online services
RASP.ONE is a uwp c # project that aims at the objective of creating a development environment for the home automation of your house / garden / etc ...
It consists of elements:
is a uwp c # application with a xaml graphical interface that allows you to add one or more maps in which the user can position and configure the sensors and describe the rules with which they interact.
It is possible to install in the network many Control Centers but only one can be a Node of the rules and it will have the task of capturing every sensor or home automation system and describing the reactions that the other iot elements of the rasp.one network will have
Is a uwp c # application that contains all the drivers to control the sensors (pir, light, temperature, umidity, moisture, ...) and that communicates with the control panel and its rules through the protocol
MOSQUITTO SERVER to manage the MQTT protocol, in my project I use a Synology NAS with Mosquitto, but it is possible to use another raspberry as a mqtt server.
4) MARIA DB
Mysql Server useful for storing all the configuration and programming rules, in my project I use MariaDB on Synology NAS, but it is possible to use another raspberry like mysql server.
Note only the control panel accesses the DB,
the nodes communicate only in MQTT
HOW DOES IT WORK
The user through the central rasp.one configures the map of its sensors and configures it on which node and raspberry pins will be connected.
It will also define the simple actions to trigger when a sensor reaches a controlled value or can program rules (complex actions) when it will be necessary to check multiple sensor states to take action.
SIMPLE ACTIONS (work in progress)
The node a sensor emits a signal, the value of the signal is sent via mqtt to the central unit, the control panel reads if there are simple actions and executes it.
Example PIR detects the passage of a person and sends the signal to the control panel, the entral searches on the DB if there are simple actions and detects that a light must be turned on at home via node 3 on the relay connected to pin 15 and a led of rnode 4 on pint 16, the light is accessed on the physical control panel, and on the control panel's graphic interface the sensor status is displayed.
This is the initial way to describe the interactions between the devices of the IOT network, mainly used to start using the software in my home but the real way to implement in the project is the one described below as COMPLEX ACTION that we can also call Rules Flow or if you want Pseudo programming language, maybe it's too much but in fact it should consetire with a few clicks to create the rules of interaction between the iot objects that you will insert into your rasp.one network.
COMPLEX ACTIONS (work in progress)
It works like a simple action only that script are more complex similar to a programming language that tests multiple sensors (example if pir is tripped, the light sensor says it is dark then I have to turn on the light) and can perform embedded actions like control of the time or month or a setting
This component is in the process of working, I would like to have an editor with intellisense and allow a pseudo programming language but the problem is just design the plant in UWP that has few controls available on the market and in addition to the TELERIK that are FREE I have not used other third-party checks.
The project is in continuous evolution, and the final result would be to have a development environment in which everyone can draw and describe the relationships between the sensors and realize any IOT project just by configuring the system.
In fact, to obtain this result a library is needed that is able to control the sensors.
If I look away, the interface classes with sensors or iot controllers could become standard plugins, just to have the help of the community in this, but it's only recently that I got stuck to iot but I do not think there is much excitement around iot c #, we'll see what happens
Control the system using a grafical interface !!!
The graphic interface provides a toolbar that allows you to take and drag into the map the desired sensor and then confgurarlo.
For now, in the toolbar there are icons to manage:
- CENTRAL NODE
- TEMPERATURES (DHT11 / 22)
- UMIDITY (DHT11 / 22)
other sensors will be added as I buy them
Another goal of the project is to have a sort of central but that does not use the monitor as it does not need to configure it but uses LEDs connected to a raspberry that will serve to signal PIR or LIGHTS lit and buttons that will be used to activate the controls and speakers to emit alarm sounds or bells. This project will use all the software infrastructure of RASP.ONE and will be detailed in a separate article (for now I only know how to do it but I have not started)
The difficulty lies in finding a library that controls as many sensors as possible, making drawings of all the wiring diagrams and making them available on the control panel to make life easier for those who implement the system with rasp.one and improve the graphical interface with uwp xaml, but I'm alone and I've known the raspberry system for 1 month.
But in the end I can have a system for practically domotizing what I want