vendredi 8 novembre 2019

installation de home assistant sur raspberry pi et disque dur usb

Apres avoir teste jeedom, j'essaye home assistant.

Bon, je veux booter sur disque dur USB et pas SD card. malheureusement le systeme standard hass.io ne supporte pas encore cela. le disque dur USB boot bien , mais hass.io ne le reconnait pas.

Donc il est possible d'installer hass.io mais sur raspbian, et comme raspbian boote bien, c'est ce que je fais.

1. allons chercher le dernier raspbian en version light:
https://www.raspberrypi.org/downloads/raspbian/

2. "gravure" sur le disque dur USB, ici j'ai utilise belenaEtcher sur Windows; mais j'ai aussi utilise directement "dd" sur Mac.
a la fin de la procedure j'active ssh en creant un fichier "ssh" sur la partition boot visible. (dans le meme repertoire racine ou on peut trouver config.txt)

3. branchement du raspberry pi. booçt. comme j'ai deja assigne une adresse IP fixe dans le serveur DHCP, je connais l'adresse locale, sinon il faut trouver cette adresse dans le serveur DHCP (par exemple de la box)

4. connection par ssh.
A noter que l'on pourrait aussi se connecteur par clavier ecran, puis faire la configuration part ce biais; mais moi je prefere ssh.

5. mise en place d'un hostname specifique, car j'ai plusieurs RPI: prenons "domotique"
hostname domotique
hostname>/etc/hostname
sed -Eie "s/^(127.0.1.1[ \t]+).*/\1$(hostname)/" /etc/hosts

6. plus ou moins suivre la procedure: https://github.com/home-assistant/hassio-installer :
apt-get install docker-ce bash jq curl avahi-daemon dbus
bon, a vrai dire presque tout est deja la, sauf docker.
Je suis donc la procedure: https://www.docker.com/blog/happy-pi-day-docker-raspberry-pi/
curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh
bon, revenons a l'installation de hassio:
curl -sL https://raw.githubusercontent.com/home-assistant/hassio-installer/master/hassio_install.sh | bash -s -- -m raspberrypi3
A noter: il est important de passer le parametre "-m" avec la bonne valeur, une de celles proposees dans la page d'installation. Pour ma part  j'ai eu un probleme que j'ai decrit ici:
https://community.home-assistant.io/t/145697 car je n'avais pas donne une bonne valeur la premiere fois.
cela installe le service de demarrage du container:
systemctl status hassio-supervisor
On peut suivre l'installation avec:
journalctl -f -u  hassio-supervisor
Ca y est ca marche, on se connecte sur: http://domotique.local:8123


jeudi 26 septembre 2019

Installation du "trio" knxd/linknx/knxweb2 sur debian (ubuntu, raspbian, etc...)


J'avais publié il y a quelques années un article sur cette installation.
Mon systeme était au point et a correctement fonctionné de nombreuses années. Il a meme survécu a des upgrades OS (kubuntu) et php, jusqu'a cette année ou le vieux PC (année 2002?) a rendu l'ame. Bon c'etait deja le deuxième de marque Dell, de recupération. Ca vaut pas le coup de réparer, puisque j'en ai d'autres... de recuperation aussi, mais plus recent.
Le disque dur fonctionne encore, donc c'est possible de récupérer les données.
Par contre, l'ancien systeme etait 32 bit, donc c'était l'occasion de passer en 64 bit, ou bien d'installer sur un raspberry pi.
Bon, j'ai essaye le script: https://github.com/linknx/install
MMmmm je n'aime pas trop les installations à la hussarde, sans package.
J'ai donc rédigé un script: https://github.com/laurent-martin/trio-build
Celui-ci crée un package debian pour chaque composant nécéssaire:
  • libpthsem
  • linknx
  • knxd
  • knxweb2
Une fois les packages disponibles, il suffit de les installer de façon standard:
dpkg -i ...
Enfin, il reste a configurer le systeme.



mercredi 23 janvier 2019

Mini écran OLED économique sur raspberry pi pour affichage de statut

Projet

Ajouter un mini affichage pour avoir un statut sur le Raspberry Pi de la domotique intégré sur rail DIN dans le tableau électrique.

Solution

Un petit écran OLED de 3,3cm de diagonale visible (1'3) pour de moins de 10€ utilisant le circuit SH1106.

Références

https://luma-oled.readthedocs.io Le pilote pour écran OLED
https://python-pillow.org La librairie graphique générique

Péripéties

Me voila donc parti sur banggood ou je prend un écran 0.96' un peu au hasard pour 5€67
0_96-Inch-4Pin-Blue-Yellow-IIC-I2C-OLED-Display-Module
Quelques semaines passent, voila l'écran. bon, c'est du I2C: VCC GND SCL SDA
Une petite soudure pour mettre un connecteur, un câble de connections. Recherche sur internet, une page sur la librairie Adafruit et quelques instructions, installation de quelques paquets raspbian i2c, activation du i2c sur le RPI. (voir ici). Branchement, execution:

pi@rpi3:~ $ i2cdetect -y 1

Hum, nada, aucun appareil i2c détecté par Linux (que des "--").

Inspection , hum... l'écran est cassé sur le haut.justement la ou il y a la puce. .
Le premier écran, reçu cassé


Bon, l'écran n'a pas supporté le voyage... Il a du arriver à pied par la Chine...

Amazon cette fois ci : https://www.amazon.fr/gp/product/B078J78R45

Je pars pour un 1.3' , 9€ cette fois ci, mais livraison le lendemain. Réception rapide, dans du carton solide, pas de dommage apparent cette fois ci. Branchement, exécution:
pi@rpi3:~ $ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
-> eureka, adresse 0x3C !!

Affichons quelque chose. Recherche internet: pas mal de pages sur SSD1306. J'essaye la librairie python Adafruit trouvée sur google.

Ah ... affichage ... Oh, pas lisible (Voir ici). Des frissons: quand même pas deux fois !

Petite recherche , en effet c'est ce qui arrive si on affiche avec un driver SSD1306 sur SH1106. De plus sur les commentaires amazon, des utilisateurs le mentionnent. C'est vrai que sur le paquet il est écrit: SH1106. Mea culpa. Ouf.

Ah, un peu moins de ressources, mais je tombe finalement sur la librairie Luma OLED (voir références).

EXCELLENT, ÇA MARCHE !

Autopsie

J'en profite donc pour faire une autopsie du premier écran. Le dispositif se présente sous la forme d'un circuit imprimé avec quelques CMS, une fiche I2C et un écran colle sur la circuit imprime par un double face et soude sur ce circuit par le biais d'un ruban de liaison. Le circuit ne sert donc vraiment qu'a fournir les quelques composants externes nécessaires (résistances, condensateur et un transistor) au composant SH1106 qui est intégré directement sur l'écran, a sa base.