Simulateur de présence

De GCE Electronics
Aller à la navigation Aller à la recherche

Simulateur de présence

Contribution.png
Nom Simulateur de présence
Famille IPX800 V4
Wiki créé le 26/03/2018
Wiki mis à jour le 26/03/2018
Auteur fgtoul

Présentation

L'IPX800 V4 vous permet d’allumer une lampe ou tout appareil électrique, d'ouvrir ou fermer les stores, tout en étant hors de chez vous. L'IPX800 V4 vous permet également de créer des programmes de façon à allumer et éteindre une lampe à des horaires variables en fonction des jours de la semaine.

Dans la vie courante, il n'est pas rare de constater que les volets d'une habitation s'ouvrent ou se ferment à heures plus ou moins fixes tout au long de l'année, il est donc tout à fait envisageable de les programmer en fonction de la luminosité extérieure.

Cependant, allumer la TV, la radio ou les lampes dans l'habitation ne devraient pas se faire avec des plages horaires, même si elles sont différenciées en fonction des jours de la semaine. Un observateur constaterait vite que les lundis ressemblent aux lundis, que tous les mardis sont semblables, etc.

Nous avons deux types d'activités à simuler dans la maison :

  • Les activités liées à nos habitudes ou nos contraintes (départ / retour travail, le journal Télévisé de 20h00, le radio réveil le matin, etc).
  • Le mouvement. Il est possible d'allumer et éteindre des lampes, une radio, dans une pièce puis une autre, à des horaires variés tout au long de la journée et/ou de la soirée.

Les plages horaires nous aideront à planifier tout cela, mais il est nécessaire d'y ajouter des délais ou retards aléatoires entre les différentes scènes, afin de simuler au mieux une présence dans l'habitation.

Bien définir vos habitudes

Avant de vouloir programmer l'IPX800 V4, il est important de bien définir les besoins en fonction de vos habitudes. A partir de là, vous pourrez définir les plages horaires qui serviront de base à vos programmes, ainsi que les activités à simuler pour être le plus réaliste possible. Il est clair que si vous n'ouvrez pas les volets du salon, il est totalement inutile de programmer des effets d'ombres et de lumières dans cette pièce. Par contre, il sera plus judicieux d'y allumer une radio ou d'activer des effets sonores (discussion, aboiements, ...). Si les toilettes ont "fenêtre sur cour", la lumière pourra être allumée et éteinte à des heures totalement aléatoires (n'en abusez pas, il faut rester réaliste, ;).

Les outils à votre disposition

L'IPX800 V4 offre quelques outils pour la gestion du temps.

  • les plages horaires, répétitives ou pas.
  • les sorties virtuelles avec leurs précieux paramètres Ta et Tb
  • les compteurs, pouvant être utilisés pour créer des chronomètres ou comptes à rebours.

Méthode 1 : la planification simple

Vous pouvez définir vos horaires en fonction des jours de la semaine, matin, midi, soir en fonction de vos habitudes.

Par exemple, les jours de la semaine, vous ouvrez les volets vers 6h30, passez à la salle de bain, puis prenez le petit déjeuner dans la cuisine avant de partir au travail.

Vous pourriez alors facilement créer une plage horaire à 6h30 du lundi au vendredi, des plages horaires plus tardives pour le Week-end et enchaîner les différentes activités.

Mais cela serait trop répétitif, trop régulier, les éventuels observateurs décèleraient très vite la présence d'un automate.

Il convient donc de semer un peu le chaos. Il est donc préférable de créer une plage différente chaque jour (7 plages) pour le lever et les activités du soir, en les décalant de quelques minutes à chaque fois.

Exemple :
• Lundi : 6h31 - 18h15
• Mardi : 6h42 - 17:58
• Mercredi : 6h33 - 18:06
• Jeudi : 6h39 - 18:12
• Vendredi : 6h36 - 17:31
• Samedi : 7h25 - 18:35
• Dimanche : 8h32 - 18:45

Si vous devez simuler une activité en milieu de journée, prevoyez également plusieurs plages horaires.

Inconvénient : les semaines se suivent et se ressemblent.

Méthode 2 : Le chaos avec les sorties virtuelles

Fonctionnement

L'IPX800 V4 permet de faire "clignoter" les sorties virtuelles, grâce à leurs paramètres Ta et Tb. Selon les paramètres de votre IPX800 V4, ces temporisations sont exprimées en dixièmes de secondes, ou en secondes (par défaut). Pour ce tutoriel, nous nous exprimerons en secondes, il vous suffira de multiplier les valeurs par 10 si nécessaire. Ta et Tb acceptent 13743 comme valeur maximale, ce qui représente 13743 secondes (soit 3h49 environ) ou 13743 dixièmes de secondes (soit environ 23 minutes) selon vos paramètres. Dans un cas comme dans l'autre, c'est amplement suffisant pour nos besoins qui se limiteront à quelques minutes.

Nous allons faire clignoter nos sorties virtuelles en utilisant des valeurs qui ne sont

  • ni des sous-multiples de soixante
  • ni des sous-multiples l'un de l'autre

ceci afin d'éviter que nos sorties virtuelles ne se mettent à clignoter trop souvent à l'unisson après leur activation. Pour ma part, je choisis de sélectionner mes valeurs parmi les nombres premiers (7, 11, 13, 17, 19, 23, ...). Vous remarquerez que je n'utiliserai pas les valeurs 2, 3, 5,.. puisque ce sont des nombres diviseurs de soixante. Le nombre de sorties virtuelles à utiliser dépendra du nombre d'activités à simuler. Il en faudra tout de même deux au minimum. Soit

  • SV1 la première sortie virtuelle avec Ta=1020, Tb=1020 (1)
  • SV2 la seconde sortie virtuelle avec Ta=1380, Tb=1380 (2)
Notes :
(1) 1020 = 17 * 60 soit 17 minutes

(2) 1380 = 23 * 60 soit 23 minutes

Les 2 figures ci-dessous montrent comment les activités 1 et 2 peuvent être retardées de manière aléatoire en fonction de la plage horaire, de l'heure de démarrage de l'IPX800 et de l'état des sorties virtuelles SV1 et SV2.

  • Figure 1 :

RandomSV1.png

Au moment de la demande de lancement des activités, SV1 est OFF.
Pendant un délai T1, l'activité 1 est mise en attente du passage à l'état ON de SV1.
L'activité 2 est lancée immédiatement puisque SV2 est déjà ON.

  • Figure 2 :

RandomSV3.png

Au moment de la demande de lancement des activités, SV1 et SV2 sont OFF.
Pendant un délai T, l'activité 1 est mise en attente du passage à l'état ON de SV1.
L'activité 2 est mise en attente du passage à l'état ON de SV2 pendant un délai T2.

Programmation

Nous allons maintenant créer les scènes qui permettront l'activation de nos sorties virtuelles

Evènement : NON SV1
Action : ON
Résultat : SV1

Evènement : NON SV2
Action : ON
Résultat : SV2

Dès la création des scènes et à chaque redémarrage de l'IPX800 V4, nos 2 sorties virtuelles seront immédiatement activées et clignoteront 24/24.
Chaque jour, à la même heure, l'état de ces 2 sorties virtuelles sera différent, car nous avons bien pris soin de ne pas choisir des nombres diviseurs de 60. Nous commençons à entrevoir les principes aléatoires.


Maintenant programmez votre simulateur de présence :

pour chaque activité planifiée par plage horaire, ajoutez une scène

Exemple 1 : Simulation matinale pour le lundi :

Evènement : PlageHoraireLundi ET SV1
Action : ON
Résultat : Activité 1 (ce que vous voulez)

Evènement : PlageHoraireLundi ET SV2
Action : ON
Résultat : Activité 2 (ce que vous voulez)

Evènement : PlageHoraireLundi ET NON SV2
Action : ON
Résultat : Activité 3 (ce que vous voulez)

Exemple 2 : Simulation vespérale du lundi:

Evènement : NON PlageHoraireLundi ET SV1
Action : ON
Résultat : Activité 4 (ce que vous voulez)

Evènement : NON PlageHoraireLundi ET SV2
Action : ON
Résultat : Activité 5 (ce que vous voulez)

Evènement : NON PlageHoraireLundi ET NON SV1
Action : ON
Résultat : Activité 6 (ce que vous voulez)


Vous l'aurez compris, vous pouvez combiner ainsi autant de sorties virtuelles et de plages horaires que vous voulez, tout dépend de la complexité de vos besoins.

Si vous avez paramétré des plages pour des activités annexes durant la journée, procédez de la même façon.

Notez que vous pouvez encore augmenter les irrégularités en démarrant une activité en fonction d'une sortie virtuelle, puis en y mettant fin en fonction d'une autre .

Exemple : la radio le matin dans la salle de bain
 
Evènement : PlageHoraireRadio ET SV1
Action : ON
Résultat : Radio SDB

Evènement : NON PlageHoraireRadio ET NON SV2
Action : OFF
Résultat : Radio SDB

Méthode 3 : Le chaos avec un compteur

Précédemment, nous avons vu comment faire clignoter 2 sorties virtuelles afin d'obtenir des états ON ou OFF de manière aléatoire en fonction de nos plages horaires. Vous comprendrez facilement que ce principe n'est valable que si l'IPX800 n'est pas redémarrée quotidiennement à heure fixe, de manière programmée. Dans ce cas, nos sorties virtuelles seraient toujours activées à la même heure, et présenteraient toujours le même état au moment du besoin. Ainsi, les sorties virtuelles perdraient toute leur efficacité dans la randomisation de nos horaires. Nous allons utiliser un autre moyen pour établir le chaos.

Principe

Nous allons utiliser un compteur. Nous l'incrémenterons 1 fois par jour et lui fixerons une valeur maximale. Il sera donc régulièrement remis à 1 à chaque fois qu'il atteindra ce maximum. Au démarrage de chaque activité par notre simulateur, nous ajouterons un retard à nos horaires planifiés, en fonction de la valeur de ce compteur.

Pour ce faire, nous utiliserons le principe du compte à rebours variable proposé par @Teebex.Vous pourrez en retrouver le principe ici

Fonctionnement

En fonction de la valeur maximale choisie pour le compteur, nous allons obtenir des cycles différents, mais au bout d'un certain nombre de jours, le cycle redémarre.

En effet, imaginons que la toute première fois, notre compteur est incrémenté un mardi et que la valeur maximale est 4.

PGCM7-4n.PNG

nous obtiendrions le tableau de valeurs suivant

J1 Mardi 1
J2 Mercredi 2
J3 Jeudi 3
J4 Vendredi 4
J5 Samedi 1
J6 Dimanche 2
J7 Lundi 3
J1 Mardi 4
... ...

ainsi de suite jusqu'a la cinquième semaine, ou nous retrouverions un index 1 pour le mardi. Le cycle recommencerait donc comme au premier jour et nous appliquerions donc les mêmes retards à notre simulateur de présence.


Examinons le cycle des réinitialisations de notre compteur en fonction de sa valeur maximale afin d'en déterminer la périodicité.


Exemples : soit x la valeur maximale attribuée au compteur

1er cas, x <7

  • Si nous choisissons de réinitialiser notre compteur tous les 2 jours, le plus petit commun multiple (PPCM) de 7 et 2, c'est 14.
    Si la première réinitialisation a lieu un Mardi, il ne faudra attendre que la troisième semaine pour qu'une réinitialisation du compteur retombe un mardi, cela revient à dire qu'il faudra donc attendre 14 jours pour qu'un même délai soit appliqué le même jour de la semaine.

PGCM7-2n.PNG


  • Si nous choisissons de réinitialiser notre compteur tous les 3 jours, le plus petit commun multiple (PPCM) de 7 et 3, c'est 21, soit 3 semaines.
    Si la première réinitialisation a lieu un Mercredi, il ne faudra attendre que 3 semaines pour qu'une réinitialisation du compteur retombe un mercredi, cela revient à dire qu'il faudra donc attendre 3 semaines pour qu'un même délai soit appliqué le même jour de la semaine.

PGCM7-3n.PNG

2ème cas : x=7

  • Si nous choisissons de réinitialiser notre compteur tous les 7 jours, toutes les semaines se ressembleront. Notre compteur aura toujours la même valeur les lundis, une autre valeur tous les mardis, et ainsi de suite. Les délais liés au compteur, fixés par scénario, seront donc identiques chaque semaine.

C'est donc une valeur à éviter.

3ème cas : x>7

  • Exemple avec la valeur 8. Le PPCM de 7 et de 8, c'est 56. Il faudra donc attendre 56 jours pour qu'un même délai soit appliqué le même jour de la semaine.
  • Exemple avec la valeur 10. Le PPCM de 7 et de 10, c'est 70. Il faudra donc attendre 70 jours pour qu'un même délai soit appliqué le même jour de la semaine.

Plus la valeur choisie sera grande, plus il faudra écrire de scènes pour sa gestion. Pour notre tutoriel, nous choisirons le nombre 6 comme valeur maximale, ce qui donne une périodicité de 6 semaines.

PGCM7-6n.PNG

Application

Créons d'abord une plage horaire se répétant quotidiennement, à un horaire quelconque, d'une durée de 30 minutes environ. [Image plage horaire]

Afin d'allonger la période du cycle, nous n'allons pas réinitialiser notre compteur à heure fixe. Nous allons donc combiner notre plage horaire à l'état de l'une de nos 2 sorties virtuelles créées précédemment et glignotant H24 Nommons CPTJ notre compteur, PlageHoraireJ notre plage horaire et écrivons 2 scènes :

scène 1 :
Evènement : PlageHoraireJ ET SV1
Action : ON
Résultat : CPTJ (Incrémentation valeur=1)

scène 2 :
Evènement : CPTJ (valeur=7)
Action : ON
Résultat : CPTJ (SET valeur=1)

* En scène 1, malgré l'utilisation d'une plage horaire, nous voyons que notre compteur est incrémenté à heure différente chaque jour (car dépend de l'état de SV1. Il y a donc une temporisation variable de 0 à 17 minutes)
* Dans la scène 2, vous remarquerez qu'ausitôt passé à la valeur 7, CPTJ est réinitialisé à 1. Ses valeurs sont donc comprises dans l'intervalle [1;6]
 


Nous allons utiliser un autre compteur pour le compte à rebours (C2) et une sortie virtuelle VO31 (vérifie que l'incrémentation ne se produit qu'une fois)

Pour notre compte à rebours, nous avons besoin

  • d'une sortie virtuelle (VO10) avec TA =0 et TB=60 (le décompte se fait en minutes)
  • d'une 2ème sortie virtuelle (VO20) avec TA =0 et TB=0
  • d'une autre sortie virtuelle (V030) avec TA=0 et TB=10

Voici les scènes : Dès que C2 est supérieur ou égal à 1, le décompte se fait minute après minute.

Pour démarrer / arrêter le compte à rebours :
:::Evènement : C2 (Valeur >= 1)
:::Action : [On/Off]
:::Résultat : VO20
				
:::Evènement : NON C2 (Valeur >= 1)
:::Action : [Off]
:::Résultat : VO31

Pour égrainer les minutes :
:::Evènement :[NON] VO10 [ET] VO20 
:::Action :[On]
:::Résultat : C2 (Décrémentation 1) ; VO10

Nous utiliserons également 2 autres sorties virtuelles avec Ta=0, Tb=0. Elles seront nommées ActiviteSemaine et ActiviteWE Elles permettront la simplification des scènes en créant une condition simple en fonction de l'état des plages horaires.

:::Evènement : PlageHoraireLundi OU PlageHoraireMardi OU PlageHoraireMerc OU PlageHoraireJeudi OU PlageHoraireVend
:::Action : ON/OFF
:::Resultat : ActiviteSemaine

:::Evènement : PlageHoraireSamedi OU PlageHoraireDimanche OU PlageHoraireSamediMidi OU PlageHoraireDimancheMidi
:::Action : ON/OFF
:::Resultat : ActiviteWE

Initialisons le compte à rebours variable en fonction de notre compteur si une activité doit démarrer. En fonction de l'index, nous ajouterons un délai de 4, 12, 6, 8 ou encore 5 minutes à nos plages Horaires.

:::Evènement : ActiviteSemaine OU ActiviteWE ET CPTJ (Valeur >= 5) ET NON VO31
:::Action : [On]
:::Résultat : C2 (Incrémentation 4) ; VO31
	
:::Evènement : ActiviteSemaine OU ActiviteWE ET CPTJ (Valeur >= 4) ET NON VO31
:::Action : [On]
:::Résultat : C2 (Incrémentation 12) ; VO31
 
:::Evènement : ActiviteSemaine OU ActiviteWE ET CPTJ (Valeur >= 3) ET NON VO31
:::Action : [On]
:::Résultat : C2 (Incrémentation 6) ; VO31	
:::
:::Evènement : ActiviteSemaine OU ActiviteWE ET CPTJ (Valeur >= 2) ET NON VO31
:::Action : [On]
:::Résultat : C2 (Incrémentation 8) ; VO31
:::	
:::Evènement : ActiviteSemaine OU ActiviteWE ET CPTJ (Valeur >= 1) ET NON VO31
:::Action : [On]
:::Résultat : C2 (Incrémentation 5) ; VO31


Déclenchons nos simulations lorsque le compte à rebours arrive à 0

:::Evènement : :[NON] VO20 ET PlageHoraireLundi
:::Action : [On]
:::Résultat : Ouverture Stores
				
:::Evènement : [NON] VO20 ET NON PlageHoraireLundi
:::Action : [On]
:::Résultat : Fermeture Stores				

 
:::Evènement : [NON] VO20 ET PlageHoraireRadio
:::Action : ON
:::Résultat : Radio SDB
				 
:::Evènement : [NON] VO20 ET NON PlageHoraireRadio
:::Action : OFF
:::Résultat : Radio SDB