/
Rules
48 lines (35 loc) · 1.66 KB
/
Rules
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
// Optimisé avec uptime en valeur
on Courrier#State do // Détection d'ouverture
TimerSet_ms,1,500 // on créé un timer 1 de 500 millisecondes pour laisser le temps d'ouvrir la porte
endon
on Rules#Timer=1 do //Quand le timer 1 expire on fait les checks
if [Courrier#State]=1 and [Colis#State]=1 and [Temporisation#Attente]=0 // il y a un colis
GPIO 15,1 // on allume la led
TaskValueSet,5,2,[Compteur#NbColis]+1
Publish,%sysname%/action/colis,%uptime_ms% // On publie Colis RAZ avec l'uptime sur MQTT
endif
if [Courrier#State]=1 and [Colis#State]=0 and [Temporisation#Attente]=0 // il y a une lettre
GPIO 15,1 // on allume la led
TaskValueSet,5,1,[Compteur#NbLettres]+1
Publish,%sysname%/action/lettre,%uptime_ms% // On publie Lettre avec l'uptime sur MQTT
endif
if [Courrier#State]=1 and [Colis#State]=1 and [Temporisation#Attente]=1 // il y a une releve
Publish,%sysname%/action/raz,%uptime_ms% // On publie RAZ avec l'uptime sur MQTT
endif
endon
on RAZero#State=1 do // Détection appuie sur bouton poussoir
TaskValueSet,5,1,0 // Remise à zéro lettres dans NAND interne
TaskValueSet,5,2,0 // Remise à zéro colis dans NAND interne
GPIO 15,0 // On eteint la LED
timerSet,2,10 // on déclenche le timer2 pour 10 secondes
TaskValueSet,6,1,1 // on passe à 1 l'attente
timerSet,3,1 // on créé timer 3 pour la faire clignoter la led
endon
on Rules#Timer=2 do //Quand le timer 2 expire
TaskValueSet,6,1,0 // on passe à 0 l'attente
timerSet,3,0
endon
On Rules#Timer=3 do // pour faire clignoter la led
Pulse,15,1,300
timerSet,3,1
EndOn