Formation PUB420 : Système domotique DIY, 2020 Home Assistant

6.7 Le terminal HassOS


Cette fiche a été mise à jour pour Home Assistant core-2022.9.7.

En général, il n'est pas nécessaire d'accéder au terminal HassOS. Tout se fait via la page Web de votre Home Assistant ou via l'application mobile avec une des adresses données ici.

Cependant, plusieurs opérations intéressantes peuvent être réalisées dans le terminal HassOS, par exemple accéder au système de fichiers complet sur le Raspberry Pi ainsi qu'aux utilitaires fournis par le système d'exploitation.

▼Publicité Le texte se poursuit plus bas

Console Home Assistant vs Terminal HassOS

La console Home Assistant et le terminal HassOS sont deux environnements en ligne de commande qui vous permettent d'effectuer différentes opérations sur le Raspberry Pi et sur Home Assistant.

Attention : aucun code d'accès n'est demandé pour accéder à la console Home Assistant ou au terminal HassOS à partir d'un clavier et d'un écran branchés directement sur le Raspberry Pi.

Donc, quiconque a accès physique au Pi pourra contrôler le système!

Console Home Assistant

Lorsque vous branchez un écran au Raspberry Pi, vous accédez directement à la console Home Assistant.

On l'appelle aussi Home Assistant Command Line Interface ou Home Assistant CLI.

Elle se reconnaît à l'invite ha >.

Résultat à l'écran

Waiting for the Home Assistant CLI to be ready...
 _    _                                         _     _              _
| |  | |                          /\           (_)   | |            | |
| |__| | ___  _ __ ___   ___     /  \   ___ ___ _ ___| |_ __ _ _ __ | |_
|  __  |/ _ \| '_ \ _ \ / _ \   / /\ \ / __/ __| / __| __/ _\ | '_ \| __|
| |  | | (_) | | | | | | __ /  / ____ \\__ \__ \ \__ \ || (_| | | | | |_
|_|  |_|\___/|_| |_| |_|\___| /_/    \_\___/___/_|___/\__\__,_|_| |_|\__|

Welcome on Home Assistant command line.
Waiting for Supervisor to start up...
System information
  IPv4 Addresses for eth0:
  IPv4 Adresses for wlan0: 192.168.1.145/24
  IPV6 Adresses for wlan0: fe80:fde8:195c:eb0b:c18a/64

  OS Version:              Home Assistant OS 9.0
  Home Assistant Core:     2022.9.7

  Home Assistant URL:      http://homeassistant.local:8123
  Observer URL:            http://homeassistant.local:4357

ha >

Cette console vous donne accès à certaines commandes spécialisées pour Home Assistant.

Entrez la commande help pour avoir la liste des commandes disponibles.

help

Console Home Assistant vers terminal HassOS

Pour accéder au terminal HassOS à partir de la console Home Assistant, entrez la commande login.

Aucun code d'usager ni mot de passe ne vous sera demandé.

Résultat à l'écran

ha > login

#

Terminal HassOS

Si vous vous connectez au Pi via SSH, vous accédez directement au Terminal HassOS.

Il se reconnaît à l'invite #.

Résultat à l'écran

monnom@MacBook-Pro-de-MonNom ~ %ssh root@192.168.1.145 -p 22222
Welcome to Home Assistant OS.

Use `ha` to access the Home Assistant CLI.
#

Le terminal HassOS est en fait un terminal Linux.

Cependant, les commandes qui y sont disponibles sont passablement différentes de celles qui sont disponibles sur d'autres distributions Linux puisque HassOS est un système d'exploitation optimisé pour Home Assistant.

HassOS utilise l'interpréteur de commande /bin/ash.

Selon Wikipédia1 :

Almquist shell (aussi connu sous le nom de A Shell ou ash) est un interpréteur de commandes dérivé du Bourne shell du Système V Release 4 (SVR4), développé à l'origine par Kenneth Almquist. C'est un Shell Unix petit, rapide et compatible avec la norme POSIX, et c'est pourquoi il est très utilisé dans les systèmes d'exploitation embarqués.

Pour connaître la liste des commandes disponibles :

Terminal HassOS

ls /bin

Résultat à l'écran

# ls /bin
[                                    eject               mktemp             sleep
[[                                   env                 more               smemcap
arch                                 expr                mount              sort
argon2                               factor              mountpoint         split
ascii                                fallocate           mpris-proxy        sqfscat
ash                                  false               mpstat             sqfstar
awk                                  fatattr             mv                 ssh
base32                               fdflush             namei              stat
base64                               fgconsole          ndptool             stress-ng
basename                             fincore            netstat             strings
bash                                 find               nettle-hash         stty
bc                                   findmnt            nettle-lfib-stream  sum
blkdiscard                           flock              nettle-pbkdf2       svok
bluemoon                             fold               nice                sync
bluetoothctl                         free               nl                  systemctl
btattach                             fsync              nm-online           systemd-ask-password
bthelper                             fuser              nmcli               systemd-cat
btuart                               gapplication       nmeter              systemd-cgls
busctl                               gatttool           nohup               systemd-cgtop
cal                                  gdbus              nproc               systemd-creds
cat                                  getopt             nslookup            systemd-cryptenroll
cgclassify                           gio                nuke                systemd-delta
cgcreate                             gio-querymodules   od                  systemd-detect-virt
cgdelete                             grep               openvt              systemd-dissect
cgexec                               gresource          os-agent            systemd-escape
cgget                                groups             paste               systemd-id128
cgset                                gsettings          pcre2grep           systemd-inhibit
cgsnapshot                           ha                 pcre2test           systemd-machine-id-setup
chattr                               hciattach          pcregrep            systemd-mount
chgrp                                hciconfig          pcretest            systemd-notify
chmod                                hcidump            pgrep               systemd-nspawn
choom                                hcitool            pidof               systemd-path
chown                                head               ping                systemd-resolve
chrt                                 hex2hcd            ping6               systemd-run
chvt                                 hexdump            pkcs1-conv          systemd-socket-activate
ciptool                              hexedit            pkill               systemd-stdio-bridge
cksum                                hostid             pmap                systemd-tmpfiles
clear                                hostnamectl        printenv            systemd-tty-ask-password-agent
cmp                                  id                 printf              systemd-umount
col                                  ionice             prlimit             tac
colcrt                               iostat             ps                  tail
colrm                                ipcmk              pstree              tar
column                               ipcs               pwait               taskset
comm                                 iptables-xml       pwd                 tclsh
compile_et                           irqtop             pwdx                tee
containerd                           isosize            randstat            test
containerd-shim                      jimsh              rauc                time
containerd-shim-runc-v1              journalctl         rctest              timedatectl
containerd-shim-runc-v2              jq                 readlink            timeout
coredumpctl                          kbd_mode           realpath            tini
cp                                   kill               renice              tload
crc32                                killall            reset               top
ctr                                  kmod               resize              touch
curl                                 l2ping             resolvectl          tr
cut                                  l2test             resume              true
date                                 link               rev                 truncate
dbclient                             linux32            rfcomm              ts
dbus-binding-tool                    linux64            rm                  tty
dbus-broker                          ln                 rmdir               ttysize
dbus-broker-launch                   login              rngtest             udevadm
dbus-cleanup-sockets                 loginctl           runc                udisksctl
dbus-daemon                          logname            scp                 umount
dbus-launch                          look               script              uname
dbus-monitor                         ls                 scriptlive          uname26
dbus-run-session                     lsattr             scriptreplay        uniq
dbus-send                            lsblk              sdptool             unlink
dbus-test-tool                       lscgroup           sed                 unsquashfs
dbus-update-activation-environment   lscpu              seq                 uptime
dbus-uuidgen                         lsipc              setarch             usleep
dd                                   lsirq              setfattr            uudecode
deallocvt                            lslocks            setkeycodes         uuencode
df                                   lsns               setpriv             uuidgen
dirname                              lsof               setsid              uuidparse
dmesg                                lspci              sexp-conv           vi
docker                               lssubsys           sh                  vmstat
docker-init                          lsusb              sha1sum             w
docker-proxy                         mcookie            sha256sum           watch
dockerd                              md5sum             sha3sum             wc
dropbearconvert                      mk_cmds            sha512sum           whereis
dropbearkey                          mkdir              showkey             whoami
du                                   mkfifo             shred               xxd
dumpkmap                             mknod              shuf                yes
echo                                 mksquashfs         slabtop
#

Commande Home Assistant dans terminal HassOS

Si vous êtes dans le terminal HassOS et que vous désirez entrer une commande spécifique à Home Assistant, il est possible de le faire sans sortir du terminal HassOS.

Il suffit de faire précéder la commande par ha.

Terminal HassOS

ha network info

Le même résultat serait obtenu dans la console Home Assistant comme suit :

Console Home Assistant

netword info

Terminal HassOS vers console Home Assistant

Si vous souhaitez tout de même retourner à la console Home Assistant alors que vous travaillez directement sur le Raspberry Pi à l'aide d'un clavier et d'un écran, vous pouvez entrer cette commande :

Console Home Assistant

ha > exit

Notez que si vous êtes branchés via SSH, la commande exit mettra fin à la session SSH.

Source

1. « Almquist shell ». Wikipédia. https://fr.wikipedia.org/wiki/Almquist_shell

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre