Zibase : Alarme résidentielle et gestion du chauffage

Dans l’article thermostat Zibase et jour rouges TEMPO EDF, j’expliquai comment couper le chauffage lors des jours rouges.

Pour continuer cette série d’articles traitant de l’économie d’énergie, je vais vous montrer ici comment baisser automatiquement la consommation de chauffage électrique lorsque nous ne sommes pas dans la maison, ce qui est matérialisé par mon alarme résidentielle qui est armée en mode ABSENT (ou TOTAL).

Sommaire

  • 1 – Présentation
    • 1.1 – L’objectif
    • 1.2 – L’idée
  • 2 – Récupération de l’information « ABSENT »
    • 2.1 – Contact sec de l’alarme
    • 2.2 – Interfaçage avec la domotique
  • 3 – Exploitation de l’information
    • 3.1 – Récupération de l’information
      • 3.1.1 – d’un contact d’ouvrant radio à entrée filaire
      • 3.1.2 – d’une entrée d’un IPX800v3
    • 3.2 – Création de la variable ABSENT/PRESENT
    • 3.3 – Initialisation de la variable ABSENT/PRESENT
    • 3.4 – Traitement de l’information « ABSENT »
      • Scénario « EV ALARME ABSENT »
      • Scénario « EV ALARME PRESENT »
      • POOLING ALARME ABSENT
    • 3.5 – Modifications dans le thermostat Zibase
  • 4 – Conclusion

1 – Présentation

Le principe va être un peu le même que pour la gestion des jours rouges TEMPO EDF.

Lorsque nous ne sommes plus dans la maison,  si nous n’avons pas modifié les plages horaires des thermostats Zibase, les convecteurs électriques, vont continuer de chauffer en mode JOUR selon les plages horaires et les calendriers programmés.

1.1 – Objectif

Comme je possède une alarme résidentielle, il faudrait que la Zibase puisse récupérer l’information ARMEMENT ABSENT (ou TOTAL) pour mettre tous les radiateurs en consigne NUIT, température basse de chaque thermostat Zibase.

Plusieurs étapes sont nécessaires pour atteindre le but :

  • identifier les dispositifs permettant de récupérer dans la Zibase cette information « ARMEMENT ABSENT »,
  • exploiter cette information,
  • modifier le thermostat en conséquence.

1.2 – L’idée

Dans l’article Thermostat Zibase et Jour Rouge TEMPO EDF, je disais qu’il était possible de s’inspirer de ce tuto pour gérer un autre évènement que « jour rouge ».

Ensuite, j’avais aussi comme base de réflexion mon article récupération d’informations d’une alarme sur une box de domotique.

J’y développais les diverses possibilités d’interfaçages avec une box de domotique pour récupérer les informations utiles afin d’en tenir compte dans différents scénarios.

Enfin, Richard avait posté le tuto Zibase : Optimiser son chauffage (1/4). Le coupler à l’alarme.

2 – Récupération de l’information « ABSENT »

Je n’aborderai pas trop ce que j’ai déjà bien détaillé dans l’article récupération d’informations d’une alarme sur une box de domotique.

Comment interfacer une alarme et une box ?

2.1 – Contact sec de l’alarme

Il faut que l’alarme dispose de sorties à contact sec programmables (PGM), qu’elles soient intégrées sur la carte mère de la centrale, sur une carte d’extension filaire, ou même sur un module radio.

3-centrale-sorties-contacts-secsou

sorties à contacts secs sur module d'extension

Il faut ensuite que cette sortie soit programmée pour changer d’état lorsque l’alarme est en mode ARMÉ ABSENT.

Un autre impératif, il faut que ce changement d’état dure toute la durée de l’armement en mode ABSENT, et pas simplement le temps d’une impulsion lors du changement d’état.

2.2 – Interfaçage avec la domotique

Je présente diverses possibilités mais cette liste n’est pas exhaustive.

Via un IPX800v3 :
4-ipx800v3
Via un contact d’ouvrant radio à entrée filaire :

Certains modèles possèdent une entrée filaire que l’on pourra connecter à une sortie contact sec de l’alarme.

Il faudra bien évidemment veiller à ne pas mettre à proximité un aimant qui pourrait exciter le relais REED interne et ainsi perturber le fonctionnement.

Voici 2 modèles compatibles Zibase :

  • Le VISONIC MCT302 : protocole VISONIC 868
    VISONIC MCT302
  • le FIBARO FGK-101 : protocole Zwave
    FIBARO FGK-101

Via le module FIBARO UNIVERSEL FGBS-001 :

FIBARO FGBS-001

Voici 2 exemples de configurations :

Interfaçage via IPX800 et réseau informatique

Interfaçage via module radio

3 – Exploitation de l’information

3.1 – Récupération de l’information

Voici un exemple de programmation de la Zibase pour les 2 méthodes d’interfaçage :

  • par un contact d’ouvrant radio
  • par l’IPX800v3

3.1.1 – D’un contact d’ouvrant radio à entrée contact sec

  • Dans le configurateur Zibase en mode expert, je crée des périphériques, un pour le contact ouvert (MODE PRESENT) et un pour le contact fermé (MODE ABSENT). En effet, chaque position du contact correspond à un identifiant radio :

10-contact-ouvert-mode-present

11-contact-ferme-mode-absent

  • Je crée un périphérique virtuel de type « détecteur » qui va refléter  l’état de PRESENT/ABSENT de l’alarme dans l’interface Zodianet,
  • je choisis arbitrairement l’identifiant E5 qui n’était pas utilisé.

12-detecteur-virtuel-absent

3.1.2 – D’une entrée d’un IPX800v3

J’avais expliqué dans l’article Thermostat Zibase et Jour Rouge TEMPO EDF que l’IPX800v3 peut envoyer une notification push à chaque changement d’état d’une de ses entrées.

Il faut donc paramétrer l’IPX800v3 pour qu’il puisse prévenir la Zibase à chaque changement d’état de l’information «ABSENT/PRESENT ».

13-config-ipx800-input-7-alarme-absent

  • J’ai assigné la sortie 7 en recopie de l’état de l’entrée 7, mais ce n’est pas obligatoire. C’était en prévision de commander un voyant « ALARME ABSENT ».
  • Ensuite, je clique sur « Push settings » pour configurer le pilotage de la Zibase :

14-config-ipx800-notif-push-input-7-alarme-absent

  • je renseigne tous les champs :
    • l’IP de la Zibase dans « Serveur »,
    • 80 dans « port »,
    • le nom d’utilisateur Zibase dans « login ».
    • je coche «Enable».
    • Le push 1 doit être envoyé lorsque l’entrée est reliée à GND par le contact sec de l’alarme. Il faut commander le scénario « EV ALARME ABSENT » qui a pour numéro 78, je saisis donc l’instruction suivante : /cgi-bin/domo.cgi?cmd=LM%2078
    • Le push 2 doit être envoyé lorsque l’entrée est en l’air, c’est à dire lorsque le contact sec raccordé est ouvert. il faut commander le scénario « EV ALARME PRESENT » qui a pour numéro 79, je saisis donc l’instruction suivante : /cgi-bin/domo.cgi?cmd=LM%2079

3.2 – Création de la variable ABSENT/PRESENT

Une petite parenthèse au sujet des variables, Zodianet donne des informations ici : Variables Zibase

J’utilise une variable privée volatile mémorisé la valeur du mode en cours.

  • « Privée » parce qu’elle ne sera pas utile de l’extérieur,
  • Et « volatile » parce qu’il  ne sert à rien de la mémoriser lors d’une coupure secteur. En effet, l’état « ABSENT/PRESENT » de l’alarme peut changer durant une coupure secteur, et la Zibase ne pourra pas le savoir. J’initialise cette valeur à 0 (mode PRESENT) au boot de la Zibase afin de ne pas bloquer le chauffage.

Je choisis la V47 qui n’est pas encore utilisée.

3.3 – Initialisation de la variable ABSENT/PRÉSENT

Comme je viens de l’écrire, Il faut initialiser V47 au boot de la Zibase.

Scénario « Init ABSENT PRESENT » :

  • Je coche le stimuli « Lancé au démarrage de ZIBASE », et j’affecte la valeur « 0 » à V47 pour initialiser le mode PRESENT.

15-init-absent-present

Ensuite, je vais créer les scénarios qui mettront à jour V47 selon le changement d’état du contact.

3.4 – Traitement de l’information « ABSENT »

Maintenant, je dois programmer la Zibase pour gérer les évènements « EV ALARME ABSENT » et « EV ALARME PRESENT », le thermostat et les commandes de l’actionneur fil pilote.

Scénario « EV ALARME ABSENT » :

  • Pour la récupération de l’information par un contact d’ouvrant radio, je coche le stimuli « Périphérique D.O. 1 fermé ABSENT ». Dans le cas de l’IPX800v3, c’est lui qui lancera ce scénario via une notification push, donc il ne faudra pas cocher de stimuli.
  • je « positionne visuellement une alerte à l’état actif » du périphérique virtuel « ALARME MODE ABSENT » pour déclencher l’alerte sur l’IHM ZODIANET,
  • Si V47 était déjà positif (égal à 1 dans notre cas), je stoppe le scénario. Normalement ça ne peut pas se produire, sauf si la Zibase a raté un évènement « EV ALARME PRESENT »,
  • je positionne V47 à 1,
  • et facultativement, j’envoie une notification PUSH « ALARME MODE ABSENT » à mon Iphone.

16-ev-alarme-absent-1

17-av-alarme-absent-2

Scénario « EV ALARME PRESENT » :

  • Pour la récupération de l’information par un contact d’ouvrant radio, je coche le stimuli « Périphérique D.O. 1 ouv. PRESENT ». Dans le cas de l’IPX800v3, c’est lui qui lancera ce scénario via une notification push, donc il ne faudra pas cocher de stimuli.
  • je « positionne visuellement une alerte à l’état inactif » du périphérique virtuel « ALARME MODE PRESENT » pour supprimer l’alerte sur l’IHM ZODIANET,
  • Si V47 était déjà nulle, je stoppe le scénario. Normalement ça ne peut pas se produire, sauf si la Zibase a raté un évènement « EV ALARME ABSENT »),
  • je positionne V47 à 0,
  • et facultativement, j’envoie une notification PUSH « ALARME MODE PRESENT » à mon Iphone.

18-ev-alarme-present-11

19-ev-alarme-present-2

Particularité du cas « IPX800v3 » : Le POOLING ALARME ABSENT

Lorsqu’on utilise un contact d’ouvrant, sauf si il a une technologie à retour d’état comme le Zwave, si on rate l’information radio lors d’un passage en mode ABSENT ou en mode PRESENT, on ne pourra pas l’interroger pour connaitre son état.

l’IPX800v3 peut aussi être interroger périodiquement pour connaître l’état de ses entrées.

Initialement, le système tournait avec l’IPX800v3, mais sans faire d’interrogations régulières (ou Pooling).

Je ne me l’explique pas, mais c’était probablement lié à des problèmes réseau (switch défectueux je pense),  j’ai eu quelques loupés au niveau de la réception par la Zibase de notifications push lançant les scénarios « EV ALARME ABSENT  » et « EV ALARME PRESENT ».

C’était très problématique car :

  • si la Zibase ratait l’évènement « mode ABSENT » de l’alarme, le chauffage ne s’arrêtait pas, donc ça me coutait plus cher en consommation électrique.
  • si la Zibase ratait l’évènement « mode PRESENT » de l’alarme, le chauffage ne redémarrait pas, donc il faisait un peu frais !

Ici, La Zibase va scruter régulièrement l’entrée 7 « ALARME ABSENT » de l’IPX800v3 :

  • Ce scénario est exécuté que toutes les 300s. En effet, on n’est pas à 5mn dans la gestion du chauffage.
  • V45 est une variable que j’utilise dans les requêtes HTTP.
  • Je l’initialise a la valeur « /btn6? », ce qui correspond à l’entrée 7 de l’IPX800 (les entrées 1 à 8 s’appellent respectivement btn0 à btn7).
  • Ensuite j’envoie une commande HTTP pour demander la valeur de l’entrée 7. Cette valeur sera enregistrée en V45.
  • l’IPX800v3 répond :
    • « u » (UP) si l’entrée est en l’air : contact sec de l’alarme ouvert,
    • « d » (DOWN) si l’entrée est reliée au GND (commun) : contact sec de l’alarme fermé.
  • Selon la table ASCII,  « u » vaut 117 et « d » vaut 100.
  • J’applique la formule : ((V45-100)/17)XOR1
  • Si on reçoit « d » (ou 100), la formule donne 1
  • Si on reçoit « u » (ou 117), la formule donne 0
  • Cette valeur est stockée en V47, variable qui reflète l’état de « ALARME ABSENT »
  • Enfin, selon la valeur de V47, je lance le scénario « EV ALARME ABSENT » ou « EV ALARME PRESENT ».

20-pooling-alarme-absent-1

21-pooling-alarme-absent-2

On a maintenant tout ce qu’il faut.

Pour résumé :

La sortie contact sec de l’alarme est programmée pour changer d’état en fonction de l’état « ARMEMENT ABSENT »

Si on utilise un contact d’ouvrant radio : 

Sur un changement d’état, le contact d’ouvrant envoie un code radio et dans la Zibase va être lancé le scénario « EV ALARME ABSENT » ou « EV ALARME PRESENT » selon le cas, scénario déclenché par le stimuli du périphérique correspondant.

Si nécessaire, Il sera mis à jour la variable V47 donnant l’état de «ALARME ABSENT ».

Si on utilise une entrée d’un IPX800v3 : 

Selon le changement d’état, l’IPX800 envoie une notification push différente à la Zibase, ce qui lancera le scénario « EV ALARME ABSENT » ou « EV ALARME PRESENT ».

Si nécessaire, Il sera mis à jour la variable V47 donnant l’état de «ALARME ABSENT ».

Toutes les 300s, la Zibase scrute l’IPX800v3 pour connaître l’état de son entrée « ALARME ABSENT » et mettre à jour si nécessaire la variable V47.

3.5 – Modifications dans le thermostat Zibase

J’avais détaillé le fonctionnement du super-thermostat Zibase dans l’article Gestion multi-thermostats Zibase.

Donc je vais juste reprendre le scénario « THERMOSTAT ».

Voici dans un scénario  le thermostat « Thermo RDC » d’origine :
22-thermostat-rdc-avec-gestion-jour-rouge-1

Dans  ce scénario, je modifie la valeur de la variable de sortie V13 :

23-thermostat-rdc-avec-gestion-alarme-absent

Juste après le thermostat, on vient tester de V47 :

  • Si V47 >0 : l’alarme est en mode ABSENT, donc je mets 0 dans V13, ce qui correspond au mode NUIT.
  • Si V47=0  : l’alarme est en mode PRÉSENT, donc V13 ne change pas.

Maintenant, dès que l’alarme est activée en mode ABSENT, chaque thermostat régulera en mode NUIT.

Il sera toujours possible de forcer un mode particulier (JOUR, NUIT, JOUR/NUIT  TEMPORAIRE,  HORS GEL ou STOP).

4 – Conclusion

La solution fonctionne parfaitement et permet de faire quelques économies substantielles.

Bien entendu, il fera forcément plus frais au retour à la maison après un départ assez long, puisque tous les thermostats seront en mode NUIT, mais on ne peut pas gagner sur tous les tableaux, à moins de faire une gestion intelligente de géolocalisation pour que la Zibase se rende compte qu’on est sur le retour… pas simple !

Il sera toujours possible, 1h ou 2 avant de rentrer, de se connecter à distance à la Zibase via l’app Zodianet pour mettre les thermostats en mode « JOUR TEMPORAIRE ».

One Comment

  1. Zibase : Alarme résidentielle et gestion du chauffage | Frédo et ses idées lumineuses
    11 mai 2015 @ 15 h 30 min

    […] Zibase : Alarme résidentielle et gestion du chauffage […]

Leave a Reply