The Node-RED philosophy of visual programming allows for the creation of event-driven data flow applications, where the exchanged messages are in JSON format. On the other hand, periodic processes can also be developed by scheduling one or more internal timers. This means that users can develop Proc.Logic / IoT Apps as Node-RED flows, exploiting both Push and Pull data protocols, in the same visual programming environment. In the context of smart cities, both protocols are needed, while Proc.Logic / IoT Apps are capable of creating flows and exploiting a large number of features that are typically not available in the Node-RED open library, nor in several libraries from different providers. Moreover, the Snap4City MicroServices are at a level that can allow even non-expert users to easily develop Logic / IoT Apps for smart cities.
Actually, there are more than 180 nodes/blocks in the Snap4City libraries on IoT App which can really facilitate your life and save your time in producing Smart Applications for composition of the following microservices and using those that you can install from internet, thousands of functionalities:
- Data ingestion: more than 130 protocols IoT and Industry 4.0, web Scraping, external services, any protocol database, etc.
- Data access: save/retrieve data, query search on expert system, georeverse solution, search on expert system Km4City ontology, call to Smart City API, etc.
- Data Transformation/transcoding: binary, hexadecimal, XML, JSON, String, any format
- Integration: CKAN, Web Scraping, FTP, Copernicus satellite, Twitter Vigilance, Workflow OpenMaint, Digital Twin BIM Server, any external service REST Call, etc.
- Manipulation of complex data: heatmaps, scenarios, typical time trend, multi series, calendar, maps, etc.
- Access to Smart City Entities and exploitation of Smart City Services: transport, parking, POI, KPI, personal data, scenarios, etc.
- Data Analytic: managing Python native, calling and scheduling Python/Rstudio containers as snap4city microservices (predictions, anomaly detection, statistics, etc.)
- User interaction on Dashboard: get data and message from the user interface, providing messages to the user (form, buttons, switches, animations, selector, maps, etc.), send data to special graphical widgets: D3, Highcharts, etc.
- Custom Widgets: SVG, synoptics, animations, dynamic pins on maps, etc.
- Event management: Telegram, Twitter, Facebook, SMS, WhatsApp, CAP, etc.
- Special tools as: routing, georeverse, verify if a point is included into an area, Twitter Vigilance and sentiment analysis, get the closest civic number, distance from two GPS points, etc.
- Hardware Specific Devices: Raspberry Pi, Android, Philips, video wall management, etc.
- Etc. etc.
- Creating new microservice nodes: https://www.snap4city.org/217
- tutorials of Node-RED. https://nodered.org/docs/creating-nodes/
- creating a new microservice node in node-red from some Rest Call API:
Please note that, the Entity Instances (IoT Devices) produced by a user can be delegated in read or read-write to other users. All the Entity Instances start as private of the user who created. This means that, the administrator can create the Entity Instances of the user profile and then delegate the access, or fully pass to him the Entity Instance ownership, losing the possibility of accessing to the Entity Instance.