devfest nantes 2017 soldout

Je vous l'avais annoncé lors d'un précédent article, notre DevFest Nantais aura lieu les 19 et 20 octobre prochain. Il s'agit du deuxième plus gros événement associatif autour du développement en France, pas moins de 1600 personnes sont attendues pendant ces deux journées.

L'événement est en train de faire "sold out" 30 jours avant son démarrage, il reste ce soir moins de 50 places en vente !

C'est l'heure de vous dépêcher si vous souhaitez participer à cet événement d'envergure internationale dédié au développement informatique.

Pour les curieux qui auraient loupé l'événement, voici le programme en détail. Il y aura du très beau monde !

Pour ceux et celles qui n'auront pas la chance de venir, rassurez-vous, les sessions seront publiées sur Youtube quelques jours après l'événement.

atmotube visuel2

Après avoir atteint un financement de 283 797$ l'année dernière sur Indiegogo, ce petit capteur mobile capable de mesurer la qualité de l'air en temps réel arrive sur le marché.

Ce capteur se connecte directement à votre Smartphone en Bluetooth et lui communique la teneur en polluant, l'humidité et la température de l'air ambiant. L'application mobile fournie avec le capteur est capable de vous alerter quand des seuils non recommandés pour votre santé sont atteints.

L'ATMOTUBE est capable de mesurer de nombreux polluants, dont le Monoxyde de carbone, les formaldéhydes, le benzène, l'acétone, le propane, le toluène, le xylène ... Les données récoltées sont ensuite partagées à l'ensemble des utilisateurs pour créer des cartes de pollution.

atmotube visuel1

La bonne nouvelle pour les développeurs et que le protocole de communication BLE de cet objet connecté est documenté sur le site d'ATMOTUBE. Ce qui signifie que vous pouvez vous-même créer une application mobile qui sera en mesure de récolter les données de cet objet connecté.

Pour en savoir plus sur le fonctionnement de ce nouveau gadget, le manuel utilisateur est accessible en ligne.

Comptez 89.00$ pour acquérir ce nouveau gadget qui vous fera probablement ouvrir votre fenêtre plus souvent, acheter des plantes dépolluantes ...

Apple Watch Series 3 Compatible 4G Officiel

Je ne sais pas si vous avez remarqué, il est possible d'identifier le prénom et le nom de personnes sur les visuels officiels des produits Apple. En France, sur le visuel officiel de l'Apple Watch 4G publié hier, c'est "Florence Lacroix" qui s'affiche .... Mais qui est Florence Lacroix ?

Florence Lacroix est en fait une employée d'Apple qui travaille à Paris comme "Production Support Analyst HR Systems WW" si l'on croit LinkedIn.

Florence Lacroix semble donc travailler sur l'application de gestion des ressources humaines et pas dans la communication ou le marketing comme on pourrait l'imaginer.

Ce n'est pas la première fois que son nom apparaît sur des visuels d'iOS puisque l'on peut voir aussi un email d'elle sur iOS 9, sur l'Apple Watch 2 et même sur les premiers iPhone !

iphone

On retrouve aussi le nom d'Holly Jabe Buttler sur les visuels américains, ou bien alors Ines Alcala Freudenthal sur les visuels espagnols et Claudia Laummi sur ceux d'Italie ... Le nom de Céline Barrière apparaît aussi sur d'autres visuels français.

Alors qui est réellement Florence Lacroix ? Pourquoi les équipes de communication d'Apple utilisent-ils son nom sur la majorité des visuels des produits Apple depuis 10 ans ? À moins qu'il ne s'agisse d'un personnage fictif ? D'une collègue et amie de longue date avec le graphiste ?

Tout cela est bien étrange !

zwave2mqtt

Je viens de mettre à jour ma passerelle Opensource ZWave2MQTT permettant de récolter des messages d'objets connectés en ZWave au travers d'un bus de message MQTT.

Le fonctionnement de cette passerelle est très simple :

  • Elle écoute les messages du réseau ZWave au travers d'un dongle Zwave USB.
  • Elle transforme chaque message reçu en structure JSON qu'elle publie ensuite sur un bus MQTT (ex: Mosquitto) pour les rendre disponibles à un consommateur (ex: Node-Red).

domogeeek

Vous pouvez retrouver la description complète de ce schéma d'architecture dans un précédent article : Les 5 ingrédients pour fabriquer sa propre box domotique OpenSource

Zwave2MQTT utilise la librairie Node node-openzwave-shared pour permettre la connexion et l'écoute du réseau. Cette librairie est ni plus ni moins qu'un wrapper Node de la librairie C++ OpenZwave. A contrario des anciennes librairies node-zwave, le binding du wrapper avec la librairie native est désormais dynamique.

L'installation de ZWave2MQTT sur un Raspberry Pi se fait en 3 étapes :

1. Node & Bus MQTT

Assurez-vous d'avoir Node et NPM d'installés ainsi qu'un bus MQTT comme Mosquitto par exemple.

$ curl -sL https://deb.nodesource.com/setup_8.x | sudo bash -
$ sudo apt-get install -y nodejs
$ sudo apt-get install -y mosquitto

2. Installez la librairie OpenZwave

$ sudo apt-get install libudev-dev
$ cd ~ 
$ wget http://old.openzwave.com/downloads/openzwave-1.4.1.tar.gz
$ tar zxvf openzwave-*.gz
$ cd openzwave-* && make && sudo make install

Faites en sorte que la librairie OpenZwave installée dans "/usr/local/lib" puisse être détectée sur votre environnement :

export LD_LIBRARY_PATH=/usr/local/lib
sudo sed -i '$a LD_LIBRARY_PATH=/usr/local/lib' /etc/environment

2. Installez la passerelle Zwave2MQTT

$ cd ~ 
$ git clone https://github.com/ltoinel/ZWave2MQTT.git
$ cd ZWave2MQTT
$ npm install

Configurez les différentes options disponibles :

$ vi config.js

Les deux options importantes à modifier sont :

  • L'adresse IP de votre passerelle MQTT : "config.mqtt.uri"
  • Le pointeur vers votre dongle ZWave : "config.device"

Démarrez ensuite la passerelle :

$ ./start.sh
initialising OpenZWave addon (/opt/zwave2mqtt/node_modules/openzwave-shared/lib/../build/Release/openzwave_shared.node)
Initialising OpenZWave 1.4.2723 binary addon for Node.JS.
        OpenZWave Security API is ENABLED
        ZWave device db    : /usr/local/etc/openzwave
        User settings path : /opt/zwave2mqtt/node_modules/openzwave-shared/build/Release/../../
        Option Overrides : --SaveConfig false --Logging false --ConsoleOutput true --SuppressRefresh false
-> Starting zwave2mqtt v1.1.0
Connecting to the MQTT Server : mqtt://192.168.1.2
Connected to the MQTT broker
{"name":"zwave2mqtt","hostname":"domogeeek","pid":1340,"level":30,"msg":"Scanning homeid=0x184ced3...","time":"2017-09-10T14:36:00.557Z","v":0}
{"name":"zwave2mqtt","hostname":"domogeeek","pid":1340,"level":30,"msg":"Scan complete, hit ^C to finish.","time":"2017-09-10T14:36:25.163Z","v":0}

Vous pouvez utiliser le script "pm2.sh" pour rendre le processus persistant après un redémarrage. Pour cela installez "pm2" sur votre Raspberry.

sudo npm install pm2 -g
./pm2.sh
pm2 startup
pm2 save

Une fois la passerelle démarrée, vous trouverez autant de topics MQTT que de type de messages ZWave reçus. Sur chacun des topic créés, vous retrouverez l'ensemble des messages capturés encodés en JSON. Si vous rencontrez des difficultés de fonctionnement, l'activation des logs de la librairie se fait depuis le fichier config.js au travers du paramètre "config.logging".

Pour analyser le contenu des queues MQTT, vous pouvez utiliser un client MQTT graphique comme MQTT-Spy

Enfin, si vous souhaitez récupérer les messages ZWave depuis Node-Red, il vous suffira d'utiliser le client MQTT de Node-Red et de le connecter à votre serveur MQTT en utilisant '#' comme nom de topic : node red zwave

Les messages publiés sur le bus MQTT sont au format suivant :

{"source":"zwave[7]","label":"Power","value":"2618.972","action":"ValueChanged","timestamp":1505055671661}
  • Source : identifiant de l'objet ZWave ayant émis le message.
  • Label : Type de message reçu
  • Value : Valeur du message
  • Action : Type d'action
  • Timestamp : Date de réception du message

Vous voilà avec une passerelle ZWave opérationnelle vous permettant d'exploiter tous les messages émis par votre réseau d'objets connectés ZWave avec un couplage lâche entre le connecteur et le consommateur du message.

arduino bluetooth

Vous allez démarrer un projet Arduino et vous souhaitez que ce projet puisse communiquer en Bluetooth avec un iPhone ou un iPad ? Voici un tutoriel accompagné d'astuces pour réaliser votre montage.

Tout d'abord, oubliez tous les adaptateurs Bluetooth pour Arduino autre que les adaptateurs compatibles BLE (Bluetooth 4.0). Apple limite la compatibilité des périphériques Bluetooth non BLE seulement aux partenaires du programme MFi.

J'ai personnellement opté pour un SH-HC-08 que l'on peut trouver sur Amazon au prix de 8€ environ après avoir échoué avec une puce HC-06 non compatible BLE.

SH HC 08 bluetooth arduino

Le montage de la puce se fait très simplement, sur un Arduino MKRFOX1200 compatible Sigfox, il suffit de connecter le VCC, GND, TX, RX en faisant bien attention d'inverser le RX/TX lors du branchement avec l'Arduino. Le TX de la puce doit être connecté au RX de l'Arduino et le RX au TX de la puce de l'Arduino.

Sur des Arduino UNO, l'utilisation de la sortie série TX/RX n'est pas nécessaire via l'utilisation de la librairie "SoftwareSerial" qui permet d'émuler une sortie série. Sur le MKRFOX1200, la librairie "SoftwareSerial" n'est pas compatible, l'utilisation des PIN TX/RX est donc la manière la plus simple d'interfacer ce type de périphérique série.

Le programme de test pour valider la communication est très simple, il s'agit d'un programme qui recopie le contenu reçu en Bluetooth sur la sortie du moniteur série et qui transmet ce qui est écrit au moniteur série en Bluetooth.

String readString;     // this string contains the response from the BT module

void setup() {
   Serial.begin(9600);
   Serial1.begin(9600);
   delay(1000);
   Serial.println("READY");
}

void loop(){

     if (Serial1.available()){
              Serial.write(Serial1.read());
     }
 
     if (Serial.available()){
              Serial1.write(Serial.read());
      } 
}

Dans ce programme :

  • La sortie "Serial" correspond au moniteur série de l'Arduino disponible depuis "Outils -> Moniteur Série" de l'IDE Arduino.
  • La sortie "Serial1" correspond aux PIN RX/TX de l'Arduino MKRFOX1200.

Une fois le logiciel téléversé sur l'Arduino, vous devriez voir la LED de la puce Bluetooth clignoter, cela signifie que la puce est en attente d'un appairage. Il vous suffit maintenant de télécharger le logiciel "LightBlue Explorer" depuis l'Apple Store et de le lancer.

Vous devriez voir apparaître un terminal Bluetooth au nom de SH-HC-08 qui correspond dans mon cas au nom de la puce utilisée.

lightblue detect

Sélectionnez ce périphérique pour vous appairer avec celui-ci. La LED de la puce Bluetooth ne devrait plus clignoter et vous devriez ensuite voir le détail de la puce (firmware, constructeur ...) :

lightblue device details

Sélectionnez tout en bas de cette liste "Characteristic 1" et appuyez sur le bouton "Write new value" :

light blue write value

Entrez le texte au format hexadécimal que vous souhaitez transmettre à votre Arduino, dans mon cas j'ai utilisé "676565656b" qui correspond à "geeek". Vous pouvez vous aider d'un convertisseur en ligne pour transformer une chaîne en hexa. Appuyez sur "Done" une fois la chaîne en hexadécimale saisie dans l'application mobile.

lightblue new value

Vous devriez voir apparaître instantanément le texte dans le moniteur série de votre Arduino :

arduino bluetooth console

Pour tester l'émission du moniteur série vers votre terminal iOS, vous devez activer l'écoute en appuyant sur l'item "Listen for notifications". Une fois l'écoute active, il vous suffit d'entrer une chaîne de caractère depuis le moniteur série de l'IDE Arduino pour le voir apparaître dans l'application LightBlue sur votre terminal iOS.

lightblue listen bluetooth

Vous voilà avec un Arduino capable d'échanger des chaînes de caractères en Bluetooth avec des terminaux mobiles iOS et Android. Il vous reste maintenant à définir un protocole de communication qui permettra à votre future application mobile de déclencher des actions sur votre Arduino et vice-versa.

Rendez-vous dans un prochain épisode !

one signal cover

OneSignal est un outil en ligne gratuit permettant de gérer des campagnes de push notification multi-terminaux : Web (Chrome, Firefox, Safari) , Android, iOS, Amazon Alexa ... etc. C'est le 3ème des 10 meilleurs outils de push notification du marché selon le classement réalisé par le blog Soom.la en 2016. Il simplifie la gestion des abonnés et permet d'unifier l'ensemble des API de push au travers d'une seule application accessible au travers d'un portail Web et d'une API.

Je viens de le mettre en place OneSignal sur mon blog pour le tester, son installation est très simple. Il suffit de déposer deux scripts Javascript et un fichier manifest à la racine de son site ainsi que modifier les entêtes de ses pages HTML pour permettre à la solution de fonctionner. L'avantage des notifications Web est de pouvoir informer rapidement de nouveaux contenus sans devoir passer par un email qui finit systématiquement dans la corbeille SPAM et qui engorge inutilement les serveurs d'emails. Cependant ces messages doivent être utilisés avec parcimonie pour éviter que ceux-ci ne soient vus comme du spam par les utilisateurs.

Si vous utilisez un CMS comme Wordpress ou Drupal, OneSignal peut être intégré à votre site simplement en installant le plugin dédié et en déclarant votre application sur le portail de OneSignal.

OneSignal propose en standard 5 formats de demande d'acceptation de notifications sur le Web :

1. Subscription Bell one signal subscription bell

2. Slidedown onesignal slidedown

3. Fullscreen onesignal fullscreen

4. Custom Link onesignal custom link

5. HTTP Permission Request Post Modal onesignal httprequest

Ces 5 modes sont activables ou non en fonction de vos besoins et de l'utilisation ou non de l'HTTPS sur votre site. Dans tous les cas, l'utilisateur doit valider la popup d'acception native du navigateur pour permettre d'obtenir son consentement à recevoir des notifications.

Dans le cadre du blog, j'ai retenu la Subscription Bell qui est la demande la moins intrusive pour les utilisateurs. Par défaut le langage des messages est en anglais mais peut être adapté en français via des options de configuration du script.

Une fois la demande de notifications active sur votre site, vous verrez vos premiers abonnés apparaître depuis le portail d'administration OneSignal : onesignal administration

Pour déclarer des utilisateurs comme utilisateurs de test, vous avez la possibilité d'utiliser le bouton "Option" > "Add to test users" depuis le portail d'administration. onesignal administration test user

Ces utilisateurs pourront être utiles pour permettre de tester vos premières notifications et valider le format de l'affichage de nos notifications avant de les transmettre à l'ensemble des abonnés.

Ensuite vous pourrez tester d'envoyer vos premières campagnes de push aux différents segments d'utilisateurs en fonction de leur fidélité. OneSignal crée par défaut des segments d'utilisateurs en fonction de leur assiduité sur votre site Internet. OneSignal vous permet aussi de tester différents formats de messages pour identifier les messages qui créés le plus de conversions (A/B testing).

Bref, c'est un outil intéressant qui offre des perspectives autres que celles offertes par les emails et les réseaux sociaux. Le seul bémol est le suivant :

OneSignal is a free service that supports unlimited devices and notifications. OneSignal makes money by selling data to advertisers and research companies. We also offer paid service options for clients that require increased data privacy.

Le service est complètement gratuit, mais vos données sont revendues à des tiers en échange de l'usage du service. Si vous voulez que vos données restent confidentielles, il faut donc payer un service premium. L'usage de cet outil est donc restreint à des sites avec de faibles enjeux commerciaux.


Crédits photo :

Alex Knight

unsplash cover

J'ai fait la découverte d'Unsplash.com il y a peu de temps, il s'agit d'un site Internet avec de magnifiques photos en libre téléchargement pour alimenter son site Internet et ses présentations Powerpoint.

Le fonctionnement du site est simple, il permet à des photographes de partager des photos en libre utilisation: copie, modification, distribution pour un usage commercial ou non.

All photos published on Unsplash can be used for free. You can use them for commercial and noncommercial purposes. You do not need to ask permission from or provide credit to the photographer or Unsplash, although it is appreciated when possible.

More precisely, Unsplash grants you an irrevocable, nonexclusive copyright license to download, copy, modify, distribute, perform, and use photos from Unsplash for free, including for commercial purposes, without permission from or attributing the photographer or Unsplash. This license does not include the right to compile photos from Unsplash to replicate a similar or competing service.

On pourrait s'attendre à tomber sur des photos de piètre qualité, mais au contraire, ce site est une mine d'or si vous êtes à la recherche de belles photos. Il y a bien sûr beaucoup moins de photos que sur Flickr, mais la qualité est au rendez-vous à contrario de la majorité des images sous licence Creative Commons que vous pouvez trouver sur Flickr.

La différence par rapport à Flickr est chaque photo transmise est revue par Unsplash avant d'être publiée sur le site.

unsplash screenshot

Lors de l'utilisation d'une photo, Unsplash recommande vivement l'ajout d'une ligne de crédit précisant l'auteur de la photo et l'endroit où elle a été récupérée.

Si vous êtes photographe amateur et que vous avez de belles photos à partager, n'hésitez pas à créer un compte Unsplash et à partager vos plus belles photos. C'est ce que j'ai commencé à réaliser en publiant mes deux premières photos : https://unsplash.com/@ltoinel

Bonne visite sur Unsplash !


Crédit photo :

Igor Ovsyannykov

freebox vpn ikev2

Depuis l'arrêt du support du protocole PPTP dans iOS, jugé pas assez sécurisé, il est désormais possible de monter un tunnel VPN avec le protocole IKEV2 entre votre terminal iOS / Android et votre Freebox. Non sans difficulté malheureusement, due à un manque de documentation de la part de Free sur les fonctions avancées de la Freebox V6...

Pour activer un VPN IKEV2, rendez-vous sur le portail d'administration de votre freebox depuis votre réseau local : http://mafreebox.freebox.fr

Définissez un compte utilisateur VPN et activez le service IKEV2 depuis la page "Serveur VPN " :

freebox activation vpn

Une fois le service activé, une popup devrait vous indiquer que ce service n'est pas disponible malgré le fait que vous ayez activé le service VPN IKEV2 : "Ce service n'est pas disponible sur votre connexion".

Quand vous vous rendez sur la page de gestion des ports de votre Freebox, les ports sont de couleur rouge ?

Ceci est probablement lié au fait que vous n'avez pas fait de demande d'une IP fixe auprès de Free, cette demande peut se faire en 30 minutes depuis le portail Free, onglet "Ma Freebox" :

freebox ip fixe fullstack

Attendez 30 minutes après l'activation de cette fonction et redémarrez votre Freebox, une nouvelle adresse IP devrait vous être assignée par Free. Cette action vous permettra de déverrouiller les ports qui s'affichaient en rouge depuis l'outil de gestion des ports de votre Freebox :

freebox ouverture ports ikev2

Ensuite, il vous faut un certificat SSL et un nom de domaine pour que le service IKEV2 soit complètement opérationnel. C'est ce que j'ai pu constater faisant mes tests sur un domaine personnel sans SSL, celui-ci n'était pas compatible avec le service IKEV2. Ce problème est d'ailleurs confirmé par d'autres utilisateurs sur le portail d'anomalie Free : https://dev.freebox.fr/bugs/task/20...

Rendez-vous sur la page de gestion des domaines et demandez un domaine en freeboxos.fr, un certificat SSL Letsencrypt vous sera délivré dans les quelques minutes qui suivent votre demande.

freebox domaine ssl

Dès lors que le domaine est actif, redémarrez votre Freebox et rendez-vous sur la page de configuration du service IKEV2 pour vérifier que le domaine utilisé est bien le domaine en *.freeboxos.fr.

Il ne vous reste qu'à configurer le VPN depuis votre terminal, pour cela il vous suffit de recopier les valeurs affichées dans le panneau de configuration du VPN IKEV2 dans le paramétrage VPN de votre terminal mobile :

  • Sur iOS : directement dans les paramètres VPN du menu "général" du paramétrage de votre terminal.
  • Sur Android: via l'application StrongSwan disponible depuis le Play Store.

Testez ensuite le service depuis une connexion 3G/4G, la communication devrait être normalement opérationnelle...

En espérant que cet article puisse sauver les Freenautes qui sont tombés sur les tickets en cours autour de l'IKEV2. N'hésitez pas à me laisser un commentaire si cet article a permis de configurer votre VPN correctement !