Les actions - Liste 3ième partie

Configurateur>>Scénarios>>Actions>>Liste 1ière Partie/2ième Partie/3ième Partie/4ième Partie/5ième Partie/6ième Partie/>>Variables

 

CETTE PAGE FAIT PARTIE D'UNE DOCUMENTATION.

ELLE EVOLUE EN PERMANENCE ET NE DOIT PAS ETRE DUPLIQUEE. FAITES Y PLUTOT REFERENCE !

_________________________________________

 

CHARGER UN CALENDRIER VARIABLE

Vous chargez avec cette action le contenu d'un calendrier variable. Les calendriers sont sauvegardés en mémoire non volatile.

_________________________________________


CONTINUER/STOPPER LE SCENARIO SELON UN CALENDRIER

Vous pouvez stopper l'exécution du scénario courant (qui contient cette action) selon l'état d'un calendrier.

_________________________________________



FONCTIONS SPECIALES

 


METTRE EN PLACE UN THERMOSTAT

Articles en rapport : Gestion du chauffage avec ZWAVE |   Gestion du chauffage avec Enocean

L'utilisateur a la possibilité ici de mettre en place un thermostat et de le configurer à partir de son iPhone/Ipad/Android (comme il le ferait avec un thermostat physique). Pour cette raison, cette action comporte un grand nombre de variables.
Ce thermostat n'est pas lié DIRECTEMENT à une sonde et à un actionneur pilotant l'organe de chauffage, mais au travers de variables. La valeur du thermomètre doit être enregistrée dans dans la variable d'entrée Th et la variable sortie ON/OFF reliée à l'actionneur avec une action ACTIVER LE PERIPHERIQUE/ON-OFF SUIVANT UNE VARIABLE.
Ce thermostat est normalement activé par un timer avec une période assez longue (5mn par exemple); sa périodicité d'activation est indépendante de l'activité du thermomètre d'entrée. L'action 'ON-OFF suivant une variable' peut suivre immédiatement l'action "Thermostat" dans le même scénario.
Les variables de consignes JOUR et NUIT représentent les seuils de température utilisés par le thermostat. Elles sont configurables depuis l'iPhone/Ipad/Android.
La variable 'Mode particulier' est normalement positionnée à '0'. Cette variable permet de mettre dans la variable de sortie des valeurs ayant une signification particulière pour l'action 'ON-OFF suivant
une variable' et pour les actionneurs de chauffage XDD.  Elle est configurable depuis l'iPhone/Ipad/Android.


Valeurs de 'mode particulier' :
(hexa) = décimal: signification
(0x00) = 0 : Auto (consigne de température selon calendriers),
(0x05) = 5 : Arrêt,
(0x06) = 6 : Hors Gel (T>9°C),
(0x10) = 16: Jour (forçage de la consigne de température de jour),
(0x20) = 32: Jour temporaire (forçage de la consigne de température de jour jusqu'à la fin de de la plage de nuit dans le calendrier en cours),
(0x30) = 48: Nuit (forçage de la consigne de température de nuit),
(0x40) = 64: Nuit temporaire (forçage de la consigne de température de nuit jusqu'à la fin de de la plage de jour dans le calendrier en cours).

Les valeurs de consignes JOUR, NUIT et la variable 'Mode particulier' peuvent être mémorisées durablement (même après extinction de ZiBASE) dans les variables V15 à V31. Dans ce cas, il est inutile de les initialiser à la mise son tension, mais il est impératif de les initialiser depuis l'iPhone/Ipad/Android pour avoir un comportement cohérent du thermostat.

Il est préférable de choisir des variables non mémorisées V0 à V14 pour les variables en constante modification, c'est à dire les variables d'entrée, de sortie et interne (delta).  

La variable de calendrier définit les plages JOUR (item de calendrier coché) et NUIT  (item de calendrier non coché) utilisés par le thermostat pour sélecter la consigne de température de jour ou de nuit. Les plages sont définies dans 3 calendriers consécutifs. Un calendrier spécifie alors les plages pour 1 ou plusieurs jours donnés. Si le jour courant n'est pas spécifié, le calendrier suivant (N+1) est choisi par le thermostat, et ainsi de suite.

PS: Le thermostat n'a pas la possibilité d'exploiter les variables V32 à V59, seules les variables V0 à V31 sont autorisées.


_________________________________________

 

METTRE EN PLACE UN SYSTEME D'ALARME

Articles en rapport: Un Système d'alarme en une action ! |   Le Clavier/lecteur de badge Benext

Cette action vous permet de mettre en place un système d'alarme très complet.

Dix instances de systèmes d'alarme indépendantes sont possibles. Veillez à ce que chaque instance porte un numéro différent.

Cette action ne consomme pas de variables. Les délais sont exprimés en secondes (s).

Cette action doit être lancée une fois, au lancement de ZIBASE, pour permettre son initialisation. Le système d'alarme est alors en état 'désarmé'. Le suivi d'activité indique le taux d'utilisation du système d'alarme. Ce taux croît avec le nombre de détecteurs déclarés.

Les actions déclarées après cette action sont exécutées seulement en cas de lancement de la sirène. Il est donc possible de ne pas déclarer de sirène et/ou  - après la déclaration de l'action-  d'exécuter d'autres actions (envoyer un SMS par exemple).

Le système d'alarme est validé après un délai d'armement 'pré-armement'  (Mise 'ON' sur télécommande) qui permet classiquement de sortir de son logement sans déclencher l'alarme. Le désarmement de l'alarme en appuyant sur le OFF de la télécommande.

L'appui sur le bouton '1' de la télécommande arme l'alarme. L'appui sur le bouton '2' de la télécommande désarme l'alarme. Il est conseillé de déclarer une télécommande 2 boutons car celle-ci est visualisée sur smartphone/tablette/PC (modèle KR18 ou TPC). L'alarme peut alors être armée ou désarmée à distance. Si votre télécommande physique comporte 4 boutons ou plus, vous pouvez la décomposer en plusieurs télécommandes virtuelles à 2 boutons...

Les IDs de télécommande ont classiquement la forme 'DRxxxxx', XSxxxxxx 'VRxxxxx' ou 'CSxxxxx'. Ces IDs NE DOIVENT PAS avoir la forme d'une pseudo-adresse X10 comme par exemple A6 ou ZA6.

Si vous ne souhaitez pas avoir de télécommande physique pour piloter votre alarme, vous devez néanmoins déclarer une télécommande 2 boutons. Saisissez alors des IDs arbitraires: Nous vous conseillons des IDs ayant la forme 'CSxxxx' (ou 'VRxxxx') par exemple CS101 pour 'ON' et CS100 pour le OFF de l'instance 0. Puis CS111 pour 'ON' et CS110 pour le OFF de l'instance 1, Puis CS121 pour 'ON' et CS120 pour le OFF de l'instance 2, etc...<br/> L'arrivée du 'ON' ou 'OFF' peut également être émulé par l'instruction 'sev 2 xxxxxx' dans un script de commande, par exemple  'sev 2 CS121' pour émuler un 'ON' et 'sev 2 CS120' pour émuler un 'OFF'

La sirène est lancée après un délai de pré-alerte, qui suit le signal d'alerte donné par un détecteur. Pendant cette pré-alerte, un buzzer (optionnel) est activé.

La sirène (optionnelle) est lancée pendant une certaine durée configurable.

La sirène ne peut être lancée qu'un certain nombre de fois programmable. Après, l'alarme repasse en état désarmé. (Attention, dans la version actuelle l'icône de télécommande n'est pas mise à OFF)

Si une LED est spécifiée en témoin, celle-ci est éteinte dans l'état 'désarmé' et allumée dans l'état 'armé'. Elle clignote durant le pré-armement et la pré-alerte.  

Les états des détecteurs sont visibles sur les icônes des smartphone/tablette/PC. Ils sont automatiquement initialisés à 'OFF' lorsque le système d'alarme est activé (après le délai d'armement).

Lors d'un événement d'alerte sur un détecteur, ce détecteur passe à l'état ON sur son icône. Il est donc possible de voir la source de déclenchement de l'alarme.

_________________________________________


COMMANDER PAR HTTP

ZiBASE fait un appel HTTP  avec cette action et peut donc programmer des périphériques qui s'y trouvent connectés ou lire une information dans une page.
L'utilisateur doit consigner ici l'URL à appeler,  exemple "192.168.1.12/preset.htm?led1=1" de manière explicite ou implicite par la chaine de caractères contenue dans une variable.

 

Une valeur numérique peut être lue dans la page adressée par l'URL (.xml, .html, .txt etc...). Cette valeur doit suivre un mot clé qui peut être une balise xml ou du simple texte.
Un mot clé est une chaîne de caractère (simple texte) du type :  MotClé

 

Une balise est une chaîne de caractère du type : <MotClé>
Les caractères d'encadrement < et > ne doivent jamais être spécifiés dans la variable globale d'entrée V0-V59 car ils sont implicites. A contrario, le caractère * en préfixe précisent qu'il n'y pas ces caractères d'encadrement.  Exemple:
toto   : Recherche de la balise xml <toto> (a priori recherche de cette balise  dans un fichier xml, html)
*toto  : Recherche du mot clé toto (a priori recherche de ce mot clé dans n'importe quel fichier html ou texte)
La valeur numérique est retournée dans cette même variable globale V0-V59, mais sur sa partie numérique (16 bits signés). Si la valeur est non numérique (chaîne de caractères), c'est la valeur ASCII du premier caractère de la chaine qui est retournée.

Exemples:
- Avec <toto>123</toto>, mettre toto en variable et la valeur retournée est 123.
- Avec toto=123, mettre *toto= en variable et la valeur retournée est 123.
- Avec <toto>down</toto>, mettre toto en variable et la valeur retournée est 100 car c'est la valeur 'd' en ASCII.


Une suite de mots clés ou balises peut être recherchée en spécifiant un 'arbre de recherche'. par exemple toto/*titi/tata provoquera une recherche de la balise <toto> puis du mot clé  titi puis de la balise<tata>.
La recherche d'un mot mot clé dans le flux n'est pas sensible aux majuscules/minuscules (contrairement à la recherche de balise).  Le mot clé peut contenir des meta-caractères '?' pour ignorer la comparaison à ces caractères.
le méta-caractère * spécifié seul indique de passer dans le flux les caractères qui ne sont pas alphanumériques. exemple toto/*titi/tata/*  
L'arbre de recherche peut être post-fixé par l'attribut '.x' qui défini le nombre de décimales recherchées sur un nombre exprimé en virgule flottante. Le résultat est alors multiplié par 10**x. Par exemple toto/*titi/tata/.3 saisira 3 chiffres après la virgule et le résultat sera multiplié par 1000. Attention au dépassement car les variables sont de type 16 bits signés et représentent des nombres +/- 32K au maximum.
Par défaut la page retournée par l'appel http n'est pas entièrement chargée en cas d'accès sur Internet (sauf en cas de recherche de mots clés bien sûr), pour la charger entièrement il suffit d'ajouter &loadpage en fin d'URL. Cela sera retiré lors de l'appel effectif. Un accès sur le LAN provoque toujours le chargement complet de la page.
Le status de l'appel est retourné dans le suivi d'activité, avec le cas échéant le nombre de mot-clés ou balises effectivement trouvées.

_________________________________________

 

COMMANDER PAR SHELL  (ZiBASE Mini)

Sur ZiBASE Mini, le shell Linux peut être invoqué pour lancer une ligne de commande paramétrée. le répertoire courant où doivent être déposées les commandes exécutables  est par défaut  /opt/zodianet/

La valeur des variables de ZiBASE ($V0...$V59) peut être passée par l'option "Etendre les variables par valeurs".

Une ou plusieurs valeurs peuvent être retournées avec l'option "Lire en retour le résultat". La première valeur est stockée dans la variable stipulée. Les autres valeurs sont stockées dans les variables systèmes S31...S39 comme détaillé ici.

La commande appelée doivent simplement faire, en une ligne,  des "print" sur stdout des valeurs a retourner. Celles-ci seront rangées successivement dans  S31...S39.

La commande appelée peut être un fichier exécutable binaire, script-shell ou un corps de programme interprété selon le "shebang" placé en première ligne. Des programmes en php, perl, python, javascript, lua peuvent parfaitement être invoqués avec le shebang correspondant.

Voir le tutoriel détaillant ceci ici.

_________________________________________


REDIRIGER UNE ACTIVATION SUR HTTP

L'activation d'un actionneur par envoi d'un code radio peut être remplacé par une requête HTTP (qui pilotera une carte relais par exemple). Seule la famille X10 de lettre H peut être redirigée par HTTP.

L'utilisateur doit spécifier ici le N° xx de l'actionneur à rediriger (soit l'adresse Hxx) et les URLs correspondantes aux commandes ON et OFF.

_________________________________________


REDIRIGER UNE FAMILLE SUR HTTP

L'activation d'un actionneur par envoi d'un code radio peut être remplacé par une requête HTTP (qui pilotera une carte relais IPX800 par exemple et ce pour quoi l'action a été créée).

N'importe quelle famille (syntaxe X10) peut être redirigée par HTTP. L'utilisateur doit consigner ici:
-  La famille en notation X10 redirigée vers l'URL. Seuls les identifiants  x1...x9 sont redirigés.
-  L'URL à appeler, contenant éventuellement 2 méta-caractères,  dièse (# : numéro d'appareil selon l'identifiant) et étoile (* : 1 si ON, 0 si OFF).
Par exemple avec pour famille redirigée = D et URL = '192.168.1.12/preset.htm?led#=*', l'action 'ON D3' générera '192.168.1.12/preset.htm?led3=1' et 'OFF D5' générera '192.168.1.12/preset.htm?led5=0'.
Le statut de l'appel est retourné dans le suivi d'activité.

_________________________________________


CONTINUER/STOPPER LE SCENARIO SELON UN ESPACEMENT

L'exécution du scénario qui contient cette instruction peut être stoppée si un espacement temporel n'est pas respecté depuis la dernière exécution.

L'utilisateur doit consigner ici le temps minimum entre 2 exécutions du scénario. Veillez à ce qu'un scénario donné ne fasse pas l'objet de demandes d'espacement initiées par des actions multiples, car chaque scénario possède un timer unique dédié à l'espacement temporel.

_________________________________________


DEFINIR LES PROTOCOLES DE RECEPTION ET EMISSION PAR DEFAUT

Vous consignez avec cette actions les protocoles que vous utilisez pour guider ZiBASE sur les fréquences à écouter et les protocoles à émettre en l'absence de spécification de protocole.
Evitez de déclarer un actionneur sans préciser son protocole (protocole "DEFAULT"). Les protocoles "positionnables" par défaut en émission sont X10, Chacon, Domia et Digimax (au démarrage : X10 + Chacon). Les autres protocoles doivent  être spécifiés lors de la déclaration de l'actionneur ou lors de la commande ON-OFF-DIM.
Les protocoles Visonic868 (868.950Mhz)  XDD868  (868.350Mhz)et ZWAVE (EU:868.420Mhz) sont mutuellement exclusifs en réception mais peuvent coexister en émission. Exemple:  Si vous avez des détecteurs Visonic 868Mhz et des actionneurs XDD 868Mhz, vous spécifiez ici Visonic868 (pour indiquer à ZiBASE qu'il faut recevoir en permanence sur la fréquence Visonic868 et non XDD868) et vous préciserez XDD868 lors de la déclaration de l'actionneur ou lors de la commande ON-OFF-DIM (pour indiquer à ZiBASE qu'il faut émettre temporairement sur la fréquence XDD868).
Il est à noter que l'utilisation du XDD868 entraine une très légère diminution de la sensibilité en 433Mhz et
entraine une diminution très notable de la sensibilité en ZWAVE et ENOCEAN. Cliquez ZWAVE si vous faites usage du protocole ENOCEAN.
ENOCEAN ET ZWAVE coexistent parfaitement.

Voir article en relation: Augmenter la sensibilité de réception en ZWAVE et ENOCEAN

PS:

- Les protocoles en 433Mhz sont toujours écoutés par ZIBASE. (X10, Chacon, Domia, Digimax, Scientific Oregon, OWL...)

- Le 868Mhz est normalement automatiquement dévalidé à l'inclusion du 1er périphérique ZWAVE.

_________________________________________


ENVOYER UN MESSAGE A UN PERIPHERIQUE ZWAVE

Cette action est surclassée par  l'action ENVOYER UNE COMMANDE GENERIQUE AU PERIPHERIQUE qui doit être utilisée de préférence.

L'utilisateur peut envoyer un message de bas niveau à un périphérique ZWAVE, par exemple pour le configurer. Cela nécessite une bonne connaissance de ZWAVE et du périphérique.
La syntaxe est:  ADR ARG1 ARG2 ARG3 ... ARGn où ADR est l'adresse du périphérique et ARGx les arguments donnés en hexadécimal.
EXEMPLE: Mettre un temps inter détection ("on Time") de 3 mn dans un périphérique Zwave EZMOTION (Wireless 3 in 1 sensor)  d'adresse ZA3.
Les paramètres à écrire sont:   ZA3 70 04 02 01 03    avec
ZA3:  Adresse Zwave = ZA3,
0x70: Classe de la commande = COMMAND_CLASS_CONFIGURATION,  
0x04: Operation = CONFIGURATION_SET,
0x02: Numéro de paramètre = 2;
0x01: Taille du paramètre = 1 octet,
0x03: Valeur du parametre = 3.
PS: Appuyer sur le bouton d'assoc de l'EZMOTION pour le mettre en état éveillé avant de lancer la commande.

_________________________________________


REVEILLER AVEC "WAKE UP LAN"

Vous réveillez avec cette action un appareil équipé du "Wake On LAN". Spécifiez son adresse MAC en 6 octets hexa séparés par des blancs.

Exemple: 00 A2 BA FE 22 C1

_________________________________________


ALIMENTER UNE SONDE VIRTUELLE


L'alimentation d'une sonde virtuelle permet de fournir des données d'entrées à une sonde préalablement déclarée.

Cette sonde n'a pas d'existence physique et va être alimentée par des variables V0-V59 qui contiendront les valeurs à représenter.

Sur les valeurs fournies à la sonde virtuelle I0 et I1, un travail de mise en forme des variables (conversion d'échelle) est probable.<br/>Ainsi :
I0 =  ((Vx + pré_offset0) * Coefficient0) + post_offset0
I1 =  ((Vy + pré_offset1) * Coefficient1) + post_offset1
Le coefficient est une grandeur signée qui peut avoir 3 décimales significative. Attention, mettre la partie décimale après un point (ex: 23.456)  et non une virgule (ex: 23,45) !

Les pre et post offsets sont des valeurs entières signées.

NOTA: Un calcul d'arrondi est réalisé sur le résultat.

3 types de sondes virtuelles sont possibles à partir des sondes Thx128 (température seule), THGR328 (température + hygromètre), OWL CM119 (énergie électrique + puissance).
Pour l'installation d'une sonde virtuelle, commencer par mettre en place l'alimentation de la sonde virtuelle, vous devez alors voir son activité sa présence dans le suivi d'activité. Forcer le cas échéant cette présence en lançant à la main le scenario où se trouve cette alimentation (dans ce cas notez l'ID généré dans le suivi d'activité (OSxxxx ou WSxxx),
Puis déclarez normalement la sonde en capturant son identifiant s'il est émis régulièrement, où reportez à la main l'ID généré noté ci dessus.
Pour rappel, I0 doit contenir:
- Des dizièmes de degrés Celsius dans le cas d'une température, (Unité: 0,1°C)
- Un compteur d'accumulation avec des centaines de Watt/heure dans le cas d'une énergie, (Unité: 100W/h).
I1 doit contenir:
- Le taux d'humidité 0-100 (pourcentage) dans le cas de l'hygrométrie (Unité: 1%),
- Des centaines de Watt dans le cas d'une puissance (Unité: 100W).

_________________________________________