There are no translations available.

Le JavaScript sur ZiBASE Multi - Opérations sur ZiBASE

Le JavaScript sur ZiBASE Multi - Retour aux généralités

Le JavaScript sur ZiBASE Multi - Mise en oeuvre

Le JavaScript sur ZiBASE Multi - Opérations sur Android

Le JavaScript sur ZiBASE Multi - Opérations sur les périphériques

Le JavaScript sur ZiBASE Multi - Opérations sur les fichiers

Le JavaScript sur ZiBASE Multi - Opérations sur le réseau IP

Le JavaScript sur ZiBASE Multi - Opérations sur ZiBASE

Le JavaScript sur ZiBASE Multi - Opérations sur l'enregistreur

 

OBJET :  zibase

 

ROLE : Cet objet comporte les fonctions du moteur domotique.


void launch(String label)
Lancement asynchrone d’un scénario de ZiBASE par label ou par numéro de scénario. Attention, en cas d'accès par label, "Visualisé sur les interfaces de l’utilisateur" doit être cliqué dans la déclaration du scénario considéré.
Exemples:
zibase.launch(“MyScenario”); // lancer le scénario de label “MyScenario”
zibase.launch(“97”); // lancer le scénario de numéro 97

void launch(String label, int delay)
Identique à la fonction précédente mais avec spécification d'un délai (en secondes) après lequel le scénario sera effectivement lancé. Une valeur négative en paramètre de délai a pour effet de déprogrammer les ordres de lancement non encore exécutés sur le scénario considéré (mettre uniquement -1 pour compatibilité future).
Exemples:
zibase.launch(“MyScenario”, 3); // lancer le scénario de label “MyScenario” après 3 secondes
zibase.launch(“97”, 3600); //  lancer le scénario de numéro 97 après 1 heure
zibase.launch(“MyScenario”, -1); // déprogrammer le lancement de “MyScenario” (qui a été antérieurement  programmé avec un délai quelconque).

int varShort(int var)
Lecture synchrone d’une variable numérique de Zibase (0…59). Se reporter à http://www.zodianet.com/la-toolbox/zibase-variables.html

void varShort(int var, int val)
Ecriture synchrone  d’une variable numérique de Zibase (0…59). Se reporter à http://www.zodianet.com/la-toolbox/zibase-variables.html

String varStr(int var)
Lecture synchrone d’une variable chaîne de caractère de Zibase (0…59)

void varStr(int var, String  val)
Ecriture synchrone d’une variable chaîne de caractère de Zibase (0…59)

String myId()
Lecture de l’ID de ZiBASE/ZiBASE Multi. (Xi3xxxxxxxxxxxx)

calendar(int cal, int val)
Ecriture d’un calendrier de Zibase.

int calendarState(int cal)
Etat d’un calendrier 0...15 de Zibase (Retour: 0:inactif/1:actif).

int varSx(int var)
Lecture d’une variable système de Zibase.

int varIx(int var)
Lecture d’une variable de sonde  I0, I1 ou I2. voir ici. Ces variables Ix ne sont valides que si c'est une sonde qui a initié le lancement du script qui comporte cette fonction. Cette fonction n'est pas valide si elle fait partie d'un script retardé (avec "Retard" spécifié).

String calledByScenario()
Scénario ayant appelé le présent script. Cette fonction n'est pas valide si elle fait partie d'un script retardé (avec "Retard" spécifié).

String triggeredBy()
Source de déclenchement du présent script (ou source de déclenchement du scénario ayant appelé le présent script). Cette fonction n'est pas valide si elle fait partie d'un script retardé (avec "Retard" spécifié).

Lecture explicite des variables systèmes de Zibase.
Se reporter à http://www.zodianet.com/la-toolbox/zibase-variables.html

int secondsCnt()
int currentSeconds()
int currentMinutes()
int currentHours()
int currentDay()
int currentMonth()
int currentYear()

int currentWeekDay()
int sunRaiseMinutes()
int sunFallMinutes()
int currentDayNightState()
int random()
int lastDimValue()
int alarmInstanceState(int var)

void virtualProbeTemp(int channel, float fval1, float fval2)
Génération d’une trame de sonde virtuelle de type thermomètre/hygromètre.

void virtualProbeLight(int channel, float fval1)
Génération d’une trame de sonde virtuelle de type Luxmètre.

void virtualProbePower(int channel, float fval1, float fval2)
Génération d’une trame de sonde virtuelle de type mesure d’Energie/puissance.

void asyncScript(String line)
Lancement asynchrone d’un script de commandes natives de Zibase  (Attention! ce n'est pas du JavaScript !). Exemple: "sev 1 CS1234"

 

Récupération de configuration (liste des périphériques, scénarios...)

String getRawConfig()
Retourne la configuration de ZiBASE en format JSON. PS: Le format est même que celui fourni par un accès à la plateforme zibase2.net avec ZAPI2.


Traitement JavaScript asynchrone sur des événements temps-réel (périphériques, scénarios...)

Les événements de ZIBASE sont mis en dans une file d'attente de longueur finie (100) et peuvent être lus ultérieurement et périodiquement par JavaScript.

String realTimeEvent ()
Lecture des évènements temps-réel sur Zibase classés en 5 catégories. Cette fonction est blocante mais ne comporte pas en soi de « boucle active » qui consommerait du CPU.
« scenarios » : Scénarios déclenchés sur Zibase
« probes » : Données entrantes de sondes
« sensors » Données entrantes de détecteurs
« actuators » Données entrantes/sortantes d’actionneurs
« remotes » Données entrantes de télécommandes
La chaine de caractères retournée est de type JSON, chaque catégorie ayant son format. Les caractères accentués sont gérés.

Exemples :
« scenarios » :
{ "event" : { "type" : "scenarios", "data" : {"id" : "11", "name" : "MyScenario", "icon" : "logoMacro_Scenario.png", "time" : 1416240840, "trigger" : "Scenario Fan", "TrigQualifier" : 1} } }

« probes » :
{ "event" : { "type" : "probes", "data" : {"id" : "OS4196946433", "name" : "Thermomètre Salon", "icon" : "logotype_temperature.png", "time" : 1416240975, "val1" : 21.3, "Uval1" : "C", "val2" : 48, "Uval2" : "%"} } }

« sensors » : (state=0 : OFF, state <>0 : ON)
{ "event" : { "type" : "sensors", "data" : {"id" : "ZA12", "name" : "Intrusion hall", "icon" : "logotype_Presence.png", "time" : 1416241165, "state" : 30} } }

« actuators » : (cmd=1 : OFF, cmd=2 : ON, cmd=3 : DIM)
{ "event" : { "type" : "actuators", "data" : {"id" : "O3", "name" : "Shutter", "icon" : "logotype_VoletsRoulants.png", "time" : 1416241177, "protocol" : 0, "cmd" : 2, "dim" : 0, "trigger" : "Sce Garage", "TrigQualifier" : 0} } }

« remotes » : (state=1 : OFF, state=2 : ON)
{ "event" : { "type" : "remotes", "data" : {"id" : "XS2674887008", "name" : "RemoteControl", "icon" : "logotype_Telecommandes.png", "time" : 1416241403, "state" : 2} } }

Exemple d’exploitation :
var json = zibase.realTimeEvent () ;
var obj = JSON.parse(json);
console.log(obj.event.type + ":" + obj.event.data.name);

int waitingRealTimeEvents ()
retourne le nombre d’événements temps-réel en attente (file d’attente de 100 éléments max).

int clearRealTimeEvents ()
Remet à zéro la file d’attente des événements.


Traitement JavaScript synchrone sur des événements temps-réel (périphériques, scénarios...)

Les événements de ZIBASE peuvent déclencher à la volée des fonctions JavaScript. Pour cela, il suffit d'associer/enregistrer préalablement les évènements possibles avec leurs fonctions JavaScript associées (au démarrage par exemple avec "addMatchingFunction"). Ultérieurement, si ces événements apparaissent, les fonctions JavaScript associées sont automatiquement lancées. Un nombre quelconque de fonctions JavaScript peut ainsi être lancé. Un même événement peut lancer plusieurs fonctions JavaScript si les critères le permettent.

void addMatchingFunction ( String criteria)
Ajout d'une fonction avec ses critères de lancement par Injection JavaScript (donc version Android nécessaire:  KIT-KAT 4.4 minimum).
criteria : Chaine de caractères ayant pour syntaxe "type:name:id:JSFunction".
- type : Type de l'événement : au choix : "scenarios", "probes", "sensors", "actuators", "remotes".
- name : Nom de l'item du type ci-dessus. Ce champ peut être vide si le champ 'id' ci-dessous est précisé. le méta-caractère "*" à la fin permet de faire réagir différents champs 'name' de l'événement et d'exécuter une même fonction JavaScript. Par exemple "hello*" fera réagir tous les événements dont le champ 'name' commence par "hello". 'name' peut être simplement égal à "*" pour faire réagir tous les événements d'un type donné.
- id : ID de l'item du type ci-dessus. Ce champ peut être vide si le champ 'name' ci-dessus est précisé. le méta-caractère "*" à la fin permet de faire réagir différents champs 'id' de l'événement et d'exécuter une même fonction JavaScript. Par exemple "OS*" fera réagir tous les événements dont le champ 'id' commence par "OS". 'id' peut être simplement égal à "*" pour faire réagir tous les événements d'un type donné.
JSFunction : Fonction JavaScript lancée si le champ 'name' ou 'id' a été reconnu (matching). La fonction lancée en CallBack a la forme JSFunction (name, id, json) où 'name' et 'id' sont les valeurs des champs 'name' et 'id'  et 'json' est la structure complète au format JSON de l'événement (qui est strictement identique à cela fourni par la fonction realTimeEvent () décrite ci-dessus). PS: Les champs 'name' et 'id' peuvent bien-entendu être retrouvés dans la structure JSON et sont en soi des informations redondantes.

exemple


void subMatchingFunction ( String criteria)
Effectue l'opération inverse de 'addMatchingFunction' en retirant une fonction JavaScript avec ses critères associés. La chaîne 'criteria' doit être exactement la même que celle qui avant utilisée préalablement dans 'addMatchingFunction'.

void clearMatchingFunctions ( )
Retire toutes fonctions JavaScript avec leurs critères associés.


Traitement synchrone sur des données spécifiques

void addRegisteredFunction (String item)
Enregistrement d'une fonction utilisateur portant sur une fonctionnalité particulière.
Aujourd'hui cette fonction est utilisée pour la gestion de ligne série. Voir ici.
String item : "RS232SERIAL:callBack" avec callBack la fonction de callback de l'utilisateur en réception du flux série.


void subRegisteredFunction (String item)
Dés-enregistrement d'une fonction utilisateur portant sur une fonctionnalité particulière.
Aujourd'hui cette fonction est utilisée pour la gestion de ligne série. Voir ici.
String item : "RS232SERIAL:callBack" avec callBack la fonction de callback de l'utilisateur en réception du flux série.


void clearRegisteredFunctions()
Dés-enregistrement de toutes les fonctions utilisateur portant sur une fonctionnalité particulière.


Injection de fichiers JavaScript (sur sdcard) ou d''une ligne de javaScript.

int injectJS( String FileOrline,  int delay, String type )
Injection d'un fichier JavaScript (.js) situé sur sdcard ou d'une ligne JavaScript. Version Android nécessaire:  KIT-KAT 4.4 minimum.
FileOrLine : Nom du fichier ou ligne de JavaScript. Le nom de fichier peut comporter un chemin et le faire précéder de $ s'il doit inclure le chemin par défaut qui est spécifié das le menu système du configurateur.
delay : délai avant exécution
type : Spécifier "sdcard" si FileOrLine est un fichier. Préciser "inlay" s'il s'agit d'une ligne de JavaScript.
NB : L'intérêt de mode "inlay" porte sur le fait que la ligne JavaScript peut être dynamiquement élaborée par programme et l'exécution retardée.

int injectJS( String FileOrline,  String type )
Identique à la fonction précédente mais sans délai.

int injectJS( String File,  int delay )
Identique à la fonction précédente mais implicitement de type "sdcard".

int injectJS( String File)
Identique à la fonction précédente mais implicitement de type "sdcard" et sans délai.

exemples