An ESP32 can read a sensor and send a message in a few lines of code. That is enough for a bench demo, but it is not enough for a reliable alerting system.
The difference appears when the project runs unattended. Sensors bounce, readings hover around thresholds, Wi-Fi drops, and a fault can generate hundreds of repeated events. If every raw event becomes a notification, the engineer quickly learns to ignore the channel.
A better design treats messaging as the last stage of an event pipeline: detect the condition, decide whether it matters, then notify a person.
Start by Separating Detection From Notification
Detection answers a machine question: did something change?
Notification answers a human question: does someone need to know about it now?
Those questions should not be handled b ...