IoT monitoring system that tracks ESP32 telemetry (Internal Temperature, Wi-Fi Signal, Uptime) using Home Assistant and Grafana, with a custom Node.js bridge to send critical alerts and on-demand reports via WhatsApp.
- ESP32 DevKit V1
- ESPHome firmware
- Home Assistant
- Virtual Box
- InfluxDB
- Grafana
- Mosquitto (MQTT Broker)
- Node Js
- Express
- whatsapp-web.js API
Install HA follow the official tutorial. Then, install the following add-ons:
- InfluxDB
- ESPHome
- Mosquitto Broker
- Grafana
So, edit the configuration.yaml of the Home Assistant, add the code present in this
file.
Copy the content of this file, and paste inside the configuration file of ESPHome.
For the button activation, and communication with the API, you will have to paste the content of
this file inside the scripts.yaml file in HA files tree. You will need to create a button that communicates with this script.
Setup the following node dependencies:
npm init -y
npm install whatsapp-web.js qrcode-terminal express body-parser- Create a database called
esp-project - Create a user called
adminwith passwordadmin - Add the data source of Influx DB
- Then setup the Grafana dashboard with the desired visualization
- Turn on the ESP32 and verify the MQTT logs.
- Run the API:
node index.js- Read the QR code that will be showing in the terminal.
- Go in the HA dashboard and click in the configured button.
- Verify if the message in WhatsApp is consistent with Grafana data.


