Mise à jour du firmware RFXtrx433E sous Mac

Standard

Mettre à jour le firmware de l’antenne RFXCom RFXtrx433E peut-être utile voir nécessaire lorsque vous avez un message de ce type dans vos logs Domoticz : « RFXCOM: Please upgrade your RFXTrx Firmware! ».

Pour cela, RFXCom propose au paragraphe 6 du manuel utilisateur, d’utiliser RFXflash Programmer qui ne fonctionne que sous windows. Mais comment faire alors que vous êtes sous Mac ou Linux ?

Merci Mono

Mono est un projet open source comprenant un environnement de développement et d’exécution du code .Net. Il permet donc d’exécuter des applications .Net sous Linux et donc sous Mac. Voyons donc comment installer Mono sur Mac.

Télécharger et installer le package Mono pour Mac.

Le programme installé et votre ordinateur redémarré, vous devriez pouvoir exécuter mono depuis une fenêtre du Terminal : $ mono -V

mono -V

 

RFX Flash Programmer

Le téléchargement de RFXflash Programmer se fait depuis le site d’RFXCom.

Vous pourrez en suite exécuter RFXflash.exe depuis votre fenêtre de Terminal : $ mono RFXflash.exe

Le programme démarre et vous montre la même interface que sous Windows et suivre le manuel d’utilisation pour la mise à jour est très simple.

N’oubliez pas de télécharger le firmware au préalable : RFXtrx433E Ext Firmware

Mise à jour en 3 étapes

1. Connecter RFXCom

Votre antenne RFXCom doit être branchée sur un port USB de votre mac. Si RFXflash de le détecte pas votre antenne alors redémarrer votre application depuis le Terminal (Ctrl+C) et re-exécuter la commande : $ mono RFXflash.exe

Dans la liste déroulante, sélectionner le port USB sur lequel l’antenne est branchée :

Capture d’écran 2015-11-10 à 20.45.26

2. Sélectionner le firmware

Sélectionner le fichier du firmware avec l’icône jaune du dossier.

3. Mettre à jour

Cliquer sur le bouton de la puce électronique rouge pour lancer la mise à jour.

capture rfxcom

Après la mise à jour, cliquer sur le bouton vert « Normal mode execution » pour passer l’antenne en mode d’exécution normale.

Vérifier le bon fonctionnement

Après la mise à jour et le re-branchement de l’antenne sur votre box domotique, vérifier dans les logs de Domoticz si tout va bien.

logs domoticz

 

Réparation d’un grille pain Seb 8728.02

Standard

Mon grille-pain au look vieillot ne fonctionnait plus. Après 3 jours à maintenir la poignée avec un couteau et surtout en obtenant une fois sur deux des toasts carbonisés, je me suis résolu à le réparer.

Premier obstacle : le démontage

Pour démonter mon vieux grille-pain, je dois me munir :

  • d’un couteau plat non denté,
  • d’une petite brossette,
  • et d’un tournevis torx percé de taille 20.

tournevis-torx-t20-xbox-360-924006540_ML

Sous l’étiquette d’identification du constructeur se trouve la vis principale.

 

La vis enlevée, avec un couteau soulever délicatement le plastique du cache qui est emboitée dans des encoches de chaque cotés.

IMG_0567.JPG

Nettoyage

Comme vous pouvez le voir sur la photo ci-dessous, l’aimant est bien sale, de nombreuses miettes et poussières s’accumulent sur l’aimant. Muni d’une petite brossette, nettoyer l’aimant.

IMG_0560.JPG

Remonter ensuite le grille pain et tout fonctionnera comme au premier jour.

Autre ressource pour réparer votre grille pain : stephane-rouilly.blogspot.fr

Commandez vos enceintes Sonos depuis Domoticz

Standard

L’intégration de Sonos avec Domoticz permet de déclencher des scenarii  de démarrage pour le réveil du matin ou de mise en veille lorsque la maison est vide. Voici comment intégrer Sonos à Domoticz avec un exemple simple des actions Pause et Play sur une zone Sonos.

Node JS Sonos HTTP API

Tout d’abord, il nous faut installer node-sonos-http-api disponible sur GitHub : https://github.com/jishi/node-sonos-http-api

L’installation de ce module node est un jeu d’enfant. Il faut bien entendu une version de Node supérieure à la 0.10.

$ wget http://node-arm.herokuapp.com/node_latest_armhf.deb 
$ sudo dpkg -i node_latest_armhf.deb

Pour tester que Node est bien installé :

$ node -v

Télécharger node-sonos-http-api depuis GitHub ou simplement faites un clone si vous avez Git déjà installé :

$ git clone https://github.com/jishi/node-sonos-http-api.git

Puis, depuis la racine du dossier node-sonos-http-api executez les commandes pour effectuer l’installation :

$ cd node-sonos-http-api/
$ npm install

L’installation terminée, il suffit de lancer le serveur :

$ node server.js

Vos enceintes Sonos peuvent maintenant être commandées en HTTP en appelant simplement les URLs suivantes :

http://localhost:5005/zones
http://localhost:5005/next
http://localhost:5005/previous/
http://localhost:5005/pauseall/
http://localhost:5005/<nom de la zone>/play
http://localhost:5005/<nom de la zone>/pause
http://localhost:5005/<nom de la zone>/next
http://localhost:5005/<nom de la zone>/previous
http://localhost:5005/<nom de la zone>/sleep/
...

Intégration avec Domoticz

L’intégration avec domoticz peut se faire très simplement avec un bouton Media Player pour allumer ou éteindre la musique dans une pièce. Cliquez sur l’onglet « Interrupteurs », puis sur le bouton « Ajout manuel ».

Configuration d'un bouton Media Player

Ajoutez le dispositif puis rendez-vous dans l’onglet interrupteurs.

Dans les script en position On et Off configurez les appels HTTP.

configuration-media-player-2En position ON : http://localhost:5005/<nom de la zone>/play
En position OFF : http://localhost:5005/<nom de la zone>/pause

Pour les espaces et les caractères spéciaux, convertissez les en entités HTML. Le plus simple pour cela c’est de taper l’URL avec espace dans Firefox, elle sera convertie automatiquement.

widget-media-playerEt voilà, le bouton est prêt à l’emploi.

Démarrer le serveur node-sonos-http-api en tant que service Linux

Pour que le server.js démarre au démarrage de Linux et il faut tout d’abord installer pm2. Pour l’installer :

$ sudo npm install pm2 -g

Le démarrage du server en tant que service ce fait comme ceci (ne pas oublier l’option -x correspondant au mode fork, dans le cas contraire le process consommera 100% du CPU) :

$ pm2 -x start node_modules/node-sonos-http-api/server.js --name "node-sonos"

[PM2] Spawning PM2 daemon

[PM2] PM2 Successfully daemonized
[PM2] Starting node_modules/node-sonos-http-api/server.js in fork_mode (1 instance)
[PM2] Done.
┌────────────┬────┬──────┬──────┬────────┬─────────┬────────┬────────────┬──────────┐
│ App name   │ id │ mode │ pid  │ status │ restart │ uptime │ memory     │ watching │
├────────────┼────┼──────┼──────┼────────┼─────────┼────────┼────────────┼──────────┤
│ node-sonos │ 0  │ fork │ 9361 │ online │ 0       │ 5s     │ 6.250 MB   │ disabled │
└────────────┴────┴──────┴──────┴────────┴─────────┴────────┴────────────┴──────────┘
 Use `pm2 show <id|name>` to get more details about an app

Pour vérifier que le processus tourne bien :

$ pm2 list

Rentrée 2015 au sein de l’Atelier Razorfish

Standard

Après 7 mois d’existence et une cohabitation très enrichissante en bureaux partagés au 7 rue de Naples avec Défi, Intersection et Quinze Juillet, je fais ma rentrée chez Razorfish (anciennement Nurun France) 57 Boulevard de la Villette, Paris 10ème.

C’est donc frais et remonté à bloc que je démarre une nouvelle année scolaire dans des locaux de rêve.

N’hésitez pas à passer me voir, je vous offrirai un café à la cantine partagée et nous pourrons nous prélasser sur les canapés de la mezzanine… Regardez donc la visite guidée publiée sur le site du JDNet.

Importer les données du Flower Power de Parrot en Bluetooth

Standard

Je me suis offert un Flower Power de Parrot. Cet objet connecté d’une valeur de 49 € permet de recueillir des données provenant de votre pot de fleur.

Je souhaite pouvoir accéder aux données disponibles grâce à l’API Bluetooth depuis Domoticz. En fonction de l’humidité ou de la luminosité je pourrai ensuite déclencher des actions automatiques, par exemple l’arrosage automatique ou l’ouverture d’un store électrique pour protéger mes plantes du soleil.

J’utilise un Raspberry PI B+ sur lequel j’ai installé Raspbian et Domoticz. Il me faudra un connecteur bluetooth USB.

Acquérir un adaptateur bluetooth

Voici la liste des connecteurs compatibles avec mon Raspberry Pi. Pour ma part, je me suis offert celui-ci.

Activer le bluetooth sur le Raspberry PI

Après branchement de votre dongle bluetooth, il faut activer le bluetooth de votre OS Rasbian et vérifier son bon fonctionnement. Voici un petit tuto très bien fait.

Installer NodeJS

NodeJS dispose de librairie simplifiant l’accès au Flower Power en Bluetooth. Cet autre tuto de Pierre Dandumont vous expliquera comment installer node et les librairies nécessaires.

Et si vous êtes curieux n’hésitez pas à consulter la documentation officielle de l’API bluetooth du Flower Power de Parrot.

Le script de test.js permet de se connecter au Flower Power et de vérifier l’état de la luminosité, de la température de l’air et du sol, de l’humidité dans le sol et de l’engrais.

  • sunlight = 2.26 mol/m²/d
  • soil electrical conductivity = 1021.00
  • soil temperature = 17.50°C
  • air temperature = 17.09°C
  • soil moisture = 31.43%

Alimenter Domoticz

Pour importer les données dans Domoticz, il est nécessaire de créer deux dispositifs dummy device :

  • 1 dispositif de type Température et Humidité,
  • 1 dispositif de type Lux.

Pour rappel, il vous faudra un matériel Dummy que l’on peut ajouter dans  Domoticz depuis l’interface Configuration > Matériels.

Le matériel Dummy ajouté, vous pouvez créer de nouveaux capteurs Dummy. Chaque capteur sera mis à jour depuis l’API JSON de Domoticz.

Dispositifs dummy pour le Flower Power

Le dispositif de température dont l’ID est 252 sera alimenté au travers de l’API JSON avec l’URL suivante :

http://domoticz:8080/json.htm?type=command&param=udevice&idx=252&nvalue=0&svalue=20;45;1

  • IDx : 252
  • Température : 20°
  • Humidité : 45 %
  • Statut :
    • 0=Normal
    • 1=Comfortable
    • 2=Dry
    • 3=Wet

Dispositif de Température et Humidité

Plus d’info sur l’API JSON de Domoticz pour alimenter un dispositif Température et Humidité ici.

Nous faisons de même avec le dispositif de luminosité. Mais la valeur recueillie avec le script est en mol/m²/d (Photosynthetically Active Radiation ou PAR). Il faut simplement multiplier la valeur par 53.93 pour obtenir une valeur en Lux ou Lumen (Plus d’info sur la méthode de conversion ici).

L’URL de l’API JSON sera la suivante :

http://domoticz:8080/json.htm?type=command&param=udevice&idx=253&svalue=7.0109

  • IDx : 253
  • Valeur recueillie : 0,13
  • Valeur envoyée à Domoticz : 7.010

Dispositif de luminosité

Automatiser la synchronisation avec un script NodeJS

Les données récoltées par le script de test peuvent être envoyées à Domoticz grâce à l’API JSON. J’ai apporté quelques petites adaptations pour effectuer deux requêtes HTTP dans le script NodeJS.



/* [...] */
var http = require('http');

var options = {
 host: '192.168.1.111',
 port: '8080',
 path: ''
};

var path = '/json.htm?type=command&param=udevice&idx=';
var AirTemperature = 0;
var Humidity = 0;

FlowerPower.discover(function(flowerPower) {
 async.series([
 function(callback) {
 flowerPower.on('disconnect', function() {
 console.log('disconnected!');
 process.exit(0);
 });


flowerPower.on('sunlightChange', function(sunlight) {
 console.log('sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d');
 options.path = path + '253&svalue=' + (sunlight.toFixed(2) * 53.93);
 var req = http.request(options).end();
 });

 flowerPower.on('soilElectricalConductivityChange', function(soilElectricalConductivity) {
 console.log('soil electrical conductivity = ' + soilElectricalConductivity.toFixed(2));
 });

 flowerPower.on('soilTemperatureChange', function(temperature) {
 console.log('soil temperature = ' + temperature.toFixed(2) + '°C');
 options.path = path + '252&svalue=' + AirTemperature + ';' + Humidity + ';2' ;
 var req = http.request(options).end()
 });
/* [...] */

 function(callback) {
 console.log('readAirTemperature');
 flowerPower.readAirTemperature(function(temperature) {
 console.log('air temperature = ' + temperature.toFixed(2) + '°C');
 AirTemperature = temperature.toFixed(2);
 callback();
 });
 },
 function(callback) {
 console.log('readSoilMoisture');
 flowerPower.readSoilMoisture(function(soilMoisture) {
 console.log('soil moisture = ' + soilMoisture.toFixed(2) + '%');
 Humidity = soilMoisture.toFixed(2);
 callback();
 });
 },

/*[...]*/

Le script complet est téléchargeable ici >>.

L’ajout dans la crontab du user root :

sudo crontab -e
5 * * * * /usr/local/bin/node /home/pi/node_modules/flower-power/domoticz.js > /dev/null 2>&1

Voici la première étape, la suivante consistera à déclencher une action automatique d’arrosage. Pour toute proposition ou adaptation n’hésitez pas à me contacter ou à commenter cet article.

Découvrez MS-DOS Mobile sur votre Lumia

Standard

MS-DOS est maintenant disponible sur votre téléphone Windows Phone.

En dehors du fait que cette vidéo était un canular pour le 1er avril, l’application existe bel bien et va vous rappeler de bon souvenirs. Celle-ci vous permet d’accéder rapidement à des fonctionnalités de votre smartphone, de là à augmenter votre productivité… faut pas pousser.

Voici la liste des commandes possibles :

  • camera : activer la caméra dans un mode pixélisé qui rappel bien l’ASCII Art,
  • cls : pour effacer les commandes à l’écran
  • color <attr> : pour changer la couleur du fond de la fenêtre MS-Dos.
  • phone select : pour sélectionner un contact dans votre carnet d’adresses,
  • date ou time : pour afficher la date ou l’heure,
  • dir : pour afficher le contenu du dossier en cours,
  • email, sms, or phone : pour ouvrir un email, un sms ou appeler,
  • exit pour quitter l’application.

Pour découvrir quelques commandes regarder aussi cette vidéo de PhoneDog

Choisissez le design de Qleek

Standard

Qleek donne corps à votre vie digitale.

Créé par Johanna Hartzheim et Ismail Salhi, deux Français très créatifs, qui souhaitent simplifier l’accès aux technologies. Qleek est le fruit de leur travail.

Qleek, ce sont des tuiles hexagonales (les tapps) qui permettent d’accéder facilement à votre musique, vidéos, revue en ligne, compte Instagram, Tweeter, Facebook, de votre famille ou de vos amis. Très décoratives, les tapps peuvent vous représenter comme une oeuvre sur votre mur.

Copyright Qleek.me

Copyright Qleek.me

Les tapps se posent sur un socle, la box Qleek, et vous accédez facilement à ces contenus virtuels et à la fois si réels grâce à Qleek.

qleek box

Copyright Qleek.me

Vous pouvez dès aujourd’hui choisir le design de Qleek.

Retours sur le séminaire Drupal 8 organisé par Smile

Standard
Quatrième média était présent lors du séminaire  « Réussissez votre transformation digitale avec Drupal 8 » organisé par Smile au Centre de Conférences Étoile Saint-Honoré de Paris le 4 mars 2015.

Voici notre retour suite à cette présentation.

Date de sortie de la version 8

Tout d’abord la question de la sortie de la version stable de Drupal 8. Aucune date n’a été annoncée, mais il est certain que ce sera courant 2015.

La première release candidate sortira lorsque tous les bugs bloquants/critiques auront été corrigés. Les bug bloquants étaient de 52 le 4 mars et cela diminue doucement comme l’indique cette courbe.

La première version stable sortira lorsque aucun bug critique n’aura été découvert pendant une phase de test de 15 jours.
Pour estimer la date de sortie ce site analyse donc les bug restant et estime la date de sortie : https://drupalreleasedate.com/

D’ici là Smile propose de mettre en place des sites simples et non critiques sous Drupal 8. Ils ont donc réalisé un site dédié pour prouver que c’est effectivement faisable : Le Guide Drupal 8 par Smile.

Fonctionnalités de Drupal 8

Par rapport à la version 7, Drupal 8 apporte surtout des améliorations au niveau de l’ergonomie de gestion et production des contenus. Ces évolutions sont rassemblées au sein de l’initiative Spark. En résumé, des fonctionnalités apportés par de très nombreux modules de la communautés sont maintenant intégrées au noyau (le Core) de Drupal 8.
  • nouvelle interface de contribution,
  • approche mobile first : BO responsive, simplifie la modification de contenus. La barre de navigation en header et mobile friendly.
  • moins de scroll,
  • vraie prévisualisation des contenus dans le contexte du front office,
  • thèmes plus simple, plus épurés avec des jeux de couleur clefs en main,
  • multilinguisme en natif, (avec Drupal 7, il fallait installer 30 modules complémentaires, avec Drupal 8 il sera nécessaire dans installer plus que 4), et ainsi avoir la possibilité d’écrire de droite à gauche,
  • amélioration de l’indéxation des contenus traduits.
Concernant des modules essentiels à Drupal 7 comme Views, celui-ci a été intégré au noyau de Drupal 8. Ainsi toutes les listes sont maintenant administrables depuis le BO de Drupal. Avantage intéressant, la possibilité de créer des listes en HTML mais aussi en Json. Ce qui simplifie les sites au format Single Page Application, en mashup de flux JSon (Ajax) et bien entendu pour le partage de contenus sur le mobile et d’autres sites.
D’autres améliorations :
  • Galeries d’images et slideshow multi-divices (dans le thème par défaut),
  • Blocs : des nouveau blocs sont intégrés (fil d‘ariane, footer …), Les blocks deviennent des entités (avec des champs attachés), intéressant notamment pour les bannières de pub,
  • Modèle de donné amélioré : champs HTML5 (tél, email, lien …) avec validation à la saisie et markup HTML5 pour avoir un rendu multi-device de saisie. La saisir d’un numéro de téléphone sur un smartphone ou tablette se fait avec le clavier numérique,
    Commentaire : le champs ouvert/fermé devient un champ et ainsi toute les entités sont commentables. Ce qui simplifie le paramétrage des commentaires (en drupal 7 il fallait gérer des sections …),
  • Take a tour : simplifie la formation des nouveaux utilisateurs du site en front avec des tool tips en info bulle,
  • CXM et Analytics : amélioration avec le produit Acquia Lift

Evolutions Technologiques

Techniquement parlant, le système des thèmes a été amélioré afin d’être valides pour les standards actuels (HTML5 / CSS3 / Javascript) et compatible au recommandation SEO de schema.org. Les Thèmes seront donc plus simples à développer et plus simple à maintenir.

Les technologies suivantes ont été intégrées :
  • Backbone.JS : pour remplacer JQuery,
  • modernizer pour identifier les différents terminaux,
  • Normalize.js pour normaliser les appels js sur les différents terminaux,
  • Domready pour optimiser les chargement coté navigateur,
  • html5shiv,
  • classList,
  • cache : possibilité de cacher des blocs et des contenus avec une clef de cache et de gérer la suppression plus simplement/finement qu’avec Drupal 7,
  • Système de configuration de Symfony2,
  • Mécanisme de définition des routes (celui de Symfony2),
  • Twig : c’est le nouveau moteur de template venant du monde Symfony, plus besoin de connaitre le PHP. Cela simplifie la création des templates notamment pour les Thèmes.

Compatibilité IE

Il faut noter l’abandon des supports IE 6 et 7. IE 8 reste en partie supporté mais la version compatible est dégradé de IE8.

Modules Symfony inclus

Certains modules Symfony2 ont été inclus mais pas tous :
  • Conf YML
  • Routes
  • HTTPFoundation
  • Composer
  • PHPUnit

Gestion des environnements

Meilleur gestion des environnements de dev, test, préprod, prod … avec un mécanisme d’import/export des configurations qui sont maintenant au format YML (le format de Symfony).
Lors de l’import d’une configuration, l’interface est plutôt bien faite pour identifier les différences avant l’import. Mais pas de partage de contenus d’une plateforme à une autre en dehors des scripts de migration et des flux JSON.

Démarrer un projet sur Drupal 8

Du point de vu de Smile et Acquia, le démarrage d’un petit projet est possible sur une release candidate. Mais il faut s’attendre à devoir monter en version dans les semaines qui suivent.

Les différents cas ont été présentés :
  1. Dans le cas d’un site existant sur Drupal 6, il est conseillé d’attendre la release stable 8.0 pour migrer en privilégiant des modules stables de la version 8. Si la migration n’est pas nécessaire, alors attendez la 9.
  2. Dans le cas d’un site existant sur Drupal 7, il est conseillé d’attendre la release  stable 8.0 pour migrer en privilégiant des modules stables de la version 8. Si la migration n’est pas nécessaire, alors attendez la 9.
  3. Dans le cas d’un nouveau projet non critique, purement éditorial, il faut vérifier si les fonctionnalités attendues peuvent se limiter aux fonctionnalités fournies par le noyau. Il est toutefois possible de démarrer le petit projet non critique sur une version Beta ou RC, en privilégiant des modules connus et stables. Le problème c’est qu’à ce jour il n’y en a pas encore de module Drupal 8 stable. Il est donc conseillé d’attendre la release stable 8.0 pour passer en production.
  4. Dans le cas d’un nouveau projet dont les fonctionnalités ne se suffisent pas au noyau Drupal 8 seul, alors il est conseillé de démarrer le projet sur Drupal 7 en privilégiant des modules connus et stables. Il faut surtout privilégier les modules qui seront portés sur Drupal 8 ou inclus au noyau (entity reference, téléphone, URL, Restful web services, CKeditor…)
    Attention aux modules qui vont disparaitre : blog, dashboard, openID, Poll, Profile, Trigger. La mise en production se faira donc sur une version 7.
    Et après la sortie de la version 8 stable, la migration pourra se faire, mais les templates du Thèmes devront être réécrit complètement en Twig. Cette réécriture est un nouveau projet à part entière.

En conclusion

L’adoption de Drupal 8 pour un nouveau projet est donc prématurée. Mais si vous souhaitez tout de même démarrer avec Drupal 7 puis migrer, votre projet risque de vous coûter deux fois plus cher qu’avec une autre solution de CMS équivalente. Je ne saurai que recommander de regarder en détail des solutions comme eZ Platform (aka eZ Publish) et d’autres solutions implémentés sur la base de Symfony2 comme Backbee, bien que ce dernier soit encore un peu jeune.