Présentation de Zihome Linux  (Limité aux Beta-testeurs)


Généralités

Zihome Linux est la version Linux de Zihome Android (https://play.google.com/store/apps/details?id=com.ziblue.zihome.service), portée sur un micro-système du marché, le célèbre RaspBerry Pi.

 


 

 

 

 


Exemple de visuels réalistes (obtenus par screenshots) des interfaces de commandes

(cliquer pour agrandir)

 

 


Zihome Linux permet d'accéder à la domotique à un coût vraiment modeste avec les protocoles domotiques les plus usités : ZWAVE, ENOCEAN, CHACON, X10 et LIAISONS FILAIRES !

Bien-sûr, vous pouvez vous accorder quelques euros de plus pour prendre une alim dédiée (un bloc alim de smartphone/tablette Android convient également), choisir à votre goût un boîtier ou bien d'autres accessoires.

Concentrez-vous ensuite sur les achats de vos premiers périphériques (dont les 1ers prix démarrent à 40€ en ZWAVE). En fonction de votre application (et notamment sur liaisons filaires), peut-être n'avez vous même pas besoin de périphériques.

Avec ce seul budget, la suite logicielle Zihome Linux vous offre gratuitement la possibilité de piloter et consulter votre installation domotique de chez vous ou à distance sur smartphones/tablettes/PC.

 

Installation

Zihome Linux est réservé aujourd'hui aux Beta-testeurs. Zihome Linux se présente d'un package . deb à installer soi-même. Voir ci dessous.

Zihome Linux se lance ensuite à chaque démarrage du Raspberry.

 

PS: Si Zibase Mini de Zodianet avait été installée auparavant sur le Raspberry, désinstallez-là obligatoirement ! Pour cela désinstaller le package .deb de Zibase Mini, ( e.g taper la commande dpkg -r xibase-rasp.deb)

 

Par défaut et muni d'une carte SD préprogrammée, la mise en route de Zihome Linux est très simple et Plug & Play. Aucun accès informatique direct à Raspberry n'est nécessaire. Il n'est donc pas nécessaire de connecter clavier, souris et écran au Raspberry.

Bien-sûr, vous devez disposer d'un RaspBerry Pi, de son alimentation, d'une connexion à Internet, une clé ZWAVE ou ENOCEAN ou RFPLAYER et une carte SD (de capacité 8Go).

Attention ! Certaines cartes SD ne conviennent pas au Raspberry. A noter que les modèles les plus récents utilisent le format micro SD.

Si votre revendeur ne vous a pas fourni une carte SD déjà programmée, il est nécessaire de se procurer ou de télécharger une image logicielle de la carte SD à insérer dans le RaspBerry Pi. La programmation d'une carte SD s'effectue classiquement sur Windows avec Image Writer (Win32DiskImager.exe) qui peut être facilement trouvé sur Internet et d'une manipulation très simple.


Voir la liste des clés USB et modules compatibles avec Zihome Linux.

 


Zihome Linux été testée du Raspberry le plus économique (Pi Zero) au plus performant (Pi 3)

 


Si vous n'avez pas de connaissances en Linux, ne présumez pas de vos forces, deux uniques solutions:

1) Procurez vous une carte SD préprogrammée chez votre revendeur, c'est clairement le plus simple !

2) Télécharger l'image de la carte SD ci-dessous (carte 8Go) , décompressez le ensuite, vous obtenez alors un fichier .img que vous pouvez graver directement sur la carte SD. Ne JAMAIS télécharger une image logicielle qui n'émane pas d'un revendeur officiel.

Programmez votre carte, insérez là, connectez le réseau au Raspberry, et branchez l'alimentation, c'est tout ! Vous n'avez pas besoin de connecter un clavier et un écran à votre Raspberry (si celui-ci comporte un port Ethernet connecté à votre LAN).

Raspberry tous modèles (Pi Zero / A / A+ / B / B+ / Pi2 / Pi3)*

image carte SD non disponible aujourd'hui

installer Zihome Linux par commande dpkg

*La version du logiciel Zihome Linux au téléchargement de l'image importe peu car il peut être mis à jour ensuite par simple clic. login/pass = pi/raspberry ou root/root . Lancez startx pour avoir l'environnement graphique.

Les Raspberry non dotés d'un port Ethernet, doivent avoir un Dongle Wifi avec une clé Wifi configurée. Insérez cette clé avant le 1er lancement de Zihome Linux. Il est alors nécessaire de configurer la clé Wifi via l'environnement graphique à lancer par startx

Il est important de ne JAMAIS ré-utiliser et copier une image logicielle d'une carte SD qui a déjà été insérée dans un Raspberry pour faire fonctionner un autre Raspberry car cette image contient un certificat qui doit rester unique. Dans le cas contraire des dysfonctionnements sont à prévoir avec certitude, autant pour le Raspberry qui donne son image de la carte SD que pour celui qui la reçoit.

Par contre, pour un même Raspberry, il est parfaitement possible et même souhaitable de faire une ou plusieurs copies/sauvegardes de la carte SD (toujours avec Image Writer). Faire des sauvegardes n'implique pas nécessairement d'autres cartes SD puisque votre PC est parfaitement capable d'enregistrer des fichiers "images" de la carte SD à sauvegarder.

Insérez la carte préprogrammée dans le Raspberry, connectez la clé ZWAVE ou ENOCEAN (pour l'instant et sans licence, l'une ou l'autre clé), le câble Ethernet et mettez sous tension.

Votre Raspberry se connecte pour la première fois au serveur core.zihome.net... Laissez lui un peu de temps (2-3 mn environ), le serveur lui délivre un certificat unique qui permet ensuite à votre Raspberry d'être reconnu. Puis le firmware se met le cas échéant à jour...

Puis, dans le 1/4h qui suit, à partir d'un navigateur sur PC, allez à https://core.zihome.net et enregistrez-vous dans le configurateur en suivant les instructions. Après 15mn ( =Timeout), il est nécessaire de redémarrer le Raspberry avant de relancer la procédure d'enregistrement.

Si le configurateur vous demande d'appuyer sur le bouton à l'arrière de Zihome... Débranchez et rebranchez le Dongle USB ZWAVE / ENOCEAN / RFPLAYER, cela émulera l'appui sur ce bouton. Sur le Dongle USB ZWAVE AEON S2, cliquer sur le bouton bleu pour provoquer une déconnexion furtive.

A ce stade, il est assez commun d'observer un "Reboot" du Raspberry (qui n'empêche pas l'enregistrement). En effet l'insertion du Dongle peut entrainer un appel de courant trop important pour le Raspberry. Si vous comptez souvent faire des manipulations de Dongle, il faudra vous équiper d'un Hub USB alimenté. Certains Hub USB non alimentés conviennent aussi car ils absorbent l'appel de courant, d'autres non. Si vous avez des déconnexions intempestives de port(s) USB, la solution s'impose: Mettez un Hub USB alimenté !

Les manipulations de Dongle se justifient notamment avec le Dongle USB AEON Stick S2, car vous pouvez (c'est une option), lors d'une inclusion/Exclusion ZWAVE, déconnecter le Dongle, pour aller ensuite faire l''inclusion/Exclusion au plus près du périphérique ZWAVE (ne pas oublier de sortir le Dongle du mode Inclusion/exclusion avant sa reconnexion au Raspberry) . A la reconnexion, Zihome Linux et le configurateur continueront leur traitement comme si le Dongle n'avait jamais été déconnecté.

Après vous avoir enregistré sur le site core.zihome.net (avec un login, un mot de passe et un email administrateur), entrez dans le configurateur et dans le menu expert, vérifiez que votre Zihome Linux réagit lorsque vous faites enregistrer dans le menu système (vous avez ses messages dans le bandeau en haut de la fenêtre). Un voyant vert vous avertit qu'elle est "ONLINE". A ce stade, Eteignez votre Raspberry et faites alors une copie de votre carte SD : Elle contient votre certificat unique qui permet de vous identifier.


NOTES :

- Il est possible d'utiliser une simple clé USB mémoire "Mass Storage" pour faire l'opération d'enregistrement: Extraire ou insérer la clé mémoire à la place de la clé ZWAVE/ENOCEAN/RFPLAYER. Ceci est particulièrement intéressant si vous ne disposez pas d'une clé USB mais d'une cartelette mezzanine ZWAVE/ENOCEAN/RFPLAYER/PiFace sur port GPIO. Attention: Dans tous les cas, il vous faudra au minimum une interface utilisable (ZWAVE/ENOCEAN/RFPLAYER/PiFace), sans quoi Zihome Linux refusera de se lancer et sans quoi Zihome Linux ne vous serait de toute façon d'aucune utilité !


J'ai cramé mon Raspberry...

Votre compte sur la plateforme est néanmoins toujours accessible. Donc faire une exportation de votre configuration. Sauvegarder le fichier .zconf sur votre PC.

Sur le compte de la nouvelle machine, importer alors ce fichier .zconf pour retrouver votre configuration.

Si votre installation comportait des périphériques ZWAVE, récupérer le fichier /opt/ziblue/zodiaconfigzwave.zdat de votre ancienne carte SD avec le Dongle ZWAVE, et installer ce fichier au même endroit sur la nouvelle et ce même Dongle.

Si vous souhaitez récupérer l'ancienne carte SD pour l'utiliser sur votre nouvelle installation et le Zihome Mini ne semble pas démarrer, détruisez le fichier zodiacertificates.dat pour recréer un nouveau compte.




Pour les adeptes de Linux (et les Beta-testeurs)

C'est à dire uniquement pour ceux qui sont à l'aise avec Linux, sinon ne vous embarquez pas dans le chapitre suivant !

Un package .deb pour distribution Debian à télécharger est disponible ici (testé sur "Raspbian Jessie"), fonctionnant avec tous les modèles de Raspberry (Pi Zero / A / A+ / B / B+ / Pi2 / Pi3):

http://core.zihome.net/raspberry/zihome-rasp.deb

Faire dpkg -i zihome-rasp.deb ; sync (ou sudo dpkg -i zihome-rasp.deb ; sync ) pour l'installer dans votre Raspberry. Redémarrez ensuite votre Raspberry pour provoquer l'auto-démarrage de l'application (en tâche de fond). Le lancement de Zihome Linux est automatique.

NB: Le package zihome-rasp.deb a été testé avec succès sur CubieBoard2 /Debian car Raspberry et CubieBoard partagent la même architecture compatible. Veillez à avoir une adresse MAC significative et non aléatoire sur votre CubieBoard.

Le code exécutable, ainsi que les fichiers de configuration nécessaires à son lancement, sont respectivement dans les répertoires /usr/bin et /opt/ziblue. L'auto-démarrage est dans /etc/init.d/zihome_start. Attention ! le démarrage de Zihome est automatique au démarrage du Raspberry (ou autres micro-systèmes), il n'est pas nécessaire de lancer zihome_start manuellement. Si vous souhaitez néanmoins le faire, assurez-vous qu'une instance de zihome n'est pas déjà lancée, et faites en mode su killall zihome pour supprimer cette éventuelle instance.

PS: Une erreur classique consiste à vouloir lancer à la main Zihome Linux. Cela n'est pas nécessaire, puisque lancée automatiquement au démarrage de la machine.

Le programme exécutable est le fichier zihome et le fichier zihomeloop un script-shell pour relancer automatiquement le programme après une mise à jour depuis le configurateur core.zihome.net (mise à jour par simple clic dans le menu système).

 


Pour lancer manuellement Zihome Linux,  allez dans le répertoire /opt/ziblue puis faites killall zihome pour arrêter le cas échéant un processus Zihome Linux qui s'exécuterait encore, puis faites zihome ou zihomeloop (attention, les options diffèrent entre zihome ou zihomeloop). Quelques lignes doivent alors s'afficher au démarrage de Zihome Linux.


Zihome Linux est une implémentation sur Debian/CPU ARM (Raspberry, CubieBoard, etc...) de la plateforme embarquée Zihome qui regroupe en une même branche logicielle, et par compilation conditionnelle, les développements sur toutes Zihomes (Linux, Android). Les évolutions sont donc communes.


100% ouverte vers vos développements


Zihome Linux n'est pas une simple boite noire : Zihome Linux interfère avec d'autres applications sous Linux qu'elle lance via des scénarios, avec des commandes shell/bash sous un format libre et paramétrable. Ecrits dans le langage de VOTRE choix (voir tutoriel ici), vos programmes et vos algorithmes peuvent être appelés avec un nombre indéterminé de paramètres (les variables de Zihome Linux: Globales, de Sondes et Système) et en retour recevoir de multiples résultats dans des variables systèmes de Zihome Linux (jusqu'à 9 par programme appelé). Voir la définition des variables systèmes. Il suffit de faire des "printf" ordonnés sur stdout sur vos valeurs à retourner !




Zihome Linux partage bien-sûr, au titre de n'importe quel processus Linux, la même machine simultanément avec d'autres applications installées par l'utilisateur.


Dongles et cartes mezzanines

Le lancement du fichier exécutable zihome provoque d'abord  le scrutation des ports séries du Raspberry pour y détecter les Dongles USB ZWAVE, ENOCEAN, RFPLAYER, RFXCOM et éventuellement ZiBASE Classic en réseau....

Paramètres optionnels : --checkuart , --checkspi. Exemple : zihome --checkuart --checkspi --noshell --startupdelay --wirelessidpriority

--checkuart provoque le scrutation du port UART disponible sur le connecteur à picots (dit GPIO) du Raspberry, en sus de ttyUSB0-3. Pour un protocole donné, les ports ttyUSB0-3 ont priorité sur l'UART. Un dongle USB d'un protocole donné aura donc priorité sur son équivalent monté sur UART. Attention ! Ne pas lancer zihome --checkuart sur un Raspberry dont le port UART est la console de debug de Linux (cas par défaut, blocage à attendre). Lancer la commande sudo rpi-serial-console disable pour rendre le port disponible pour zihome. voir : https://github.com/lurch/rpi-serial-console

Le port UART permet de faire fonctionner des cartelettes mezzanine de type "RaZberry" de ZWAVE>ME ou Enocean Pi d'Element14 par exemple. Attention, ces cartelettes montées en mezzanine ne peuvent réaliser de "déconnexion" et sont donc inaptes à réaliser l'enregistrement initial d'une Zihome Linux sur core.zihome.net.

--checkspi provoque le scrutation du port spi0.0 pour y détecter d'une à quatre cartes PiFace (voir ci-dessous). L'identification s'effectue par les jumpers JP1-JP2 de la carte PiFace, totalisant ainsi les 4 combinaisons pour les 4 cartes.

--noshell empêche l'appel du shell Linux. L'appel du shell Linux est vraiment très puissant et vous pourriez le trouver trop puissant !

--startupdelay créé un délai au démarrage qui peut être utile si votre lien internet est Wifi et si votre Raspberry est un modèle puissant.

--wirelessidpriority cherche à coupler le certificat de zihome à l'adresse Mac d'un dongle Wifi s'il existe. Cette option permet de déplacer la carte SD d'un Raspberry à l'autre à la condition que le Dongle Wifi soit déplacé lui aussi. Le lien Wifi n'a pas besoin d'être activé. Cette option fonctionne également avec le Pi3 qui possède l'interface Wifi on-board (on-board : wlan0, Dongle: wlan1). Le Dongle Wifi doit être présent dès le premier lancement.


Ouverture vers d'autres protocoles RF


Zihome Linux, équipée du RFPLAYER (ci-contre) , reçoit et émet toutes une panoplie de protocoles.






Ouverture vers la commande et le contrôle filaires


Zihome Linux ,équipée de la cartelette PiFace, pilote 8 lignes filaires en sortie (dont 2 contact secs par relais) et relève l'état de 8 autres lignes en entrée (voir ci-contre en bas). Ces entrées sont lues 10 fois par seconde pour y détecter des changements. Voir la note d'installation.

Quatre cartes PiFace, insérées dans un petit fond de panier "Pi-Rack", totalisent ainsi 32 sorties (dont 8 à relais), et 32 entrées (voir ci-contre en haut).




Remarques :

- La spécification d'une adresse IP fixe depuis le configurateur core.zihome.net est inopérante sur Zihome Linux (par défaut : DHCP). Pour obtenir une adresse IP fixe, vous devez programmer cette spécificité par Linux.

- Les variables sauvegardées de Zihome Linux sont écrites (uniquement si modifications) sur le carte SD toutes les 10mn (par factorisation des écritures), ceci afin de protéger la carte SD d'écritures incessantes susceptibles d'abréger sa longévité.

- Des accessoires vraiment low-cost existent pour votre Raspberry, renseignez vous chez votre revendeur Ziblue ! (voir ci-contre des clés Wifi)