Aurora HomeAurora HomeDocs
DocsSimulateur de capteurs

Simulateur de capteurs

Un script Node.js pour tester le système d'alertes et les mises à jour temps réel sans avoir de capteurs ESP32 physiques.

Le simulateur utilise l'endpoint POST /api/dev/inject-sensor qui n'est disponible qu'en mode development. Il retourne 403 en production.

Commandes npm

npm run simulate
npm run simulate:co2
npm run simulate:temp
npm run simulate:hum
npm run simulate:sudden

Options avancées

scripts/simulate-sensors.mjs
# Intervalle personnalisé (défaut : 3000ms)
node scripts/simulate-sensors.mjs --interval 2000

# URL personnalisée (défaut : http://localhost:3000)
node scripts/simulate-sensors.mjs --url http://localhost:3003

# Combinaison
node scripts/simulate-sensors.mjs --anomaly co2 --interval 1000

Sortie console

Terminal
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Aurora Home — Simulateur de capteurs
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Mode     : anomalie "co2"
  Serveur  : http://localhost:3000
  Intervalle: 3000ms
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Ctrl+C pour arrêter

[10:32:01] step=  1 | T= 21.5°C  H= 55.0%  P= 1013.2hPa  CO₂= 530ppm  L= 312lx
[10:32:04] step=  2 | T= 21.6°C  H= 55.2%  P= 1013.1hPa  CO₂= 618ppm  L= 298lx
[10:32:07] step=  3 | T= 21.4°C  H= 55.1%  P= 1013.3hPa  CO₂= 712ppm  L= 321lx

Endpoint POST /api/dev/inject-sensor

Le simulateur poste vers cet endpoint à chaque intervalle. Pour chaque capteur fourni, le serveur crée un DataPoint, lance la détection d'anomalie et émet les événements SSE.

Payload
{
  "temperature": "22.5",
  "humidity": "58.0",
  "pressure": "1013.2",
  "co2": "820",
  "light": "310"
}
1

Crée un DataPoint en base pour chaque capteur

2

Récupère les 6 derniers relevés pour calculer la moyenne glissante

3

Appelle detectAnomaly() — vérifie seuils et variation soudaine

4

Si anomalie détectée et aucune alerte récente → crée une Alert + émet alert_created via SSE

5

Émet sensor_update via SSE pour mettre à jour les cartes du dashboard

Tester le système d'alertes

Les modes anomalie font monter les valeurs progressivement sur ~20 étapes jusqu'à dépasser les seuils WARNING puis HIGH. Exemple avec --anomaly co2 :

  • → Étape ~4 : CO₂ dépasse 800 ppm → alerte WARNING générée
  • → Étape ~11 : CO₂ dépasse 1500 ppm → alerte HIGH générée
  • → Étape ~16 : CO₂ dépasse 2000 ppm → alerte CRITICAL générée

Commandes de seeding

Des scripts npm permettent de remplir la base de données avec des données historiques réalistes pour tester les graphiques et le score IAQ.

npm run seed:7days
npm run seed:7days:clear
npm run test:iaq
npm run test:iaq:excellent
npm run test:iaq:good
npm run test:iaq:moderate
npm run test:iaq:poor