On en a beaucoup entendu parler en 2014, apparus dans le sillage d’ios7, ils sont de plus en plus répandus. Alors magie, bijoux de technologie ou gadget inutile ? Je vous propose un résumé de leur fonctionnement et de leurs usages.

 

Exemple de beacons
Exemple de beacons

 

Les ibeacons sont, comme tous les produits avec le fameux petit préfixe “i”, une propriété d’Apple. Ces appareils autonomes vont permettre de changer le comportement d’une application à proximité, de la réveiller ou encore de la notifier. Comment ? En utilisant le  Bluetooth Low Energy et en standardisant les informations transmises ainsi que leur fréquence.

Dans la suite de l’article, je mélange parfois les termes beacon et ibeacon. Le beacon est la balise, et ibeacon est bien la norme du message transmis over BLE.

La norme ibeacon c’est donc un petit message émis 10 fois par seconde qui dit (par exemple) : “Je suis la balise ‘A8437D30-F5F8-466E-AFF9-25556B57FE6D’, j’ai comme valeur mineure ’55’ et comme valeur majeure ‘35478’ “. Ni plus, ni moins.

Pour vous éviter de lire la spécification, on peur résumer ces valeurs comme ceci :

  • Le proximity UUID, un identifiant unique sur 16 octets qui sera utilisé entre autres pour créer des régions de beacons. C’est cet identifiant qui est lu pour réveiller votre application mobile en lui signifiant qu’elle est à proximité d’une balise connue (car configuré au préalable in app). Pour le moment il existe une limitation de 20 UUID qu’une application iOS peut monitorer. Sous Android, pas de limitation car le système de détection est à la discrétion du développeur et n’est pour le moment pas pris en compte côté système, c’est à la fois un avantage, mais aussi et surtout un inconvénient (voir section application mobile plus bas).
  • Le minor est un entier sur 2 octets qui va donc nous permettre de renseigner une valeur entre 0 et 65 535.
  • Le major c’est la même chose, sauf qu’il n’a pas le même nom.

Pour les plus courageux voici le détail du paquet d’octet envoyé, pour les autres rendez-vous juste après :

Définition du paquet d'octets issue de la documentation Kontakt.
Définition du paquet d’octets issue de la documentation Kontakt.

Maintenant que je les connais, qu’est ce que je fais de ces 3 valeurs ? Comment ces balises vont apporter de la valeur ou un service supplémentaire pour mon application mobile et donc pour mes utilisateurs ?

Cas d’école

Imaginons que je sois patron d’une petite chaîne d’hôtels. Je mets à disposition de mes clients une application qui leur permet, lorsqu’ils sont dans leur chambre, de commander le room-service, la télévision et d’autres services (sous couvert d’une activation temporaire avec toute la sécurité qui va bien…). Pour savoir si mon client se trouve dans sa chambre, je dois donc cartographier l’ensemble des mes établissements et paramétrer les valeurs des balises.

 Comment vais-je identifier les balises que je vais positionner dans les chambres ?

Si j’ai 8 hôtels répartis dans la région, je leur affecte chacun un UUID. Ainsi l’application mobile sait dans quel hôtel elle se trouve, ensuite j’utilise la version minor pour identifier les étages : 0 = rez de chaussée, 1 = premier étage… J’utilise finalement la version major pour identifier les numéros de chambre. Je peux donc mettre 2 balises par chambre qui porteront ces mêmes 3 valeurs et qui me permettent d’identifier chaque chambre de manière unique.

C’est parfait, car je n’ai pas plus de 65 000 chambres par étages et encore moins 65000 étages, mais ici on voit vite la limitation : si mon affaire prospère, que se passera t il quand j’ouvrirai mon 21ème hôtel ? Mon découpage ne fonctionnera plus !

Je vais devoir changer de stratégie et utiliser l’UUID pour identifier mon groupe hôtelier complet ou des groupes d’hôtels et faire un découpage plus fin avec les minor et major. Il me reste alors 2 * 2 octets pour répertorier tous mes hôtels et toutes mes chambres… je devrais m’en sortir. D’autres combinaisons sont possibles, mais au final ça me coutera “juste” une mise à jour côté backoffice et côté application mobile.

Ce petit exemple nous montre bien qu’on peut couvrir un grand spectre de cas fonctionnel, mais aussi qu’il faut prévoir finement les combinaisons de ces 3 valeurs pour être sûr d’identifier toute évolution.

Tout cela est décrit dans la documentation officielle https://developer.apple.com/ibeacon/Getting-Started-with-iBeacon.pdf c’est très simple et c’est ce qui en fait leur beauté.

T’es de quelle région ?

Comme nous l’avons vu précédemment, les UUID servent à définir une région. Une région ça peut être juste une enseigne (je suis dans un magasin Auchan), un étage, une boutique dans une galerie commerciale… c’est libre. Comment peut on interragir avec une région ? On peut :

  • être en dehors (Unknown)
  • y entrer en étant loin de l’épicentre (far)
  • être assez proche (near)
  • être tout à côté, voire à quelques centimètres (immediate).
Interactions avec une région

Au même titre qu’il n’y a que 3 valeurs dans un ibeacon, il n’y a que 4 états qui sont intéressants dans l’interaction avec une région.

Reprenons l’exemple précédent et mon groupe hôtelier, un client rentre de sa journée et se gare sur le parking, il entre dans la région des ibeacons que j’ai positionnés, je peux lui envoyer une notification de ce genre : Bonsoir, M. Dupont c’est votre dernière nuit dans notre établissement, n’oubliez pas de rendre vos clés avant 11h. Un apéritif vous est offert au bar. Passez une bonne soirée“. 

Ensuite, s’il est plus proche, disons dans le hall, l’application peut lui afficher le numéro de l’étage et de sa chambre (pratique pour les têtes en l’air). Finalement, une fois dans sa chambre l’application sera prête à recevoir des demandes de room-service. Le lendemain, j’ai paramétré un message sympathique, s’il quitte l’hôtel “Nous espérons que vous avez passez un bon séjour, au plaisir de vous revoir…“.

Finalement, je n’ai jamais eu besoin de savoir qu’il était à 18 mètres ou 35 centimètres d’une des balises ! Je n’ai aucun cas d’utilisation pour ça. Son entrée, sortie et sa forte proximité m’ont par contre été utiles. D’ailleurs je ne pourrai pas être très précis avec les beacons, même si des efforts sont faits dans ce sens. Voyons ça dans la section suivante.

Passe muraille ou presque

Comme nous l’avons vu les beacons utilisent le Bluetooth Low Energy pour envoyer leurs informations, d’ailleurs rappelons que les beacons actuels ne font qu’envoyer de l’information, la communication est à sens unique. Le BLE utilise une fréquence de 2,4Ghz et c’est ce qui explique (entre autre) les problèmes de stabilité du signal. Il va être sensible à la densité des matériaux et à leur composition. Dans un environnement vaste, un beacon peut émettre à 20 ou 30 mètres facilement (certains constructeurs vous diront plus…), mais dès que vous le mettez dans une pièce avec du mobilier, des appareils électroniques, des personnes qui passent devant… le signal va être perturbé. Ce n’est pas très gênant dans la majorité des implantations, mais ça peut parfois amener à en installer beaucoup plus pour couvrir une même zone.

C’est avec l’atténuation du signal qu’on mesure la distance avec les ibeacons. La plupart des applications ou librairies, qui le proposent, font un échantillon sur une certaine durée pour calibrer et déterminer la distance. Dans la mesure où le signal est émis 10 fois par secondes, on a suffisamment de valeurs sur une à deux secondes pour déterminer une distance.  On peut donc utiliser les beacons pour faire de la “géoloc indoor”, au même titre que votre GPS a une précision de quelques mètres, une application mobile peut proposer une précision d’un à deux mètres, c’est largement suffisant pour se repérer dans un musée, un magasin ou un hôtel.

On pourrait augmenter la puissance du signal, mais on abandonnerait les simples piles ou les petites batterie utilisées aujourd’hui dans ce cas. Les beacons ont habituellement une autonomie de plusieurs mois jusqu’à deux ans (en fonction des constructeurs). Certains autorisent à modifier la fréquence d’émission jusqu’à un seul signal par seconde. Bonne idée sur le papier, mais si on change la fréquence, on sort de la norme iBeacon et rien ne garantit qu’Apple continuera à capter des signaux qui ne respectent pas la norme  à la lettre. Pourquoi ? Car Apple considère que les critères iBeacon sont établis pour garantir une expérience utilisateur optimale. Alors vaut mieux rester dans les clous ou être sûr de son coup.

Dans l’application mobile

La révolution c’est la micro contextualisation.

Issu de l’écosystème Apple, les ibeacons sont donc plus facilement gérés sous iOs. Comme évoqué plus haut, on peut paramétrer jusqu’à 20 UUID pour une même application, c’est le système qui vérifie régulièrement si des signaux BLE de type iBeacon sont disponibles et qui va réveiller la bonne application le cas échéant (pour faire simple).

Sous Androïd, c’est différent, ils ne sont pas gérés au niveau du système et de l’OS. C’est au développeur de créer un service en tâche de fond qui va, à intervalle régulier, vérifier la présence d’une balise connue. Pas de limitations donc, mais la vérification est faite au niveau applicatif (dans un service background), d’où une consommation un peu plus importante de la batterie. Reste au développeur à moduler la fréquence de vérification avec d’autres paramètres : la position GPS ou l’heure de la journée : si j’ai développé une application à destination d’un supermarché, je vais utiliser les horaires d’ouverture de mon magasin et la proximité de mon client pour activer ou non la recherche de beacons…

Dans le cadre des beacons, toute l’intelligence se trouve dans l’application. La révolution c’est la micro contextualisation.

Avant nous savions que l’utilisateur était derrière son desktop dans son bureau ou sa chambre. Ensuite avec les laptops, il pouvait être dans le salon ou dans la cuisine, au travail, dans un hôtel… Le mobile a bousculé tout ça et on consulte désormais toute sorte de contenu, depuis n’importe où, ou presque. L’instant mobile est devenu important et chaque enseigne, média ou tout autre diffuseur souhaite offrir un contenu approprié à la taille du device, à l’utilisateur, à l’heure de la journée…

Tout ça est donc déjà acquis, mais il manquait encore une précision : vous êtes chez vous, oui, mais dans quelle pièce ? Vous êtes dans votre supermarché, oui, mais dans quel rayon ?

Nous disposions déjà du wifi pour vous aider à vous repérer, mais c’est physiquement compliqué (nombre de répartiteur, précision du signal, consommation électrique les rendant filaires…), à la maison il n’y a qu’un signal donc on ne peut pas s’y fier. Les ibeacons vont nous aider à améliorer ce repérage en disposant une petite balise près du canapé, dans la cuisine, dans la chambre… pourquoi faire ?

Prenons mes habitudes d’utilisation de mon smartphone à la maison : j’aurai bien envie que lorsque je réveille mon téléphone dans la cuisine je puisse en priorité accéder au minuteur ou a marmiton.org. Si je suis dans le salon, la commande de mon système hifi ou de Spotify peut m’être suggéré. Enfin, lorsque je suis dans la chambre après 22h, j’aimerai bien que mon téléphone passe en mode prioritaire et ne me dérange plus. Dans les toilettes Twitter peut s’ouvrir, ça aide à passer le temps…

La vidéo suivante illustre ce genre de possibilités : http://blog.estimote.com/post/95382199590/nearables-are-here-introducing-estimote-stickers

De la même manière, lorsque je suis en magasin, si j’ouvre l’application mobile de mon enseigne dans un rayon, il y a de grandes chances que je veuille avoir plus d’information sur un ou plusieurs articles. Mon application pourra donc s’ouvrir sur le rayon en question tout en me laissant la possibilité d’aller voir ailleurs.

Cette technologie va permettre de faciliter la vie en faisant des suggestions encore plus fine, au mètre près donc.

Il y a deux catégories de personnes : celles qui trouveront ça sympa d’aller toujours plus vite à l’essentiel et celles qui diront qu’elles se sentent de moins en moins libres, de plus en plus assistées voire de plus en plus surveillées. J’avoue que les deux points de vue se défendent. Cependant, ma carte de fidélité nominative permet déjà à mon enseigne de connaître mes habitudes et celles de millions de personnes, mon trafic et mes achats sur le web sont déjà analysés pour connaître un peu mieux les 25-35… alors un peu plus, un peu moins ça ne change pas beaucoup la donne. Moi je suis pour !

De récentes études ont démontré que les utilisateurs, notamment la nouvelle génération, ne sont pas dérangés par l’analyse de leurs informations et leurs interactions avec un tiers à partir du moment ou c’est clairement explicité dès le départ par ce tiers (enseigne, site média, plateforme sociale…).

Sur le papier, ces petites balises paraissent sympas, mais en condition réelle, qu’est ce que ça donne ?

 Les modèles que j’ai pu tester

Ces petits objets ont donc envahis la toile depuis 2013, certaines marques font plus parler d’elle comme Estimote, Kontakt, ou encore le français Ubudu… J’en ai testé certains :

Estimote

L’un des plus avancés techniquement, puisqu’il embarque une sonde de température et un capteur de mouvement. Ces informations sont hors scope de la norme ibeacon, mais se trouvent sur un autre profil BLE que celui de proximité, on peut donc lire ces informations soi même ou avec le SDK fourni.

En revanche, la longévité n’est pas forcément au rendez-vous et pour changer la pile il faudra s’armer d’un cutter !! Côté sonde de température, enfermée dans une coque en silicone, les changements ne sont pas rapidement répercutés et ça apparait au final plus gadget qu’autre chose. Les stickers en revanche ont l’air prometteur, mais pas de livraison pour le moment ( pré commande depuis septembre dernier). Si la sonde de température s’améliore, elle permettrait d’avoir une solution domotique à bas coût.

Estimote, en forme de pierre taillée

Kontakt

La société polonaise a un beau petit produit, personnalisable si commandé en grande quantité. Pour ma part, j’en ai commandé une dizaine pour mes travaux chez Ineat Conseil et pas de déception : la finition est top (le couvercle se déclipse pour accéder à la puce et retirer la pile lorsque la balise n’est pas utilisée), l’application d’admin est bien faite (uniquement iOs), la documentation complète, puissance et autonomie aussi (plus de 8 mois et toujours un signal pour celles que je n’ai jamais désactivées).

Kontakt sort maintenant sa box wifi qui permet de monitorer et administrer toutes les balises à portée dans le cloud. J’espère la tester rapidement ! https://store.kontakt.io/our-products/11-cloud-beacon.html

Black or white

Ubudu

Cocorico pour ce produit conçu en France. Les premiers prototypes que j’ai pu voir n’étaient pas très “finis”, maintenant il sont plus “pros” et proposent une batterie rechargeable par usb ! C’est un énorme plus, lorsqu’on veut garder sa balise à la bonne fréquence. A 89€ le kit de 3 balises, on n’en attend pas moins !

Cerise sur le gâteau, ils sont programmables par tranche horaire, idéal pour allonger la durée de vie de la batterie et se calquer sur les horaires d’une boutique par exemple.

Lorsque j’ai appelé la société pour avoir un kit de test en prêt pour pouvoir faire un benchmark, on me l’a refusé, car les modèles se vendent comme des petits pains… je les ai achetés et je n’en suis pas déçu. J’attends leur nouvelle box de gestion des beacons sur le même principe que celle de Kontakt, mais beaucoup mieux parait il… Wait and see, pas trop longtemps j’espère.

Pack développeur

D’autres beacons

Des sociétés comme Ticatag ou Wistiki ont créé leur beacon qui a un usage unique : aider l’utilisateur à retrouver ses affaires : clé de voiture, sac à main… C’est une bonne idée, pourtant j’aurai aimé qu’on puisse enregistrer n’importe quel beacon dans ces applis, mais ne pas maîtriser le hardware c’est laisser la possibilité de dégrader l’application et comme disait Alan Kay : People who are really serious about software should make their own hardware.

J’ai d’ailleurs “aidé” la société Wistiki comme des milliers d’internautes sur une plateforme de crowdfunding. La société avait pris du retard en faisant tout fabriquer en France (ou c’était peut être une excuse). Finalement, le résultat est à mon goût en demi teinte (ça mériterait un article complet pour tout détailler).

A l’utilisation, les beacons des différentes marques ne sont pas compliqués et le développement sous Android amène à fouiller un peu plus la documentation concernant le BlueTooth Low energy, je vous conseille d’ailleurs ce livre très bien écrit : Getting Started with Bluetooth Low Energy.

Ce qui est gênant sur certains modèles, c’est l’absence d’interrupteur : on se retrouve à enlever et remettre la pile pour simuler le déplacement, certains développeurs fabriquent des petites boîtes isolantes pour les ranger le temps des tests. Lorsqu’on maîtrise cette technologie, il reste à trouver des cas d’usages sympa.

Des cas d’utilisation concrets

Tout le monde se cherche sur les ibeacons (enfin tous ceux qui s’y intéressent), il y a de bonnes idées et forcément de moins bonnes. Parmi les bonnes idées on trouve :

  • des musées qui proposent une application donnant plus de détails sur une oeuvre à proximité ou un itinéraire de visite personnalisé selon les envies.
  • des compagnies aériennes qui envoient une notification à leur client leur indiquant la porte d’embarquement, les pièces à présenter…
  • des banques qui préviennent les conseillers de l’arrivée du client à son entrée dans la banque ou lui pousse de la documentation adaptée pendant l’attente…

Parmi les moins bonnes, on peut trouver des galeries commerciales dont chaque boutique peut potentiellement envoyer une notification… avoir son téléphone qui vibre tous les 10 mètres ça peut vite être gonflant.

Pour ma part, je travaille sur de la géoloc indoor et de la personnalisation d’application en fonction du micro contexte, mais il n’y a pas vraiment de limite dans les usages.

L’avenir

On peut lire pas mal “d’enquêtes” sur le net qui prévoient encore des dizaines de millions de vente d’ibeacon. L’avenir est peut être dans d’autres normes que celle de Samsung ou de Radiusnetwork qui veulent imposer leur propre beacon, à mon avis c’est une fausse bonne idée. L’avenir est plutôt dans l’ajout de services de ces différentes balises, on le voit avec les premiers capteurs de température, de mouvement…et l’arrivée de box d’administration à distance qui évitent de venir à proximité des balises avec un téléphone.

N’hésitez pas à passer commande et à vous faire votre propre application. Vous trouverez des exemples de codes sur les sites de Radiusnetwork ou sur Github, la documentation d’Ios et d’Android sont aussi suffisamment riche pour ne pas devoir en ajouter une couche.