About echoBUTLER
ehcoBUTLER uses IoTool platform, allows connection to different sensors (list of all supported sensors).
IoTool is comprehensive, one-stop IoT Solution incorporating Client / Dashboard / Gateway / Cloud / API. The Android device (smartphone, tablet or TV box), RPi, Arduino or ESP32 microcontroller is used as a gateway to sending and receiving data to and from the IoTool cloud or other clouds (IBM Watson, Amazon, InitialState).
For the project, not all sensors are suitable and for the pilot mHealth band is used, although other biosensors (like various heart rate), activity (general activity, steps, sleep), environmental (humidity, temperature, flood, door/window, smoke and similar) can be added. For demonstration purposes, the whole portfolio of 22 Shelly sensors with 143 different sensor readings and Ruu.vi tag is added. During the various phases of project, other sensors has been supported, but they are not on the market anymore, are too invasive for the project needs or not accepted from the pilot partners, like: eMotion Faros, a general purpose HR monitor, Microsoft Band 2, Nonin OnyxII, Polar H7, Xiaomi Mi band 1s/2. Also other wristbands and bio-sensors has been tested, and various triggers (list of supported triggers) can be set with actions (list of supported actions).
IoTool architecture
IoTool clients
-
Android (smartphone, tablet, AndroidTV), for ehcoBUTLER project the tablet is used. The application is developed in JAVA. IoTool description, IoTool client user manuals. A short description: every extension (sensors, virtual sensor, trigger, action, cloud) is a separate program. IoTool client at start check all compatible programs, get the info from them what type of sensor readings, triggers and actions the support, and collect data from them based on the protocol used and device capabilities. There are no limitations about the number of different sensors, their communication protocols and sensor readings supported, or the number/frequency of data point collected. The client collects data from sensors, shows them on the client dashboard, stores them in the internal database (SQLite), and replicates them to the Cloud. The communication protocol (sensor/actuator and cloud) and internal speed of the client however pose some limitations. It is hard to estimate all limitations but our tests show that the single client can without problems handle up to 24 sensors with various sensor readings. The limit is (measured on the Samsung Galaxy S6 Edge) up to 24.000 records per second (collected, shown real-time diagrams, stored, sent to the IoTool cloud).
-
ESP32 microcontroller or RPi (not used in the ehcoBUTLER project, but can be simply added for commercial use, mostly as an IoT gateway for home sensors).
-
Direct / in sensor client - some of sensors/actuators have its own microcontroller and communication interface to the Internet. In this case are connected to the IoTool Cloud server directly, usually over the MQTT.
IoTool client can be freely downloaded from Google Play. Please note: IoTool client is a general-purpose client, not made especially for the ehcoBUTLER project. In the ehcoBUTLER, the client and all needed extensions are built into one module, which is built together with the ehcoBUTLER application (JavaScript/Cordova). In this case, all control, additional functionalities, technical support dashboard are combined in the ehcoBUTLER application PartnerTools menu, which is password protected from the end-user. For testing purposes the IoTool client can be used instead of the ehcoBUTLER application.
Hubs/Connectors for the integration of the devices, and sensors
Any Android smartphone, tablet or AndroidTV device can be used as a IoTool data connector as a part of ehcoBUTLER application (IoTool client integrated) or standalone. Also, most of these gateways are dedicated devices and not used as a
Minimum requirements
-
OS Android 7.0+
-
2 GB RAM
-
Quad-core processor
-
BLE 4.0+
-
WiFi
In case that IoChat is used with video conferencing, at least mid-range new device is suggested. For the ehcoBUTLER pilot, the Samsung Galaxy Tab A 10.1 is selected. The communication interfaces are selected based on the sensors requirements.
IoTool and Devices Protocol Communication
IoTool connects various sensors (in the ehcoBUTLER pilot projects BLE is used for communication between the sensor and the client) using the extension system. In general, also BT, WiFi or USB are used in the IoTool Client. In case of microcontroller client also serial interfaces are used. Shelly sensors (for demo purpose) are connected directly over the WiFi to the Internet and to the IoTool Server/Cloud using MQTT or http calls.
IoTool server
IoTool server is a communication/storage server installed on Linux distribution (Tested on Ubuntu, SUSE, CentOS). For the ehcoBUTLER CentOS is used. It can also work in a Docker container. It usesLAPP (Apache, PHP, PostgreSQL) and optional Mosquitto broker (MQTT), Grafana, ThingsBoard.
IoTool server functionalities
-
Collect data from different clients or sensors using a proprietary protocol, http calls or MQTT.
-
Stores data collected into the database.
-
The platform administration - IoTool adminer user manual.
-
For the ehcoButler project the IoTool server link: sensor.ehcobutler.com.
-
The server can send data to other services/brokers/platforms, like Mosquitto or the ThingsBoard platform. Data can be also visualized using third-party dashboards like Grafana.
ehcoBUTLER and IoTool Communication
Connection
IoTool client is connected to the Internet to the IoTool Cloud/Server. In case there is no data connection, all collected data is stored internally and replicated when data connection is established.
Connection format
IoTool client sends data using http post, MQTT message or proprietary format. IoTool client sends data using http post, MQTT message or proprietary format. Because of the high number of readings (up to 24k records per second possible) and mobile channel limitations (speed, coverage, especially when project has been started), the proprietary format has been selected. Data has been combined in chunks (1-10s together, in settings), compressed and sent over the secured channel. On the IoTool Cloud/Server side, it is added to queue, unpacked, and stored into the database. In real environment the whole delay is just a few seconds, and it does not pose any problem because every sensor reading incorporates a real-time stamp. Data priority: first real time data, after not replicated history data.
IoTool/ehcoBUTLER server connection
IoTool server is connected with the ehcoBUTLER server in two points:
The User management - ehcoBUTLER application uses API to get users' data (ID, description) and this information (UserID) is sent from the IoTool client, integrated into the ehcoBUTLER application with sensor data. IoTool server doesn’t process or store any personal data. The direct connection between IoTool server and ehcoBUTLER server using user replication has been made in a past but abandoned to eliminate any personal data procession because this might generate uncertainty in terms of GDPR. As part of the ehcoBUTLER project a specific Cloud server/database has been created for the project to host the data collected from sensors, being it isolated to any other task related to the commercial activity of IoTool. This database has been incorporated to the ehcoBUTLER infrastructure so that the information is consolidated as part of ehcoBUTLER core database.
Edge and Fog computing
IoTool client in an Edge computing device. It processes and stores data on the tablet and a fraction of data is sent to the cloud. Also, the mHealth band, used in the pilot project is the edge IoT device (it stores data internally and calculates or recognized, for example, the number of steps and sleep phases). The edge computing usage can be also extended by using virtual sensors sensors. How to develop a virtual sensor extension.
There are four types/location of data storage in the ehcoBUTLER project:
-
Sensor (some of them have internal computing and storage)
-
IoTool client internal storage
-
IoTool cloud server storage
-
ehcoBUTLER server storage
All of the instances can store data internally and pass it further (storeNforward), but usually preprocessed and just a subset is sent forward. In this case, the Fog computing architecture is used.
AI usage
There are no special AI modules need based on the use cases/pilots for the ehcoBUTLER project, although for future usage there are two parts allow to extend use. 1. IoTool Client - Virtual sensors. The architecture is made in a way that the virtual sensor is (from the IoTool client) a black box, collecting data from the sensors' stream, internal database, and external sources, process data using internal algorithms or external processing services, and return the result in a form of virtual sensor reading which is treated as a normal sensor reading, therefore it can be used with another virtual sensor, like LEGO blocks. For example, in other projects, the sophistical energy consumption and activity recognition ML algorithms are used as virtual sensors.
Security
All data communication between points 2-4 is encrypted and all access to storage is secured. For the sensor, the security situation depends on the type of sensor and its capabilities. Security of communication is covered by the protocol (usually BLE).
Interoperability of data and standards for data exchange and connection with EHRs
There is no direct connection from IoTool to EHRs because all data is exchanged only with the ehcoBUTLER server. For some of the other eHealth/AAL projects (EU funded and commercial) IoTool is connected to HL6/HL7 and OpenEHR systems but the integration part depends on every specific project.
Updates
IoTool and ehcoBUTLER application (with integrated IoTool) are available on the Google Play. IoTool can be download directly from the Google Play, ehcoBUTLER is only available in Google Play Alpha Closed test track. ec@iotool.io user is in the test group, although it is suggested for test user to use its own gmail account on the device.
Alternate update service is available for closed groups on the SenLab OTA (over-the_air) Manager.
IoTool comparative analysis on other state of the art solutions in the market
There are not a lot of similar platforms on the market, combining the smartphone as an IoT sensor/actuator/trigger gateway. One of them is Wipro with Universal IoT gateway and similar architecture but it is hard to find any practical information or demo. There are plenty of sensor applications on Google Play. After analyzing most of them, two types of solutions are found:
Demo or dedicated solutions from sensor manufacturers, supporting their sensors, like abb. Solutions for the IoT Cloud providers or protocol, supporting only one cloud provider like ThingsBoard, Amazon, IBM Watson, Microsoft Azure, MQTT. Vertical solutions for home automation, eHealth or industry. but we didn’t find the universal, multi-sensor, multi-actuator, multi-protocol, multi-cloud platform/API besides IoTool.
Development guides
IoTool Client
Actions
-
Create an action extension for IoTool
-
Create an internal action for IoTool
-
Create an external action for IoTool using Bluetooth
-
Create an external action for IoTool using Wi-Fi