Aller au contenu

Paramètres communs à tous les agents

Cette page recense les paramètres reconnus par toutes les classes d'agent. Les paramètres spécifiques à une technologie sont décrits dans le catalogue des agents.

Rappel : la précédence effective est ARGV > FILE > ENV > défaut. Voir Configuration et précédence.


Identité de l'agent

Clé JSON Variable d'environnement Option Type Défaut Obligatoire
agent_tech_id ABLS_AGENT_TECH_ID --agent-tech-id chaîne — oui
server_uuid ABLS_SERVER_UUID --server-uuid chaîne généré non

agent_classe n'est pas configurable : elle est fixée par le binaire lui-même (abls-agent-modbus est toujours de classe modbus).

Choisir un agent_tech_id

Utilisez un nom parlant, stable et sans espace : MODBUS_CHAUFFERIE, AUDIO_SALON, GPIOD_PORTAIL. Il apparaîtra dans le nom du service systemd, dans le nom du fichier de configuration, dans les topics MQTT et dans la Console. Le renommer implique de refaire l'enrôlement.


Raccordement au domaine

Clé JSON Variable d'environnement Option Type Défaut Obligatoire
domain_uuid ABLS_DOMAIN_UUID --domain-uuid chaîne — oui (hors standalone)
domain_secret ABLS_DOMAIN_SECRET --domain-secret chaîne — oui (hors standalone)
api_url ABLS_API_URL --api-url chaîne — oui (hors standalone)

Confidentialité du domain_secret

Le domain_secret permet à n'importe quel processus de s'authentifier auprès de l'API au nom de votre domaine. Ne le communiquez jamais, ne le versionnez jamais, ne le passez pas en ligne de commande sur une machine partagée (il serait visible dans ps).

Préférez, dans ce cas, le poser dans le fichier de configuration en mode 0640.


Fonctionnement du moteur

Clé JSON Variable d'environnement Option Type Défaut Description
tps ABLS_TPS --tps entier 50 Tours par seconde de la boucle principale
dry_run ABLS_DRY_RUN --dry-run booléen false Simule les I/O sans les écrire réellement
log_level ABLS_LOG_LEVEL — entier 6 (LOG_INFO) Verbosité syslog, de 0 à 7
config_file ABLS_CONFIG_FILE — chaîne /etc/abls/abls-agent.conf Fichier de configuration principal

dry_run en mise en service

--dry-run est précieux lors du premier démarrage sur une installation réelle : l'agent lit les entrées et publie leur état, mais n'actionne aucune sortie. Vous pouvez valider le mapping sans risque avant de basculer en mode réel.

log_level peut être repris par l'API

La valeur locale s'applique au démarrage, mais l'API renvoie sa propre valeur de log_level lors de l'enrôlement, et peut la modifier à chaud via le topic MQTT AGENT/<tech_id>/LOG. Voir journaux.

Les niveaux suivent la convention syslog :

Valeur Niveau Usage
0 LOG_EMERG Système inutilisable
1 LOG_ALERT Intervention immédiate requise
2 LOG_CRIT Erreur critique, arrêt de l'agent
3 LOG_ERR Erreur
4 LOG_WARNING Avertissement
5 LOG_NOTICE Événement notable (démarrage, connexion)
6 LOG_INFO Fonctionnement normal détaillé — défaut
7 LOG_DEBUG Mise au point, très verbeux

MQTT et TLS

Clé JSON Variable d'environnement Option Type Défaut Description
mqtt_over_ssl ABLS_MQTT_OVER_SSL — booléen fourni par l'API Chiffre la liaison MQTT vers l'API
mqtt_ca_file ABLS_MQTT_CA_FILE — chaîne "" Fichier PEM du CA validant le certificat du broker
mqtt_ca_path ABLS_MQTT_CA_PATH — chaîne "" Répertoire de certificats CA

Les paramètres mqtt_hostname, mqtt_port, mqtt_password et mqtt_qos ne sont pas à définir localement : ils sont fournis par l'API lors de l'enrôlement.

Détection automatique du CA système

Si mqtt_ca_file et mqtt_ca_path sont tous deux vides, l'agent cherche automatiquement le magasin de certificats de la distribution, dans cet ordre :

Fichiers CA

  • /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem (Fedora / RHEL)
  • /etc/ssl/certs/ca-certificates.crt (Debian / Raspberry Pi OS)
  • /etc/ssl/certs/ca-bundle.crt

Répertoires CA

  • /etc/pki/tls/certs (Fedora / RHEL)
  • /etc/ssl/certs (Debian / Raspberry Pi OS)

Si aucun n'est trouvé alors que TLS est actif, le démarrage échoue.

Une autorité de certification privée se déclare ainsi :

{
  "mqtt_over_ssl": true,
  "mqtt_ca_file": "/etc/abls/ca-interne.pem"
}

Mode standalone

Clé JSON Variable d'environnement Option Type Défaut Description
standalone ABLS_STANDALONE --standalone booléen false Désactive tout dialogue avec l'API
master_hostname ABLS_MASTER_HOSTNAME --master-hostname chaîne fourni par l'API Broker MQTT local

Voir Mode standalone.


Paramètres de service

Clé JSON Option Description
— --save Écrit la configuration résolue puis quitte
— --help Affiche l'aide générée et quitte

Aide-mémoire

# Quelle configuration l'agent a-t-il réellement retenue ?
sudo journalctl -u abls-agent-modbus@MODBUS_CHAUFFERIE.service | grep local_config

# Quelles options accepte cette classe d'agent ?
abls-agent-modbus --help

# Des variables ABLS_ traînent-elles dans mon shell ?
env | grep ^ABLS_