Le JavaScript sur ZiBASE Multi - Généralités

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

 

ZiBASE Multi parle JavaScript !


Pourquoi JavaScript est le meilleur langage de scripts pour une BOX domotique ?

Il n'existe pas de "meilleur langage informatique", il n'y a que des langages adaptés à des environnements et des problématiques. Le meilleur langage est sans doute celui que vous connaissez déjà !

Car indépendamment de ses qualités techniques, la première qualité d'un langage est d'être populaire et simplement parlé par une majorité. Il satisfait ainsi directement les utilisateurs qui le connaissent déjà ! Pour les autres, ils trouveront bien plus facilement des réponses à leurs questions sur le Web et les forums.  A ce titre, JavaScript est un langage de choix comme le montre la représentation ci-jointe sur la popularité des langages (cliquez dessus pour l'agrandir).

PS: Ce type de représentation peut varier d'un pseudo-sondage à l'autre, mais vous n'en trouverez pas un seul où l'écart entre JavaScript et Lua n'est pas au moins dans un rapport de 10x !

La deuxième qualité d'un langage est d'être simple d'utilisation et le moins "informatique" possible. Cela dépend ici du niveau d'intégration du contexte "domotique" dans sa syntaxe. JavaScript est très satisfaisant. Il est ainsi possible d'écrire par exemple :

if   (device.value("Détecteur Jardin")==1)     device.on("Portail") ;

A noter que le libellé de vos périphériques (en caractères accentués) est ici directement pris en compte et cela aussi bien pour des commandes de lecture ou d'écriture.

On demande à un langage de script domotique d'être orienté,  non seulement vers "l'intérieur" avec les périphériques de votre maison, mais vers "l'extérieur" avec les technologies Web et requêtes IP. JavaScript est à ce titre excellent car il a été conçu pour cet usage.

Le fait est que JavaScript est sans doute le meilleur langage de scripts pour une BOX domotique. A minima, cela apparait comme une évidence si on le compare aux autres langages de scripts actuellement utilisés. Pas besoin d'être expert pour comparer la lisibilité des scripts. A maxima, qui d'autre que lui assure la convergence avec HTML5 et le Multimedia ?


Comment cela fonctionne ?

L'intégration de JavaScript dans ZiBASE Multi est la partie émergée de l'iceberg. Car en réalité, JavaScript est une composante de HTML5, et ZiBASE Multi peut parfaitement ouvrir une fenêtre au standard HTML5 et l'animer. ZiBASE Multi utilise en effet le moteur de Chrome* sous toutes ses facettes. Vous pouvez donc non seulement lancer du JavaScript, mais aussi développer de véritables applications domotiques avec une composante fortement graphique. Comme exemple en guise de preuve, vous pouvez parfaitement lancer PCPAD2 (soit près de 1 million de lignes de code avec les bibliothèques) à partir de ZiBASE Multi ! Voir cette courte vidéo où la fenêtre HTML5 (avec PCPAD2 lancé de ZIBASE Multi) est rendue alternativement transparente.

* ZiBASE Multi utilise Webkit/Chromium comme moteur de Rendu HTML5 ainsi que V8 JS Engine, le célèbre interpréteur JavaScript de Chrome.


Assez magique, à partir d'Android 4.4, le navigateur Chrome de votre PC peut même coopérer pour mettre au point vos applications complexes dans votre appareil Android supportant ZiBASE Multi. Voir ici pour plus de détails.

Considérer le moteur JavaScript de ZiBASE Multi dans un sens plus large comme la fenêtre d'un navigateur auquel vous soumettez successivement vos Scripts (la fenêtre peut être optionnellement rendue transparente) ou vos pages HTML/HTML5 à afficher (qui peuvent bien entendu comporter du JavaScript).

Il existe cependant une différence de taille...  Avec même un objectif opposé :

Un navigateur classique définit un espace fermé et délimité par site Web où des données vont pouvoir être stockées (la célèbre "Sandbox" ou "bac à sable") et borne pour des raisons de sécurité toutes les actions qui vont pouvoir être menées car l'utilisateur ne maitrise pas les pages visitées. Une fois le site web quitté ou le navigateur refermé, il ne reste pas grand chose de cette visite ( à part le contenu de la Sandbox...).

La fenêtre de ZIBASE Multi exécute uniquement ce que lui soumet explicitement l'utilisateur, il ne s'agit pas (surtout pas !) de naviguer sur des sites inconnus. On cherche donc à avoir un effet d'action et de rémanence maximal dans le système (qui va bien au delà d'une simple "Sandbox") avec en premier lieu,  la capacité de piloter votre système domotique.

 

En bref...

JavaScript définit des objets. Il possède nativement ses propres objets ( par exemple,  objet :  'Date') mais reconnait aussi ceux du navigateur, notamment  la fenêtre en cours (par exemple l'objet  'window').

Des actions  fx()  (dites "méthodes") sont applicables sur ces objets. On a donc la syntaxe  objet.fx() pour lancer l'action fx() sur l'objet.

De manière très simple et homogène, ZiBASE Multi ne fait qu'ajouter et mettre à disposition ses "propres" objets au langage JavaScript. ZiBASE Multi est juste un navigateur particulier avec un peu plus objets accessibles de JavaScript ...

La manipulation de ces objets est aussi naturelle que celle appliquée par JavaScript sur ses objets habituels. Le fonctionnement est donc seamless ("sans couture")  avec la domotique et son intégration parfaite.

Six objets ont été définis dans ZiBASE Multi : android, device, zibase, network, file et recorder. Nous pouvons bien-sûr en définir d'autres dans cette architecture modulaire.


Si un navigateur peut naviguer entre serveurs (effet non recherché par ZiBASE Multi),  il peut aussi lire différents types sources, un simple fichier dans votre PC par exemple.

ZiBASE Multi utilise cette propriété et l'utilisateur a le loisir de définir ses scripts ou ses pages sur différentes supports ou sources:

- En incrustation de lignes JavaScript à l'intérieur même de scénarios de ZiBASE Multi (Très pratique pour des actions ponctuelles).

- Dans des fichiers situés dans l'appareil Android supportant ZiBASE Multi. Nul besoin de faire des accès à un serveur local ou distant pour lire ces fichiers.

- Bien entendu, dans des fichiers sur serveur local ou distant.


Un grand classique...


Conclusion

ZIBASE Multi fournit avec JavaScript un interpréteur de scripts dans un langage populaire. Sa caractéristique est une syntaxe homogène entre les objets manipulés nativement et les objets domotiques. L'objectif est d'être puissant tout en restant simple pour l'utilisateur.

Mais ce que propose ZIBASE Multi va au delà:  Donner à l'utilisateur les moyens de développer dans ZiBASE Multi ses propres applications domotiques graphiques, multimédias et interactives HTML5.