2017-10-18
Google Assistant avec un Orange Pi Zero et DietPi

Curieux, je me suis procuré un autre nano-ordinateur, le Orange Pi Zero. Comme premier test, j'ai installé le logiciel de domotique Domoticz sur celui-ci. Voici la démarche à suivre pour installer le système d'exploitation Armbian puis le logiciel de domotique. J'ai aussi installé mosquitto le serveur MQTT.

Il ne s'agit que de premières impressions. Voulant seulement vérifier que le matériel reçu fonctionnait, je vais mettre de côté le Orange Pi Zero pour compléter d'autres projets plus pressants.

Table des matières

  1. Matériel
  2. Références
  3. Installation de Armbian
  4. Premier démarrage
  5. Mise à niveau de Armbian
  6. Connexion WiFi
  7. Adresses IP statiques
  8. Configuration du Orange Pi Zero
  9. Installation de Domoticz
  10. Paramétrage de Domoticz
  11. Installation d'un courtier MQTT
  12. Surchauffe du H2+
  13. Observations

  1. Matériel
  2. Le Orange Pi Zéro (dorénavant le OPiZ), de Shenzhen Xunlong Software CO., Limited est un ordinateur monocarte de très petite taille qui possède tout de même un processeur avec quatre coeurs. A mon avis, ses capacités le place entre le Raspberry Pi Zero W(ireless) et le Raspberry Pi 3.

    Orange Pi Zero Raspberry Pi Zero W Raspberry Pi 3
    SOC Allwinner H2+ BCM 2835 BCM 2837
    CPU ARM Cortex A7 ARM11 ARM CORTEX A53
    Coeurs 4 (32 bits) 1 (32 bits) 4 (64 bits)
    Cadence 1.2GHz 1 1.2GHz
    GPU Mali400 (600MHz) VideoCoreIV (250MHz)VideoCoreIV (400Mhz)
    RAM 512MO 512MO 1GO
    Storage MicroSDHC MicroSDHC MicroSDHC
    SPI Flash 2MB --- ---
    Ethernet 10/100MO --- 10/100MO
    WiFi 802.11 b/g/n
    Bluetooth --- 4.1 & BLE
    USB 1 --- 4
    USB OTG 1 1
    HDMI output --- mini yes
    Composite video yes yes yes
    Camera connector --- CSI CSI
    GPIO 26 pins, 13 pins 40 pins 40 pins
    Dimensions 46x48 mm 65x30mm 85.6x56.5mm

    Il y a une version un peu moins chère avec seulement 256MO de mémoire. Il y a aussi une carte d'extension ajoutant deux sorties USB, un microphone, un récepteur infrarouge et une sortie audio/video. J'ai acheté l'ensemble 6 qui ajoute un boîtier pouvant accueillir le OPiZ et la carte d'extension. Le tout a coûté un peu moins que 25 $ CDN incluant les frais de livraison.

    cartes et boîters

    Il faut rajouter une carte Micro SD d'au moins 4 GO. J'ai utilisé une carte Verbatim de 16 GO de classe 10. Enfin il faut une alimentation de 5V avec un câble microUSB.

    Avertissement

    Le OPiZ est tatillon quant à son alimentation. Il refuse de fonctionner avec une alimentation (1A à 5V) utilisée avec des Raspberry Pi, téléphones intelligents, tablettes, etc. En revanche une vieille alimentation pour Nexus 7 (1,3A à 5,2V) achetée d'occasion et une alimentation générique (1A à 5V) fonctionnent sans problème.

    De plus, certains câbles USB ne peuvent pas être utilisés. Il semble que le connecteur microUSB soit trop court quand le OPiZ est dans le boîtier, car ils fonctionnent si la carte est hors du boîtier. C'est un phénomène que j'ai déjà observé avec un Raspberry Pi 3 dans un boîtier avec des parois de plastique transparent et épaisses.

  3. Références
  4. Le site du fabricant consacré au Orange Pi Zéro est le point de départ évident pour commencer à se documenter sur ce nano-ordinateur.

    Plusieurs ont des vidéos sur YouTube ou des sites avec de l'information qui peut être utile. Je suis abonné à MickMake qui a testé le OPiZ Orange Pi Zero: Better than the Raspberry Pi Zero? // Review. C'est peut-être en regardant cette vidéo que l'idée d'acheter le OPiZ a germé. La vidéo date de presque un an et je pense que certains des problèmes énumérés (au sujet de SPI par exemple) semblent réglés si l'on peut se fier au vidéo de Kaspars Dambis, Display for Orange Pi Zero. Le video Orange Pi Zero Setup et le Setting up a Orange Pi Zero using an Armbian/Debian Jessie distro de Brian Greul ce sont avérés utiles aussi pour ce qui est de la sortie TV. Il y a aussi deux vidéos de Richard Hughes, Orange Pi Zero Review accessories & comparison et Orange Pi zero update.

    Enfin, mentionnons que selon Shenzhen Xunlong on peut faire à peu près ce qu'on veut avec le OPiZ parce qu'il est « open source ». En effet, on peut trouver les schémas de la carte.

  5. Installation de Armbian
  6. Presque toutes les personnes citées ci-dessus ont choisi une image Armbian de Debian ou Ubuntu comme système d'exploitation. J'ai donc décidé d'emboîté le pas en installant Ubuntu server - legacy kernel qu'on trouve ici. Je n'ai pas choisi la version plus récente, Ubuntu server - mainline kernel, car elle ne prend pas en charge le module WiFi XR819. Si l'on préfère Debian, les images se trouvent ici. Il faut extraire l'image de l'archive téléchargée. Ce fichier est facile à identifier tant par son nom et par sa taille.

    J'ai utilisé ETCHER pour copier l'image du système d'exploitation sur une carte SD. Puisque ce logiciel est disponible pour Linux, Windows et OS X, l'opération devrait être semblable sur ces plates-formes. Télécharger la bonne version de ETCHER en fonction du système d'exploitation de l'ordinateur de bureau. Il faut extraire l'application. Dans Linux 64 bits, elle se nomme Etcher-1.0.0-linux-x64.AppImage

    1. Insérer la carte SD dans un lecteur de carte de l'ordinateur bureau.
    2. Double-cliquer sur Etcher-1.0.0-linux-x64.AppImage. A chaque fois que le logiciel demande s'il doit être installé, je réponds No, mais si vous pensez que vous réutiliserez cette application souvent, vous pouvez toujours répondre Yes.
    3. Attendre que Etcher démarre, ce qui peut prendre quelques dizaines de secondes.
    4. Cliquer sur Select image et sélectionner l'image du système d'exploitation extraite de l'archive téléchargée.
    5. Si ETCHER n'affiche pas la bonne carte SD comme cible, cliquer sur Change et sélectionner la bonne cible. Puisque qu'une seule carte de mémoire SD est branché et qu'aucun autre lecteur amovible n'est branché à mon ordinateur, ETCHER a correctement identifié la cible.
    6. Cliquer sur Flash!.
    7. Attendre jusqu'à ce que Etcher ait fini de téléverser le système d'exploitation sur la carte et d'en vérifier le contenu puis fermer l'application.

    Encore une fois, merci aux développeurs de ETCHER pour un logiciel simple et efficace.

  7. Premier démarrage
  8. La seule façon de démarrer est par connexion SSH depuis un autre ordinateur alors que le OPiZ est branché au réseau local avec un câble Ethernet. Seule difficulté, comment savoir quelle adresse IP a été assignée par le serveur DHCP du réseau, typiquement par le routeur?

    Il y a deux façons d'obtenir l'information. On peut essayer de repérer le nouvel arrivé sur le réseau en examinant la liste des dispositifs branchés au routeur. Typiquement, les routeurs affichent cette liste dans l'interface Web qu'on utilise pour les gérer. Malheureusement, la présentation de cette interface étant différente d'un modèle à l'autre, il n'est pas possible de donner des instructions. À titre d'exemple, voici une partie de la liste affichée par mon routeur montrant un dispositif inconnu. liste

    L'autre façon d'obtenir cette liste est d'utiliser un explorateur de réseau qui examine toutes les adresses IP et, pour chacune, les ports TCP ouverts. J'utilise Nmap à partir de l'interface graphique Zenmap (installé à partir de la logithèque Ubuntu. D'autres pourraient préféré Angry IP Scanner qui fonctionne sur Windows, Linux et MAC pour autant qu'une version assez récente de Java soit déjà installée.

    Le principe est le même, qu'importe comment on veut identifier le OPiZ. On fait une première analyse du réseau local pour obtenir la liste des dispositifs déjà branchés au réseau. Puis on insère la carte mémoire SD programmé, on connecte le câble Ethernet dans la prise RJ45 et l'on connecte l'alimentation à l'OPiZ. Si tout va bien, Ubuntu démarrera et après une trentaine de secondes aura obtenu une adresse IP et acceptera une connexion SSH sur le port 22. On refait l'analyse du réseau local. Il devrait être facile d'identifier le nouveau dispositif.

    zenmap

    Sur l'image ci-dessus on peut suivre les étapes pour ce qui est de Zenmap. En premier la cible est définie: 192.168.1.0/24 ce qui signifie une analyse des adresses 192.168.1.0 à 192.168.1.255. Puis j'ai choisi de faire un Quick scan qui suffit pour nos besoins. L'analyse est déclenchée en appuyant sur le bouton Scan. Une fois l'analyse complétée, j'ai affiché les adresses IP des hôtes en fonction des Services car, comme mentionné ci-dessus, OPiZ ouvre le port 22 pour accepter les connexions SSH. Il y a seulement trois hôtes qui offrent ce service sur mon réseau: le premier est le Raspberry Pi qui est le serveur domotique. Le second est mon ordinateur de bureau et j'en conclue que le dernier 192.168.1.130 est l'OPiZ.

    Le plus difficile est fait, il reste maintenant à lancer une connexion SSH avec l'OPiZ en tant que root (mot de passe 1234). Immédiatement, il faudra changer le mot de passe de root et créer un compte utilisateur membre du groupe sudoers ce qui veut dire que cet utilisateur peut exécuter les commandes réservées à root en utilisant le préfixe sudo.

    michel@hp:~$ ssh root@192.168.1.130 (*) root@192.168.1.130's password: 1234 le mot de passe n'est pas affiché You are required to change your password immediately (root enforced) ___ ____ _ _____ / _ \ _ __ __ _ _ __ __ _ ___ | _ \(_) |__ /___ _ __ ___ | | | | '__/ _` | '_ \ / _` |/ _ \ | |_) | | / // _ \ '__/ _ \ | |_| | | | (_| | | | | (_| | __/ | __/| | / /| __/ | | (_) | \___/|_| \__,_|_| |_|\__, |\___| |_| |_| /____\___|_| \___/ |___/ Welcome to ARMBIAN 5.30 stable Ubuntu 16.04.2 LTS 3.4.113-sun8i System load: 0.40 0.53 0.25 Up time: 3 min Memory usage: 6 % of 494MB IP: 192.168.0.130 CPU temp: 63°C Usage of /: 8% of 15G [ General system configuration: armbian-config ] Changing password for root. (current) UNIX password: 1234 Enter new UNIX password: xxxxxx Retype new UNIX password: xxxxxx Thank you for choosing Armbian! Support: www.armbian.com Creating a new user account. Press <Ctrl-C> to abort Please provide a username (eg. your forename): michel choisir un bon nom Trying to add user michel Adding user `michel' ... Adding new group `michel' (1000) ... Adding new user `michel' (1000) with group `michel' ... Creating home directory `/home/michel' ... Copying files from `/etc/skel' ... Enter new UNIX password: yyyyyy Retype new UNIX password: yyyyyy passwd: password updated successfully Changing the user information for michel Enter the new value, or press ENTER for the default Full Name []: Room Number []: Work Phone []: Home Phone []: Other []: Is the information correct? [Y/n] Y Dear michel, your account michel has been created and is sudo enabled. Please use this account for your daily work from now on.

    (*) Si c'est la première fois que ssh est utilisé avec cette adresse, il y aura un dialogue demandant s'il faut enregistrer les clés de sécurité auquel on répond oui («yes» au complet).
    michel@hp:~$ ssh root@192.168.1.130 The authenticity of host '192.168.1.130 (192.168.1.130)' can't be established. ECDSA key fingerprint is 8b:44:a8:a0:e3:f2:3a:b3:d9:63:0f:3a:19:ff:14:b6. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.130' (ECDSA) to the list of known hosts.

    Si des clés de sécurité ont déjà été enregistrer pour cette adresse, un avertissement est affiché.

    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. ... Host key verification failed.
    il n'y a probablement rien de néfaste en cours. Comme indiqué dans le message, entrez
    michel@hp:~$ ssh-keygen -f "/home/michel/.ssh/known_hosts" -R 192.168.1.130
    ce qui effacera la vieille clé puis essayez d'établir la connexion de nouveau.

    Il est maintenant préférable de fermer la session et de se brancher à nouveau en tant que le nouvel utilisateur.

    root@orangepizero:~# exit logout Connection to 192.168.1.130 closed. michel@hp:~$ ssh michel@192.168.1.130

  9. Mise à niveau de Armbian
  10. J'ai mis à jour et à niveau Armbian

    michel@orangepizero:~$ sudo apt-get update ... michel@orangepizero:~$ sudo apt-get upgrade ... Do you want to continue? [Y/n] y

    Cette dernière étape prend assez de temps.

  11. Connexion WiFi
  12. L'utilitaire de configuration de Armbian peut être utilisé pour démarrer une connexion WiFi.

    michel@orangepizero:~$ sudo armbian-config [sudo] password for michel: mot_de_passe qui n'est affiché

    L'écran suivant est affiché:

    Frapper la barre d'espacement pour confirmer que vous comprenez les risques associés à l'utilisation de cet utilitaire avec les privilèges les plus élevés puis frapper la Entrée pour aller au menu principal.

    Selectionner WiFi puis dans la liste des points d'accès

    sélectionner le réseau WiFi local et entrer le mot de passe du réseau.

    Cliquer sur le bouton <OK>.

    J'ai profité de l'occasion pour fixer le fuseau horaire (Timezone) J'ai aussi examiné le choix Network pour apprendre que l'utilitaire ne prend pas en charge la configuration du réseau et qu'il faut utiliser Network Manager (nmui ou nmcli). On quitte l'utilitaire en sélectionnant <Exit to shell> dans le menu principal.

    On peut vérifier que l'interface sans fil est en place:

    michel@orangepizero:~$ ifconfig eth0 Link encap:Ethernet HWaddr 0a:b4:91:ff:73:9c inet addr:192.168.1.130 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fd00:fc:8d4f:71b2:8b4:91ff:feff:739c/64 Scope:Global inet6 addr: 2607:fea8:f180:c5a:8b4:91ff:feff:739c/64 Scope:Global inet6 addr: fe80::8b4:91ff:feff:739c/64 Scope:Link ... lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 ... wlan0 Link encap:Ethernet HWaddr dc:44:6d:21:56:1e inet addr:192.168.1.31 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fd00:fc:8d4f:71b2:de44:6dff:fe21:561e/64 Scope:Global inet6 addr: 2607:fea8:f180:c5a:de44:6dff:fe21:561e/64 Scope:Global inet6 addr: fe80::de44:6dff:fe21:561e/64 Scope:Link ...

  13. Adresses IP statiques
  14. Le programme domotique Domoticz contient un serveur Web auquel on accède avec un navigateur Web tel que Firefox, Chrome, Safari . Cela signifie que le serveur Web doit se trouver à une adresse IP fixe. Cependant, par défaut, le Orange Pi Zero utilise le protocole DHCP pour obtenir une adresse IP variable à partir d'un serveur DHCP sur le réseau local.

    Cela signifie que certains changements doivent être apportés à la configuration du réseau. Cela signifie également qu'une décision doit être prise quant à quelle interface sera utilisée. Le OPiZ contient deux interfaces réseau: une liaison Ethernet câblée (câble Cat5 ou Cat6 avec connecteurs RJ45 déjà utilisée) et une connexion WiFi sans fil. L'interface sans fil est évidemment plus flexible, car elle me permet de placer le nano-ordinateur à peu près n'importe où.

    Typiquement, il y a deux façons d'affecter une adresse IP statique. On peut modifier la configuration du réseau de l'OPiZ ou l'on peut modifier les paramètres du serveur DHCP pour que ce dernier assigne toujours la même adresse au interface réseau de l'OPiZ. Auparavant j'ai utilisé les deux approches simultanément (bretelles et ceinture quoi!). Or la limite du nombre de réservations DHCP du routeur est atteinte alors il n'y a pas de choix possible il faut modifier les paramètres réseau de l'OPiZ.

    michel@domopiz:~$ sudo nmtui

    Dans le menu principal de NetworkManager TUI (TUI pour Text User Interface je suppose) on sélectionne Edit a connection puis on appuie sur <OK>.

    Puisque la connexion avec l'OPiZ était filaire (Ethernet), j'ai commencé en éditant la connexion Wi-Fi.

    On peut cacher (<Hide>) la section WI-FI puis montrer (<Show>) la section IPv4 CONFIGURATION.

    Il faut modifier la configuration IPv4 à <Manual> puis entrer l'adresse IP désirée. Ici j'ai entré 192.168.1.31/24. Le /24 correspond à un masque de réseau de 24 bits soit 255.255.255.0.

    J'ai fait la même chose pour la connexion par Ethernet sauf que l'adresse est fixée à 192.168.1.30/24. Les adresses IP statique ainsi fixées ne doivent pas être dans la plage d'adresses IP pouvent être attribuées par le serveur DHCP. Il faut aller sur le site Web du routeur pour définir cette plage. Enfin pour repartir le réseau j'utilise la commande suivante

    michel@domopiz:~$ sudo service network-manager restart

    Malheureusement, il semble que la connexion WiFi ne sera établie que si l'OPiZ est relié par câble Ethernet au réseau local. Toutefois, si l'on retourne la configuration IPv4 de eth0 à automatique alors il devient possible d'ouvrir une session ssh par WiFi sans présence d'une connexion Ethernet. Voilà qui est un peu déconcertant. C'est la première fois que j'utilise Network Manager alors il se peut très bien que j'ai fait une erreur. Les définitions des interfaces se trouvent dans le dossier /etc/NetworkManager/system-connections/. J'examinerai les fichiers qu'il contient et toute la question plus tard.

    Pour terminer, j'ai utilisé nmtui pour modifier le nom de l'hôte qui est dorénavant domopiz.

  15. Configuration du Orange Pi Zero
  16. Je n'ai pas beaucoup modifié la configuration de l'OPiZ puisque j'en suis qu'à une première utilisation. Je voulais tester la sortie vidéo composite alors il me fallait ajouter tv aux modules à installer au démarrage.

    michel@domopiz:~$ sudo nano /etc/modules
    #w1-sunxi #w1-gpio #w1-therm #sunxi-cir xradio_wlan g_serial xradio_wlan tv

    J'ai pu vérifier que la sortie vidéo de la carte d'extension fonctionne. Toutefois, il y a tellement de surbalayage qu'elle ne sera pratiquement pas utilisable à moins d'apporter des corrections. J'ai trouvé deux références sur le Web à ce sujet et si le besoin se fait sentir j'examinerai la question plus tard : PSA: Orange Pi Zero expansion board tv-out not working solution et Allwinner Composite Video Configuration Tool.

    Par défaut, les journaux sont des fichiers enregistrés sur la carte SD par systemd. Ce n'est peut-être pas le meilleur arrangement, car il y a une limite au nombre de lectures et d'écritures pouvant être effectuées sur une carte SD. Il est préférable d'écrire le journal en mémoire.

    Modifiez le fichier de configuration journald, en changeant trois lignes comme indiqué ci-après.

    pi@domopole:~ $ sudo nano /etc/systemd/journald.conf
    # This file is part of systemd. # [Journal] Storage=volatile Compress=yes RuntimeMaxUse=48M

    La source de cette astuce est le wiki de Domoticz. Il peut être préférable d'attendre avant de suivre ce conseil afin que les journaux soient persistants jusqu'à ce que tout soit stable.

  17. Installation de Domoticz
  18. Comme l'explique la page de téléchargement de Domoticz, un script d'une ligne installe le programme.

    michel@domopiz:~$ sudo curl -L install.domoticz.com | bash

    Il y a un peu plus à faire évidemment. Il faut répondre à quelques questions, mais les réponses par défaut sont acceptables :

    C'est la fin de l'installation :

    ::: Restarting services... ::: ::: Enabling domoticz.sh service to start on reboot... done. ::: ::: Starting domoticz.sh service... done. ::: done. ::: ::: Installation Complete! Configure your browser to use the Domoticz using: ::: 192.168.1.31:8080 ::: 192.168.1.31:433 michel@domopiz:/ $

    Démarrez un navigateur Web sur votre bureau et connectez-vous au site du serveur Domoticz sur le Raspberry Pi à l'adresse http://192.168.1.31:8080. Il n'y a pas grand-chose à voir; un écran noir pour l'essentiel, puisque rien n'est encore installé. Au moins cela confirme que le logiciel est bien installé.

  19. Paramétrage de Domoticz
  20. À cette étape, il faudrait définir certains paramètres de base du système. Au minimum, il faut spécifier l'emplacement (longitude et latitude). De plus, on devrait ajouter un mot de passe et ainsi de suite.

    Pour vérifier que l'OPiZ puisse être l'hôte du système de domotique qui est déjà installé sur un Raspberry Pi, j'ai procédé d'une autre façon. J'ai copié la base de données du serveur Domoticz du Raspberry Pi vers l'OPiZ. Cette opération se réalise en deux étapes: copier la base de données vers un ordinateur bureau puis copier cette base sur l'OPiZ.

    1. Ouvrir le serveur Web de Domoticz du Raspberry Pi avec un navigateur sur l'ordinateur de bureau (dans mon cas à l'adresse 192.168.1.22:8080).
    2. Cliquer sur l'onglet Réglages en haut et à droite de la fenêtre.
    3. Sélectionner Paramètres dans le menu déroulant.
    4. Cliquer sur l'onglet Sauvegarde/restauration
      écran domoticz 01
    5. Cliquer sur le bouton Sauvegarder la base de données et sauvegarder le fichier dans un dossier sur l'ordinateur de bureau.
    6. Ouvrir le serveur Web de Domoticz sur l'OPiZ (à l'adresse 192.168.1.31:8080) depuis le navigateur de l'ordinateur de bureau.

      écran domoticz 02

    7. Comme avant, cliquer sur l'onglet Réglages en haut et à droite de la fenêtre.
    8. Sélectionner Paramètres dans le menu déroulant.
    9. Cliquer sur l'onglet Sauvegarde/restauration.
    10. Cliquer sur Restaurer la base de données. La fenêtre suivante apparaît.

      écran domoticz 02

    11. Cliquer sur Parcourir... pour retrouver la base de données sauvegardée
    12. Cliquer sur Upload pour lancer le téléchargement de celle-ci. Comme indiqué sur l'écran, cette opération peut prendre un certain temps.

    Les commutateurs et autres dispositifs seront maintenant visibles. Toutefois si l'on clique sur une lampe pour l'allumer ou pour l'éteindre, rien ne se produira. La raison est simple, l'adresse du serveur MQTT n'est pas correcte. Voici comment corriger l'adresse.

    1. Cliquer sur Réglages en haut et à droite de la fenêtre.
    2. Sélectionner Matériel dans le menu déroulant.
    3. Cliquer sur la ligne MQTT dans le tableau supérieur.
    4. Remplacer localhost dans la boîte de saisie Adresse distante: avec l'adresse IP du serveur MQTT soit celle du Raspberry Pi: 192.168.1.22
    5. Cliquer sur le bouton Modifier directement sous le tableau supérieur.

    Maintenant, les lampes pourront être contrôlées avec ce serveur Domoticz.

    Voilà qui démontre que potentiellement ce logiciel de domotique serait utilisable sur un Orange Pi Zero.

  21. Installation d'un courtier MQTT
  22. Pour remplacer le Raspberry Pi comme hôte de mon système de domotique, j'ai aussi vérifié que l'on peut installer Mosquitto sur l'OPiZ.

    La marche à suivre est différente de celle utilisée avec le Raspberry Pi, car le système Linux sur l'OPiZ est Ubuntu et non Debian. Heureusement, c'est encore plus facile de faire l'installation sur ce nouvel ordinateur en suivant les instructions qu'on retrouve à Mosquitto org.

    michel@domopiz:~$ sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa More info: https://launchpad.net/~mosquitto-dev/+archive/ubuntu/mosquitto-ppa Press [ENTER] to continue or ctrl-c to cancel adding it Appuez sur la touche Entrée gpg: keyring `/tmp/tmpxse80m4u/secring.gpg' created gpg: keyring `/tmp/tmpxse80m4u/pubring.gpg' created gpg: requesting key 262C4500 from hkp server keyserver.ubuntu.com gpg: /tmp/tmpxse80m4u/trustdb.gpg: trustdb created gpg: key 262C4500: public key "Launchpad mosquitto" imported gpg: Total number processed: 1 gpg: imported: 1 (RSA: 1) OK michel@domopiz:~$ sudo apt-get update Get:1 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ubuntu xenial InRelease [23.8 kB] ... Reading package lists... Done michel@domopiz:~$ sudo apt-get install mosquitto Reading package lists... Done Building dependency tree ... After this operation, 1,893 kB of additional disk space will be used. Do you want to continue? [Y/n] y Get:1 http://ppa.launchpad.net/mosquitto-dev/mosquitto-ppa/ubuntu xenial/main armhf mosquitto armhf 1.4.14-0mosquitto1~xenial1 [124 kB] ... michel@domopiz:~$ sudo systemctl status mosqu* ● mosquitto.service - LSB: mosquitto MQTT v3.1 message broker Loaded: loaded (/etc/init.d/mosquitto; bad; vendor preset: enabled) Active: active (running) since Sat 2017-10-14 16:08:55 ADT; 1min 9s ago Docs: man:systemd-sysv-generator(8) CGroup: /system.slice/mosquitto.service └─11365 /usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf Oct 14 16:08:55 domopiz systemd[1]: Starting LSB: mosquitto MQTT v3.1 message broker... Oct 14 16:08:55 domopiz mosquitto[11359]: * Starting network daemon: mosquitto Oct 14 16:08:55 domopiz mosquitto[11359]: ...done. Oct 14 16:08:55 domopiz systemd[1]: Started LSB: mosquitto MQTT v3.1 message broker.

    On peut aussi installer les clients Mosquitto pour s'abonner à des sujets et pour publier des messages.

    michel@domopiz:~$ sudo apt-get install mosquitto-clients Reading package lists... Done ...

    Une fois cette installation complétée, on peut voir tous les messages reçus par le courtier.

    michel@domopiz:~$ mosquitto_sub -d -t "#" Client mosqsub|11704-domopiz sending CONNECT Client mosqsub|11704-domopiz received CONNACK Client mosqsub|11704-domopiz sending SUBSCRIBE (Mid: 1, Topic: #, QoS: 0) Client mosqsub|11704-domopiz received SUBACK Subscribed (mid: 1): 0

    On vérifie que le serveur MQTT fonctionne en ouvrant un terminal sur l'ordinateur de bureau et en publiant un message.

    michel@hp:~$ mosquitto_pub -h 192.168.1.31 -t "a_topic" -m "a_message"

    Voici ce qui est affiché dans le terminal abonné aux messages MQTT

    Client mosqsub|11704-domopiz received PUBLISH (d0, q0, r0, m0, 'a_topic', ... (9 bytes)) a_message
    La combinaison de touches CtrlC termine l'abonnement aux messages du courtier MQTT.

    On peut vérifier que Domoticz fonctionne avec le serveur MQTT sur l'OPiZ en remettant localhost comme adresse distante du matériel MQTT.

  23. Surchauffe du H2+
  24. Comme plusieurs, j'ai noté que la puce Allwinner H2+ semble fonctionner à haute température. La fiabilité et même la durée de vie de l'OPiZ pourraient être en jeu.

    michel@domopiz:~$ sudo armbianmonitor -m Stop monitoring using [ctrl]-[c] Time CPU load %cpu %sys %usr %nice %io %irq CPU 06:55:49: 1152MHz 0.01 1% 0% 0% 0% 0% 0% 59°C 06:55:54: 240MHz 0.01 1% 0% 0% 0% 0% 0% 59°C 06:56:00: 240MHz 0.01 1% 0% 0% 0% 0% 0% 59°C 06:56:05: 240MHz 0.00 1% 0% 0% 0% 0% 0% 60°C 06:56:10: 240MHz 0.00 1% 0% 0% 0% 0% 0% 60°C 06:56:15: 240MHz 0.00 1% 0% 0% 0% 0% 0% 59°C 06:56:21: 240MHz 0.00 1% 0% 0% 0% 0% 0% 59°C 06:56:26: 240MHz 0.00 1% 0% 0% 0% 0% 0% 60°C

    Comme on peut voir, la température du microprocesseur est d'environ 60°C alors qu'il ne fait pratiquement rien et qu'il roule à moins de 1/4 de sa cadence maximum. La température ambiante est d'environ 19°C, le nano-ordinateur n'est pas dans son boîtier et la carte d'extension n'est pas branchée.

    Ce phénomène de surchauffe est surtout associé à la plus récente version de la carte, version 1.4. Voici trois références à ce sujet : New OPi Zero (v1.4 PCB) - High temperature , OrangePi Zero high temperature? et New OPi Zero - Yet another high temperature issue... . Le premier lien est sur le forum de Orange Pi les deux autres sur le forum de Armbian. La page consacrée à l'OPiZ de Armbian contient un lien vers la dernière référence avec la mention suivante board revision 1.4 report false high CPU temperatures. Est-ce qu'il y a erreur lors de la lecture de la température ? Je peux appuyer le doigt sur la puce pendant plus de 15 secondes sans le brûler. Ce n'est pas un test très scientifique et en lisant les messages sur le forum, il n'est pas clair qu'il s'agit de faux positifs.

    On peut utiliser un utilitaire pour réduire la consommation de courant et, en principe, réduire la température.

    michel@domopiz:~$ sudo h3consumption Usage: h3consumption [-h/-H] [-p] [-g on|off] [-m max_cpufreq] [-c 1|2|3|4] [-d dram_freq] [-D dram_freq] [-u on|off] [-e on|off|fast] ############################################################################ This tool allows to adjust a few consumption relevant settings of your H3 device. Use the following switches -h|-H displays help or verbose help text -p print currently active settings -g on|off disables GPU/HDMI for headless use -m max_cpufreq adjusts maximum allowed cpu clockspeed (mhz) -c 1|2|3|4 activate only this count of CPU cores -d dram_freq adjusts dram clockspeed (408 - 624 mhz) -D dram_freq like -d but as low as 132 mhz possible (experimental!) -u on|off enables/disabled all USB ports -e on|off|fast enables/disables Ethernet, the fast switch forces 100 mbits/sec negotiation on gigabit devices -w on|off enables/disables Wi-Fi powermanagement when interface supports this and is controlled by network-manager ############################################################################

    Puisqu'il est presque certain que l'OPiZ sera utilisé comme serveur, il n'y a pas de conséquences à stopper le processeur graphique.

    michel@domopiz:~$ sudo h3consumption -g off Settings changed. Please reboot for changes to take effect and verify settings after the reboot using "h3consumption -p" michel@domopiz:~$ sudo reboot michel@domopiz:~$ sudo h3consumption -p Active settings: cpu 1200 mhz allowed, 1200 mhz possible, 4 cores active dram 408 mhz hdmi/gpu off usb ports active eth0 10Mb/s/Half, Link: no wlan0 Power Management:off ...

    Après une heure voici le résultat

    michel@domopiz:~$ sudo armbianmonitor -m Stop monitoring using [ctrl]-[c] Time CPU load %cpu %sys %usr %nice %io %irq CPU 09:08:44: 912MHz 0.00 0% 0% 0% 0% 0% 0% 57°C 09:08:49: 240MHz 0.00 0% 0% 0% 0% 0% 0% 58°C 09:08:55: 240MHz 0.00 0% 0% 0% 0% 0% 0% 58°C 09:09:00: 240MHz 0.00 0% 0% 0% 0% 0% 0% 57°C 09:09:05: 240MHz 0.00 0% 0% 0% 0% 0% 0% 58°C

    Difficile de dire qu'il y a une grande amélioration surtout que la charge de travail du microprocesseur semble plus faible. On peut réduire encore plus la consommation.

    michel@domopiz:~$ sudo h3consumption -g off -w on -u off -e off Settings changed. Please reboot for changes to take effect and verify settings after the reboot using "h3consumption -p" michel@domopiz:~$ sudo reboot Connection to 192.168.0.31 closed by remote host. Connection to 192.168.0.31 closed. michel@domopiz:~$ sudo h3consumption -p Active settings: cpu 1200 mhz allowed, 1200 mhz possible, 4 cores active dram 408 mhz hdmi/gpu off usb ports off wlan0 Power Management:on ...

    Voici les résultats de cette approche plus agressive qui stoppe le fonctionnement du processeur graphique, de la connexion Ethernet, de la connexion USB et gère l'alimentation de la connexion WiFi.

    michel@domopiz:~$ sudo armbianmonitor -m Stop monitoring using [ctrl]-[c] Time CPU load %cpu %sys %usr %nice %io %irq CPU 11:47:24: 1008MHz 0.00 0% 0% 0% 0% 0% 0% 54°C 11:47:29: 240MHz 0.00 0% 0% 0% 0% 0% 0% 54°C 11:47:34: 240MHz 0.00 0% 0% 0% 0% 0% 0% 53°C 11:47:40: 240MHz 0.00 0% 0% 0% 0% 0% 0% 54°C 11:47:45: 240MHz 0.00 0% 0% 0% 0% 0% 0% 54°C

  25. Observations
  26. Je demeure enthousiaste quant à ce petit ordinateur malgré quelques bémols. Je ne suis pas persuadé que température du micro-processeur constitue un véritablement problème. Toutefois, il pourrait y avoir surchauffe dans le petit boîtier. Si la carte d'extension est utilisée, il devient difficile de recourir à un dissipateur thermique d'une masse suffisante étant donné le peu d'espace entre les deux cartes.

    J'ai déjà mentionné les difficultés que j'ai eu avec le module WiFi XR819 de Allwinnner. Le module est nouveau, les pilotes pas nécessairement stables. Ma première impression est que la connexion WiFi n'est pas assez fiable pour un système domotique. Au minimum il faudrait prévoir un chien de garde qui reparte le module lorsque nécessaire.

    Je devrai aussi examiner d'autres systèmes d'exploitation. Entre autres, il y a la version Debian de Armbian déjà mentionné et une version épurée de Debian Jessie offerte par dietpi. Connaissant un peu mieux Debian à cause de Raspbian utilisé sur les Raspberry Pi, j'arriverai peut-être à faire fonctionner les connexions réseau de façon fiable.

    Au lieu de remplacer le Raspberry Pi, l'OPiZ pourrait être un complément. Une page m'intrigue. How to Setup an Orange Pi Zero DIY Smart Speaker with Google Assistant SDK J'ai hâte d'essayer de reproduire ce projet qui pourrait faire partie d'un système domotique.

    S'il s'avère que seule la connexion Ethernet est fiable, alors j'examinerai un autre projet: Pi-hole®: A black hole for Internet advertisements. D'après ce que j'ai vu, il est tout à fait possible d'installer ce bloqueur de publicité sur l'OPiZ.