Services et modules

De quoi on parle

Calaos OS ne contient pas seulement le serveur Calaos. Il embarque aussi une série de logiciels complémentaires, qui apportent chacun une fonction : parler à des équipements Zigbee, enregistrer l’historique de vos mesures, tracer des graphiques, piloter de l’éclairage DMX…

Chacun tourne isolé des autres, dans ce qu’on appelle un container. Concrètement, cela veut dire que :

  • un module qui plante n’entraîne pas le reste de votre installation ;
  • chacun se met à jour indépendamment ;
  • chacun range ses données dans son propre dossier.

Vous n’avez rien à installer : ils sont déjà là. Certains ne servent que si vous utilisez le matériel correspondant.

Ce qui est fourni

ServiceÀ quoi il sertDocumentation
MosquittoFait circuler les messages MQTT entre vos équipements et CalaosMQTT
Zigbee2MQTTFait le lien entre vos équipements Zigbee et CalaosZigbee
InfluxDBEnregistre l’historique de vos mesures : températures, consommations…—
GrafanaAffiche ces mesures sous forme de graphiques—
OLAPilote l’éclairage DMXDMX / OLA
hue2mqttFait le lien avec les ampoules Philips HueHue
EnvoyRécupère les données des onduleurs solaires EnphaseEnphase
HAProxyAiguille les connexions réseau entrantes vers le bon service—

Ils se gèrent comme les autres services

Le fait qu’ils tournent dans des containers ne change rien à leur utilisation. Chacun est piloté par le système au même titre que les autres services : vous les démarrez, les arrêtez et consultez leur état avec les mêmes commandes.

Connectez-vous au serveur en SSH (voir Accès SSH), puis utilisez systemctl comme pour n’importe quel service :

systemctl status zigbee2mqtt
systemctl restart zigbee2mqtt

Pour voir l’ensemble des services actifs, y compris ceux-ci :

systemctl list-units --type=service

Tout cela est détaillé sur la page Services.

Pour connaître les versions installées et savoir si des mises à jour existent :

calaos-os list

Mettre à jour

Les services complémentaires se mettent à jour en même temps que le reste du système :

calaos-os upgrade

Voir Mise à jour pour la procédure complète.

Pour ne mettre à jour qu’un service précis, sans toucher au reste :

calaos-os upgrade NOM_DU_SERVICE

Où sont rangées vos données

Chaque service stocke ses données dans son propre sous-dossier de /mnt/calaos :

/mnt/calaos/
├── config/          réglages de Calaos
├── influxdb/        historique de vos mesures
├── grafana/         graphiques et tableaux de bord
├── mosquitto/       données MQTT
├── zigbee2mqtt/     équipements Zigbee appairés
├── ola/             configuration DMX
├── hue2mqtt/        configuration Hue
├── envoy/           configuration Enphase
├── haproxy/         configuration réseau
└── xorg.conf.d/     réglages d'affichage

Sauvegarder ce dossier, c’est sauvegarder l’ensemble : voir Sauvegarder sa configuration.

Le dossier zigbee2mqtt mérite une attention particulière : il contient la liste de vos équipements Zigbee appairés. Le perdre vous obligerait à tout réappairer un par un.

Quand un service ne fonctionne plus

Consultez d’abord son état et ses journaux, qui indiquent presque toujours la cause :

systemctl status NOM_DU_SERVICE
journalctl -u NOM_DU_SERVICE

Ces commandes fonctionnent pour ces services comme pour tous les autres.

Voir aussi Journaux et Services.

Pour aller plus loin

Les services s’exécutent avec Podman, une alternative à Docker qui n’a pas besoin de service central pour fonctionner.

Chaque container est décrit par une unité systemd, ce qui explique qu’ils se pilotent tous avec systemctl : pour le système, un container est un service comme un autre.

C’est aussi pourquoi journalctl voit les journaux de tous les services, containers compris : inutile de passer par Podman pour les lire.

Si vous voulez regarder les choses depuis l’angle des containers plutôt que des services, Podman offre ses propres commandes :

podman ps                   # containers en cours d'exécution
podman images               # images disponibles localement

Elles donnent une vue complémentaire, utile pour du diagnostic fin, mais ne remplacent ni systemctl pour démarrer et arrêter un service, ni journalctl pour consulter ses journaux.

Les images des services sont décrites par des fichiers .source rangés dans /usr/share/calaos/. Lors de l’installation, elles sont exportées vers un cache local, dans /var/lib/cache/containers : c’est ce qui permet à votre serveur de démarrer une première fois sans accès à Internet.