La Geek Attitude

A la recherche de solutions pour améliorer le quotidien


Poster un commentaire

Booter sur un disque dur externe

Après avoir attendu quelques semaines, mon boitier USB-IDE-SATA est enfin arrivé. J’ai donc maintenant la possibilité de connecter un disque dur externe au PI3, qu’il soit IDE ou SATA.

J’ai donc pu démarrer l’opération de transfert du contenu de la carte SD vers le disque dur externe afin d’éviter des crashs de cartes SD et dormir sur mes deux oreilles sans me demander si la carte tiendra jusqu’au lendemain. Voici un résumé des actions à effectuer reprise du forum de Jeedom.

  • Se logger en SSH en utilisant la commande ssh root@ip_du_pi et mettre le mot de passe (Mjeedom96 si vous ne l’avez pas changer).
  • Vérifier que le disque est bien reconnu en exécutant la commande cfdisk /dev/sda.cfdisk
  • Il devrait y avoir une seule partition, il faut la supprimer.Ensuite, il faut successivement effectuer les actions suivantes:
    • New.
    • Definir la taille de la partition (laissez celle par défaut).
    • Primary.
    • Type.
    • Choisir le type 83 Linux.
    • Write.
    • Réponse Yes à la question.
    • Quit.
  • Vérifier que le disque dur est bien partitionné pour Linux en exécutant la commande fdisk -l.

fdisk-l

  • Exécuter la commande mkfs.ext4 /dev/sda1 pour formater la partition.
  • Exécuter la commande cat /boot/cmdline.txt afin de trouver l’identifiant de la partition qu’il va falloir transférer sur le disque dur externe. Il semble que ce soit toujours mmcblk0p2 (zéro, et pas o) sur les RPI3, j’ai répété l’opération sur deux système.
  • Exécuter la commande umount /dev/sda1.
  • Exécuter la commande dd if=/dev/mmcblk0p2 of=/dev/sda1 bs=512 afin de copier la contenu de la carte SD vers le disque dur externe.
  • Quand la copie est terminée, exécuter la commande vi /boot/cmdline.txt.
  • Dupliquer l’unique ligne du fichier en tapant dans l’ordre les touches suivantes: ESC,Y,ESC,P.
  • Commenter la première ligne en y ajoutant un # au début de la ligne (ce qui aura pour effet de la désactiver) en tapant dans l’ordre les touches suivantes: ESC,i,#.

cmdline

  • Modifier la seconde ligne en remplaçant l’identifiant de la partition en commençant par descendre sur la seconde ligne avec ESC puis flèche du bas, placer vous sur le premier slash de l’identifiant, taper ESC puis répéter x jusqu’à ce que le chemin soit effacé, ESC,i puis taper /dev/sda1.
  • Pour sauvegarder le fichier, taper les touches suivantes dans l’ordre: ESC,:,w,q puis ENTER.
  • Quand ce changement est effectué, exécuter la commande reboot.
  • Exécuter la commande suivante: vi /etc/fstab.
  • Dupliquer la seconde ligne de la même manière que dans le fichier cmdline, commenter cette seconde ligne et modifier le chemin de l’identifiant de la partition par /dev/sda1

fstab

  • Taper la commande reboot pour redémarrer, cela devrait être bon.

Jeedom sera sur un environnement plus stable et cela donne également la possibilité d’effectuer des copies de la partition du disque dur sur la partition de la carte SD si besoin en exécutant les commandes:

  • dd if=/dev/sda1 of=/dev/mmcblk0p2 bs=512

Si le besoin de revenir sur la carte SD pour quelque raison que ce soit:

  • modifier le fichier /boot/cmdline.txt pour désactiver la ligne ajoutée avec le /dev/sda1 et réactiver celle avec /dev/mmcblk0p2
  • modifier le fichier /etc/fstab pour également désactiver la ligne ajoutée avec le /dev/sda1 et réactiver celle avec /dev/mmcblk0p2
  • exécuter la commande reboot.


Poster un commentaire

La bonne surprise de JARVIS@Home

Comme expliqué dans mon article précédent, j’ai donc fait mes premiers pas avec Jarvis@Home en utilisant un terminal Alcatel (vu comme un HUAWEI sur ma freebox).

Cela fonctionne assez bien malgré les quelques fois où JARVIS n’est pas réveillé au premier appel.

La documentation sur le forum Jeedom est assez claire et l’aide de l’application sur le terminal Android est également bien utile.

Une belle surprise de cette application est la présence du TTS directement utilisable en exécutant des requêtes HTTP (expliquées aussi dans l’aide de l’application).

Donc, Jarvis@Home transforme tout terminal Android compatible en un appareil permettant le pilotage par la voix de votre domotique mais également de recevoir des messages vocaux.

Cela donne une autre dimension à l’application et met au placard les Karotz et Nabaztag (surtout que l’Openkarotz ne fonctionne plus en TTS et qu’ils avaient tous les deux toujours besoin d’un accès à des serveurs sur le net).

Je vois un bel avenir pour cette application et j’espère trouver des terminaux compatibles pour avoir JARVIS dans plusieurs pièces. 


Poster un commentaire

En attendant la suite

En attendant de pouvoir avancer plus loin dans la sécurisation du Jeedom pour palier à la maladie des cartes SD, je continue à explorer le forum de ce dernier afin d’y trouver des informations qui pourraient m’intéresser.

Tout d’abord, j’ai procédé à l’installation d’un Jeedom dans une machine virtuelle sous VMWare afin de pouvoir tester quelques plugins sans plomber mon installation… J’aurais du faire cela depuis bien longtemps.

L’opération n’est pas très compliquée:

  • Téléchargement de l’image de Debian 8 en netinstall
  • Suivre cette petite procédure (par à jour mais toujours fonctionnelle)

Comme pour le RaspBerry, l’installation de Jeedom prend entre 20 et 30 minutes et après cela, on peut tester sans problèmes des plugins ou des scénarios.

Enfin, je n’ai toujours pas laissé tomber l’idée de la commande vocale de Jeedom. J’avais d’abord tester le projet Jarvis qui consistait à installer un second Raspberry avec un peu de matériel supplémentaire. Au vu des recherches effectuées, je trouvais l’investissement un peu trop important pour un résultat incertain.

J’avais donc ensuite trouvé une application sous Android (VocalDom) qui utilise le synthèse et la reconnaissance vocale de Google pour fonctionner. Pratique, mais il est nécessaire de « tapoter » sur l’application pour pouvoir donner un ordre.

C’est ce matin que je suis tombé sur une nouvelle application (toujours sous Android) appelée Jarvis@Home. Proche de VocalDom, elle permet en plus de pouvoir « réveiller » Jarvis par la voix et pas par le toucher mais aussi d’utiliser la reconnaissance vocale offline (donc sans internet). Elle a d’autres fonctions intéressantes pour lesquelles je dois encore faire des essais mais j’ai déjà activé par exemple la possibilité de voir l’état de Jarvis dans Jeedom, c’est-à-dire, savoir s’il est prêt à recevoir des ordres ou pas.

Une version gratuite, limitée, existe et permet de faire tous les tests de base pour s’assurer que la reconnaissance vocale fonctionne bien avant d’acquérir la version payante à 1.99eur.

Je vous invite à suivre le tutoriel sur le forum Jeedom.

Je vais donc dédier une petite tablette Android à cette tâche et je vous ferais mes retours très prochainement. Ce sera très vite car toutes les interactions créées pour VocalDom sont aussi effectives pour Jarvis@Home.

En attendant, voici une petite vidéo postée par le créateur de l’application.

Il semble qu’elle peut aussi fonctionner avec d’autres logiciels de domotique.


2 Commentaires

Exportation des backups

En attendant l’arrivée de mon boîtier IDE/SATA pour tester une autre alternative à la carte SD du PI, je me suis intéressé à un autre point qui est assez important, à savoir, exporter les Backups de Jeedom sur un autre support afin de ne pas se faire surprendre en cas de corruption de la carte SD ou une panne matérielle.

J’ai donc entrepris la création d’un script permettant cette exportation.

Ayant une Freebox v6, il est donc logique que j’aie choisi de sauvegarder ces fichiers sur son disque dur interne et sur une clé USB en utilisant le protocole FTP.

Tout d’abord, il faut s’assurer que le ftp est bien actif sur la freebox avec un mot de passe pour l’utilisateur freebox, c’est plus prudent. Egalement installer un client FTP sur le raspberry, le Linux n’en a pas nativement.

Ensuite, il faut installer, si ce n’est déjà fait, le plugin script dans Jeedom et créer un nouveau script ainsi que d’y ajouter une commande du type action.

jeebackup_commande

Éditez le script et copiez le code ci-dessous en modifiant l’adresse ip de votre freebox, le mot de passe et le remote directory avec le bon endroit sur votre freebox ou tout autre système permettant le FTP.

#!/bin/sh
HOST=’ip-de-la-box’
USER=’freebox’
PASSWD=’mdp’
LOCAL_DIR=’/var/www/html/backup’
REMOTE_DIR=' »Disque dur/votre-repertoire »‘
ftp -n -p -i $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
lcd $LOCAL_DIR
cd $REMOTE_DIR
bin
mput *.gz
quit
END_SCRIPT
exit 0

Sauvegardez le script et puis testez le. Les fichiers contenus dans le répertoire backup de Jeedom devraient se trouver dans votre freebox.

Après une simple scénario exécuté tous les jours à un heure précise qui actionne la commande JeeBackup.

Je vais faire évoluer le script plus tard pour permettre la suppression des anciens backups et trouver un moyen pour exporter uniquement le fichier le plus récent.


Poster un commentaire

A la recherche d’une sécurisation WAF pour Jeedom

Après la corruption de la carte SD en décembre dernier, je tente de trouver une solution pas trop chère pour que ma domotique ne me plombe pas mes nuits à cause d’une question quotidienne: Fonctionnera-t-elle toujours demain?

Comme décrit dans deux de mes derniers articles, plusieurs solutions sont possibles et j’ai actuellement choisi la moins chère, à savoir, avoir une réserve de cartes SD de même capacité pour y implanter l’image de mon installation.

L’idée est de me permettre de simplement changer la carte, redémarrer le Raspberry et pouvoir utiliser Jeedom directement et atteindre le Wife Acceptance Factor si cela arrive quand je ne suis pas là.

Ma première étape a été d’acheter 2 cartes SD de 8Go, plus n’étant pas nécessaire.

La seconde a été de refaire une installation de l’image initiale car la carte actuelle est de 64Go et donc impossible de la copier sur celle de 8Go. Dans la précipitation, j’avais pris la carte de ma caméra pour remettre Jeedom en route avec les conséquences expliquées précédemment.

La troisième a été de recharger un backup de mon ancienne carte sur la nouvelle après que l’installation automatique de Jeedom soit terminée. Je me suis rendu compte que le fichier de backup avait été automatiquement dézippé et c’est pour cela que mon backup avait été refusé par Jeedom lors de la corruption de ma carte… J’aurais pu restaurer le fichier si je l’avais zippé avec gzip, disponible nativement sur OSX… Mais pas de regrets vu que j’ai mieux organisé le Jeedom par rapport à la précédente installation.

Ensuite, j’ai fait une image de cette carte sur mon Mac en utilisant l’utilitaire de disque pour la réinstaller sur la seconde carte SD « de secours » et rebooter le Raspberry afin de m’assurer qu’elle fonctionne. Étant sur Mac, j’utilise l’application gratuite ApplePI-Baker, aussi bien pour la création de l’image que pour la restauration.

Donc à présent, j’ai une carte mémoire de rechange et une image pour pouvoir préparer une nouvelle carte avec la configuration minimum pour remettre en route le système. Les deux ont été testées et ça fonctionne nickel.

Cela m’aura coûté 16€ pour deux cartes SD de 8Go et un peu de temps pour mettre la procédure en place… A voir comment ça va se passer dans les mois qui viennent et j’aviserai l’investissement dans un NUC ou une Jeedom SMART si cela ne me convient pas.

Il n’empêche que je vais tester sur un second Raspberry une installation sur un disque SSD ou autre.

Suite au prochain épisode.


4 Commentaires

NUC vs Jeedom SMART

La mésaventure de fin décembre, qui m’a obligé de réinstaller totalement Jeedom sur mon Raspberry PI 3, m’a fortement refroidi concernant ce dernier.

Je cherche donc une solution pérenne pour ne pas me soucier d’une panne certaine de la carte SD.

En cherchant un peu, trois solutions sont possibles:

  • PC NUC: il faut compter en plus une nouvelle clé USB Z-Wave, un disque dur et de la RAM. Pour avoir quelque chose qui tient la route, il faut compter entre 300€ et 350€. 
  • Jeedom SMART: cette solution semble alléchante car complète, validée par l’équipe Jeedom et clé en main. Mais, pourrais-je facilement restaurer un backup d’une base de données provenant de mon Raspberry PI3 en sachant par exemple que le réseau zwave ne sera pas gérée par le même matériel… Et moins chère car annoncée à 235€.
  • Un vrai serveur sur mesure où je pourrais augmenter la sécurité en mettant un RAID mais cela implique un coût plus important et une consommation plus importante.

Il est aussi possible de tenter l’installation d’un disque dur en usb mais cela implique de faire booter le pi3 sur ce dernier et cela ne semble pas être supporté par l’équipe Jeedom… Ou, la solution la plus cheap est de cloner la carte SD pour la changer quand une claque…

La Jeedom Smart sera disponible fin février donc cela me laisse encore un peu de temps pour y réfléchir.


Poster un commentaire

Il fallait que cela arrive…

… ma carte SD est corrompue.

J’avais lu sur plusieurs sites que la carte SD était assez fragile et je dois dire qu’après plus de 6 mois d’utilisation, je m’étais dit que le fait que le pi3 est connecté à un onduleur me permettait d’éviter tout problème.

Il faut croire que non, un mois après mon voisin, ma domotique n’était plus accessible.

Faisant une récupération régulière des backups, je n’étais pas inquiet. La réinstallation d’un nouvelle carte SD et une restauration du backup aurait réglé le problème… Mais comme souvent, les choses ne se passent pas comme on l’espère.

J’ai tout d’abord réinstaller l’image 2.0.0.1 que j’avais utilisée pour la première installation…. Mais la mise à en jour de Jeedom 2.4.6 était impossible.

Après avoir vu sur un forum qu’il fallait installer la toute dernière image afin de pouvoir récupérer la 2.4.6. Cela a fonctionné et après le redémarrage, j’accédais à nouveau le Jeedom. La seconde étape était donc la restauration de la sauvegarde. Et c’est là que je me suis retrouvé dans la merde parce que la restauration était impossible.

Donc, pas le choix, il a fallu tout refaire… en mieux vu que la connaissance de Jeedom est meilleur après 6 mois d’utilisation.

Je suis actuellement à la recherche d’une autre solution pour palier à ce type de situation:

  • Acquérir un NUC me permettant d’installer Jeedom sur un disque SSD, censé être plus solide qu’une carte mémoire… Mais c’est plus cher…
  • Tenter l’utilisation d’un SSD en USB sur le PI3, moins cher mais risqué car il y a quelques manipulations à effectuer pour booter sur ce disque dur à la place de la carte mémoire
  • Faire une image après installation de la carte SD pour pouvoir répliquer sur plusieurs autres au cas où.

Je vais réfléchir et peser le pour et le contre avant de me décider.

En tout cas, faite attention à ce point qui est la faiblesse du raspberry.


Poster un commentaire

Et ça continue encore et encore…

En attendant la gestion de l’arrosage via le OpenSprinkler commandé en Allemagne, j’ai effectué la semaine dernière une nouvelle commande pour compléter mon installation domotique pour sécuriser le raspberry PI face à une panne de courant et la gestion de notre futur poêle à granulés qui sera installé fin de cette semaine.

Pour être informé de panne de courant dans la maison, j’ai donc investi dans un onduleur APC BX700U-FR de chez UPS afin de profiter du powerShute de ce dernier afin de le connecter au Raspberry. Un plugin de Jeedom permet la récupération des données transmises par l’onduleur et un simple scénario m’informera par SMS de la panne de courant.

Après pas mal de recherches et de questions sans réponses de la part du fabriquant de notre poêle à granulés, je me suis résigné à simplement pouvoir allumer ou couper l’alimentation de ce dernier et laisser la gestion du thermostat à la télécommande.

Pour ce faire, le WallPlug de Fibaro fera l’affaire à travers un scénario qui contrôlera la température de la sonde du salon afin de l’allumer dans une plage horaire définie. Le thermostat de ma télécommande fera le reste.

La domotique n’est pas encore terminée pour moi car un autre collègue au bureau s’intéresse aussi de très près à mon installation et je vais m’occuper de son installation. A la maison, il me reste encore l’arrosage à intégrer dès que j’aurais reçu le programmateur.


2 Commentaires

Faire parler (ou chanter) Jeedom avec Airplay

Voilà quelques semaines que j’écume le net afin de trouver une solution pour envoyer des fichiers audio sur un périphérique compatible airplay.

J’ai été aiguillé par un membre du forum de Jeedom (merci à lui) vers une solution qui s’appelle Airstream.

A lire le blog conseillé, cela avait l’air très simple et totalement compatible avec ma configuration.

Après avoir suivi le petit tutoriel, comme je pouvais m’en douter, rien ne fonctionnait. Impossible d’installer le package airstream car la version de ruby, outil sous lequel le package a été développé, était trop ancienne.

J’ai donc été conseillé sur le forum de mettre à jour Raspbian en utilisant la commande apt-get update puis upgrade mais cela n’a pas suffit. J’ai du alors exécuter les commandes suivantes mais je ne sais pas laquelle a bien mis à jour (j’ai repris l’historique du Raspbian):

  • sudo apt-get install rubygems ruby-dev ruby
  • sudo gem install concurrent
  • sudo gem install concurrent-ruby
  • sudo gem install rubygems
  • sudo apt-get install ruby1.9
  • sudo apt-get install ruby

Gem présent et à jour, j’ai pu enfin exécuter la commande sudo gem install airstream -v 0.4.10 et faire un essai d’envoi de la commande, avec succès, airstream -o adresseipduplayer http://addressipjeedom/audio/monficher.wav

Après quoi, l’étape suivante a été de pouvoir exécuter cette même commande à partir de Jeedom. Pour ce faire, j’ai utilisé le plugin Script et créer un commande action.

Mon seul problème, au moment où j’écris cette article, j’arrive bien à streamer de l’audio sur le player Freebox mais malheureusement pas encore sur le server qui a une petite enceinte intégrée.

Je cherche une solution pour éviter de devoir acheter un récepteur compatible Airplay ou devoir acquérir un second raspberry pour m’en servir de récepteur.

A suivre…


Poster un commentaire

Le tableau de bord Jeedom

Un point à ne pas négliger est l’organisation du tableau de bord (Dashboard) de Jeedom afin de pouvoir avoir une vue claire des différents éléments de votre réseau domotique ainsi que l’état de chacun quand il est possible de le récupérer.

Jusqu’ici, je n’y avais pas plus porté attention mais maintenant que je suis un peu plus à l’aise avec Jeedom et que de nouveaux modules d’ajoutent, je rentre un peu plus loin dans la configuration de ce dernier.

Les exemples sur des blogs montrant des dashboard bien chargés m’ont interpellé car tous ont de jolies icônes et les états clairement visibles alors que jusqu’ici, rien de tout cela chez moi.

Tout se joue au niveau de la configuration de chaque commande du module, dans l’onglet affichage avancé où des types de widgets (lumière, volet par exemple) sont sélectionnables afin d’afficher très clairement l’état de la lampe ou du volet de manière visuelle.

Un autre point important est la création d’objets qui permettent ensuite d’organiser le dashboard par pièce pour regrouper les périphériques.

L’étape suivante est maintenant l’équipement de deux autres volets et un détecteur de mouvements/température/luminosité afin de conjuger les informations collectées par ce dernier pour fermer les volets en cas de forte exposition au soleil. Le but est bien évidemment de limiter l’utilisation de la climatisation car je rappelle la raison de l’application de la domotique chez moi: réduire la consommation électrique.