## 3 System Development
### Data Platform  
The choice of platform was driven by the experimental nature of the use case. Therefore, platforms and open source software that could be modified and integrated with custom components were preferred. Based on previous experience and the state of the art in the field, different platforms based on similar operating logics were compared. The following platforms were selected:  
1. Node-RED: a platform developed by IBM, now open source, based on JavaScript Node.js for event and peripheral management, it supports workflow through nodes and offers great flexibility [40].
2. Open Hab, an event and peripheral management platform developed by Intellij, based on Java, has a web-based approach to event creation and management. The platform supports over 200 different OEMs through the use of bindings. Built-in support for application management [41].  
Open Remote, a Java-based platform that provides a web-based approach to creating and managing peripherals. App-based management support possible [42].
4. Home Assistant, platform developed in Python ([[https://www.python.org/](https://www.python.org/)]([https://www.python.org/](https://www.python.org/))), combined with a web-based approach, with support for agnostic hardware from any vendor, and support for management via integrated app [43].  
Several features were required, such as the ability to create differentiated access policies based on user rights, the presence of communication and data management libraries, the ability to associate databases of innovative types (temporal or non-sequential instead of sequential), the ability to visualize data, platform stability, and available support and documentation.  
The choice was therefore Node-RED, which has all the above characteristics and allows the implementation of control logics. The platform was installed via a preconfigured virtual machine on a Debian machine. Node-RED has native support for the main IoT communication protocols and offers a visual programming environment with an extensive library of nodes, making it very easy to develop IoT applications, reducing development time and guaranteeing high system reliability, since it is a platform that has been used by millions of users to date. It is also possible to connect and program processing nodes internally to the platform using custom code written in Python or using external open source software, such as KNIME.  
Data storage is divided into two parts: PostgreSQL for optimized long-lived storage and SQLlite for low-lived data. When hybrid storage is required to train predictive and machine learning models and to test innovative storage technologies, InFlux DB (temporal database) is used, which allows data to be configured and managed via a web interface. Power BI was chosen as the main tool for data aggregation and visualization, providing analysis and reports that give a deeper, more readable and measurable view of the results. Blogic Vcad 3.0 was selected as the solution to integrate and contextualize multiple data sources by simultaneously visualizing BIM models within reports and dashboards. This application, which is fully integrated with Power BI, offers a high level of interactivity, allowing users to explore the details of the information and navigate between the different components of the models to better understand the relationships and interactions between the elements themselves and the data in real time.  
Finally, it was decided to organize access to the platform by different users with different levels of access to edit information, as required by the ISO 27000 standard.