Yoctohub-wireless-n : manuel d'utilisation

YoctoHub-Wireless-n : Manuel d'utilisation

1. Introduction
2. Présentation
2.1 Les éléments du YoctoHub-Wireless-n
3. Premiers pas
3.1 Configuration manuelle
3.2 Configuration automatisée
3.3 Connexions
4. Montage
4.1 Fixation
4.2 Fixation d'un sous-module
5. Configuration et test des modules
5.1 Localisation des modules
5.2 Test des modules
5.3 Configuration des modules
5.4 Mise à jour des firmwares
5.5 Accès à l'enregistreur de données des capteurs
5.6 Passerelle REST
5.7 Passerelle OpenMetrics (Prometheus)
6. Contrôle d'accès
6.1 Accès "admin"
6.2 Accès "user"
6.3 Influence sur les API
7. Envoi de données vers l'extérieur
7.1 Configuration
7.2 Callbacks HTTP vers des services tiers
7.3 Callbacks vers un broker MQTT
7.4 Callbacks de type Yocto-API
7.5 Callbacks HTTP définis par l'utilisateur
7.6 Noms associés aux valeur postées
7.7 Planification des callbacks
7.8 Tests
7.9 Connexions spontanées
8. Mise en sommeil
8.1 Configuration manuelle du système de réveil
8.2 Paramétrage du système de réveil par logiciel
9. Personnalisation de l'interface Web
9.1 Utilisation
9.2 Limitations
10. Installation de Yocto-Visualization (for web)
11. Programmation
11.1 Accès aux modules connectés
11.2 Contrôle du YoctoHub-Wireless-n
12. Référence de l'API de haut niveau
12.1 La classe YWireless
12.2 La classe YNetwork
12.3 La classe YHub
12.4 La classe YHubPort
12.5 La classe YFiles
12.6 La classe YRealTimeClock
12.7 La classe YWakeUpMonitor
12.8 La classe YWakeUpSchedule
13. Problèmes courants
13.1 Par où commencer ?
13.2 Linux et USB
13.3 Plateformes ARM: HF et EL
13.4 Les exemples de programmation n'ont pas l'air de marcher
13.5 Module alimenté mais invisible pour l'OS
13.6 Another process named xxx is already using yAPI
13.7 Déconnexions, comportement erratique
13.8 Le module ne marche plus après une mise à jour ratée
13.9 RegisterHub d'une instance de VirtualHub déconnecte la précédente
13.10 Commandes ignorées
13.11 Impossible de contacter les sous-modules par USB
13.12 Network Readiness coincé à 3- LAN ready
13.13 Module endommagé
14. Caractéristiques
15. Index

1. Introduction

Le YoctoHub-Wireless-n est un module électronique de 60x58mm qui permet de contrôler d'autres modules Yoctopuce à travers une connection réseau sans fil 2.4 GHz (802.11 b/g/n). Vu de l'extérieur, ce module se comporte exactement comme un ordinateur classique faisant tourner VirtualHub1: même interface, mêmes fonctionnalités.


Le YoctoHub-Wireless-n

Le YoctoHub-Wireless-n a été conçu pour être déployé facilement et ne pas demander de maintenance particulière. Contrairement à un mini-PC, il n'utilise pas un système d'exploitation complexe. Quelques réglages simples permettent son utilisation dans toutes sortes d'environnements réseau. Ces réglages peuvent être effectués manuellement ou de manière automatisée, par USB. Il convient de ce fait beaucoup mieux à une industrialisation qu'un mini-PC. En revanche, il ne permet pas l'exécution de programmes supplémentaires écrits par l'utilisateur.

Le YoctoHub-Wireless-n n'est pas un hub USB standard avec accès réseau. Bien qu'utilisant du câblage USB, ses ports descendants utilisent un protocole propriétaire, plus simple qu'USB. Il n'est par conséquent pas possible de contrôler, ni même d'alimenter, des périphériques USB standards avec un YoctoHub-Wireless-n.

Yoctopuce vous remercie d'avoir fait l'acquisition de ce YoctoHub-Wireless-n et espère sincèrement qu'il vous donnera entière satisfaction. Les ingénieurs Yoctopuce se sont donnés beaucoup de mal pour que votre YoctoHub-Wireless-n soit facile à installer n'importe où et soit facile utiliser en toutes circonstances. Néanmoins, si ce module venait à vous décevoir, n'hésitez pas à contacter le support Yoctopuce2.

2. Présentation


1:Yocto-bouton 9:Neutralisatation de la mise en sommeil
2:Port USB de contrôle + alimentation 10:Connexion dorsale
3:Yocto-Led 11:Port descendant 1
4:Indicateur de sur-consommation 12:Indicateur port descendant 1
5:Indicateur de transfert réseau 13:Port descendant 2
6:Touche réveil 14:Indicateur port descendant 2
7:Touche mise en sommeil 15:Port descendant 3
8:Connecteur d'antenne 16:Indicateur port descendant 3

2.1. Les éléments du YoctoHub-Wireless-n

Le numéro de série

Chaque Yocto-module a un numéro de série unique attribué en usine, pour les modules YoctoHub-Wireless-n ce numéro commence par YHUBWLN4. Le module peut être piloté par logiciel en utilisant ce numéro de série. Ce numéro de série ne peut pas être changé.

Le nom logique

Le nom logique est similaire au numéro de série, c'est une chaîne de caractères sensée être unique qui permet référencer le module par logiciel. Cependant, contrairement au numéro de série, le nom logique peut être modifié à volonté. L'intérêt est de pouvoir fabriquer plusieurs exemplaires du même projet sans avoir à modifier le logiciel de pilotage. Il suffit de programmer les mêmes noms logiques dans chaque exemplaire. Attention, le comportement d'un projet devient imprévisible s'il contient plusieurs modules avec le même nom logique et que le logiciel de pilotage essaye d'accéder à l'un de ces modules à l'aide de son nom logique. A leur sortie d'usine, les modules n'ont pas de nom logique assigné, c'est à vous de le définir.

Le Yocto-bouton

Le Yocto-bouton a deux fonctions. Premièrement, il permet d'activer la Yocto-balise (voir la Yocto-Led ci-dessous). Deuxièmement, si vous branchez un Yocto-module en maintenant ce bouton appuyé, il vous sera possible de reprogrammer son firmware avec une nouvelle version. Notez qu'il existe une méthode plus simple pour mettre à jour le firmware depuis l'interface utilisateur, mais cette méthode-là peut fonctionner même lorsque le firmware chargé sur le module est incomplet ou corrompu.

La Yocto-Led

En temps normal, la Yocto-Led sert à indiquer le bon fonctionnement du module: elle émet alors une faible lumière bleue qui varie lentement mimant ainsi une respiration. La Yocto-Led cesse de respirer lorsque le module ne communique plus, par exemple s'il est alimenté par un hub sans connexion avec un ordinateur allumé.

Lorsque vous appuyez sur le Yocto-bouton, la Led passe en mode Yocto-balise: elle se met alors à flasher plus vite et beaucoup plus fort, dans le but de permettre une localisation facile d'un module lorsqu'on en a plusieurs identiques. Il est en effet possible de déclencher la Yocto-balise par logiciel, tout comme il est possible de détecter par logiciel une Yocto-balise allumée.

La Yocto-Led a une troisième fonctionnalité moins plaisante: lorsque le logiciel interne qui contrôle le module rencontre une erreur fatale, elle se met à flasher SOS en morse3. Dans ce cas, débranchez puis re-branchez le module. Si le problème venait à se reproduire, vérifiez que le module contient bien la dernière version du firmware et, dans l'affirmative, contactez le support Yoctopuce4.

Le connecteur de contrôle et d'alimentation (Power / Control port)

Ce connecteur permet d'alimenter le YoctoHub-Wireless-n et les modules qui lui sont connectés à l'aide d'un simple chargeur USB. Ce connecteur permet aussi de prendre le contrôle du YoctoHub-Wireless-n par USB, exactement comme on pourrait le faire avec un module Yoctopuce classique. C'est particulièrement utile lorsque que l'on désire configurer le YoctoHub-Wireless-n sans connaître son adresse IP.

Les ports descendants

Vous pouvez connecter jusqu'à trois modules Yoctopuce sur ces ports. Ils seront alors accessibles comme s'ils étaient branchés à un ordinateur faisant tourner VirtualHub. Attention, le protocole entre le YoctoHub-Wireless-n et le module Yoctopuce n'est pas de l'USB mais un protocole propriétaire plus léger. De ce fait le YoctoHub-Wireless-n ne peut pas gérer des périphériques autres que des modules Yoctopuce. Un hub USB standard ne fonctionnera pas non plus5. Si vous désirez brancher plus de trois modules Yoctopuce, utilisez le connecteur dorsal pour y connecter un ou plusieurs YoctoHub-Shield6.

Attention, les connecteurs USB du YoctoHub-Wireless-n sont simplement soudés en surface et peuvent être arrachés si la prise USB venait à faire fortement levier. Si les pistes sont restées en place, le connecteur peut être ressoudé à l'aide d'un bon fer et de flux. Alternativement, vous pouvez souder un fil USB directement dans les trous espacés de 1.27mm prévus à cet effet, près du connecteur.

Le connecteur d'antenne

Le YoctoHub-Wireless-n dispose d'un connecteur d'antenne coaxial ultra miniature (U.FL). Prenez soin du connecteur U.FL, il est fragile et n'est pas conçu pour supporter beaucoup de cycles de connexion/déconnexion. Le YoctoHub-Wireless-n est livré en standard avec un petit câble U.FL vers RP-SMA femelle (reverse polarity SMA: filetage extérieur et pin mâle au centre) et une antenne correspondante RP-SMA mâle (filetage intérieur et tube femelle au centre). Vous pouvez utiliser une autre antenne de votre choix, pour autant qu'elle soit conçue pour la gamme de fréquence 2.4 GHz et qu'elle ait le bon connecteur. Méfiez vous des différentes variantes de connecteurs SMA: il existe des antennes pour chacune des quatre combinaisons SMA/RP-SMA et mâle/femelle, mais seule une antenne RP-SMA mâle est utilisable avec le câble d'antenne fourni. Prenez garde aussi au fait que l'utilisation d'antennes à fort gain peut vous amener à émettre un signal supérieur à la norme autorisée dans votre pays.


Connexion de l'antenne

Si vous désirez utiliser le YoctoHub-Wireless-n dans un boîtier sans antenne apparente, vous pouvez utiliser une petite antenne PCB qui tiendra à l'intérieur du boîtier. L'antenne PCB Delock 862467 a été testée avec le YoctoHub-Wireless-n et donne de très bons résultats. Vous la trouverez en vente sur de nombreux site en ligne, ainsi que sur le shop de Yoctopuce.

Indicateur de sur-consommation

Le YoctoHub-Wireless-n analyse en permanence sa consommation. S'il détecte une consommation globale de plus de 2A suite à une surcharge sur un des ports descendants par exemple, il va automatiquement désactiver tous les ports descendants et allumer l'indicateur de sur-consommation. Pour isoler la source du problème, vous pouvez réactiver les ports un à un, en surveillant l'augmentation de la consommation. Alternativement, si connaissez la source du problème de sur-consommation et savez l'avoir résolu, vous pouvez redémarrer le YoctoHub-Wireless-n pour réactiver tous les ports.

Notez que l'indicateur de sur-consommation est une mesure de protection qui peut éviter la surchauffe, mais ce n'est pas une garantie de protection contre les court- circuits.

Mise en sommeil

En temps normal, le YoctoHub-Wireless-n consomme environ 0,5 Watt, auquel il faut ajouter la consommation des modules qui lui sont connectés. Mais il est capable de se mettre en sommeil pour réduire sa consommation d'énergie au strict minimum, et de se réveiller à une heure précise (ou lorsqu'un contact extérieur est fermé). Cette fonctionnalité est très utile pour construire des installations de mesure fonctionnant sur batterie. Lorsque que le YoctoHub-Wireless-n est en sommeil, la quasi totalité de l'électronique du module ainsi que les modules Yoctopuce connectés sont hors tension, ce qui réduit sa consommation totale à 75 µW (15 µA).

La mise en sommeil et le réveil peuvent être soit programmés sur base horaire, soit contrôlés par logiciel, soit contrôlés manuellement à l'aide de deux boutons poussoirs présents sur le circuit du YoctoHub-Wireless-n. Vous y trouverez aussi deux paires de contacts qui permettent de dériver ces deux boutons.


Dérivation des boutons de mise en sommeil et de réveil.

Le YoctoHub-Wireless-n dispose d'un interrupteur qui permet de désactiver au niveau hardware la fonctionnalité de mise en sommeil. Cette fonctionnalité est utile en particulier durant les phases de développement/déverminage de votre projet, ainsi que pour effectuer les mises à jour du firmware.

3. Premiers pas

Ce chapitre a pour but de vous aider à connecter et configurer votre YoctoHub-Wireless-n pour la première fois.

3.1. Configuration manuelle

Vous pouvez configurer votre YoctoHub-Wireless-n via son port de contrôle USB, en utilisant VirtualHub8.

Lancez VirtualHub sur votre ordinateur favori et raccordez votre ordinateur au port power / control port du YoctoHub-Wireless-n. Vous aurez besoin d'un câble USB A-MicroB.


Configuration: raccordez par USB votre YoctoHub-Wireless-n à un ordinateur

Lancez alors votre browser favori sur l'URL de votre VirtualHub. Il s'agit généralement de http://127.0.0.1:4444. Vous obtiendrez la liste des modules Yoctopuce connectés par USB, dont votre YoctoHub-Wireless-n.


Liste des modules Yoctopuce raccordés par USB à votre ordinateur, dont votre YoctoHub-Wireless-n

Cliquez sur le bouton configure correspondant à votre YoctoHub-Wireless-n, votre obtiendrez la fenêtre de configuration du module. Cette fenêtre comporte une section Network configuration.


Fenêtre de configuration du module YoctoHub-Wireless-n

Connexion au réseau sans fil

La première chose à faire consiste à configurer votre YoctoHub-Wireless-n pour qu'il se connecte à votre réseau WiFi. Pour cela cliquez sur le bouton edit correspondant à WLAN settings dans la section Network configuration, la fenêtre de configuration du réseau sans fil apparaît:


Fenêtre de configuration du réseau sans fil

Vous pouvez alors choisir si vous souhaitez connecter votre YoctoHub-Wireless-n à un reseau existant, ou si vous préférez entrer manuellement le SSID du réseau que vous voulez utiliser.

Vous pouvez aussi configurez le YoctoHub-Wireless-n pour qu'il génère son propre réseau sans fil en mode Software enabled Access Point (SoftAP). Vous pourrez alors vous connecter directement sur le YoctoHub-Wireless-n sans avoir a passer par un serveur d'infrastructure (point d'accès). Soyez toutefois conscients que ce mode de fonctionnement SoftAP a des limitations par rapport à un vrai réseau WiFi. En particulier il n'est pas possible d'avoir plus que quatre clients connectés au réseau en même temps.

Après avoir entré les paramètres de réseau sans fil et éventuellement les avoir testés, vous pouvez cliquer sur le bouton Ok pour fermer cette fenêtre de configuration et retourner à la fenêtre de configuration générale.

Vous pouvez aussi, en cas de besoin, configurer quelle adresse IP doit être attribuée au YoctoHub-Wireless-n. Pour ce faire, cliquez sur le bouton edit en face de la ligne ip adressing.

Vous pouvez choisir si l'adresse IP de votre YoctoHub-Wireless-n doit être attribuée par DHCP ou si elle doit être fixe. L'option DHCP est recommandée dans la mesure où cette fonctionnalité est supportée par la plupart des boîtiers ADSL (c'est la configuration par défaut). Si vous ne savez pas ce qu'est un serveur DCHP mais avez l'habitude de brancher des appareils sur votre réseau et de les voir marcher sans problème, ne touchez à rien.

Vous pouvez aussi choisir le nom réseau de votre YoctoHub-Wireless-n. Vous pourrez ainsi accéder à votre YoctoHub-Wireless-n en utilisant ce nom plutôt que son adresse IP. Une fois la partie réseau configurée, cliquez sur le bouton Save. Cela qui aura pour effet de sauver vos modifications et de fermer la fenêtre de configuration. Ces modifications étant sauvées dans la mémoire persistante du YoctoHub-Wireless-n, il s'en rappellera même après avoir été privé de courant.

Cliquez sur le numéro de série correspondant à votre YoctoHub-Wireless-n. Cela ouvrira la fenêtre des détails de votre module:


Les propriétés du YoctoHub-Wireless-n

Cette fenêtre comporte une section qui relate l'état de la partie réseau du YoctoHub-Wireless-n. Vous y trouverez notamment le type de connexion et son adresse IP courante. Cette section donne aussi l'état de la connexion réseau. Ces états peuvent être:

Après avoir vérifié que votre module a bien une adresse IP valide, vous pouvez fermer la fenêtre détails, arrêter votre VirtualHub et débrancher le câble USB de contrôle de votre ordinateur: il suffira que le module soit alimenté pour l'utiliser.

Vous pouvez désormais accéder à votre YoctoHub-Wireless-n en tapant directement son adresse IP dans la barre d'adresse de votre browser favori. Le module répond au port HTTP standard, mais aussi au port 4444 utilisé par le VirtualHub. Si l'adresse IP de votre module est 192.168.0.10, vous pourrez donc le joindre avec l'URL http://192.168.0.10.

Vous obtiendrez alors directement l'interface du YoctoHub-Wireless-n. Cette interface est en tout point identique à celle du VirtualHub. Vous retrouvez le YoctoHub-Wireless-n sur la première ligne et les modules connectés au YoctoHub-Wireless-n sur les suivantes.


L'interface du YoctoHub-Wireless-n est identique à celle d'un VirtualHub.

Si vous avez attribué un nom à votre YoctoHub-Wireless-n, vous pouvez aussi utiliser ce nom sur le réseau local. Par exemple, si vous avez utilisé le nom réseau yoctohub, vous pouvez contacter le module avec l'URL http://yoctohub sous Windows et avec l'URL http://yoctohub.local sous Mac OS X et Linux. Notez que cette technique est limitée au sous-réseau du YoctoHub-Wireless-n. Si vous voulez contacter le module par nom depuis un autre réseau, vous devez utiliser une infrastructure DNS classique.

3.2. Configuration automatisée

Il est possible d'industrialiser la configuration réseau du YoctoHub-Wireless-n. Vous trouverez dans les chapitres suivants de cette documentation la description des fonctions de programmation permettant de relire l'adresse Ethernet d'un module (adresse MAC), et de configurer tous ses paramètres réseau.

Les fonctions de configuration réseau sont aussi accessibles par ligne de commande, en utilisant l'utilitaire YNetwork disponible dans la librairie de programmation en ligne de commande9.

Après avoir effectué un changement de réglage par programmation, prenez garde à appeler la fonction saveToFlash() pour vous assurez que les réglages soient sauvés de manière permanente dans la mémoire flash du module.

3.3. Connexions

Alimentation

Le YoctoHub-Wireless-n doit être alimenté par la prise USB de contrôle.

USB

Branchez simplement un chargeur USB dans le port power / control port, assurez-vous tout de même que le chargeur soit d'une puissance électrique suffisante: le YoctoHub-Wireless-n consomme environ 120mA, auxquels il faudra ajouter la consommation de chaque sous-module. Le YoctoHub-Wireless-n est conçu pour gérer 2A au maximum, c'est pourquoi un chargeur USB capable de délivrer au moins 2A est recommandé. Par ailleurs, vous devrez veiller à ce que la consommation totale de l'ensemble hub + sous-modules ne dépasse pas cette limite.


Le YoctoHub-Wireless-n peut être alimenté par un chargeur USB

Sous-modules

Le YoctoHub-Wireless-n est capable de piloter tous les modules Yoctopuce de la gamme Yocto. Ces modules peuvent êtres connectés directement aux ports descendants, ils seront détectés automatiquement. Vous aurez besoin pour cela de câbles USB MicroB-MicroB. Vous pouvez utiliser des câbles OTG ou non, cela n'a pas d'importance.


Connexion des sous-modules à l'aide de câbles USB

Alternativement, vous pouvez connecter vos modules de manière plus compacte à l'aide de câbles au pas 1.27mm: tous les modules Yoctopuce disposent en effet de contacts à cet effet. Vous pouvez soit souder des connecteurs 1.27mm sur les modules et utiliser des câbles avec connecteurs 1.27mm, soit souder directement du câble plat au pas 1.27mm. Si vous choisissez cette dernière option, il est recommandé d'utiliser du câble plat mono-brin, moins souple que le multi-brin mais beaucoup plus facile à souder. Soyez particulièrement attentif aux polarités: Le YoctoHub-Wireless-n, tout comme l'ensemble de modules de la gamme Yoctopuce, n'est pas protégé contre les inversions de polarité. Une telle inversion a toutes les chances de détruire vos équipements. Assurez-vous que la position du contact carré de part et d'autre du câble correspondent.


Connexion des sous-modules à l'aide de câble nappe

Le YoctoHub-Wireless-n est conçu pour que vous puissiez fixer un module simple largeur directement dessus. Vous aurez besoin de vis, d'entretoises10 et d'un connecteur au pas 1.27mm11. Vous pouvez ainsi transformer un module Yoctopuce USB en en module réseau tout en gardant un format très compact.


Fixation d'un module directement sur le hub

Attention, le YoctoHub-Wireless-n est conçu pour piloter des modules Yoctopuce uniquement. En effet le protocole utilisé entre le YoctoHub-Wireless-n et les sous-modules n'est pas de l'USB mais un protocole propriétaire, beaucoup plus léger. Si d'aventure vous branchez un périphérique autre qu'un module Yoctopuce sur un des ports descendants du YoctoHub-Wireless-n, le port en question sera automatiquement désactivé pour éviter d'endommager le périphérique.

4. Montage

Ce chapitre fournit des explications importantes pour utiliser votre module YoctoHub-Wireless-n en situation réelle. Prenez soin de le lire avant d'aller trop loin dans votre projet si vous voulez éviter les mauvaises surprises.

4.1. Fixation

Pendant la mise au point de votre projet, vous pouvez vous contenter de laisser le hub se promener au bout de son câble. Veillez simplement à ce qu'il ne soit pas en contact avec quoi que soit de conducteur (comme vos outils). Une fois votre projet pratiquement terminé, il faudra penser à faire en sorte que vos modules ne puissent pas se promener à l'intérieur.


Exemples de montage sur un support.

Le module YoctoHub-Wireless-n dispose de trous de montage 3mm. Vous pouvez utiliser ces trous pour y passer des vis. Le diamètre de la tête de ces vis ne devra pas dépasser 8mm, sous peine d'endommager les circuits du module.

Veillez à que l'électronique module ne soit pas en contact avec le support. La méthode recommandée consiste à utiliser des entretoises. Vous pouvez monter le module dans le sens qui vous convient: mais vous devez être conscient du fait que les composants électroniques du YoctoHub-Wireless-n, la partie réseau en particulier, dégagent de la chaleur. Vous devrez donc faire en sorte que la chaleur ne puisse pas s'accumuler.

4.2. Fixation d'un sous-module

Le YoctoHub-Wireless-n est conçu pour que vous puissiez visser un module simple largeur directement dessus. Par simple largeur, on entend les modules de 20 mm de large. Tous les modules simple largeur ont leurs 5 trous de fixation et le connecteur USB au même endroit. Le sous-module peut être fixé à l'aide de vis et d'entretoises. Il y a derrière les connecteurs USB du YoctoHub-Wireless-n et du sous-module un ensemble de 4 contacts qui permettent d'effectuer la connexion électrique entre le hub et le sous-module. Si vous ne vous sentez pas suffisamment à l'aise avec un fer à souder, vous pouvez aussi aussi utiliser un simple câble USB MicroB-MicroB, OTG ou non.


Fixation d'un module directement sur le hub

Prenez garde à bien monter le module sur la face prévue, comme illustré ci-dessus. Les 5 trous du module doivent correspondre aux 5 trous du YoctoHub-Wireless-n, et le contact carré sur sur le module doit être connecté au contact carré sur le port descendant du YoctoHub-Wireless-n. Si vous montez un module sur l'autre face ou d'une autre manière, la polarité du connecteur sera inversée et vous risquez fort d'endommager définitivement votre matériel.

Tous les accessoires nécessaires à la fixation d'un module sur votre YoctoHub-Wireless-n sont relativement courants. Vous pourrez les trouver sur le site de Yoctopuce tout comme sur la plupart des sites vendant du matériel électronique. Attention cependant, la tête des vis servant à fixer le sous-module devra avoir un diamètre maximum de 4.5 millimètres, sous peine d'endommager les composants électroniques.

5. Configuration et test des modules

Une fois installé et configuré, YoctoHub-Wireless-n permet de tester et configurer vos modules Yoctopuce. Pour ce faire, ouvrez votre navigateur internet favori12. Connectez-vous en HTTP sur l'interface Web du YoctoHub-Wireless-n, comme décrit au chapitre "Premiers pas". La liste des modules connectés au hub devrait apparaître.


YoctoHub-Wireless-n: Interface Web

En bas de page se trouvent deux boutons. Le premier bouton, Show debug information, permet d'afficher et ensuite d'enregistrer toutes les informations nécessaires pour débugger un problème lié au YoctoHub-Wireless-n, c'est-à-dire:

Si vous devez contacter le support, il est important de télécharger ces informations et de les envoyer avec votre demande.

Le deuxième bouton, Show device functions, montre toutes les fonctions du YoctoHub-Wireless-n et de chacun des modules connectés au YoctoHub-Wireless-n.

5.1. Localisation des modules

L'interface principale vous montre une ligne par module connecté, si vous avez plusieurs modules du même modèle, vous pouvez localiser un module particulier en cliquant sur le bouton beacon correspondant: cela aura pour effet de faire clignoter la led bleue du module et d'afficher sur l'interface une pastille bleue au début de la ligne correspondante. Vous pouvez faire la même manipulation en appuyant sur le Yocto-bouton d'un module connecté.


Yocto-bouton (1) et led de localisation (2) d'un module Yocto-Meteo-V2. Ces deux éléments sont toujours placés au même endroit, quelque soit le module.

5.2. Test des modules

Pour tester un module, cliquez simplement sur le numéro de série d'un module dans l'interface, une fenêtre spécifique au module s'ouvrira. Cette fenêtre permet généralement d'activer les fonctions principales du module. Reportez vous au manuel du module correspondant pour plus de détails.

En général, vous n'êtes pas obligé d'avoir une version de YoctoHub-Wireless-n plus récente que le module que vous voulez tester/configurer: la plupart des éléments spécifiques aux interfaces des modules sont stockés dans le firmware des modules eux-même. Il y a toutefois quelques exceptions, donc si vous rencontrez une erreur dans l'interface Web d'un module, vérifiez si une mise à jour de YoctoHub-Wireless-n est disponible, et le cas échéant installez-là. Il peut ensuite être nécessaire de recharger la page dans le navigateur avec Shift-Reload, ou de vider le cache de votre navigateur, afin de forcer la mise à jour du code JavaScript.


Fenêtre "détails" du module Yocto-Meteo-V2

5.3. Configuration des modules

Vous pouvez configurer un module en cliquant sur le bouton configure correspondant dans l'interface principale, une fenêtre spécifique au module s'ouvre alors. Cette fenêtre permet au minimum de donner un nom logique au module ainsi que de mettre à jour son firmware. Reportez-vous au manuel du module correspondant pour plus de détails.


Fenêtre "configure" du module Yocto-Meteo-V2

5.4. Mise à jour des firmwares

Les modules Yoctopuce sont en fait de véritables ordinateurs, ils contiennent même un petit serveur web. Et comme tous les ordinateurs, il est possible de mettre à jour leur logiciel de contrôle (firmware). Des nouveaux firmwares pour chaque module sont régulièrement publiés, ils permettent généralement d'ajouter de nouvelles fonctionnalités au module, et/ou de corriger d'éventuels bugs13.

Méthode recommandée

Pour mettre à jour le firmware d'un module, il suffit de d'ouvrir, dans l'interface de YoctoHub-Wireless-n, la fenêtre de configuration du module à mettre à jour, puis cliquer sur le bouton upgrade. Si vous cliquez simplement sur le bouton Update, YoctoHub-Wireless-n utilisera la version le plus récente du firmware publiée sur le site Web de Yoctopuce et l'installera.

YoctoHub-Wireless-n vous permet aussi de choisir un fichier .byn que vous avez préalablement téléchargé depuis le site web de Yoctopuce, par exemple pour réinstaller une version antérieure.


Fenêtre de mise à jour du firmware

Une fois que vous avez cliqué sur Update, tout est automatique, YoctoHub-Wireless-n fait redémarrer le module en mode "mise à jour", met à jour le firmware, puis rédémarre le module en mode normal. Les réglages de configuration du module seront préservés. Ne débranchez pas le module pendant la procédure de mise à jour.

Méthode alternative

Si la mise à jour d'un module se passe mal, en particulier si le module a été débranché pendant le processus, il risque fort de ne plus fonctionner et de ne plus apparaître dans la listes des modules. Dans ce cas débranchez-le, attendez quelques secondes, et rebranchez-le en maintenant le Yocto-bouton appuyé. Cela a pour effet de faire démarrer le module en mode "mise à jour". Ce mode de fonctionnement est protégé contre les corruptions et devrait toujours être accessible. Une fois le module rebranché, provoquez un rafraîchissement de la liste des modules dans l'interface de YoctoHub-Wireless-n et votre module devrait être listé dans le bas de l'interface. Cliquez dessus pour mettre à jour son firmware. Ce mode de mise à jour est une procédure de récupération, elle ne sauvegarde pas les réglages du module.


Les modules en mode "mise à jour" sont listés dans l'interface.

La mise à jour normale préserve la configuration des modules, en revanche la méthode alternative avec le Yocto-bouton remet le module dans sa configuration d'usine. Ce qui fait que vous pouvez aussi utiliser cette méthode pour réinitialiser complètement un module.

Par ligne de commande ou programmation

Tous les outils en lignes de commandes ont la possibilité de mettre à jour les modules Yoctopuce grâce à la commande downloadAndUpdate. Le mécanisme de sélection des modules fonctionne comme pour une commande traditionnelle. La [cible] est le nom du module qui va être mis à jour. Vous pouvez aussi utiliser les alias "any" ou "all", ou encore une liste de noms, séparés par des virgules, sans espace.

L'exemple suivant, qui utilise la librairie Yoctopuce en ligne de commande, télécharge automatiquement les derniers firmwares depuis le site web de Yoctopuce et met à jour tous les modules Yoctopuce connectés par USB:


C:\>YModule all downloadAndUpdate
ok: Yocto-PowerRelay RELAYHI1-266C8(rev=15430) is up to date.
ok: 0 / 0 hubs in 0.000000s.
ok: 0 / 0 shields in 0.000000s.
ok: 1 / 1 devices in 0.130000s 0.130000s per device.
ok: All devices are now up to date.
C:\>

Ce second exemple installe le firmware LIGHTMK3.51180.byn, stocké dans le répertoire local C:\tmp\yfirmware, sur le module dont le numéro de série est LIGHTMK3-23BBDF. Les fichiers de firmware peuvent être téléchargés manuellement depuis le site web de Yoctopuce14.


C:\>ymodule LIGHTMK3-23BBDF updateFirmware C:\tmp\yfirmware\LIGHTMK3.51180.byn
OK: LIGHTMK3-23BBDF.module.updateFirmware = 36% Wait for device.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 50% Flash zone.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 57% Flash zone.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 64% Flash zone.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 72% Flash zone.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 73% Device info retrieved.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 90% Firmware updated.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 100% success.
OK: LIGHTMK3-23BBDF.module.updateFirmware = 100% Firmware Updated Successfully in: 14.305s.

Par défaut, downloadAndUpdate met à jour les firmwares uniquement vers une version plus récente, grâce à un second argument optionnel, onlyNew, qui est toujours vrai s'il est omis. Si vous voulez installer un firmware plus ancien (downgrade), vous devez passer le firmware comme premier paramètre et false comme deuxième.

Il est également possible de mettre à jour le firmware de vos modules en utilisant la librairie de programmation Yoctopuce, en particulier à l'aide des méthodes YModule.checkFirmware et YModule.updateFirmware. Vous trouverez plus d'information à ce sujet dans les chapitres de programmation avancée figurant dans la documentation de chaque module.

5.5. Accès à l'enregistreur de données des capteurs

Pour tous les capteurs Yoctopuce qui incluent un enregistreur de données, la fenêtre de configuration inclut une section spéciale permettant de configurer l'enregistrement et de charger les données brutes contenues dans l'enregistreur, module par module.

Cliquez sur le bouton configure de la section Datalogger and Timed reports


Fenêtre de configuration du datalogger

Il est aussi possible d'installer comme plug-in de YoctoHub-Wireless-n l'outil Yocto-Visualization (for Web), qui offre des possibilité bien plus étendues pour visualiser les données sous forme de graphiques, et charger un fichier CSV correspondant à tous les capteurs connectés. Pour plus de détails, référez-vous au chapitre qui est consacré à l'installation de Yocto-Visualization (for Web) à la fin de ce manuel.

5.6. Passerelle REST

Vous pouvez également utiliser YoctoHub-Wireless-n comme passerelle REST. Cela consiste à envoyer au module des requêtes HTTP à travers YoctoHub-Wireless-n.

Pour expérimenter cette fonctionnalité, utilisez le lien Open API Browser disponible en bas de la fenêtre d'interface de votre module, à l'aide d'un navigateur Web.


Lien pour ouvrir l'interface REST

Dans la fenêtre qui s'ouvre, vous pouvez alors modifier chaque attribut du module, à l'aide du bouton edit, puis en appliquant votre changement avec le bouton apply:


Modification d'un attribut manuellement

Après avoir effectué un changement, si vous descendez tout en bas de la page, vous verrez la requête HTTP qui a été effectuée pour appliquer le changement demandé:


Requête HTTP correspondante

Vous pourrez ainsi facilement découvrir comment accéder aux fonctions essentielles des modules par des requêtes HTTP: c'est là tout l'intérêt d'une interface REST. Si la sémantique d'un attribut en particulier vous échappe, vous trouverez des explications dans le manuel du module.

5.7. Passerelle OpenMetrics (Prometheus)

Il est aussi possible d'utiliser YoctoHub-Wireless-n comme source de données pour un serveur Prometheus, afin de centraliser les mesures des capteurs Yoctopuce dans la même base de donnée que les informations sur l'état des infrastructures informatiques.

Les sources de données Prometheus sont appelées des exportateurs: l'idée est que chaque système ou service important peut mettre à disposition de Prometheus ses données vitales, permettant à l'administrateur système de les collecter et de les surveiller. Chaque exportateur est une URL accessible par HTTP, qui fournit ses données selon le standard OpenMetrics: une mesure par ligne, avec des conventions de nommage et de classification qui permettent à l'administrateur système de s'y retrouver parmi les centaines de mesures qu'il aura à disposition lorsqu'il configure son tableau de bord.

YoctoHub-Wireless-n a la capacité d'être un exportateur OpenMetrics par l'intermédiaire de l'interface REST. Pour obtenir des données dans le format OpenMetrics, il suffit de charger l'URL /api/services.om de votre YoctoHub-Wireless-n, soit http://127.0.0.1:4444/api/services.om. Par exemple, si vous accéder à cette URL alors que quelques capteurs sont connectés en local, vous obtiendrez quelque chose du genre (la présentation a été ici modifiée pour faciliter la lecture, mais en réalité chaque mesure tient sur une seule ligne):


yocto_temperature_advertisedValue{
    productName="Yocto-Thermocouple",
    serialNumber="THRMCPL1-16397A",
    deviceName="insideProbes",
    functionId="temperature1"} 21.78
yocto_temperature_advertisedValue{
    productName="Yocto-PT100",
    serialNumber="PT100MK1-BA496",
    functionId="temperature"} 28.57
yocto_temperature_advertisedValue{
    productName="Yocto-RangeFinder",
    serialNumber="YRNGFND1-1D1567",
    deviceName="rf",
    functionId="temperature1",
    functionName="rfTemp"} 25.13
yocto_lightSensor_advertisedValue{
    productName="Yocto-RangeFinder",
    serialNumber="YRNGFND1-1D1567",
    deviceName="rf",
    functionId="lightSensor1"} 56
yocto_rangeFinder_advertisedValue{
    productName="Yocto-RangeFinder",
    serialNumber="YRNGFND1-1D1567",
    deviceName="rf",
    functionId="rangeFinder1"} 1456
# EOF

Pour indiquer à Prometheus de collecter ces données directement depuis votre YoctoHub-Wireless-n, il suffit donc d'ajouter à votre fichier prometheus.yml une section comme celle-ci:


  - job_name: "yoctohub_sensors"
    scrape_interval: 60s
    metrics_path: "/api/services.om"
    static_configs:
      - targets: ['127.0.0.1:4444']

Comme l'exportateur OpenMetrics est intégré au coeur de l'interface REST de YoctoHub-Wireless-n, vous pouvez aussi l'utiliser pour obtenir des informations plus détaillées par capteur, en utilisant une URL qui pointe vers un capteur spécifique. Par exemple, si vous connectez un Yocto-Thermocouple au YoctoHub-Wireless-n et que vous lui donnez le nom logique tcProbes, l'URL /byName/tcProbes/api.om donnera une réponse du genre:


yocto_module_luminosity{...,functionId="module",functionName="tcProbes"} 50
yocto_module_beacon{...,functionId="module",functionName="tcProbes"} 0
yocto_module_usbCurrent_mA{...,functionId="module",functionName="tcProbes"} 23
yocto_module_rebootCountdown{...,functionId="module",functionName="tcProbes"} 0
yocto_module_userVar{...,functionId="module",functionName="tcProbes"} 0
yocto_temperature_currentValue_degC{[...],functionName="heatSink"} 21.99
yocto_temperature_lowestValue_degC{[...],functionName="heatSink"} 20.51
yocto_temperature_highestValue_degC{[...],functionName="heatSink"} 22.25
yocto_temperature_currentRawValue_degC{[...],functionName="heatSink"} 21.988
yocto_temperature_signalValue_mV{[...],functionName="heatSink"} -0.162
yocto_temperature_signalValue_mV{[...],functionId="temperature2"} 999.999
yocto_dataLogger_currentRunIndex{[...],functionId="dataLogger"} 0
yocto_dataLogger_autoStart{[...],functionId="dataLogger"} 0
yocto_dataLogger_beaconDriven{[...],functionId="dataLogger"} 0
yocto_dataLogger_usage{[...],functionId="dataLogger"} 0
# EOF

Ainsi, tous les attributs numériques du Yocto-Thermocouple sont mis à disposition. Vous pouvez donc connaître les valeurs min/max rencontrées, la tension mesurée aux bornes du thermocouple, etc. Notez aussi que dans ce cas, le symbole exporté inclut l'unité, comme recommandé par OpenMetrics. Lorsque le module détecte qu'une entrée n'est pas connectée (comme la fonction temperature2 ci-dessus), les métriques qui ne peuvent être calculées sont automatiquement supprimées pour qu'elles soient manquantes, plutôt que de garder la dernière valeur mesurée.

Pour obtenir ces données supplémentaire par capteur, il suffit donc d'ajouter au fichier prometheus.yml une section supplémentaire, référençant le capteur soit par son numéro de série (bySerial) soit par son nom logique (byName):

- job_name: "thermocouple_probes" scrape_interval: 60s metrics_path: "/byName/tcProbes/api.om" static_configs: - targets: ['127.0.0.1:4444']

6. Contrôle d'accès

YoctoHub-Wireless-n vous permet d'instaurer un contrôle d'accès à vos modules Yoctopuce. Pour ce faire cliquez simplement sur le bouton Configure de la ligne du YoctoHub-Wireless-n dans l'interface.


Cliquez sur le bouton configure de la première ligne

Cela aura pour effet de faire apparaître la fenêtre de configuration de YoctoHub-Wireless-n.


La fenêtre de configuration de YoctoHub-Wireless-n

Ce contrôle d'accès est contrôlé depuis la section Incoming connections. Il peut se faire à deux niveaux distincts.

6.1. Accès "admin"

Le mot de passe admin verrouille les accès en écriture sur les modules. Lorsqu'il est configuré, seuls les accès de type admin permettent d'accéder aux modules en lecture et en écriture. Les utilisateurs utilisant le login admin pourront éditer la configuration des modules vus par YoctoHub-Wireless-n comme ils le souhaitent.

6.2. Accès "user"

Le mot de passe user verrouille toute utilisation des modules. Lorsqu'il est configuré, toute utilisation sans mot de passe devient impossible.

Si vous configurez uniquement un mot de passe user sans configurer de mot de passe admin, tous les utilisateurs devront donner un mot de passe pour accéder aux modules, mais une fois autorisés, ils pourront aussi éditer la configuration des modules.

Si vous configurez simultanément un contrôle d'accès de type user et de type admin, les utilisateurs utilisant le login user ne pourront pas modifier la configuration des modules vus par YoctoHub-Wireless-n. Les accès de type user ne permetteront d'accéder aux modules qu'en lecture seule, c'est-à-dire seulement pour consulter l'état des modules. Seuls les utilisateurs qui utilisent le login admin pourront changer la configuration des modules.

Si vous configurez uniquement un accès admin sans configurer d'accès user, tous les utilisateurs pourront continuer à consulter vos modules en lecture sans avoir à entrer de mot de passe, et seuls ceux qui connaîtront le mote de passe admin pourront changer la configuration des modules.

6.3. Influence sur les API

Attention, le contrôle d'accès agira aussi sur les API Yoctopuce qui tenteront de se connecter à YoctoHub-Wireless-n. Dans les API Yoctopuce, la gestion des droits d'accès est réalisée au niveau de l'appel à la fonction RegisterHub() : vous devrez donner l'adresse de YoctoHub-Wireless-n sous la forme login:password@adresse:port, par exemple:


YAPI.RegisterHub("admin:mypass@192.168.1.2:4444",errmsg);

7. Envoi de données vers l'extérieur

YoctoHub-Wireless-n est capable de se connecter à des services externes pour communiquer l'état des modules qui lui sont raccordés.

YoctoHub-Wireless-n sait comment poster ses données au format accepté par quelques services Cloud tiers, tels que

YoctoHub-Wireless-n peut aussi se connecter à des services externes à l'aide de protocoles avancés qui permettent une interaction plus poussée avec les modules Yoctopuce, mais qui vous demanderont un peu plus de connaissances pour pouvoir en tirer parti:

7.1. Configuration

Pour utiliser cette fonctionnalité, cliquez simplement sur le bouton configure de la ligne correspondant à YoctoHub-Wireless-n dans l'interface, puis cliquez sur le bouton edit de la section Outgoing callbacks.


Cliquez sur le bouton configure correspondant


Puis éditez la section Outgoing callbacks

La fenêtre de configuration des callbacks apparaît. Cette fenêtre vous permet de définir comment YoctoHub-Wireless-n peut interagir avec un serveur web externe. Vous avez plusieurs type d'interactions à votre disposition.

7.2. Callbacks HTTP vers des services tiers

YoctoHub-Wireless-n est capable de poster sur des serveurs externes les valeurs des capteurs Yoctopuce à intervalles régulier et/ou à chaque fois qu'une valeur change de manière significative. Cette fonctionnalité vous permettra de stocker vos mesures et de tracer des graphiques sans écrire la moindre ligne de code.

Yoctopuce n'est en aucune manière affilié à ces services tiers et ne peut donc ni garantir leur pérennité, ni proposer des améliorations à ces services.

Emoncms

Emoncms est un service de Cloud open-source qui permet de poster les données des capteurs Yoctopuce et ensuite de les visualiser. Il est aussi possible d'installer son propre serveur en local.

Les paramètres à fournir sont la clé d'API Emoncms, le numéro de nœud que vous désirez utiliser, ainsi que l'adresse du serveur Emoncms si vous utilisez un serveur local.

Il est possible de personaliser les noms associés aux mesures postées sur Emoncms. Pour plus de détails, voir le paragraphe intitulé "Noms associés aux valeur postées" ci-dessous.

InfluxDB 1.0 and 2.0

InfluxDB est une base de données open-source dédiée spécifiquement à stocker des séries temporelles de mesures et d'événements. Notez que seules les installations locales sont supportées. En effet, le service InfluxDB Cloud n'est pas supporté car il nécessite une connexion SSL.

Les paramètres pour la version 1.0 d'InfluxDB sont l'adresse du serveur et le nom de la base de données.

La version 2.0 d'InfluxDB utilise une API différente et le YoctoHub a besoin de trois paramètres (organization, bucket et token) ainsi que l'adresse du serveur.

Il est possible de personaliser les noms associés aux mesures postées sur InfluxDB. Pour plus de détail, voir le paragraphe intitulé "Noms associés aux valeur postées" ci-dessous.

PRTG

PRTG est une solution commerciale, destinée à la supervision des systèmes et des applications. Il est possible d'enregistrer les mesures et obtenir des graphiques de vos capteurs avec ce service.

Les paramètres à fournir sont l'adresse du serveur PRTG et le token qui permet d'identifier YoctoHub-Wireless-n.

Il est possible de personaliser les noms associés aux mesures postées sur PRTG. Pour plus de détail, voir le paragraphe intitulé "Noms associés aux valeur postées" ci-dessous.

Valarm.net

Valarm est un service de Cloud professionnel qui permet d'enregistrer les données des capteurs Yoctopuce mais permet aussi des fonctions plus élaborées comme la possibilité de géolocaliser les mesures ou de configurer les modules Yoctopuce à distance.

Le seul paramètre à fournir est un Routing code qui permet d'identifier YoctoHub-Wireless-n.

7.3. Callbacks vers un broker MQTT

MQTT est un protocole de l'Internet des Objets permettant à des capteurs et des actuateurs de communiquer entre eux, via un serveur central appelé broker MQTT. MQTT est particulièrement utilisé en domotique, où il permet de fédérer de nombreuses technologies pour les rendre accessible à un système de contrôle central comme Home Assistant.

Les paramètres de base à fournir pour la configuration du callback MQTT sont l'adresse du broker MQTT, le client ID, le root_topic ainsi que les paramètres d'authentification. Notez que l'encapsulation du protocole MQTT dans une connexion SSL n'est pas supportée, ce qui exclut son utilisation avec les services comme AWS IoT Core.

Lorsqu'un callback MQTT est actif, YoctoHub-Wireless-n est capable de publier des messages avec l'état des capteurs et actuateurs, et recevoir des messages de commande et de configuration, ce qui permet au système de contrôle central d'interagir pleinement avec les modules.

Le reste de cette section décrit en détail les messages MQTT supportés. Elle n'intéressera que les développeurs qui désirent développer leur propre intégration avec des modules Yoctopuce via MQTT. Si vous comptez simplement utiliser Home Assistant, vous pouvez sauter cette section et grâce au mécanisme MQTT Discovery, vos modules devraient automatiquement apparaître dans Home Assistant.

Racine commune des messages

Le topic de tous les messages commence par une partie commune, qui identifie le module Yoctopuce et la fonction particulière de ce module concernée par le message. Elle a la structure suivante:

root_topic/deviceName/functionName

Le root_topic peut être configuré librement, par exemple à la valeur yoctopuce. Si vous connectez plusieurs hubs au même broker MQTT, vous pouvez soit utiliser le même root_topic pour tous, soit un topic différent par hub. L'utilisation d'un root_topic distinct est recommandée si le hub est destiné à recevoir beaucoup de commandes par MQTT.

Le deviceName correspond au nom logique que vous avez donné au module Yoctopuce concerné. Si aucun nom logique n'a été configuré, le numéro de série du module est utilisé à la place du nom logique (par exemple METEOMK2-012345).

Le functionName correspond au nom logique que vous avez donné à la fonction concernée. Si aucun nom logique n'a été configuré, l'identifiant de la fonction est utilisé (par exemple genericSensor1).

Le fait d'utiliser les noms logique plutôt que les noms matériels dans la racine du topic a l'avantage de permettre d'identifier les modules et les fonctions par leur rôle et de ne pas devoir indiquer explicitement l'identifiant matériel de chaque module au client MQTT qui devra interagir avec ces modules. Le désavantage est que si vous décidez de changer le nom logique de vos modules ou de vos fonctions sans y penser, les topics MQTT utilisés changeront en conséquence.

Topic /api: état complet de la fonction

Sous root_topic/deviceName/functionName/api, chaque fonction publie une structure JSON décrivant l'état complet de la fonction, tous attributs compris. Dans cet encodage JSON,

Ce message est publié lorsque l'une des conditions suivante se produit:

Topic de base: état instantané

Sous root_topic/deviceName/functionName, chaque fonction publie un résumé textuel de son état. Il ne s'agit pas de JSON mais d'une simple chaîne de caractères, correspondant à la valeur de l'attribut advertisedValue de la fonction. Par exemple, pour un capteur, il correspond à la valeur instantanée du capteur, alors que pour un relais il correspond à la lettre A ou B en fonction de l'état de commutation.

Ce message est publié lorsque l'une des conditions suivante se produit:

Pour éviter de surcharger le broker MQTT avec les changements de valeurs instantanée des capteurs, il est possible de désactiver globalement l'envoi des messages de valeurs instantanée pour les capteurs uniquement, dans la configuration MQTT.

Topics /avg, /min, /max: valeurs moyenne et extrêmes

Sous root_topic/deviceName/functionName/avg, les fonctions de type capteur (sous-classes de Sensor) publient périodiquement la valeur moyenne observée durant l'intervalle de temps précédent, directement sous forme de nombre réel.

Sous root_topic/deviceName/functionName/min, la valeur minimale observée durant l'intervalle de temps précédent.

Sous root_topic/deviceName/functionName/max, la valeur maximale observée durant l'intervalle de temps précédent.

Ces messages sont l'équivalent direct des timed reports documentés dans le manuel de ces module. L'intervalle de temps doit avoir été configuré préalablement dans l'attribut reportFrequency. Dans le cas contraire, ces messages ne sont pas envoyés.

Topics /set/attributeName: envoi de commande et configuration

Sous root_topic/deviceName/functionName/set/attributeName, il est possible d'envoyer des message pour modifier les attributs des fonctions, dans le but de modifier leur état ou leur configuration. La valeur du message correspond à la nouvelle valeur désirée, telle quelle. Le format est identique à celui utilisé par la asserelle REST de YoctoHub-Wireless-n (voir la section "Passerelle REST" de ce manuel).

Par exemple, on pourrait commuter un relais en envoyant un message au topic yoctopuce/RelaiPompe/relay1/set/state avec la valeur 1.

On pourrait aussi déclencher une impulsion de 1500ms sur le même relais en envoyant un message au topic yoctopuce/RelaiPompe/relay1/set/pulseTimer avec la valeur 1500.

La réception de commande et de changements de configuration par MQTT doit avoir été activée explicitement dans la configuration MQTT sur le hub Yoctopuce. Par sécurité, le comportement de base du mode MQTT reste le mode en lecture seule.

Topic /rdy: état de connectivité

Sous root_topic/deviceName/module/rdy, la fonction module publie une indication binaire de l'état de disponibilité du module. La valeur est à 1 lorsque le module est en ligne, et à 0 lorsqu'il est hors ligne.

Ce message est publié par le hub pour son propre module lorsque l'une des conditions suivante se produit:

Ce message est publié pour les modules autres que le hub lorsque l'une des conditions suivante se produit:

Pour déterminer si un module est réellement atteignable, il faut donc vérifier son propre topic /rdy, pour savoir si il a été déconnecté, et le topic /rdy du hub, pour savoir si la connexion MQTT est active.

MQTT discovery

De plus, des messages particuliers sont publiés sous le topic homeassistant/ juste après l'établissement de la connexion du hub avec le broker MQTT, et répétés toutes les 5 minutes, pour permettre la détection automatique des fonctionalités offertes, grace au mécanisme MQTT discovery supporté par Home Assistant et openHab.

7.4. Callbacks de type Yocto-API

Les callbacks de type Yocto-API utilisent un protocole spécifique défini par Yoctopuce, qui permet une interaction très poussée avec les modules Yoctopuce. A l'aide de certains langages commes PHP, TypeScript, JavaScript ou Java, ils permettent au programmeur du service Web d'utiliser directement les fonctions de la librairie de programmation Yoctopuce pour interagir avec les modules qui se connectent par callback HTTP. Cela permet en particulier de contrôler depuis un site web public des modules Yoctopuce installés derrière un router ADSL privé. Il est par exemple possible de commuter la sortie d'un relais en fonction de la valeur d'un capteur, tout en gardant le contrôle complet du système sur un serveur Web.

Yoctopuce met à disposition une application gratuite qui exploite au maximum les possibilités du Callback Yocto-API sur un serveur PHP: VirtualHub for Web. Cette application web permet d'interagir à distance avec les modules qui se connectent périodiquement via un Callback Yocto-API. De plus amples informations sur VirtualHub for Web sont disponibles sur le blog de Yoctopuce 15.

En mode Callback Yocto-API ou Yocto-API-JZON, il est possible de choisir entre les protocoles "HTTP" et "WebSocket".

Callbacks Yocto-API en mode WebSocket

Lors d'une requête HTTP usuelle, le flux d'information est extrêmement simple: le client envoie une requête et écoute la réponse du serveur. Il ne s'agit pas à proprement parler d'une conversation, mais simplement d'une réponse à une question. Le client HTTP ne peut pas répondre à ce que le serveur lui a dit sans recommencer une nouvelle communication séparée.

Il y a néanmoins dans le standard HTTP 1.1 une porte ouverte vers une amélioration: le client peut demander d'upgrader le protocole de communication. Une méthode d'upgrade qui s'est standardisée s'appelle les WebSockets et est définie dans le RFC 6455. Cette upgrade transforme le simple canal question/réponse en un lien bidirectionnel permettant d'échanger des messages quelconques dans les deux directions.

Cette transformation de la connection HTTP exige que les deux parties en soient capables. YoctoHub-Wireless-n et les librairies de programmation Yoctopuce le sont. Mais pour pouvoir transformer un callback HTTP en callback WebSocket, vous aurez aussi besoin d'un serveur Web basé sur une technologie qui permet l'upgrade de connection. C'est le cas par exemple de Java et Node.JS. Par contre, les implémentations de PHP sur Apache n'en sont à ce jour pas capables.

L'utilisation de WebSockets permet d'accéder à plusieurs fonctionnalités avancées des librairies Yoctopuce qui ne sont pas disponibles via un callback HTTP:

7.5. Callbacks HTTP définis par l'utilisateur

Si aucune des autres options proposées pour la configuration de callback HTTP ne convient à vos besoins, vous pouvez essayer de spécifier vous-même la manière dont les données doivent être transmises. Les "User defined callback" vous permettent de personnaliser la manière dont YoctoHub-Wireless-n envoie les informations au serveur. Notez que seul le protocole HTTP est supporté (pas de HTTPS).


La fenêtre de configurations des callbacks

Si vous désirez protéger votre script de callback, vous pouvez configurer un contrôle d'accès HTTP standard sur le serveur Web. YoctoHub-Wireless-n sait comment gérer les méthodes standard d'identification de HTTP: indiquez simplement le nom d'utilisateur et le mot de passe nécessaires pour accéder à la page. Il est possible d'utiliser la méthode "Basic" aussi bien que la méthode "Digest", mais il est recommandé d'utiliser la méthode "Digest", car elle est basée sur un protocole de question-réponse qui évite la transmission du mot de passe sur le réseau et évite aussi les copies d'autorisation.

A titre d'exemple, voici un script PHP qui vous permettra de visualiser dans la fenêtre de debug le contenu des données postées par un callback HTTP défini par l'utilisateur en mode POST et WWW-Form-UrlEncoded.


<?php
  Print(Date('H:i:s')."\r\n");
  foreach ($_POST as $key => $value) {
      Print("$key=$value\r\n");
  }
?>

Il est possible de personaliser les noms associés aux mesures postées par un callback HTTP défini par l'utilisateur. Pour plus de détail, voir le paragraphe intitulé "Noms associés aux valeur postées" ci-dessous.

7.6. Noms associés aux valeur postées

A l'exception des callbacks de type Yocto-API qui donnent accès à la totalité des informations sur les modules Yoctopuce, les callbacks HTTP sont conçus pour ne transmettres que les informations les plus importantes au serveur, en associant chaque valeur avec un nom qui permette facilement de le rattacher à son origine.

Comportement de base

Le comportement standard est de transmettre la valeur de l'attribut advertisedValue pour chaque fonction présente sur les modules Yoctopuce. Le nom associé automatiquement à chaque valeur suit la logique suivante:

1. Si un nom logique a été défini pour une fonction:

NOM_LOGIQUE_DE_LA_FONCTION = VALEUR

2. Si un nom logique a été défini pour le module, mais pas pour la fonction:

NOM_DU_MODULE.NOM_HARDWARE = VALUE

3. Si aucun nom logique n'a été attribué:

NUMERO_DE_SERIE.NOM_HARDWARE = VALEUR

La manière la plus simple pour personnaliser les noms associés aux valeurs consiste donc à configurer le nom désiré comme nom logique de la fonction, ou sinon comme nom logique du module lui-même.

Voici un exemple des données postées par un callback HTTP défini par l'utilisateur en mode POST et au format JSON (numerical) pour un système comportant un Yocto-Watt où chaque fonction a reçu un nom logique explicite (par exemple VoltageDC) et un Yocto-Meteo-V2 où c'est au module lui-même qu'on a donné le nom logique Ambiant:


{"timestamp":1678276738,
"CurrentAC":0
,"CurrentDC":0
,"VoltageAC":0
,"VoltageDC":0
,"Power":0
,"Ambiant.temperature":22.17
,"Ambiant.pressure":949.36
,"Ambiant.humidity":30
}

Personnalisation avancée par un fichier

Si l'on désire une personnalisation plus poussée du format des données transmises, pour sélectionner spécifiquement quelle attribut de quel module doit être envoyé sous quel nom, ou pour y rajouter des informations contextuelles, c'est aussi possible, mais c'est un peu plus compliqué. Il faut à ce moment créer un fichier modèle définissant le format exact des données à envoyer. Le contenu et le nom de ce fichier est donc spécifique à chaque type de callback HTTP, et chaque cas sera expliqué individuellement ci-dessous.

Le point commun de tous les fichiers de modèle est que leur contenu sera envoyé tel quel au serveur, à l'exception des expressions englobées entre accents graves (le caractère `, code ASCII 96, appelé backquote ou backtick en anglais) qui seront évaluées par la passerelle REST de YoctoHub-Wireless-n (voir la section "Passerelle REST" de ce manuel). Par exemple, si le fichier de modèle comporte le texte:


{ "origin": "`/api/module/productName`" }

alors le contenu effectivement posté sera


{ "origin": "YoctoHub-Wireless-n" }

Fichier de personnalisation pour Emoncms

Le format de base utilisé par YoctoHub-Wireless-n pour Emoncms a la forme ci-dessous. Notez que les données sont transmise dans l'URL, donc en une seule ligne, mais elles ont été mises ici sur plusieurs ligne pour faciliter la lecture.


time=1678277614
&json={
  "CurrentAC":0,
  "CurrentDC":0,
  "VoltageAC":0,
  "VoltageDC":0,
  "Power":0,
  "Ambiant.temperature":22.28,
  "Ambiant.pressure":949.54,
  "Ambiant.humidity":29.7
}

Pour personnaliser le format des données envoyées à Emoncms, il faut créer sur YoctoHub-Wireless-n un fichier modèle de format portant le nom EMONCMS_cb.fmt.

Ce fichier ne doit comporter qu'une seule ligne, sans aucun retour de chariot, et commencer par une chaîne du type &json=. Par exemple, pour ne poster que l'humidité absolue et relative, vous pourriez utiliser (sans retour de chariot!):


&json={
  "absoluteHumidity"=`/byName/Ambiant/api/humidity/absHum`,
  "relativeHumidity"=`/byName/Ambiant/api/humidity/relHum`
}

Fichier de personnalisation pour InfluxDB

Le format de base utilisé par YoctoHub-Wireless-n pour InfluxDB a la forme ci-dessous. Il associe toutes les valeurs à une base de mesures yoctopuce et ajoute un tag name avec le nom sur le réseau de YoctoHub-Wireless-n et un tag ip avec son adresse IP. Ensuite, chaque valeur est postée dans un champ dont le nom suit la convention de base décrite précédemment. Les données sont transmises par un POST de type CSV, en une seule ligne, mais elles ont été mises ici sur plusieurs lignes pour faciliter la lecture.


yoctopuce,name=VIRTHUB0-12345678,ip=192.168.1.10
  CurrentAC=0,CurrentDC=0,VoltageAC=0,VoltageDC=0,Power=0,
  Ambiant_temperature=22.5,Ambiant_pressure=948.63,Ambiant_humidity=29.4
  1678281649

Pour personnaliser le format des données envoyées à InfluxDB, il faut créer sur YoctoHub-Wireless-n un fichier modèle de format portant le nom INFLUXDB_cb.fmt (pour la version 1.0), ou INFLUXDB_V2_cb.fmt (pour la version 2.0).

Ce fichier peut comporter plusieurs lignes si vous le désirez, ce qui vous permettre d'utiliser des tags différents pour différents mesures, ou même de ventiler des mesures sur plusieurs bases de données.

Par exemple, pour poster l'humidité absolue et relative simultanément, mais avec tes tags différents, vous pourriez utiliser le fichier de format suivant:


humidity,type=relative,location=Library relHum=`/byName/Ambiant/api/humidity/relHum`
humidity,type=absolute,location=Library absHum=`/byName/Ambiant/api/humidity/absHum`

Attention: le serveur InfluxDB n'accepte que les retours de chariot au format UNIX (caractère \n, aussi appelé LF). Si vous éditez le fichier sur une machine Windows, prenez soin d'utiliser un éditeur de texte capable de ne pas ajouter le retour de chariot Windows (\r\n, aussi appelé CR LF).

Fichier de personnalisation pour PRTG

Le format de base utilisé par YoctoHub-Wireless-n pour PRTG a la forme ci-dessous. Il poste chaque valeur dans un canal dont le nom suit la convention de base décrite plus procédemment. Les données sont transmises par un POST de type CSV, en une seule ligne, mais elles ont été mises ici sur plusieurs lignes pour faciliter la lecture.


{"prtg":{"result":[
{"channel":"CurrentAC","value":"0","float":"1","DecimalMode":"All"}
,{"channel":"CurrentDC","value":"0","float":"1","DecimalMode":"All"}
,{"channel":"VoltageAC","value":"0","float":"1","DecimalMode":"All"}
,{"channel":"VoltageDC","value":"0","float":"1","DecimalMode":"All"}
,{"channel":"Power","value":"0","float":"1","DecimalMode":"All"}
,{"channel":"Ambiant.temperature","value":"22.48","float":"1","DecimalMode":"All"}
,{"channel":"Ambiant.pressure","value":"948.68","float":"1","DecimalMode":"All"}
,{"channel":"Ambiant.humidity","value":"29.7","float":"1","DecimalMode":"All"}
]}}

Pour personnaliser le format des données envoyées à PRTG, il faut créer sur YoctoHub-Wireless-n un fichier modèle de format portant le nom PRTG_cb.fmt.

Ce fichier doit comporter au minimum la même première et dernière ligne que l'exemple ci-dessus. La description des canaux pourra par contre être entièrement personnalisée.

Par exemple, pour poster l'humidité absolue et relative simultanément, dans deux canaux séparés, vous pourriez utiliser le fichier de format suivant:


{"prtg":{"result":[
{"channel":"relHum","value":"`/byName/Ambiant/api/humidity/relHum`",
  "float":"1","DecimalMode":"All"},
{"channel":"absHum","value":"`/byName/Ambiant/api/humidity/absHum`",
  "float":"1","DecimalMode":"All"}
]}}

7.7. Planification des callbacks

La section de plannification des callbacks est présente pour tous les types de callbacks. C'est la dernière section contenant des champs à remplir.

Un premier callback est toujours effectué quelques secondes après le lancement de YoctoHub-Wireless-n. Pour les callbacks suivants, c'est le réglage de planification qui détermine la fréquence des callbacks.

Il est possible de choisir entre deux méthodes de planification: soit en configurant l'intervalle de temps entre deux callbacks consécutifs, soit en définissant une périodicité absolue, pour obtenir des callbacks à heure fixe. L'intervalle entre les callbacks peut être spécifié en secondes, en minutes ou en heures.

L'option interval between subsequent callbacks permet de spécifier le délais entre chaque callback. C'est-à-dire que si l'on configure un intervalle de 5 minutes, YoctoHub-Wireless-n va attendre 5 minutes avant de déclencher le callback suivant. Si le premier callback est déclenché à 12h03, le suivant sera exécuté à 12h08, etc.

L'option absolute periodicity of callbacks permet de configurer des callbacks à heure fixe. C'est-à-dire que le callback est déclenché tous les multiples du délais configuré. Par exemple un délais de 5 minutes va déclencher un callback à 8h00, 8h05, 8h10, etc. Notez que dans ce mode il est aussi possible de spécifier un décalage par rapport au délais configuré. Par exemple avec un délais de 24h, il est possible d'utiliser un décalage de 8h pour déclencher le callback tous les jours à 8h du matin.


Planification des callbacks

Vous pouvez choisir explicitement si vous désirez que la fréquence des callbacks varie lorsqu'aucune nouvelle mesure n'est détectée. Cela permet de choisir la fréquence minimale de transmission pour réduire la quantité de données transmises sur le réseau si rien ne se passe.

Attention, si vous configurez de nombreux hubs pour effectuer le callback à la même heure, vous allez générer un pic de charge sur votre serveur web. Il est donc souhaitable d'utiliser le paramètre décalage pour équilibrer la charge.

7.8. Tests

Afin de vous permettre de débugger le processus, YoctoHub-Wireless-n vous permet de visualiser la réponse au callback envoyé par le serveur web. Dans la fenêtre de configuration des callbacks, cliquez sur le bouton test une fois que vous avez renseigné tous les champs pour ouvrir la fenêtre de tests.

La fenêtre vous montre l'état actuel du système de callback, pour vous permettre de voir par exemple si un callback est actuellement en cours sur le serveur web. Dans tous les cas, tant que cette fenêtre est ouverte, aucun callback HTTP ne sera déclenché automatiquement. C'est en pressant le bouton Test que vous pourrez déclancher manuellement un callback. Une fois déclanché, la fenêtre vous montre les informations retournées par le service web, comme dans l'exemple ci-dessous:


Le résultat du test de callback avec un Yocto-PowerRelay et un Yocto-Temperature

Si le résultat vous paraît satisfaisant, fermez la fenêtre de debug, et cliquez sur Ok.

7.9. Connexions spontanées

En plus de connexions liées aux callbacks définis décrites dans les sections précédentes, YoctoHub-Wireless-n va occasionnellement tenter d'établir des connexions vers l'extérieur. Ces connexions sont les suivantes

Notez que ces deux dernières connexions sont en fait établies par le navigateur web qui affiche l'interface utilisateur du YoctoHub-Wireless-n. De plus, ces connexions sont purement optionnelles, si elles ne peuvent pas être établies, l'interface continuera à fonctionner normalement.

Voici un tableau résumant les paramètres exacts de ces connexions:

JustificationProtocole
Port
Adresse cible Comment les désactiver
Adresse IP
dynamique
DHCP
UDP 67
broadcast configurer une
adresse IP statique
Résolution
de nom
DNS
UDP 53
serveur DNS configuré configurer l'adresse IP
du serveur NTP et
définir les callbacks
par adresse IP
Mise à jour
de l'heure
NTP
UDP 123
1.yoctopuce.pool.ntp.org
ou serveur configuré
régler le serveur NTP
à 255.255.255.255
DiscoverySSDP
UDP 1900
multicast
239.255.255.250
désactiver discoverable
DiscoveryMDNS
UDP 5353
multicast
224.0.0.251
désactiver discoverable
Installation
de YV4web
HTTP
TCP 80
www.yoctopuce.com ne pas utiliser le lien rapide
sur l'interface Web
Test de versionHTTPS
TCP 443
www.yoctopuce.com ne pas utiliser l'interface Web
du YoctoHub-Wireless-n
Téléchargement
firmware
HTTPS
TCP 443
www.yoctopuce.com ne pas faire la mise à jour
par l'interface Web

8. Mise en sommeil

Le YoctoHub-Wireless-n dispose d'une horloge en temp réel (RTC) alimentée par un super condensateur, qui se recharge automatiquement lorsque le module est sous tension mais permet de maintenir l'heure sans aucune alimentation pendant plusieurs jours. Ce RTC est utilisé pour piloter un système de mise en sommeil afin d'économiser l'énergie. Le système de mise en sommeil peut être configuré manuellement à l'aide d'une interface, ou piloté par logiciel.

8.1. Configuration manuelle du système de réveil

Les conditions de réveil peuvent être configurées manuellement en vous connectant sur l'interface du YoctoHub-Wireless-n. Dans la section Wake-up scheduler de la fenêtre de configuration générale, cliquez sur le bouton setup correspondant à l'un des "wakeup-schedule". Une fenêtre qui permet d'agender des réveils plus ou moins réguliers s'ouvre. Il suffit de sélectionner les cases correspondant aux occurrences désirées. Les sections laissées vides seront ignorée.


Fenêtre de configuration des réveils, ici toutes les 10 minutes entre 9h et 17h

De même, vous pouvez configurer directement sur l'interface du YoctoHub-Wireless-n le temps d'éveil maximal désiré, après lequel le module retournera automatiquement en sommeil profond. Si vous utilisez votre YoctoHub-Wireless-n sur batteries, ceci vous assurera de ne pas vider les batteries même si aucun ordre de mise en sommeil explicite n'est reçu.

8.2. Paramétrage du système de réveil par logiciel

Au niveau de l'interface de programmation, le système de réveil est implémenté a l'aide de deux types de fonction : La fonction wakeUpMonitor et la fonction WakeUpSchedule.

wakeUpMonitor

La fonction wakeUpMonitor gère l'éveil et la mise en sommeil proprement dits. Elle met à disposition toutes les fonctionnalités de contrôle immédiate: éveil immédiat, mise en sommeil immédiate, calcul de la date du prochain réveil etc... Le fonction wakeUpMonitor permet aussi de définir le temps maximum pendant lequel le YoctoHub-Wireless-n peut rester éveil avant de de se mettre automatiquement en sommeil.

wakeUpSchedule

La fonction wakeUpSchedule permet de programmer une condition de réveil. Elle dispose de cinq variables qui permet de définir des correspondance sur les minutes, heure, jour de la semaine, jour dans le mois, et mois. Ces variables sont des variables entières dont chaque bit défini une correspondance. Schématiquement, chaque ensemble de minutes, jours, heures est représenté sous la forme d'un ensemble de case avec chacune un coefficient qui est une puissante de deux, exactement comme dans l'interface correspondante du YoctoHub-Wireless-n.

Par exemple le bit 0 des heures correspond à l'heure zéro, le bit 1 correspond à l'heure une, le bit 2 correspond à l'heure 2 etc.


Chaque case se voit affecter une puissante de deux

Ainsi pour programmer le YoctoHub-Wireless-n pour qu'il se réveille tout les jours a midi, il mettre le bit 12 à 1, ce qui correspond à la valeur 2^12 = 4096.


Exemple de réveil à 12 H

Pour que le module se reveille à 0 heure, 6 heures et 12 heures, il faut mettre les bit 0,6,et 12 à un, ce qui correspondant à la valeur 2^0+ 2^6 + 2^12 = 1 + 64 + 4096 = 4161


Exemple de réveil à 0, 6 et 12 H

Les variables peuvent être combinées, pour qu'un réveil ait lieu tous les jours à 6H05, 6h10, 12h05 et 12h10 il suffit de mettre les heures à 2^6 + 2^12 = 4060 et les minutes à 2^5 + 2^10= 1056. Les variables laissée à zéro sont ignorées.


Exemple de réveil à 6H05, 6h10, 12h05 et 12h10

Notez que si vous désirez programmer un réveil à 6H05 et 12h10, mais pas 6h10 et 12h10, vous aurez besoin d'utiliser deux fonctions wakeUpSchedule différentes.

Ce paradigme permet de programmer des réveils assez complexe. Ainsi pour programmer un réveil tous les premiers mardis du mois, faut mettre à un le deuxième bit des jours de la semaine et les sept premiers bit des jours du mois.


Exemple de réveil tous les premiers mardi du mois

Certains languages de programmation, dont Javascript et Python, ne supportent pas les entiers 64 bits, ce qui pose un problème pour encoder les minutes. C'est pourquoi les minutes sont à la fois accessibles via un entier 64 bits minutes et deux entiers 32 bits, minutesA et minutesB, qui eux sont disponibles dans tous les languages actuels.


Les minutes sont aussi disponibles sous forme de deux entiers 32 bits.

La fonction wakeUpSchedule dispose d'une variable supplémentaire qui permet de définir le temps, en secondes, durant lequel le module restera éveillé après un réveil. Si cette variable est mise à zéro, le module restera éveillé.

Le YoctoHub-Wireless-n dispose de deux fonctions wakeUpSchedule ce qui permet de programmer jusqu'a deux types de réveils indépendants.

9. Personnalisation de l'interface Web

Votre YoctoHub-Wireless-n dispose d'un petit système de fichiers embarqué, qui permet de stocker des fichiers personnalisés utilisables par le YoctoHub-Wireless-n. Le système de fichiers se manipule grâce à la libraire yocto_files. Vous pourrez y stocker les fichiers de votre choix. Au besoin, vous pourrez y stocker une application Web permettant de gérer les modules connectés à votre YoctoHub-Wireless-n.

9.1. Utilisation

Utilisation interactive

L'interface Web du YoctoHub-Wireless-n fournit une interface sommaire pour manipuler le contenu du système de fichiers: cliquez simplement sur le bouton configuration correspondant à votre module dans l'interface du hub, puis sur le bouton manage files. Les fichiers présents sont listés, et vous pouvez les visualiser, les effacer ou en ajouter (téléchargement).

En raison de sa petite taille, le système de fichiers ne possède pas de notion explicite de répertoire. Vous pouvez toutefois utiliser la barre oblique "/" à l'intérieur des noms de fichiers pour les classer comme s'ils étaient dans des répertoires.

Utilisation programmée

Le système de fichiers s'utilise avec la librairie yocto_files. Les fonctions de bases sont disponibles:

Un programme utilisant le système de fichier bien conçu devrait toujours commencer par s'assurer que les fichiers nécessaires à son fonctionnement sont présents sur le module, et si nécessaire les charger sur le module. Cela permet de gérer de manière transparente les mises à jour logicielles et le déploiement de l'application sur des nouveaux modules. Pour faciliter la détection des versions de fichiers présents sur le module, la méthode get_list retourne pour chaque fichier une signature sur 32 bit appelée CRC (Cyclic Redundancy Check), qui identifie de manière fiable le contenu du fichier. Ainsi, si le CRC du fichier correspond, il y a moins d'une chance sur 4 milliards que son contenu ne soit pas le bon. Vous pouvez même calculer dans votre programme par avance le CRC du contenu que vous désirez, et ainsi le vérifier sans avoir à transférer le fichier. La fonction CRC utilisée par le système de fichiers Yoctopuce est la même que celle d'Ethernet, Gzip, PNG, etc. Sa valeur caractéristique pour la chaîne de neuf caractères "123456789" est 0xCBF43926.

Utilisation par HTTP

Les fichiers que vous avez chargés sur sur votre YoctoHub-Wireless-n sont accessibles par HTTP, à la racine du module (au même niveau que l'API REST). Cela permet de charger par exemple des pages d'interface HTML et Javascript personnalisées. Vous ne pouvez toutefois pas remplacer le contenu d'un fichier préchargé sur le module, mais seulement en ajouter des nouveaux.

Interfaces utilisateur et optimisation

Puisque que pouvez sauver des fichiers directement sur la mémoire flash du module et les accéder depuis l'extérieur, il est très facile de construire une application WEB pour contrôler les modules connectés au hub et de la stocker directement sur le hub. C'est un moyen très pratique pour construire des systèmes télécommandables depuis un smart-phone ou une tablette. Cependant le YoctoHub-Wireless-n est plus limité qu'un serveur WEB normal: il n'accepte qu'un nombre limité de connexions en parallèle. La plupart des browsers WEB actuels ayant tendance à ouvrir un maximum de connexions en parallèle pour charger tous les éléments d'une page WEB, cela peut mener à des temps de chargement très long. Pour éviter cela, essayez de garder vos pages WEB aussi compactes que possible en incluant le code javascript et CSS directement dans la page. Si vous le pouvez, incluez aussi les images en base64.

9.2. Limitations

Le filesystem embarqué sur votre YoctoHub-Wireless-n a quelques limitations techniques:

10. Installation de Yocto-Visualization (for web)

Yocto-Visualization (for web) est une petite application Web qui permet de visualiser facilement les valeurs mesurées par des capteurs Yoctopuce.


L'interface de Yocto-Visualization (for web)

Il est possible d'installer Yocto-Visualization (for web) comme plug-in de YoctoHub-Wireless-n, directement via l'interface Web de configuration de YoctoHub-Wireless-n.

Pour installer Yocto-Visualization (for web) depuis l'interface Web de YoctoHub-Wireless-n

  1. Dans l'interface de YoctoHub-Wireless-n, ouvrez la fenêtre de configuration de YoctoHub-Wireless-n en cliquant sur configure.
  2. Dans la section Network configuration, en face de Yocto-Visualization-4web, cliquez sur start installer.
  3. Il suffit ensuite de suivre les étapes en cliquant sur Next de manière répétée puis OK. Assurez-vous simplement que dans le champ Hub address le port ne soit pas présent deux fois.


La section Network configuration de la fenêtre de configuration de YoctoHub-Wireless-n

Pour utiliser Yocto-Visualization (for web), référez-vous aux articles du blog du site de Yoctopuce.

11. Programmation

11.1. Accès aux modules connectés

Le YoctoHub-Wireless-n se comporte exactement comme un ordinateur faisant tourner VirtualHub. La seule différence entre un programme utilisant l'API Yoctopuce utilisant des modules en USB natif et ce même programme utilisant des modules Yoctopuce connectés à un YoctoHub-Wireless-n se situe au niveau de l'appel à RegisterHub. Pour utiliser des modules USB connectés en natif, le paramètre de RegisterHub est usb, pour utiliser des modules connectés à un YoctoHub-Wireless-n, il suffit de remplacer ce paramètre par l'adresse IP du YoctoHub-Wireless-n. Par en exemple, en Delphi:


YAPI.RegisterHub("usb",errmsg);

devient


YAPI.RegisterHub("192.168.0.10",errmsg); // l'adresse IP du hub est 192.168.0.10

11.2. Contrôle du YoctoHub-Wireless-n

Du point de vue API de programmation, le YoctoHub-Wireless-n est un module comme les autres. Il est parfaitement contrôlable depuis l'API Yoctopuce. Pour ce faire, vous aurez besoin des classes suivantes.

Module

Cette classe, commune à tous les modules Yoctopuce permet de contrôler le module en temps que tel. Elle vous permettra de contrôler la Yocto-Led, de connaître la consommation sur USB du YoctoHub-Wireless-n, etc.

Wireless

Cette classe permet de contrôler la configuration du réseau sans fil du YoctoHub-Wireless-n, en particulier le SSID et la clé d'accès au réseau sans fil.

Network

Cette classe permet de contrôler la partie réseau du YoctoHub-Wireless-n, vous pourrez contrôler l'état du link, lire l'adresse MAC, changer l'adresse IP du YoctoHub-Wireless-n, connaître la consommation sur PoE, etc.

Hub

Cette classe permet d'obtenir l'état de la connexion entre la librairie de programmation et les YoctoHubs ou VirtualHubs qui ont été enregistrés.

HubPort

Cette classe permet de contrôler la partie hub. Vous pourrez activer ou désactiver les ports du YoctoHub-Wireless-n, vous pourrez aussi savoir quel module est connecté à quel port.

Files

Cette classe permet d'accéder aux fichiers stockées dans la mémoire flash du YoctoHub-Wireless-n. Le YoctoHub-Wireless-n dispose en effet d'un petit système de fichiers qui vous permet de stocker par exemple une Web App contrôlant les modules connectés au YoctoHub-Wireless-n.

WakeUpMonitor

Cette classe permet de contrôler la mise en sommeil du YoctoHub-Wireless-n.

WakeUpSchedule

Cette classe permet d'agender un ou plusieurs réveils du YoctoHub-Wireless-n.

Vous trouverez quelques exemples de contrôle du YoctoHub-Wireless-n par programmation dans les librairies Yoctopuce, disponibles gratuitement sur le site de Yoctopuce.

12. Référence de l'API de haut niveau

Ce chapitre résume les fonctions de l'API de haut niveau pour commander votre YoctoHub-Wireless-n. La syntaxe et les types précis peuvent varier d'un langage à l'autre mais, sauf avis contraire toutes sont disponibles dans chaque language. Pour une information plus précise sur les types des arguments et des valeurs de retour dans un langage donné, veuillez vous référer au fichier de définition pour ce langage (yocto_api.* ainsi que les autres fichiers yocto_* définissant les interfaces des fonctions).

Dans les langages qui supportent les exceptions, toutes ces fonctions vont par défaut générer des exceptions en cas d'erreur plutôt que de retourner la valeur d'erreur documentée pour chaque fonction, afin de faciliter le déboguage. Il est toutefois possible de désactiver l'utilisation d'exceptions à l'aide de la fonction yDisableExceptions(), si l'on préfère travailler avec des valeurs de retour d'erreur.

Ce chapitre ne reprend pas en détail les concepts de programmation des modules Yoctopuce. Vous trouverez des explications plus détaillées dans la documentation des modules que vous souhaitez raccorder à votre YoctoHub-Wireless-n.

12.1. La classe YWireless

Interface pour intéragir avec les interfaces réseau sans fil, disponibles par exemple dans le YoctoHub-Wireless, le YoctoHub-Wireless-SR, le YoctoHub-Wireless-g et le YoctoHub-Wireless-n

La classe YWireless permet de configurer et de contrôler la configuration du réseau sans fil sur les modules Yoctopuce qui en sont dotés. Notez que les paramètres TCP/IP sont configurés séparément, à l'aide de la classe YNetwork.

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_wireless.js'></script>
cpp
#include "yocto_wireless.h"
m
#import "yocto_wireless.h"
pas
uses yocto_wireless;
vb
yocto_wireless.vb
cs
yocto_wireless.cs
java
import com.yoctopuce.YoctoAPI.YWireless;
uwp
import com.yoctopuce.YoctoAPI.YWireless;
py
from yocto_wireless import *
php
require_once('yocto_wireless.php');
ts
in HTML: import { YWireless } from '../../dist/esm/yocto_wireless.js';
in Node.js: import { YWireless } from 'yoctolib-cjs/yocto_wireless.js';
es
in HTML: <script src="../../lib/yocto_wireless.js"></script>
in node.js: require('yoctolib-es2017/yocto_wireless.js');
dnp
import YoctoProxyAPI.YWirelessProxy
cp
#include "yocto_wireless_proxy.h"
vi
YWireless.vi
ml
import YoctoProxyAPI.YWirelessProxy
Fonction globales
YWireless.FindWireless(func)

Permet de retrouver une interface réseau sans fil d'après un identifiant donné.

YWireless.FindWirelessInContext(yctx, func)

Permet de retrouver une interface réseau sans fil d'après un identifiant donné dans un Context YAPI.

YWireless.FirstWireless()

Commence l'énumération des interfaces réseau sans fil accessibles par la librairie.

YWireless.FirstWirelessInContext(yctx)

Commence l'énumération des interfaces réseau sans fil accessibles par la librairie.

YWireless.GetSimilarFunctions()

Enumère toutes les fonctions de type Wireless disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YWirelessProxy
wireless→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

wireless→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

wireless→FunctionId [lecture seule]

Identifiant matériel de l'interface réseau sans fil, sans référence au module.

wireless→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

wireless→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

wireless→LinkQuality [lecture seule]

Qualité de la connection, exprimée en pourcents.

wireless→LogicalName [modifiable]

Nom logique de la fonction.

wireless→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

wireless→Ssid [lecture seule]

Nom (SSID) du réseau sans fil sélectionné.

Méthodes des objets YWireless
wireless→adhocNetwork(ssid, securityKey)

Modifie la configuration de l'interface réseau sans fil pour créer un réseau sans fil sans point d'accès, en mode "ad-hoc".

wireless→clearCache()

Invalide le cache.

wireless→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance de l'interface réseau sans fil au format TYPE(NAME)=SERIAL.FUNCTIONID.

wireless→get_advertisedValue()

Retourne la valeur courante de l'interface réseau sans fil (pas plus de 6 caractères).

wireless→get_channel()

Retourne le numéro du canal 802.11 utilisé, ou 0 si le réseau sélectionné n'a pas été trouvé.

wireless→get_detectedWlans()

Retourne une liste d'objets objet YWlanRecord qui décrivent les réseaux sans fils détectés.

wireless→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'interface réseau sans fil.

wireless→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'interface réseau sans fil.

wireless→get_friendlyName()

Retourne un identifiant global de l'interface réseau sans fil au format NOM_MODULE.NOM_FONCTION.

wireless→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

wireless→get_functionId()

Retourne l'identifiant matériel de l'interface réseau sans fil, sans référence au module.

wireless→get_hardwareId()

Retourne l'identifiant matériel unique de l'interface réseau sans fil au format SERIAL.FUNCTIONID.

wireless→get_linkQuality()

Retourne la qualité de la connection, exprimée en pourcents.

wireless→get_logicalName()

Retourne le nom logique de l'interface réseau sans fil.

wireless→get_message()

Retourne le dernier message de diagnostique de l'interface au réseau sans fil.

wireless→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wireless→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wireless→get_security()

Retourne l'algorithme de sécurité utilisé par le réseau sans fil sélectionné.

wireless→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

wireless→get_ssid()

Retourne le nom (SSID) du réseau sans fil sélectionné.

wireless→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

wireless→get_wlanState()

Retourne l'état actuel de l'interface réseau sans fil.

wireless→isOnline()

Vérifie si le module hébergeant l'interface réseau sans fil est joignable, sans déclencher d'erreur.

wireless→isOnline_async(callback, context)

Vérifie si le module hébergeant l'interface réseau sans fil est joignable, sans déclencher d'erreur.

wireless→isReadOnly()

Indique si la fonction est en lecture seule.

wireless→joinNetwork(ssid, securityKey)

Modifie la configuration de l'interface réseau sans fil pour se connecter à un point d'accès sans fil existant (mode "infrastructure").

wireless→load(msValidity)

Met en cache les valeurs courantes de l'interface réseau sans fil, avec une durée de validité spécifiée.

wireless→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

wireless→load_async(msValidity, callback, context)

Met en cache les valeurs courantes de l'interface réseau sans fil, avec une durée de validité spécifiée.

wireless→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

wireless→nextWireless()

Continue l'énumération des interfaces réseau sans fil commencée à l'aide de yFirstWireless() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les interfaces réseau sans fil sont retournés.

wireless→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

wireless→set_logicalName(newval)

Modifie le nom logique de l'interface réseau sans fil.

wireless→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

wireless→softAPNetwork(ssid, securityKey)

Modifie la configuration de l'interface réseau sans fil pour créer un pseudo point d'accès sans fil ("Soft AP").

wireless→startWlanScan()

Déclenche un balayage des fréquences utilisable et construit la liste de réseau sans fils disponible.

wireless→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

wireless→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

12.2. La classe YNetwork

Interface pour intéragir avec les interfaces réseau, disponibles par exemple dans le YoctoHub-Ethernet, le YoctoHub-GSM-4G, le YoctoHub-Wireless-SR et le YoctoHub-Wireless-n

La classe YNetwork permet de contrôler les paramètres TCP/IP des modules Yoctopuce dotés d'une interface réseau.

Pour utiliser les fonctions décrites ici, vous devez inclure:

es
in HTML: <script src="../../lib/yocto_network.js"></script>
in node.js: require('yoctolib-es2017/yocto_network.js');
js
<script type='text/javascript' src='yocto_network.js'></script>
cpp
#include "yocto_network.h"
m
#import "yocto_network.h"
pas
uses yocto_network;
vb
yocto_network.vb
cs
yocto_network.cs
java
import com.yoctopuce.YoctoAPI.YNetwork;
uwp
import com.yoctopuce.YoctoAPI.YNetwork;
py
from yocto_network import *
php
require_once('yocto_network.php');
ts
in HTML: import { YNetwork } from '../../dist/esm/yocto_network.js';
in Node.js: import { YNetwork } from 'yoctolib-cjs/yocto_network.js';
dnp
import YoctoProxyAPI.YNetworkProxy
cp
#include "yocto_network_proxy.h"
vi
YNetwork.vi
ml
import YoctoProxyAPI.YNetworkProxy
Fonction globales
YNetwork.FindNetwork(func)

Permet de retrouver une interface réseau d'après un identifiant donné.

YNetwork.FindNetworkInContext(yctx, func)

Permet de retrouver une interface réseau d'après un identifiant donné dans un Context YAPI.

YNetwork.FirstNetwork()

Commence l'énumération des interfaces réseau accessibles par la librairie.

YNetwork.FirstNetworkInContext(yctx)

Commence l'énumération des interfaces réseau accessibles par la librairie.

YNetwork.GetSimilarFunctions()

Enumère toutes les fonctions de type Network disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YNetworkProxy
network→AdminPassword [modifiable]

Chaîne de hash si un mot de passe a été configuré pour l'utilisateur "admin", ou sinon une chaîne vide.

network→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

network→CallbackCredentials [modifiable]

Version hashée du laisser-passer pour le callback de notification s'il a été configuré, ou sinon une chaîne vide.

network→CallbackEncoding [modifiable]

Encodage à utiliser pour représenter les valeurs notifiées par callback.

network→CallbackInitialDelay [modifiable]

Attente initiale avant la première notification par callback, en secondes.

network→CallbackMaxDelay [modifiable]

Attente entre deux callback HTTP lorsque rien n'est à signaler, en secondes.

network→CallbackMethod [modifiable]

Méthode HTTP à utiliser pour signaler les changements d'état par callback.

network→CallbackMinDelay [modifiable]

Attente minimale entre deux callbacks HTTP, en secondes.

network→CallbackSchedule [modifiable]

Planification des callbacks HTTP, sous forme de chaîne de caractères.

network→CallbackTemplate [modifiable]

état d'activation du fichier modèle pour personnaliser le format des callbacks.

network→CallbackUrl [modifiable]

Adresse (URL) de callback à notifier lors de changement d'état significatifs.

network→DefaultPage [modifiable]

Page HTML à envoyer pour l'URL "/" Modifiable.

network→Discoverable [modifiable]

état d'activation du protocole d'annonce sur le réseau permettant de retrouver facilement le module (protocols uPnP/Bonjour).

network→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

network→FunctionId [lecture seule]

Identifiant matériel de l'interface réseau, sans référence au module.

network→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

network→HttpPort [modifiable]

Port TCP utilisé pour l'interface Web du hub.

network→IpAddress [lecture seule]

Adresse IP utilisée par le module Yoctopuce.

network→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

network→LogicalName [modifiable]

Nom logique de la fonction.

network→MacAddress [lecture seule]

Adresse MAC de l'interface réseau, unique pour chaque module.

network→NtpServer [modifiable]

Adresse IP du serveur de NTP à utiliser pour maintenir le module à l'heure.

network→PrimaryDNS [modifiable]

Adresse IP du serveur de noms primaire que le module doit utiliser.

network→Readiness [lecture seule]

état de fonctionnement atteint par l'interface réseau.

network→SecondaryDNS [modifiable]

Adresse IP du serveur de noms secondaire que le module doit utiliser.

network→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

network→UserPassword [modifiable]

Chaîne de hash si un mot de passe a été configuré pour l'utilisateur "user", ou sinon une chaîne vide.

network→WwwWatchdogDelay [modifiable]

Durée de perte de connection WWW tolérée (en secondes) avant de déclencher un redémarrage automatique pour tenter de récupérer la connectivité Internet.

Méthodes des objets YNetwork
network→callbackLogin(username, password)

Contacte le callback de notification et sauvegarde un laisser-passer pour s'y connecter.

network→clearCache()

Invalide le cache.

network→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance de l'interface réseau au format TYPE(NAME)=SERIAL.FUNCTIONID.

network→get_adminPassword()

Retourne une chaîne de hash si un mot de passe a été configuré pour l'utilisateur "admin", ou sinon une chaîne vide.

network→get_advertisedValue()

Retourne la valeur courante de l'interface réseau (pas plus de 6 caractères).

network→get_callbackCredentials()

Retourne une version hashée du laisser-passer pour le callback de notification s'il a été configuré, ou sinon une chaîne vide.

network→get_callbackEncoding()

Retourne l'encodage à utiliser pour représenter les valeurs notifiées par callback.

network→get_callbackInitialDelay()

Retourne l'attente initiale avant la première notification par callback, en secondes.

network→get_callbackMaxDelay()

Retourne l'attente entre deux callback HTTP lorsque rien n'est à signaler, en secondes.

network→get_callbackMethod()

Retourne la méthode HTTP à utiliser pour signaler les changements d'état par callback.

network→get_callbackMinDelay()

Retourne l'attente minimale entre deux callbacks HTTP, en secondes.

network→get_callbackSchedule()

Retourne la planification des callbacks HTTP, sous forme de chaîne de caractères.

network→get_callbackTemplate()

Retourne l'état d'activation du fichier modèle pour personnaliser le format des callbacks.

network→get_callbackUrl()

Retourne l'adresse (URL) de callback à notifier lors de changement d'état significatifs.

network→get_currentDNS()

Retourne l'adresse IP du serveur DNS actuellement utilisé par le module.

network→get_defaultPage()

Retourne la page HTML à envoyer pour l'URL "/"

network→get_discoverable()

Retourne l'état d'activation du protocole d'annonce sur le réseau permettant de retrouver facilement le module (protocols uPnP/Bonjour).

network→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'interface réseau.

network→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'interface réseau.

network→get_friendlyName()

Retourne un identifiant global de l'interface réseau au format NOM_MODULE.NOM_FONCTION.

network→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

network→get_functionId()

Retourne l'identifiant matériel de l'interface réseau, sans référence au module.

network→get_hardwareId()

Retourne l'identifiant matériel unique de l'interface réseau au format SERIAL.FUNCTIONID.

network→get_httpPort()

Retourne le port TCP utilisé pour l'interface Web du hub.

network→get_ipAddress()

Retourne l'adresse IP utilisée par le module Yoctopuce.

network→get_ipConfig()

Retourne la configuration IP de l'interface réseau.

network→get_logicalName()

Retourne le nom logique de l'interface réseau.

network→get_macAddress()

Retourne l'adresse MAC de l'interface réseau, unique pour chaque module.

network→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

network→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

network→get_ntpServer()

Retourne l'adresse IP du serveur de NTP à utiliser pour maintenir le module à l'heure.

network→get_poeCurrent()

Retourne le courant consommé par le module depuis Power-over-Ethernet (PoE), en milliampères.

network→get_primaryDNS()

Retourne l'adresse IP du serveur de noms primaire que le module doit utiliser.

network→get_readiness()

Retourne l'état de fonctionnement atteint par l'interface réseau.

network→get_router()

Retourne l'adresse IP du routeur (passerelle) utilisé par le module (default gateway).

network→get_secondaryDNS()

Retourne l'adresse IP du serveur de noms secondaire que le module doit utiliser.

network→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

network→get_subnetMask()

Retourne le masque de sous-réseau utilisé par le module.

network→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

network→get_userPassword()

Retourne une chaîne de hash si un mot de passe a été configuré pour l'utilisateur "user", ou sinon une chaîne vide.

network→get_wwwWatchdogDelay()

Retourne la durée de perte de connection WWW tolérée (en secondes) avant de déclencher un redémarrage automatique pour tenter de récupérer la connectivité Internet.

network→isOnline()

Vérifie si le module hébergeant l'interface réseau est joignable, sans déclencher d'erreur.

network→isOnline_async(callback, context)

Vérifie si le module hébergeant l'interface réseau est joignable, sans déclencher d'erreur.

network→isReadOnly()

Indique si la fonction est en lecture seule.

network→load(msValidity)

Met en cache les valeurs courantes de l'interface réseau, avec une durée de validité spécifiée.

network→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

network→load_async(msValidity, callback, context)

Met en cache les valeurs courantes de l'interface réseau, avec une durée de validité spécifiée.

network→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

network→nextNetwork()

Continue l'énumération des interfaces réseau commencée à l'aide de yFirstNetwork() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les interfaces réseau sont retournés.

network→ping(host)

Ping l'adresse choisie pour vérifier la connexion réseau.

network→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

network→set_adminPassword(newval)

Modifie le mot de passe pour l'utilisateur "admin", qui devient alors instantanément nécessaire pour toute altération de l'état du module.

network→set_callbackCredentials(newval)

Modifie le laisser-passer pour se connecter à l'adresse de callback.

network→set_callbackEncoding(newval)

Modifie l'encodage à utiliser pour représenter les valeurs notifiées par callback.

network→set_callbackInitialDelay(newval)

Modifie l'attente initiale avant la première notification par callback, en secondes.

network→set_callbackMaxDelay(newval)

Modifie l'attente entre deux callback HTTP lorsque rien n'est à signaler.

network→set_callbackMethod(newval)

Modifie la méthode HTTP à utiliser pour signaler les changements d'état par callback.

network→set_callbackMinDelay(newval)

Modifie l'attente minimale entre deux callbacks HTTP, en secondes.

network→set_callbackSchedule(newval)

Modifie la planification des callbacks HTTP, sous forme de chaîne de caractères.

network→set_callbackTemplate(newval)

Modifie l'état d'activation du fichier modèle pour personnaliser les callbacks.

network→set_callbackUrl(newval)

Modifie l'adresse (URL) de callback à notifier lors de changement d'état significatifs.

network→set_defaultPage(newval)

Modifie la page HTML par défaut du hub.

network→set_discoverable(newval)

Modifie l'état d'activation du protocole d'annonce sur le réseau permettant de retrouver facilement le module (protocols uPnP/Bonjour).

network→set_httpPort(newval)

Modifie le port TCP utilisé pour l'interface Web du hub.

network→set_logicalName(newval)

Modifie le nom logique de l'interface réseau.

network→set_ntpServer(newval)

Modifie l'adresse IP du serveur NTP que le module doit utiliser.

network→set_periodicCallbackSchedule(interval, offset)

Configure la planification de callbacks HTTP périodiques (fonction simplifiée).

network→set_primaryDNS(newval)

Modifie l'adresse IP du serveur de noms primaire que le module doit utiliser.

network→set_secondaryDNS(newval)

Modifie l'adresse IP du serveur de nom secondaire que le module doit utiliser.

network→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

network→set_userPassword(newval)

Modifie le mode de passe pour l'utilisateur "user", qui devient alors instantanément nécessaire pour tout accès au module.

network→set_wwwWatchdogDelay(newval)

Modifie la durée de perte de connection WWW tolérée (en secondes) avant de déclencher un redémarrage automatique pour tenter de récupérer la connectivité Internet.

network→triggerCallback()

Déclenche un callback HTTP rapidement.

network→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

network→useDHCP(fallbackIpAddr, fallbackSubnetMaskLen, fallbackRouter)

Modifie la configuration de l'interface réseau pour utiliser une adresse assignée automatiquement par le serveur DHCP.

network→useDHCPauto()

Modifie la configuration de l'interface réseau pour utiliser une adresse assignée automatiquement par le serveur DHCP.

network→useStaticIP(ipAddress, subnetMaskLen, router)

Modifie la configuration de l'interface réseau pour utiliser une adresse IP assignée manuellement (adresse IP statique).

network→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

12.3. La classe YHub

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_module.js'></script>
cpp
#include "yocto_module.h"
m
#import "yocto_module.h"
pas
uses yocto_module;
vb
yocto_module.vb
cs
yocto_module.cs
java
import com.yoctopuce.YoctoAPI.YHub;
uwp
import com.yoctopuce.YoctoAPI.YHub;
py
from yocto_module import *
php
require_once('yocto_module.php');
ts
in HTML: import { YHub } from '../../dist/esm/yocto_module.js';
in Node.js: import { YHub } from 'yoctolib-cjs/yocto_module.js';
es
in HTML: <script src="../../lib/yocto_module.js"></script>
in node.js: require('yoctolib-es2017/yocto_module.js');
dnp
import YoctoProxyAPI.YHubProxy
cp
#include "yocto_module_proxy.h"
ml
import YoctoProxyAPI.YHubProxy
Fonction globales
YHub.FirstHubInUse()

Commence l'énumération des hubs en utilisation par la librairie.

YHub.FirstHubInUseInContext(yctx)

Commence l'énumération des hubs en utilisation par la librairie dans un contexte YAPI donné.

Méthodes des objets YHub
hub→get_connectionUrl()

Retourne l'URL actuellement utilisée pour communiquer avec ce hub.

hub→get_knownUrls()

Retourne toutes les URLs sous lesquelles ce hub a été enregistré.

hub→get_networkTimeout()

Retourne le délai de connexion réseau pour ce hub.

hub→get_registeredUrl()

Retourne l'URL sous laquelle ce hub a été initialement enregistré.

hub→get_serialNumber()

Retourne le numéro de série du hub, si la connexion a déjà été établie.

hub→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

hub→isInUse()

Indique si ce hub est actuellement enregistré dans l'API.

hub→isOnline()

Indique si la communication avec ce hub est actuellement active.

hub→isReadOnly()

Indique si l'accès à ce hub est protégé contre l'écriture.

hub→nextHubInUse()

Continue l'énumération des hubs commencée à l'aide de YHub.FirstHubInUse().

hub→set_networkTimeout(networkMsTimeout)

Change le délai de connexion réseau pour ce hub.

hub→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

12.4. La classe YHubPort

Interface pour intéragir avec les ports de YoctoHub, disponibles par exemple dans le YoctoHub-Ethernet, le YoctoHub-GSM-4G, le YoctoHub-Shield et le YoctoHub-Wireless-n

La classe YHubPort permet de contrôler l'alimentation des ports descendants d'un YoctoHub. Il permet de détecter si un module y est raccordé et lequel. Un YHubPort reçoit toujours automatiquement comme nom logique le numéro de série unique du module Yoctopuce qui y est connecté.

Pour utiliser les fonctions décrites ici, vous devez inclure:

es
in HTML: <script src="../../lib/yocto_hubport.js"></script>
in node.js: require('yoctolib-es2017/yocto_hubport.js');
js
<script type='text/javascript' src='yocto_hubport.js'></script>
cpp
#include "yocto_hubport.h"
m
#import "yocto_hubport.h"
pas
uses yocto_hubport;
vb
yocto_hubport.vb
cs
yocto_hubport.cs
java
import com.yoctopuce.YoctoAPI.YHubPort;
uwp
import com.yoctopuce.YoctoAPI.YHubPort;
py
from yocto_hubport import *
php
require_once('yocto_hubport.php');
ts
in HTML: import { YHubPort } from '../../dist/esm/yocto_hubport.js';
in Node.js: import { YHubPort } from 'yoctolib-cjs/yocto_hubport.js';
dnp
import YoctoProxyAPI.YHubPortProxy
cp
#include "yocto_hubport_proxy.h"
vi
YHubPort.vi
ml
import YoctoProxyAPI.YHubPortProxy
Fonction globales
YHubPort.FindHubPort(func)

Permet de retrouver un port de YoctoHub d'après un identifiant donné.

YHubPort.FindHubPortInContext(yctx, func)

Permet de retrouver un port de YoctoHub d'après un identifiant donné dans un Context YAPI.

YHubPort.FirstHubPort()

Commence l'énumération des ports de YoctoHub accessibles par la librairie.

YHubPort.FirstHubPortInContext(yctx)

Commence l'énumération des ports de YoctoHub accessibles par la librairie.

YHubPort.GetSimilarFunctions()

Enumère toutes les fonctions de type HubPort disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YHubPortProxy
hubport→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

hubport→Enabled [modifiable]

Vrai si le port du YoctoHub est alimenté, faux sinon.

hubport→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

hubport→FunctionId [lecture seule]

Identifiant matériel du port de YoctoHub, sans référence au module.

hubport→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

hubport→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

hubport→LogicalName [modifiable]

Nom logique de la fonction.

hubport→PortState [lecture seule]

état actuel du port de YoctoHub.

hubport→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

Méthodes des objets YHubPort
hubport→clearCache()

Invalide le cache.

hubport→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du port de YoctoHub au format TYPE(NAME)=SERIAL.FUNCTIONID.

hubport→get_advertisedValue()

Retourne la valeur courante du port de YoctoHub (pas plus de 6 caractères).

hubport→get_baudRate()

Retourne la vitesse de transfert utilisée par le port de YoctoHub, en kbps.

hubport→get_enabled()

Retourne vrai si le port du YoctoHub est alimenté, faux sinon.

hubport→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du port de YoctoHub.

hubport→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du port de YoctoHub.

hubport→get_friendlyName()

Retourne un identifiant global du port de YoctoHub au format NOM_MODULE.NOM_FONCTION.

hubport→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

hubport→get_functionId()

Retourne l'identifiant matériel du port de YoctoHub, sans référence au module.

hubport→get_hardwareId()

Retourne l'identifiant matériel unique du port de YoctoHub au format SERIAL.FUNCTIONID.

hubport→get_logicalName()

Retourne le nom logique du port de YoctoHub.

hubport→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

hubport→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

hubport→get_portState()

Retourne l'état actuel du port de YoctoHub.

hubport→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

hubport→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

hubport→isOnline()

Vérifie si le module hébergeant le port de YoctoHub est joignable, sans déclencher d'erreur.

hubport→isOnline_async(callback, context)

Vérifie si le module hébergeant le port de YoctoHub est joignable, sans déclencher d'erreur.

hubport→isReadOnly()

Indique si la fonction est en lecture seule.

hubport→load(msValidity)

Met en cache les valeurs courantes du port de YoctoHub, avec une durée de validité spécifiée.

hubport→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

hubport→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du port de YoctoHub, avec une durée de validité spécifiée.

hubport→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

hubport→nextHubPort()

Continue l'énumération des ports de YoctoHub commencée à l'aide de yFirstHubPort() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les ports de YoctoHub sont retournés.

hubport→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

hubport→set_enabled(newval)

Modifie le mode d'activation du port du YoctoHub.

hubport→set_logicalName(newval)

Modifie le nom logique du port de YoctoHub.

hubport→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

hubport→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

hubport→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

12.5. La classe YFiles

Interface pour intéragir avec les systèmes de fichier, disponibles par exemple dans le Yocto-Color-V2, le Yocto-SPI, le YoctoHub-Ethernet et le YoctoHub-GSM-4G

La class YFiles permet d'accéder au système de fichier embarqué sur certains modules Yoctopuce. Le stockage de fichiers permet par exemple de personnaliser un service web (dans le cas d'un module connecté au réseau) ou pour d'ajouter un police de caractères (dans le cas d'un module d'affichage).

Pour utiliser les fonctions décrites ici, vous devez inclure:

js
<script type='text/javascript' src='yocto_files.js'></script>
cpp
#include "yocto_files.h"
m
#import "yocto_files.h"
pas
uses yocto_files;
vb
yocto_files.vb
cs
yocto_files.cs
java
import com.yoctopuce.YoctoAPI.YFiles;
uwp
import com.yoctopuce.YoctoAPI.YFiles;
py
from yocto_files import *
php
require_once('yocto_files.php');
ts
in HTML: import { YFiles } from '../../dist/esm/yocto_files.js';
in Node.js: import { YFiles } from 'yoctolib-cjs/yocto_files.js';
es
in HTML: <script src="../../lib/yocto_files.js"></script>
in node.js: require('yoctolib-es2017/yocto_files.js');
dnp
import YoctoProxyAPI.YFilesProxy
cp
#include "yocto_files_proxy.h"
vi
YFiles.vi
ml
import YoctoProxyAPI.YFilesProxy
Fonction globales
YFiles.FindFiles(func)

Permet de retrouver un système de fichier d'après un identifiant donné.

YFiles.FindFilesInContext(yctx, func)

Permet de retrouver un système de fichier d'après un identifiant donné dans un Context YAPI.

YFiles.FirstFiles()

Commence l'énumération des systèmes de fichier accessibles par la librairie.

YFiles.FirstFilesInContext(yctx)

Commence l'énumération des systèmes de fichier accessibles par la librairie.

YFiles.GetSimilarFunctions()

Enumère toutes les fonctions de type Files disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YFilesProxy
files→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

files→FilesCount [lecture seule]

Nombre de fichiers présents dans le système de fichier.

files→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

files→FunctionId [lecture seule]

Identifiant matériel du système de fichier, sans référence au module.

files→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

files→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

files→LogicalName [modifiable]

Nom logique de la fonction.

files→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

Méthodes des objets YFiles
files→clearCache()

Invalide le cache.

files→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du système de fichier au format TYPE(NAME)=SERIAL.FUNCTIONID.

files→download(pathname)

Télécharge le fichier choisi du filesystème et retourne son contenu.

files→download_async(pathname, callback, context)

Procède au chargement du bloc suivant de mesures depuis l'enregistreur de données du module, de manière asynchrone.

files→fileExist(filename)

Test si un fichier esit dans le système de fichier du module.

files→format_fs()

Rétabli le système de fichier dans on état original, défragmenté.

files→get_advertisedValue()

Retourne la valeur courante du système de fichier (pas plus de 6 caractères).

files→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du système de fichier.

files→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du système de fichier.

files→get_filesCount()

Retourne le nombre de fichiers présents dans le système de fichier.

files→get_freeSpace()

Retourne l'espace disponible dans le système de fichier pour charger des nouveaux fichiers, en octets.

files→get_friendlyName()

Retourne un identifiant global du système de fichier au format NOM_MODULE.NOM_FONCTION.

files→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

files→get_functionId()

Retourne l'identifiant matériel du système de fichier, sans référence au module.

files→get_hardwareId()

Retourne l'identifiant matériel unique du système de fichier au format SERIAL.FUNCTIONID.

files→get_list(pattern)

Retourne une liste d'objets objet YFileRecord qui décrivent les fichiers présents dans le système de fichier.

files→get_logicalName()

Retourne le nom logique du système de fichier.

files→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

files→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

files→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

files→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

files→isOnline()

Vérifie si le module hébergeant le système de fichier est joignable, sans déclencher d'erreur.

files→isOnline_async(callback, context)

Vérifie si le module hébergeant le système de fichier est joignable, sans déclencher d'erreur.

files→isReadOnly()

Indique si la fonction est en lecture seule.

files→load(msValidity)

Met en cache les valeurs courantes du système de fichier, avec une durée de validité spécifiée.

files→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

files→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du système de fichier, avec une durée de validité spécifiée.

files→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

files→nextFiles()

Continue l'énumération des systèmes de fichier commencée à l'aide de yFirstFiles() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les systèmes de fichier sont retournés.

files→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

files→remove(pathname)

Efface un fichier, spécifié par son path complet, du système de fichier.

files→set_logicalName(newval)

Modifie le nom logique du système de fichier.

files→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

files→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

files→upload(pathname, content)

Télécharge un contenu vers le système de fichier, au chemin d'accès spécifié.

files→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

12.6. La classe YRealTimeClock

Interface pour intéragir avec les horloges à temps réel, disponibles par exemple dans le YoctoHub-GSM-4G, le YoctoHub-Wireless-SR, le YoctoHub-Wireless-g et le YoctoHub-Wireless-n

La classe YRealTimeClock permet d'accéder à l'horloge embarquée sur certains modules Yoctopuce. Elle fournit la date et l'heure courante de manière persistante, même en cas de coupure de courant de plusieurs jours. Elle est le fondement des fonctions de réveil automatique implémentées par le WakeUpScheduler. L'heure courante peut représenter aussi bien une heure locale qu'une heure UTC, mais aucune adaptation automatique n'est fait au changement d'heure été/hiver.

Pour utiliser les fonctions décrites ici, vous devez inclure:

es
in HTML: <script src="../../lib/yocto_realtimeclock.js"></script>
in node.js: require('yoctolib-es2017/yocto_realtimeclock.js');
js
<script type='text/javascript' src='yocto_realtimeclock.js'></script>
cpp
#include "yocto_realtimeclock.h"
m
#import "yocto_realtimeclock.h"
pas
uses yocto_realtimeclock;
vb
yocto_realtimeclock.vb
cs
yocto_realtimeclock.cs
java
import com.yoctopuce.YoctoAPI.YRealTimeClock;
uwp
import com.yoctopuce.YoctoAPI.YRealTimeClock;
py
from yocto_realtimeclock import *
php
require_once('yocto_realtimeclock.php');
ts
in HTML: import { YRealTimeClock } from '../../dist/esm/yocto_realtimeclock.js';
in Node.js: import { YRealTimeClock } from 'yoctolib-cjs/yocto_realtimeclock.js';
dnp
import YoctoProxyAPI.YRealTimeClockProxy
cp
#include "yocto_realtimeclock_proxy.h"
vi
YRealTimeClock.vi
ml
import YoctoProxyAPI.YRealTimeClockProxy
Fonction globales
YRealTimeClock.FindRealTimeClock(func)

Permet de retrouver une horloge à temps réel d'après un identifiant donné.

YRealTimeClock.FindRealTimeClockInContext(yctx, func)

Permet de retrouver une horloge à temps réel d'après un identifiant donné dans un Context YAPI.

YRealTimeClock.FirstRealTimeClock()

Commence l'énumération des horloges à temps réel accessibles par la librairie.

YRealTimeClock.FirstRealTimeClockInContext(yctx)

Commence l'énumération des horloges à temps réel accessibles par la librairie.

YRealTimeClock.GetSimilarFunctions()

Enumère toutes les fonctions de type RealTimeClock disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YRealTimeClockProxy
realtimeclock→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

realtimeclock→DisableHostSync [modifiable]

Vrai si la synchronisation transparente de l'horloge avec l'hôte est désactivée, sinon faux.

realtimeclock→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

realtimeclock→FunctionId [lecture seule]

Identifiant matériel de l'horloge à temps réel, sans référence au module.

realtimeclock→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

realtimeclock→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

realtimeclock→LogicalName [modifiable]

Nom logique de la fonction.

realtimeclock→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

realtimeclock→UtcOffset [modifiable]

Nombre de secondes de décallage entre l'heure courante et l'heure UTC (time zone).

Méthodes des objets YRealTimeClock
realtimeclock→clearCache()

Invalide le cache.

realtimeclock→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance de l'horloge à temps réel au format TYPE(NAME)=SERIAL.FUNCTIONID.

realtimeclock→get_advertisedValue()

Retourne la valeur courante de l'horloge à temps réel (pas plus de 6 caractères).

realtimeclock→get_dateTime()

Retourne l'heure courante au format "AAAA/MM/JJ hh:mm:ss".

realtimeclock→get_disableHostSync()

Retourne vrai si la synchronisation transparente de l'horloge avec l'hôte est désactivée, sinon faux.

realtimeclock→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation de l'horloge à temps réel.

realtimeclock→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation de l'horloge à temps réel.

realtimeclock→get_friendlyName()

Retourne un identifiant global de l'horloge à temps réel au format NOM_MODULE.NOM_FONCTION.

realtimeclock→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

realtimeclock→get_functionId()

Retourne l'identifiant matériel de l'horloge à temps réel, sans référence au module.

realtimeclock→get_hardwareId()

Retourne l'identifiant matériel unique de l'horloge à temps réel au format SERIAL.FUNCTIONID.

realtimeclock→get_logicalName()

Retourne le nom logique de l'horloge à temps réel.

realtimeclock→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

realtimeclock→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

realtimeclock→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

realtimeclock→get_timeSet()

Retourne vrai si l'horloge à été mise à l'heure, sinon faux.

realtimeclock→get_unixTime()

Retourne l'heure courante au format Unix (nombre de seconds secondes écoulées depuis le 1er janvier 1970).

realtimeclock→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

realtimeclock→get_utcOffset()

Retourne le nombre de secondes de décallage entre l'heure courante et l'heure UTC (time zone).

realtimeclock→isOnline()

Vérifie si le module hébergeant l'horloge à temps réel est joignable, sans déclencher d'erreur.

realtimeclock→isOnline_async(callback, context)

Vérifie si le module hébergeant l'horloge à temps réel est joignable, sans déclencher d'erreur.

realtimeclock→isReadOnly()

Indique si la fonction est en lecture seule.

realtimeclock→load(msValidity)

Met en cache les valeurs courantes de l'horloge à temps réel, avec une durée de validité spécifiée.

realtimeclock→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

realtimeclock→load_async(msValidity, callback, context)

Met en cache les valeurs courantes de l'horloge à temps réel, avec une durée de validité spécifiée.

realtimeclock→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

realtimeclock→nextRealTimeClock()

Continue l'énumération des horloges à temps réel commencée à l'aide de yFirstRealTimeClock() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les horloges à temps réel sont retournés.

realtimeclock→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

realtimeclock→set_disableHostSync(newval)

Modifie l'état de la synchronisation transparente de l'horloge avec l'hôte.

realtimeclock→set_logicalName(newval)

Modifie le nom logique de l'horloge à temps réel.

realtimeclock→set_unixTime(newval)

Modifie l'heure courante.

realtimeclock→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

realtimeclock→set_utcOffset(newval)

Modifie le nombre de secondes de décalage entre l'heure courante et l'heure UTC (time zone).

realtimeclock→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

realtimeclock→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

12.7. La classe YWakeUpMonitor

Interface pour intéragir avec les moniteurs de réveil, disponibles par exemple dans le YoctoHub-GSM-4G, le YoctoHub-Wireless-SR, le YoctoHub-Wireless-g et le YoctoHub-Wireless-n

La classe YWakeUpMonitor prend en charge le contrôle global de toutes les sources de réveil possibles ainsi que les mises en sommeil automatiques.

Pour utiliser les fonctions décrites ici, vous devez inclure:

es
in HTML: <script src="../../lib/yocto_wakeupmonitor.js"></script>
in node.js: require('yoctolib-es2017/yocto_wakeupmonitor.js');
js
<script type='text/javascript' src='yocto_wakeupmonitor.js'></script>
cpp
#include "yocto_wakeupmonitor.h"
m
#import "yocto_wakeupmonitor.h"
pas
uses yocto_wakeupmonitor;
vb
yocto_wakeupmonitor.vb
cs
yocto_wakeupmonitor.cs
java
import com.yoctopuce.YoctoAPI.YWakeUpMonitor;
uwp
import com.yoctopuce.YoctoAPI.YWakeUpMonitor;
py
from yocto_wakeupmonitor import *
php
require_once('yocto_wakeupmonitor.php');
ts
in HTML: import { YWakeUpMonitor } from '../../dist/esm/yocto_wakeupmonitor.js';
in Node.js: import { YWakeUpMonitor } from 'yoctolib-cjs/yocto_wakeupmonitor.js';
dnp
import YoctoProxyAPI.YWakeUpMonitorProxy
cp
#include "yocto_wakeupmonitor_proxy.h"
vi
YWakeUpMonitor.vi
ml
import YoctoProxyAPI.YWakeUpMonitorProxy
Fonction globales
YWakeUpMonitor.FindWakeUpMonitor(func)

Permet de retrouver un moniteur de réveil d'après un identifiant donné.

YWakeUpMonitor.FindWakeUpMonitorInContext(yctx, func)

Permet de retrouver un moniteur de réveil d'après un identifiant donné dans un Context YAPI.

YWakeUpMonitor.FirstWakeUpMonitor()

Commence l'énumération des moniteurs de réveil accessibles par la librairie.

YWakeUpMonitor.FirstWakeUpMonitorInContext(yctx)

Commence l'énumération des moniteurs de réveil accessibles par la librairie.

YWakeUpMonitor.GetSimilarFunctions()

Enumère toutes les fonctions de type WakeUpMonitor disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YWakeUpMonitorProxy
wakeupmonitor→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

wakeupmonitor→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

wakeupmonitor→FunctionId [lecture seule]

Identifiant matériel du moniteur de réveil, sans référence au module.

wakeupmonitor→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

wakeupmonitor→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

wakeupmonitor→LogicalName [modifiable]

Nom logique de la fonction.

wakeupmonitor→NextWakeUp [modifiable]

Prochaine date/heure de réveil agendée (format UNIX).

wakeupmonitor→PowerDuration [modifiable]

Temp d'éveil maximal en secondes avant de retourner en sommeil automatiquement.

wakeupmonitor→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

Méthodes des objets YWakeUpMonitor
wakeupmonitor→clearCache()

Invalide le cache.

wakeupmonitor→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du moniteur de réveil au format TYPE(NAME)=SERIAL.FUNCTIONID.

wakeupmonitor→get_advertisedValue()

Retourne la valeur courante du moniteur de réveil (pas plus de 6 caractères).

wakeupmonitor→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du moniteur de réveil.

wakeupmonitor→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du moniteur de réveil.

wakeupmonitor→get_friendlyName()

Retourne un identifiant global du moniteur de réveil au format NOM_MODULE.NOM_FONCTION.

wakeupmonitor→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

wakeupmonitor→get_functionId()

Retourne l'identifiant matériel du moniteur de réveil, sans référence au module.

wakeupmonitor→get_hardwareId()

Retourne l'identifiant matériel unique du moniteur de réveil au format SERIAL.FUNCTIONID.

wakeupmonitor→get_logicalName()

Retourne le nom logique du moniteur de réveil.

wakeupmonitor→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wakeupmonitor→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wakeupmonitor→get_nextWakeUp()

Retourne la prochaine date/heure de réveil agendée (format UNIX).

wakeupmonitor→get_powerDuration()

Retourne le temp d'éveil maximal en secondes avant de retourner en sommeil automatiquement.

wakeupmonitor→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

wakeupmonitor→get_sleepCountdown()

Retourne le temps avant le prochain sommeil.

wakeupmonitor→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

wakeupmonitor→get_wakeUpReason()

Renvoie la raison du dernier réveil.

wakeupmonitor→get_wakeUpState()

Revoie l'état actuel du moniteur.

wakeupmonitor→isOnline()

Vérifie si le module hébergeant le moniteur de réveil est joignable, sans déclencher d'erreur.

wakeupmonitor→isOnline_async(callback, context)

Vérifie si le module hébergeant le moniteur de réveil est joignable, sans déclencher d'erreur.

wakeupmonitor→isReadOnly()

Indique si la fonction est en lecture seule.

wakeupmonitor→load(msValidity)

Met en cache les valeurs courantes du moniteur de réveil, avec une durée de validité spécifiée.

wakeupmonitor→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

wakeupmonitor→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du moniteur de réveil, avec une durée de validité spécifiée.

wakeupmonitor→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

wakeupmonitor→nextWakeUpMonitor()

Continue l'énumération des moniteurs de réveil commencée à l'aide de yFirstWakeUpMonitor() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les moniteurs de réveil sont retournés.

wakeupmonitor→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

wakeupmonitor→resetSleepCountDown()

Réinitialise le compteur de mise en sommeil.

wakeupmonitor→set_logicalName(newval)

Modifie le nom logique du moniteur de réveil.

wakeupmonitor→set_nextWakeUp(newval)

Modifie les jours de la semaine où un réveil doit avoir lieu.

wakeupmonitor→set_powerDuration(newval)

Modifie le temps d'éveil maximal en secondes avant de retourner en sommeil automatiquement.

wakeupmonitor→set_sleepCountdown(newval)

Modifie le temps avant le prochain sommeil .

wakeupmonitor→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

wakeupmonitor→sleep(secBeforeSleep)

Déclenche une mise en sommeil jusqu'à la prochaine condition de réveil, l'heure du RTC du module doit impérativement avoir été réglée au préalable.

wakeupmonitor→sleepFor(secUntilWakeUp, secBeforeSleep)

Déclenche une mise en sommeil pour un temps donné ou jusqu'à la prochaine condition de réveil, l'heure du RTC du module doit impérativement avoir été réglée au préalable.

wakeupmonitor→sleepUntil(wakeUpTime, secBeforeSleep)

Déclenche une mise en sommeil jusqu'à une date donnée ou jusqu'à la prochaine condition de réveil, l'heure du RTC du module doit impérativement avoir été réglée au préalable.

wakeupmonitor→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

wakeupmonitor→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

wakeupmonitor→wakeUp()

Force un réveil.

12.8. La classe YWakeUpSchedule

Interface pour intéragir avec les réveils agendés, disponibles par exemple dans le YoctoHub-GSM-4G, le YoctoHub-Wireless-SR, le YoctoHub-Wireless-g et le YoctoHub-Wireless-n

La classe YWakeUpSchedule implémente une condition de réveil. Le réveil est spécifié par un ensemble de mois et/ou jours et/ou heures et/ou minutes où il doit se produire.

Pour utiliser les fonctions décrites ici, vous devez inclure:

es
in HTML: <script src="../../lib/yocto_wakeupschedule.js"></script>
in node.js: require('yoctolib-es2017/yocto_wakeupschedule.js');
js
<script type='text/javascript' src='yocto_wakeupschedule.js'></script>
cpp
#include "yocto_wakeupschedule.h"
m
#import "yocto_wakeupschedule.h"
pas
uses yocto_wakeupschedule;
vb
yocto_wakeupschedule.vb
cs
yocto_wakeupschedule.cs
java
import com.yoctopuce.YoctoAPI.YWakeUpSchedule;
uwp
import com.yoctopuce.YoctoAPI.YWakeUpSchedule;
py
from yocto_wakeupschedule import *
php
require_once('yocto_wakeupschedule.php');
ts
in HTML: import { YWakeUpSchedule } from '../../dist/esm/yocto_wakeupschedule.js';
in Node.js: import { YWakeUpSchedule } from 'yoctolib-cjs/yocto_wakeupschedule.js';
dnp
import YoctoProxyAPI.YWakeUpScheduleProxy
cp
#include "yocto_wakeupschedule_proxy.h"
vi
YWakeUpSchedule.vi
ml
import YoctoProxyAPI.YWakeUpScheduleProxy
Fonction globales
YWakeUpSchedule.FindWakeUpSchedule(func)

Permet de retrouver un réveil agendé d'après un identifiant donné.

YWakeUpSchedule.FindWakeUpScheduleInContext(yctx, func)

Permet de retrouver un réveil agendé d'après un identifiant donné dans un Context YAPI.

YWakeUpSchedule.FirstWakeUpSchedule()

Commence l'énumération des réveils agendés accessibles par la librairie.

YWakeUpSchedule.FirstWakeUpScheduleInContext(yctx)

Commence l'énumération des réveils agendés accessibles par la librairie.

YWakeUpSchedule.GetSimilarFunctions()

Enumère toutes les fonctions de type WakeUpSchedule disponibles sur les modules actuellement joignables par la librairie, et retourne leurs identifiants matériels uniques (hardwareId).

Propriétés des objets YWakeUpScheduleProxy
wakeupschedule→AdvertisedValue [lecture seule]

Courte chaîne de caractères représentant l'état courant de la fonction.

wakeupschedule→FriendlyName [lecture seule]

Identifiant global de la fonction au format NOM_MODULE.NOM_FONCTION.

wakeupschedule→FunctionId [lecture seule]

Identifiant matériel du réveil agendé, sans référence au module.

wakeupschedule→HardwareId [lecture seule]

Identifiant matériel unique de la fonction au format SERIAL.FUNCTIONID.

wakeupschedule→Hours [modifiable]

S heures où le réveil est actif..

wakeupschedule→IsOnline [lecture seule]

Vérifie si le module hébergeant la fonction est joignable, sans déclencher d'erreur.

wakeupschedule→LogicalName [modifiable]

Nom logique de la fonction.

wakeupschedule→MinutesA [modifiable]

S minutes de l'interval 00-29 de chaque heures où le réveil est actif.

wakeupschedule→MinutesB [modifiable]

S minutes de l'interval 30-59 de chaque heure où le réveil est actif.

wakeupschedule→MonthDays [modifiable]

S jours du mois où le réveil est actif.

wakeupschedule→Months [modifiable]

S mois où le réveil est actif.

wakeupschedule→NextOccurence [lecture seule]

Date/heure de la prochaine occurence de réveil.

wakeupschedule→SecondsBefore [modifiable]

Nombre de secondes d'anticipation pour allumer le système avant l'heure de réveil choisie Modifiable.

wakeupschedule→SerialNumber [lecture seule]

Numéro de série du module, préprogrammé en usine.

wakeupschedule→WeekDays [modifiable]

S jours de la semaine où le réveil est actif.

Méthodes des objets YWakeUpSchedule
wakeupschedule→clearCache()

Invalide le cache.

wakeupschedule→describe()

Retourne un court texte décrivant de manière non-ambigüe l'instance du réveil agendé au format TYPE(NAME)=SERIAL.FUNCTIONID.

wakeupschedule→get_advertisedValue()

Retourne la valeur courante du réveil agendé (pas plus de 6 caractères).

wakeupschedule→get_errorMessage()

Retourne le message correspondant à la dernière erreur survenue lors de l'utilisation du réveil agendé.

wakeupschedule→get_errorType()

Retourne le code d'erreur correspondant à la dernière erreur survenue lors de l'utilisation du réveil agendé.

wakeupschedule→get_friendlyName()

Retourne un identifiant global du réveil agendé au format NOM_MODULE.NOM_FONCTION.

wakeupschedule→get_functionDescriptor()

Retourne un identifiant unique de type YFUN_DESCR correspondant à la fonction.

wakeupschedule→get_functionId()

Retourne l'identifiant matériel du réveil agendé, sans référence au module.

wakeupschedule→get_hardwareId()

Retourne l'identifiant matériel unique du réveil agendé au format SERIAL.FUNCTIONID.

wakeupschedule→get_hours()

Retourne les heures où le réveil est actif..

wakeupschedule→get_logicalName()

Retourne le nom logique du réveil agendé.

wakeupschedule→get_minutes()

Retourne toutes les minutes de chaque heure où le réveil est actif.

wakeupschedule→get_minutesA()

Retourne les minutes de l'interval 00-29 de chaque heures où le réveil est actif.

wakeupschedule→get_minutesB()

Retourne les minutes de l'interval 30-59 de chaque heure où le réveil est actif.

wakeupschedule→get_module()

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wakeupschedule→get_module_async(callback, context)

Retourne l'objet YModule correspondant au module Yoctopuce qui héberge la fonction.

wakeupschedule→get_monthDays()

Retourne les jours du mois où le réveil est actif.

wakeupschedule→get_months()

Retourne les mois où le réveil est actif.

wakeupschedule→get_nextOccurence()

Retourne la date/heure de la prochaine occurence de réveil.

wakeupschedule→get_secondsBefore()

Retourne le nombre de secondes d'anticipation pour allumer le système avant l'heure de réveil choisie

wakeupschedule→get_serialNumber()

Retourne le numéro de série du module, préprogrammé en usine.

wakeupschedule→get_userData()

Retourne le contenu de l'attribut userData, précédemment stocké à l'aide de la méthode set_userData.

wakeupschedule→get_weekDays()

Retourne les jours de la semaine où le réveil est actif.

wakeupschedule→isOnline()

Vérifie si le module hébergeant le réveil agendé est joignable, sans déclencher d'erreur.

wakeupschedule→isOnline_async(callback, context)

Vérifie si le module hébergeant le réveil agendé est joignable, sans déclencher d'erreur.

wakeupschedule→isReadOnly()

Indique si la fonction est en lecture seule.

wakeupschedule→load(msValidity)

Met en cache les valeurs courantes du réveil agendé, avec une durée de validité spécifiée.

wakeupschedule→loadAttribute(attrName)

Retourne la valeur actuelle d'un attribut spécifique de la fonction, sous forme de texte, le plus rapidement possible mais sans passer par le cache.

wakeupschedule→load_async(msValidity, callback, context)

Met en cache les valeurs courantes du réveil agendé, avec une durée de validité spécifiée.

wakeupschedule→muteValueCallbacks()

Désactive l'envoi de chaque changement de la valeur publiée au hub parent.

wakeupschedule→nextWakeUpSchedule()

Continue l'énumération des réveils agendés commencée à l'aide de yFirstWakeUpSchedule() Attention, vous ne pouvez faire aucune supposition sur l'ordre dans lequel les réveils agendés sont retournés.

wakeupschedule→registerValueCallback(callback)

Enregistre la fonction de callback qui est appelée à chaque changement de la valeur publiée.

wakeupschedule→set_hours(newval)

Modifie les heures où un réveil doit avoir lieu.

wakeupschedule→set_logicalName(newval)

Modifie le nom logique du réveil agendé.

wakeupschedule→set_minutes(bitmap)

Modifie toutes les minutes où un réveil doit avoir lieu

wakeupschedule→set_minutesA(newval)

Modifie les minutes de l'interval 00-29 où un réveil doit avoir lieu.

wakeupschedule→set_minutesB(newval)

Modifie les minutes de l'interval 30-59 où un réveil doit avoir lieu.

wakeupschedule→set_monthDays(newval)

Modifie les jours du mois où un réveil doit avoir lieu.

wakeupschedule→set_months(newval)

Modifie les mois où un réveil doit avoir lieu.

wakeupschedule→set_secondsBefore(newval)

Modifie le nombre de secondes d'anticipation pour allumer le système avant l'heure de réveil choisie.

wakeupschedule→set_userData(data)

Enregistre un contexte libre dans l'attribut userData de la fonction, afin de le retrouver plus tard à l'aide de la méthode get_userData.

wakeupschedule→set_weekDays(newval)

Modifie les jours de la semaine où un réveil doit avoir lieu.

wakeupschedule→unmuteValueCallbacks()

Réactive l'envoi de chaque changement de la valeur publiée au hub parent.

wakeupschedule→wait_async(callback, context)

Attend que toutes les commandes asynchrones en cours d'exécution sur le module soient terminées, et appelle le callback passé en paramètre.

13. Problèmes courants

13.1. Par où commencer ?

Si c'est la première fois que vous utilisez un module Yoctopuce et ne savez pas trop par où commencer, allez donc jeter un coup d'œil sur le blog de Yoctopuce. Il y a une section dédiée aux débutants 16.

13.2. Linux et USB

Pour fonctionner correctement sous Linux, la librairie a besoin d'avoir accès en écriture à tous les périphériques USB Yoctopuce. Or, par défaut, sous Linux les droits d'accès des utilisateurs non-root à USB sont limités à la lecture. Afin d'éviter de devoir lancer les exécutables en tant que root, il faut créer une nouvelle règle udev pour autoriser un ou plusieurs utilisateurs à accéder en écriture aux périphériques Yoctopuce.

Pour ajouter une règle udev à votre installation, il faut ajouter un fichier avec un nom au format "##-nomArbitraire.rules" dans le répertoire "/etc/udev/rules.d". Lors du démarrage du système, udev va lire tous les fichiers avec l'extension ".rules" de ce répertoire en respectant l'ordre alphabétique (par exemple, le fichier "51-custom.rules" sera interprété APRES le fichier "50-udev-default.rules").

Le fichier "50-udev-default" contient les règles udev par défaut du système. Pour modifier le comportement par défaut du système, il faut donc créer un fichier qui commence par un nombre plus grand que 50, qui définira un comportement plus spécifique que le défaut du système. Notez que pour ajouter une règle vous aurez besoin d'avoir un accès root sur le système.

Dans le répertoire udev_conf de l'archive de VirtualHub17 pour Linux, vous trouverez deux exemples de règles qui vous éviteront de devoir partir de rien.

Exemple 1: 51-yoctopuce.rules

Cette règle va autoriser tous les utilisateurs à accéder en lecture et en écriture aux périphériques Yoctopuce USB. Les droits d'accès pour tous les autres périphériques ne seront pas modifiés. Si ce scénario vous convient, il suffit de copier le fichier "51-yoctopuce_all.rules" dans le répertoire "/etc/udev/rules.d" et de redémarrer votre système.

# udev rules to allow write access to all users # for Yoctopuce USB devices SUBSYSTEM=="usb", ATTR{idVendor}=="24e0", MODE="0666"

Exemple 2: 51-yoctopuce_group.rules

Cette règle va autoriser le groupe "yoctogroup" à accéder en lecture et écriture aux périphériques Yoctopuce USB. Les droits d'accès pour tous les autres périphériques ne seront pas modifiés. Si ce scénario vous convient, il suffit de copier le fichier "51-yoctopuce_group.rules" dans le répertoire "/etc/udev/rules.d" et de redémarrer votre système.

# udev rules to allow write access to all users of "yoctogroup" # for Yoctopuce USB devices SUBSYSTEM=="usb", ATTR{idVendor}=="24e0", MODE="0664", GROUP="yoctogroup"

13.3. Plateformes ARM: HF et EL

Sur ARM il existe deux grandes familles d'executables: HF (Hard Float) et EL (EABI Little Endian). Ces deux familles ne sont absolument pas compatibles entre elles. La capacité d'une machine ARM à faire tourner des exécutables de l'une ou l'autre de ces familles dépend du hardware et du système d'exploitation. Les problèmes de compatibilité entre ArmHL et ArmEL sont assez difficiles à diagnostiquer, souvent même l'OS se révèle incapable de distinguer un exécutable HF d'un exécutable EL.

Tous les binaires Yoctopuce pour ARM sont fournis pré-compilée pour ArmHF et ArmEL, si vous ne savez à quelle famille votre machine ARM apartient, essayez simplement de lancer un exécutable de chaque famille.

13.4. Les exemples de programmation n'ont pas l'air de marcher

La plupart des exemples de programmation de l'API Yoctopuce sont des programmes en ligne de commande et ont besoin de quelques paramètres pour fonctionner. Vous devez les lancer depuis l'invite de commande de votre système d'exploitation ou configurer votre IDE pour qu'il passe les paramètres corrects au programme 18.

13.5. Module alimenté mais invisible pour l'OS

Si votre YoctoHub-Wireless-n est branché par USB et que sa LED bleue s'allume, mais que le module n'est pas vu par le système d'exploitation, vérifiez que vous utilisez bien un vrai câble USB avec les fils pour les données, et non pas un câble de charge. Les câbles de charge n'ont que les fils d'alimentation.

13.6. Another process named xxx is already using yAPI

Si lors de l'initialisation de l'API Yoctopuce, vous obtenez le message d'erreur "Another process named xxx is already using yAPI", cela signifie qu'une autre application est déjà en train d'utiliser les modules Yoctopuce USB. Sur une même machine, un seul processus à la fois peut accéder aux modules Yoctopuce par USB. Cette limitation peut facilement être contournée en utilisant un VirtualHub et le mode réseau 19.

13.7. Déconnexions, comportement erratique

Si votre YoctoHub-Wireless-n se comporte de manière erratique et/ou se déconnecte du bus USB sans raison apparente, vérifiez qu'il est alimenté correctement. Evitez les câbles d'une longueur supérieure à 2 mètres. Au besoin, intercalez un hub USB alimenté 20 21.

13.8. Le module ne marche plus après une mise à jour ratée

Si une mise à jour du firmware de votre YoctoHub-Wireless-n échoue, il est possible que le module ne soit plus en état de fonctionner. Si c'est le cas, branchez votre module en maintenant sont Yocto-Bouton pressé. La Yocto-LED devrait s'allumer en haute intensité et rester fixe. Relâchez le bouton. Votre YoctoHub-Wireless-n devrait alors apparaître dans le bas de l'interface du virtualHub comme un module attendant une mise à jour de firmware. Cette mise à jour aura aussi pour effet de réinitialiser le module à sa configuration d'usine.

13.9. RegisterHub d'une instance de VirtualHub déconnecte la précédente

Si lorsque vous faire un YAPI.RegisterHub de VirtualHub et que la connexion avec un autre VirtualHub précédement enregistré tombe, vérifiez que les machines qui hébergent ces VirtualHubs ont bien un hostname différent. Ce cas de figure est très courant avec les machines dont le système d'exploitation est installé avec une image monolithique, comme les Raspberry Pi par exemple. L'API Yoctopuce utilise les numéros de série Yoctopuce pour communiquer et le numéro de série d'un VirtualHub est créé à la volée à partir du hostname de la machine qui l'héberge.

13.10. Commandes ignorées

Si vous avez l'impression que des commandes envoyées à un module Yoctopuce sont ignorées, typiquement lorsque vous avez écrit un programme qui sert à configurer ce modules Yoctopuce et qui envoie donc beaucoup de commandes, vérifiez que vous avez bien mis un YAPI.FreeAPI() à la fin du programme. Les commandes sont envoyées aux modules de manière asynchrone grâce à un processus qui tourne en arrière plan. Lorsque le programme se termine, ce processus est tué, même s'il n'a pas eu le temps de tout envoyer. En revanche API.FreeAPI() attend que la file d'attente des commandes à envoyer soit vide avant de libérer les ressources utilisées par l'API et rendre la main.

13.11. Impossible de contacter les sous-modules par USB

Le but du YoctoHub-Wireless-n est de fournir une connectivité réseau aux sous-modules qui lui sont connectés, il ne se comporte pas comme un hub USB. Le port USB du YoctoHub-Wireless-n ne sert qu'à l'alimenter et le configurer. Pour accéder aux modules connectés au hub, vous devez impérativement passer par une connexion réseau.

13.12. Network Readiness coincé à 3- LAN ready

Vérifiez que votre connexion Internet sortante fonctionne et que vous n'avez pas un callback invalide défini dans la configuration to YoctoHub-Wireless-n.

13.13. Module endommagé

Yoctopuce s'efforce de réduire la production de déchets électroniques. Si vous avez l'impression que votre YoctoHub-Wireless-n ne fonctionne plus, commencez par contacter le support Yoctopuce par e-mail pour poser un diagnostic. Même si c'est suite à une mauvaise manipulation que le module a été endommagé, il se peut que Yoctopuce puisse le réparer, et ainsi éviter de créer un déchet électronique.

Déchets d'équipements électriques et électroniques (DEEE) Si voulez vraiment vous débarasser de votre YoctoHub-Wireless-n, ne le jetez pas à la poubelle, mais ramenez-le à l'un des points de collecte proposé dans votre région afin qu'il soit envoyé à un centre de recyclage ou de traitement spécialisé.



14. Caractéristiques

Vous trouverez résumées ci-dessous les principales caractéristiques techniques de votre module YoctoHub-Wireless-n

Identifiant produitYHUBWLN4
Révision matérielle
Connecteur USBmicro-B
Epaisseur8.1 mm
Largeur58 mm
Longueur60 mm
Poids32 g
Classe de protection selon IEC 61140classe III
Temp. de fonctionnement normale5...40 °C
Temp. de fonctionnement étendue-30...85 °C
Consommation USB120 mA
Conformité RoHSRoHS III (2011/65/UE+2015/863)
USB Vendor ID0x24E0
USB Device ID0x0091
Boîter recommandéYoctoBox-HubWlan-Transp
Code tarifaire harmonisé9032.9000
Fabriqué enSuisse

Ces spécifications correspondent à la révision matérielle actuelle du produit. Les spécifications des versions antérieures peuvent être inférieures.

La plage de température étendue est définie d'après les spécifications des composants et testée sur une durée limitée (1h). En cas d'utilisation prolongée hors de la plage de température standard, il est recommandé procéder à des tests extensifs avant la mise en production.

15. Index

A
API
T
techspec
Y
YFiles
YHub
YHubPort
YNetwork
YRealTimeClock
YWakeUpMonitor
YWakeUpSchedule
YWireless


  1. http://www.yoctopuce.com/FR/virtualhub.php
  2. support@yoctopuce.com
  3. court-court-court long-long-long court-court-court
  4. support@yoctopuce.com
  5. Le Micro-USB-Hub fabriqué par Yoctopuce est un hub USB standard et ne fonctionnera pas avec le YoctoHub-Wireless-n.
  6. www.yoctopuce.com/FR/products/yoctohub-shield
  7. https://www.delock.com/produkte/1468_Antenna/86246/merkmale.html
  8. http://www.yoctopuce.com/FR/virtualhub.php
  9. http://www.yoctopuce.com/FR/libraries.php
  10. http://www.yoctopuce.com/FR/products/accessoires-et-connectique/fix-2-5mm
  11. http://www.yoctopuce.com/FR/products/accessoires-et-connectique/board2board-127
  12. L'interface du YoctoHub-Wireless-n est régulièrement testée sur Firefox, Chrome, Opera et Brave. Elle fonctionne probablement avec Safari.
  13. Ne faites jamais confiance à des gens qui vous disent que leur logiciel n'a pas de bug :-)
  14. www.yoctopuce.com/FR/firmwares.php
  15. https://www.yoctopuce.com/FR/article/nouveau-un-virtualhub-qui-fonctionne-a-travers-le-web
  16. voir: http://www.yoctopuce.com/FR/blog_by_categories/pour-les-debutants
  17. http://www.yoctopuce.com/EN/virtualhub.php
  18. voir: http://www.yoctopuce.com/FR/article/a-propos-des-programmes-d-exemples
  19. voir: http://www.yoctopuce.com/FR/article/message-d-erreur-another-process-is-already-using-yapi
  20. voir: http://www.yoctopuce.com/FR/article/cables-usb-la-taille-compte
  21. voir: http://www.yoctopuce.com/FR/article/combien-de-capteurs-usb-peut-on-connecter
Yoctopuce, get your stuff connected.