Description of the intraHouse system structure
Kernel — system core. System core provides interaction between all blocks of the system.
In the RAM of system core contains the entire image of the automation system project in real time.
System core works with virtual devices. It knows nothing about real (hardware) devices and their protocols. The connection to real objects is provided by the Plugins Engine.
System core is implemented on the basis of the Node.js platform
Web Server – provides the user interface of the system. The interaction between the interface on the user’s computer and the system web server is provided by the WebSocket protocol.
User interfaces are implemented on React.js
Plugins Engine – provides interaction with the equipment actually present in the system. For this, plugins are used. Plugins are the program modules for the conforming devices (controllers, gateways, etc.). Several plugins for different equipment can work simultaneously in the system. Thus, there is the possibility of simultaneous operation of hardware components from different manufacturers and having different information protocols.
Scene Engine — scene mechanism. It provides the system logic. Scenes of the system behavior as a whole and of individual devices in particular are performed precisely thanks to the scene mechanism.
Creating scenes for the Scene Engine module, we completely determine how the system will work in our project.
Database Engine – the mechanism of working with databases. It provides storage of historical information about the system behavior.
The intraHouse system uses an event model. This is a key property of the system. This model significantly increases the speed of the system. The essence of this model is as follows. The system core (Kernel) knows nothing about the other components of the system. It simply issues a message about the state of the object, and the one who needs it takes this message and appropriately processes it. Thus, the executive components of the system use information in accordance with their purpose:
Scene Engine – dictates the rules
Plugins Engine- provides connection to real devices
Web Server – displays information about the system state