Cayenne : Installer la librairie sur un Orange Pi sous Armbian Jessie • Domotique et objets connectés à faire soi-même

Dans ce nouveau tutoriel consacré à la plateforme pour objets connectés Cayenne, nous allons installer les ressources nécessaires sur un Orange Pi Lite (Wi-Fi). Cayenne est encore en phase de développement. Pour le moment il n’y a que le Raspberry Pi qui est supporté, et encore la distribution Raspbian officielle. Armbian (que j’utilise systématiquement sur tous mes modèles d’Orange Pi) est basée sur Debian Jessie tout comme Raspbian. Il ne devrait donc pas y avoir de problème 🙂

Comment vérifier que la distribution Armbian est compatible avec Cayenne ?

Tout d’abord, regardons si la distribution Armbian est compatible. Si vous utilisez la version de bureau, il y a de forte chance que cela ne fonctionne pas. Le noeud du problème dans le script d’installation actuel réside dans la taille du dossier temporaire (/tmp). Celui-ci doit au moins d’être d’au moins 200Mo. Je n’ai pas été plus loin dans mes investigations pour le moment. Il y a peu être d’autres limitations (packages absents…), mais aussi des solutions…

Pour connaître la distribution Armbian utilisée, exécutez la commande cat /etc/*-release. Ici, nous avons bien Armbian basé sur Debian Jessie

root@orangepilite:~# cat /etc/*-release
# PLEASE DO NOT EDIT THIS FILE
BOARD=orangepilite
BOARD_NAME="Orange Pi Lite"
VERSION=5.26.170214
LINUXFAMILY=sun8i
BRANCH=dev
ARCH=arm
IMAGE_TYPE=nightly
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"
NAME="Debian GNU/Linux"
VERSION_ID="8"
VERSION="8 (jessie)"
ID=debian
HOME_URL="http://www.debian.org/"
SUPPORT_URL="http://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

Il n’y a pas d’indication sur le Kernel Linux. Pour ce tutoriel, j’ai installé Cayenne sur la version 4.10.0 Pour récupérer la version du Kernel, exécutez la commande uname -a.

root@orangepilite:~# uname -a
Linux orangepilite 4.10.0-sun8i #4 SMP Mon Feb 13 02:46:43 CET 2017 armv7l GNU/Linux

Si vous avez trouvez comment installer Cayenne sur la version Desktop d’Armbian, n’hésitez pas à partager dans les commentaires ou en me contacter via le formulaire de contact.

Ajouter un Orange Pi depuis l’application mobile Cayenne

Démarrez l’application Cayenne sur votre iPhone ou votre smartphone Android. Elle est disponible depuis l’App Store ou le Play Store. Cliquez sur le + dans le coin supérieur droit de l’écran. Choisissez Raspberry Pi

Puis Continue en bas de l’écran

Cayenne est capable de trouver tout seul un Raspberry Pi sur votre réseau local. Pour l’Orange Pi, il va falloir l’aider un peu. Cliquez sur Advanced Discovery Settings.

Saisissez l’adresse IP de l’Orange Pi sur l’écran qui s’affiche. Ne cherchez pas le point (.), Cayenne utilise la virgule comme séparateur.

Cliquez sur Use IP pour lancer la recherche. Une jolie animation démarre pour nous faire patienter.

Si Cayenne a trouvé l’Orange, un formulaire s’affiche. Saisissez vos identifiants SSH. Utilisateur, mot de passe et port SSH. Par défaut, c’est le 22. Faites Done pour terminer la saisie. Ensuite, il y a un petit piège. Il faut cocher l’appareil en cliquant sur la ligne. Une petit coche bleue apparait à gauche. Vous pouvez installer Cayenne sur plusieurs Orange ou Raspberry Pi en même temps (vous en avez de la chance !). Lancez l’installation des librairies en appuyant sur Setup selected devices.

C’est parti pour un petit moment (en fonction du matériel et de votre connexion internet).

Que ce passe-t-il durant la phase d’installation ?

L’application Cayenne ouvre une connexion sécurisée SSH depuis l’application mobile et lance un script qui va installer les ressources nécessaires sur Armbian. Il est assez facile de suivre ce qui se passe durant cette phase. Connectez vous en SSH par exemple. Placez vous dans le répertoire racine (~) et listez les fichiers (ls).

root@orangepilite:~# ls
cayenne.err  cayenne.out  rpi_a69jafo40f.sh
root@orangepilite:~#

On y trouve 3 fichiers :

  • cayenne.err : c’est le journal des erreurs de Cayenne
  • cayenne.out : c’est le journal d’installation
  • rpi_axxxxxxx.sh : c’est le script d’installation que l’application mobile a lancée

Regardons de plus prêt en quoi il consiste

#!/bin/bash
# myDevices setup script
set -e
NAME="$0"
PREFIX="myDevices-1.0"
HOME="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $NAME
codeRaw="${NAME##*_}"
inviteCode="${codeRaw%.*}"
if [ -d "/etc/myDevices" ]; then
   echo "dir exists"
   if ! grep -q InviteCode /etc/myDevices/AppSettings.ini ; then
       echo "Invite code does not exist but directory does so we will add invite code"
       sed -e "/Agent/ a InviteCode = $inviteCode" /etc/myDevices/NewAppSettings.ini && mv /etc/myDevices/NewAppSettings.ini /etc/myDevices/A$
       sed "s/Initialized = .*/Initialized = false/g" /etc/myDevices/NewAppSettings.ini && mv /etc/myDevices/NewAppSettings.ini /etc/myDevice$
       sed '/Id = /d' /etc/myDevices/NewAppSettings.ini && mv /etc/myDevices/NewAppSettings.ini /etc/myDevices/AppSettings.ini
       sudo service myDevices stop
       sudo service myDevices start
       exit;
   fi
fi
echo "continuing as new install..."
wget -O $HOME/$PREFIX.tar.gz "http://updates.mydevices.com/raspberry/myDevices-1.0.tar.gz"
tar -xzvf $HOME/$PREFIX.tar.gz
cd $HOME/$PREFIX
chmod +x $HOME/$PREFIX/setup.sh
bash -x $HOME/$PREFIX/setup.sh -code "$inviteCode" "$@"

Cayenne va donc être installé dans le dossier /etc/myDevices . Le code est téléchargé depuis le serveur de Cayenne. Un fois récupéré, le projet est décompressé et le script setup.sh nano  exécuté.

Que peut-on faire avec Cayenne sur Orange Pi ?

Une fois installé, voyons ce qu’il est possible de faire avec Cayenne sur un Orange Pi. Disons le directement, tous les périphériques de l’Orange PI sont actuellement encore inexploitables :

  • GPIO
  • I2C
  • Caméra
  • 1-Wire
  • SPI

Tout le travail a été fait pour le Raspberry Pi qui reste le leader incontesté du domaine. Mais alors que reste-t-il ?

Le Dashboard regroupe les informations utiles sur la santé de l’Orange Pi :

  • Charge CPU
  • Utilisation RAM
  • Niveau du stockage (la jauge ne fonctionne pas)
  • Température du CPU
  • Nombre de processus
  • Vitesse réseau (ne fonctionne pas)

Par ailleurs, les fonctions d’extinctions et de redémarrage fonctionne. Je n’ai pas encore testé le bureau distant faute de bureau installé sur mon Armbian. Cayennne utilisant TightVNC (expliqué dans ce tutoriel), cela devrait fonctionner.

La charge CPU fonctionne en détail.

L’utilisation de la mémoire également

La jauge de niveau d’utilisation de la carte SD ne fonctionne pas mais les informations sont correctement collectées sur la page de détail.

Enfin, le suivi de température. La courbe de Béziers mériterait un petit ajustement.

Calendrier (Schedule)

Cayenne intègre le déclenchement d’action sur un calendrier. Un action peut être ponctuelle ou répétée. Sans la possibilité d’ajouter des actionneurs ou capteurs, le calendrier présente toutefois un intérêt très très limité sur Orange Pi. On peut programmer l’arrêt tous les soirs par exemples. On pourrait aussi le faire avec un cron directement sur l’Orange !

Déclencheur d’événement (Triggers)

Enfin, dernier outil proposé par Cayenne, le déclencheur d’événement (trigger). Pour créer un déclencheur, cliquez ur le plus dans le coin supérieur droit de l’écran.

Cayenne fonctionne sur le principe IF…THEN (s’il se passe ceci…alors fait cela). La liste des déclencheurs est encore très courte : en ligne/hors ligne, niveau stockage, charge CPU, niveau mémoire. Par exemple, on va déclencher l’envoi d’un email d’alerte si l’Orange Pi est hors ligne (perte de connexion arrêt). C’est intéressant si l’OPI est utilisé pour un serveur domotique (Jeedom, Domoticz…).

Cochez l’appareil concerné par la surveillance puis indiquez l’email de destination ainsi qu’un mini message.

Le déclencheur est prêt. Vous pouvez l’activer ou le désactiver n’importe quand.

Et voici l’email reçu lorsque l’Orange Pi s’arrête ou se trouve hors ligne (attention, c’est peut être la connexion internet qui est coupée).

Désinstaller Cayenne

Pour désinstaller Cayenne, j’ai trouvé cette procédure sur le forum myDevices ici

systemctl disable myDevices
rm -rf /etc/systemd/system/myDevices.service
rm -rf /etc/init.d/myDevices
rm -rf /usr/bin/myDevices
rm -rf /etc/myDevices/

Conclusions

Il est donc aussi facile d’installer Cayenne sur l’Orange Pi fonctionnant sous la distribution Armbian Jessie (server) que sur Raspbian mais à part surveiller et redémarrer à distance l’Orange Pi, il n’est pas possible de profiter du GPIO, de la caméra… ce qui fait tout l’intérêt du Raspberry Pi. Il faut être patient, peut être que les choses bougerons si la communauté Orange Pi se développe suffisamment. Affaire à suivre…

Avez-vous aimé cet article ?