Problème configuration MQTTIO et carte Piface 2

Bonjour,

Je suis en cours d’installation de ma box domotique sur un RPI4+.
J’ai installé avec succès MQTT Broker et Zigbee2MQTT.
L’étape suivante est d’installer ma carte d’entrée/sortie Piface 2 et pour cela, j’ai installé le module complémentaire MQTTIO permettant de piloter cette carte.

Je suis débutant complet et je ne sais pas comment créer le fichier de configuration de MQTTIO !
J’ai vu que dans la configuration, une seule ligne existe :
configuration_file: /config/mqtt-io/config.yml

Et dans les logs :
[20:20:23] FATAL: Seems like the configured configuration file does
[20:20:23] FATAL: not exists:
[20:20:23] FATAL:
[20:20:23] FATAL: /config/mqtt-io/config.yml
[20:20:23] FATAL:
[20:20:23] FATAL: Please check the add-on configuration, or create the
[20:20:23] FATAL: configuration file. More information about the
[20:20:23] FATAL: configuration file format see:
[20:20:23] FATAL:
[20:20:23] FATAL: https://mqtt-io.app
[20:20:23] FATAL:
[20:20:23] INFO: Service MQTT IO exited with code 1 (by signal 0)

Forcément, sans fichier de config…

Ma config :

## System Information

version | core-2025.3.3
-- | --
installation_type | Home Assistant OS
dev | false
hassio | true
docker | true
user | root
virtualenv | false
python_version | 3.13.2
os_name | Linux
os_version | 6.6.62-haos-raspi
arch | aarch64
timezone | Europe/Paris
config_dir | /config

<details><summary>Home Assistant Cloud</summary>

logged_in | false
-- | --
can_reach_cert_server | ok
can_reach_cloud_auth | ok
can_reach_cloud | ok

</details>

<details><summary>Home Assistant Supervisor</summary>

host_os | Home Assistant OS 14.2
-- | --
update_channel | stable
supervisor_version | supervisor-2025.03.2
agent_version | 1.6.0
docker_version | 27.2.0
disk_total | 219.4 GB
disk_used | 4.4 GB
healthy | true
supported | true
host_connectivity | true
supervisor_connectivity | true
ntp_synchronized | true
virtualization | 
board | rpi4-64
supervisor_api | ok
version_api | ok
installed_addons | Mosquitto broker (6.5.0), Zigbee2MQTT (2.1.3-1), MQTT IO (0.4.0)

</details>

<details><summary>Dashboards</summary>

dashboards | 1
-- | --
resources | 0
mode | auto-gen

</details>

<details><summary>Network Configuration</summary>

adapters | lo (disabled), end0 (enabled, default, auto), docker0 (disabled), hassio (disabled), vethf46dcc4 (disabled), vethd73a0fc (disabled), vethc0735f4 (disabled), veth37b0929 (disabled), veth5fb8cbd (disabled), veth199582c (disabled), veth7bee15c (disabled), veth686e67d (disabled)
-- | --
ipv4_addresses | lo (127.0.0.1/8), end0 (192.168.1.22/24), docker0 (172.30.232.1/23), hassio (172.30.32.1/23), vethf46dcc4 (), vethd73a0fc (), vethc0735f4 (), veth37b0929 (), veth5fb8cbd (), veth199582c (), veth7bee15c (), veth686e67d ()
ipv6_addresses | lo (::1/128), end0 (2a01:e0a:2c3:db40:7736:f8c0:717e:1214/64, fe80::fbec:2153:48d6:bcee/64), docker0 (fe80::42:9aff:fe19:162d/64), hassio (fe80::42:9aff:fea6:ed3a/64), vethf46dcc4 (fe80::c0fa:eff:fe6e:59b6/64), vethd73a0fc (fe80::c8b1:89ff:fe98:e563/64), vethc0735f4 (fe80::907a:f5ff:febe:f334/64), veth37b0929 (fe80::93:1fff:fe3d:1f38/64), veth5fb8cbd (fe80::24d0:bdff:fe37:be7/64), veth199582c (fe80::e841:bbff:fe7e:cda4/64), veth7bee15c (fe80::c4d8:7bff:feaa:525a/64), veth686e67d (fe80::30de:52ff:fe22:ae4/64)
announce_addresses | 192.168.1.22, 2a01:e0a:2c3:db40:7736:f8c0:717e:1214, fe80::fbec:2153:48d6:bcee

</details>

<details><summary>Recorder</summary>

oldest_recorder_run | 1 mars 2025 à 14:16
-- | --
current_recorder_run | 14 mars 2025 à 20:27
estimated_db_size | 0.82 MiB
database_engine | sqlite
database_version | 3.48.0

D’où ma question :
Comment créer ce fichier de config ou existe-il un menu découverte de périphérique qui permettrait de trouver ma carte Piface 2 et configurerait MQTTIO ?

Merci d’avance !

Pascal

Bonjour,

J’ai installé File editor qui m’a permis de créer le fichier de config de mqttio.
Au démarrage du système, le superviseur remonte ce message :

Le module complémentaire MQTT IO est configuré pour démarrer au démarrage de l’hôte mais il n’a pas pu démarrer. Cela se produit généralement lorsque la configuration est incorrecte ou que le même port est utilisé dans plusieurs modules complémentaires. Vérifiez la configuration ainsi que les journaux de MQTT IO et du Supervisor.

Donc le fichier de config est bien trouvé car celui-ci comporte les infos de connexion à mqtt.
Le journal de mosquitto broker remonte la connexion de zigbee2mqtt (qui fonctionne sans problème) et voit la tentative de connexion de mqttio.

2025-03-16 11:01:30: Opening websockets listen socket on port 1884.

2025-03-16 11:01:30: mosquitto version 2.0.20 running

2025-03-16 11:01:30: New connection from ::1:41474 on port 1883.

2025-03-16 11:01:30: Client <unknown> disconnected due to protocol error.

[11:01:31] INFO: Successfully send discovery information to Home Assistant.

[11:01:32] INFO: Successfully send service information to the Supervisor.

2025-03-16 11:02:05: New connection from 172.30.33.1:54172 on port 1883.

2025-03-16 11:02:05: New client connected from 172.30.33.1:54172 as mqttjs_b6083a66 (p2, c1, k60, u'mqtt_admin').

2025-03-16 11:04:25: New connection from 172.30.32.2:38580 on port 1883.

2025-03-16 11:04:25: Client <unknown> closed its connection.

2025-03-16 11:06:25: New connection from 172.30.32.2:40404 on port 1883.

2025-03-16 11:06:25: Client <unknown> closed its connection.

Je pense que le problème vient de l’utilisation du même port 1883 par les deux add-ons.
Question : Comment configurer mosquitto broker pour qu’il écoute sur un deuxième port ?

Merci pour vos retours,

Pascal

Bonjour,

J’alimente ce fil car apparemment, peu de spécialiste de la carte Piface2 ici !
Bref, j’avance.
J’ai découvert que le PI4 n’avait pas les bus I2C et SPI activés par défaut.
Or, ces bus me sont indispensables pour la carte horloge DS3231 (I2C) et la Piface2 (SPI).
J’ai donc installé Pi Config Wizard et activé avec succès ces bus sur mon RPI.

Cela ne règle pas encore mon problème de non-démarrage de MQTT-IO mais cela permettra à la carte Piface de discuter avec le Pi.

Si vous avez des idées sur mon pb de connexion de MQTT-IO, je suis preneur, sachant qu’au final et si j’arrive à faire fonctionner cette carte, je ferais un tuto pour aider les suivants.

Bonjour,

Je suis toujours bloqué sur mon fichier de configuration.
Quand je crée un fichier manuellement et le stocke dans le Pi et que j’indique le chemin d’accès à MQTT-IO, l’add-on ne le charge pas.
Quand je réinstalle MQTT-IO et que je tente de mettre à jour le fichier de configuration directement depuis l’éditeur du module, celui-ci accepte quelques lignes puis refuse d’enregistrer.
Et j’ai toujours le même message :

[17:56:22] FATAL:

[17:56:22] FATAL: Seems like the configured configuration file does

[17:56:22] FATAL: not exists:

[17:56:22] FATAL:

[17:56:22] FATAL: /config/mqtt-io/config.yml

[17:56:22] FATAL:

[17:56:22] FATAL: Please check the add-on configuration, or create the

[17:56:22] FATAL: configuration file. More information about the

[17:56:22] FATAL: configuration file format see:

[17:56:22] FATAL:

[17:56:22] FATAL: https://mqtt-io.app

[17:56:22] FATAL:

[17:56:22] INFO: Service MQTT IO exited with code 1 (by signal 0)

Cela remet fortement en cause mon projet de domotique puisqu’il m’est impossible de manager ma carte Piface. Bref, c’est la cata…

Bonjour,

D’après ce lien, j’ai compris que le problème ne vient pas de MQTT-IO mais de Home Assistant…

Je cherche où s’installe l’add-on MQTT-IO pour y mettre le fichier de config mais je ne trouve pas son répertoire d’installation.
Une idée ?

Bonjour,

J’ai appris que les add-ons étaient placés dans des images docker.
En lançant la commande « docker ps », j’obtiens ce résultat mais mqtt-io ne s’y trouve pas !

Et pourtant l’add-on peut se manipuler dans HA !
Plus j’avance, plus cela se brouille…

Bonjour,

Je ne sais pas si le sujet passionne grand monde, n’ayant pas de retour de ma prose…
Néanmoins, je continue à le mettre à jour.
J’ai progressé car l’add-on arrive maintenant à accéder à son fichier de configuration.
En fait, j’ai créé un fichier de configuration dans le répertoire /config de HA, qui est en fait affiché comme /homeassistant… En installant visual studio code, cet add-on me remonte le bon répertoire.
L’add-on charge le fichier config, comme le montre le journal ci-dessous.
Il plante ensuite car le fichier config comporte des erreurs mais l’essentiel est là, je n’ai plus l’erreur de fichier absent !

s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service mqtt-io: starting
s6-rc: info: service mqtt-io successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
[23:37:32] INFO: Starting MQTT IO...
Config did not validate:
digital_inputs:
- must be of list type
gpio_modules:
- must be of list type
mqtt:
- base_topic:
- unknown field
host:
- required field
server:
- unknown field
[23:37:36] INFO: Service MQTT IO exited with code 1 (by signal 0)

Bonjour,

J’ai progressé.
MQTT-IO se lance et se connecte au broker MQTT.
Après configuration correcte du fichier de config de MQTT-IO, en déclarant les entrées et sorties de la carte, j’obtiens un crash de l’application.

Motif : La carte Piface2 n’est pas détectée. J’ai bien sûr activé le SPI dans le RPI. Par contre, je ne sais pas si le GPIO est activé sur le RPI ou s’il est activé d’office.

Voici le log du crash, montrant que MQTT-IO se lance, sollicite les programmes pifacecommon et pifacedigitalio que j’avais préalablement installés sur le PI.


-----------------------------------------------------------

Add-on: MQTT IO

Expose GPIO modules and digital sensors via MQTT for remote control and monitoring.

-----------------------------------------------------------

Add-on version: 0.4.0

You are running the latest version of this add-on.

System: Home Assistant OS 15.0 (aarch64 / raspberrypi4-64)

Home Assistant Core: 2025.3.3

Home Assistant Supervisor: 2025.03.3

-----------------------------------------------------------

Please, share the above information when looking for help

or support in, e.g., GitHub, forums or the Discord chat.

-----------------------------------------------------------

s6-rc: info: service base-addon-banner successfully started

s6-rc: info: service fix-attrs: starting

s6-rc: info: service base-addon-log-level: starting

s6-rc: info: service fix-attrs successfully started

Log level is set to INFO

s6-rc: info: service base-addon-log-level successfully started

s6-rc: info: service legacy-cont-init: starting

s6-rc: info: service legacy-cont-init successfully started

s6-rc: info: service mqtt-io: starting

s6-rc: info: service mqtt-io successfully started

s6-rc: info: service legacy-services: starting

s6-rc: info: service legacy-services successfully started

[20:46:20] INFO: Starting MQTT IO...

2025-03-26 20:46:25 mqtt_io.__main__ [ERROR] MqttIo crashed!

Traceback (most recent call last):

File "/usr/lib/python3.11/site-packages/mqtt_io/__main__.py", line 107, in main

mqtt_gpio.run()

File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 1269, in run
    self._init_gpio_modules()
  File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 244, in _init_gpio_modules
    self.gpio_modules[gpio_config["name"]] = _init_module(
                                             ^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 128, in _init_module
    return module_class(module_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mqtt_io/modules/gpio/__init__.py", line 106, in __init__
    self.setup_module()
  File "/usr/lib/python3.11/site-packages/mqtt_io/modules/gpio/piface2.py", line 22, in setup_module
    pfdio.init()
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 166, in init
    raise failed_boards[0]
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 159, in init
    _pifacedigitals[hardware_addr] = PiFaceDigital(hardware_addr,
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 82, in __init__
    self.init_board()
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 104, in init_board
    raise NoPiFaceDigitalDetectedError(
pifacedigitalio.core.NoPiFaceDigitalDetectedError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/lib/python3.11/site-packages/mqtt_io/__main__.py", line 115, in <module>
    main()
  File "/usr/lib/python3.11/site-packages/mqtt_io/__main__.py", line 107, in main
    mqtt_gpio.run()
  File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 1269, in run
    self._init_gpio_modules()
  File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 244, in _init_gpio_modules
    self.gpio_modules[gpio_config["name"]] = _init_module(
                                             ^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mqtt_io/server.py", line 128, in _init_module
    return module_class(module_config)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/mqtt_io/modules/gpio/__init__.py", line 106, in __init__
    self.setup_module()
  File "/usr/lib/python3.11/site-packages/mqtt_io/modules/gpio/piface2.py", line 22, in setup_module
    pfdio.init()
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 166, in init
    raise failed_boards[0]
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 159, in init
    _pifacedigitals[hardware_addr] = PiFaceDigital(hardware_addr,
                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 82, in __init__
    self.init_board()
  File "/usr/lib/python3.11/site-packages/pifacedigitalio/core.py", line 104, in init_board
    raise NoPiFaceDigitalDetectedError(
pifacedigitalio.core.NoPiFaceDigitalDetectedError: No PiFace Digital board detected (hardware_addr=0, bus=0, chip_select=0).
[20:46:25] INFO: Service MQTT IO exited with code 1 (by signal 0)

Si d’aventure un spécialiste a une idée pour débloquer la situation ?
Merci d’avance.

Hello,

juste pour la motiv étrange de voir du python 3.11 dans le log il me semble qu’on est en 3.13 actuellement non?

cdt

Bonjour,

Quand je demande la version Python via SSH, j’obtiens 3.12.
Quand je parcours les fichiers avec File Editor, je vois Python 3.11.
Et quand je cherche avec SSH les fichiers pifacecommon, ils sont dans le répertoire Python 3.12 inaccessible à File Editor.
Je ne pense pas que le problème vienne de là.
Dans mon fichier de config de MQTT-IO, j’ai déclaré les pins de la carte Piface et certaines pins sont communes entre les entrées digitales et les sorties digitales. A mon avis, ce n’est pas bon, il faut que je trouve les bonnes pins devant être adressées par le soft.
Cela m’indique aussi que la carte Piface n’est pas détectée. Cela peut venir de là.
La bonne nouvelle, c’est que je progresse puisque MQTT-IO se lance, se connecte au broker MQTT. C’est après que cela se gâte.
Dommage qu’il n’y ait pas ici des membres ayant eu l’expérience de la carte Piface.
Pour ma part, je débute et ce n’est pas facile. Mais au moins, c’est formateur.

Re,

Tu peux me confirmer que c’est celle du bas?

et me donner l’intégralité de la procédure en l’état, si j’ai un moment je jetterai un oeil ( ça sera pas tout de suite )

cdt

Bonjour, merci pour ton retour.
Oui, il s’agit bien de celle du bas, la Piface2.
Voici ce que j’ai fait ou installé sur le RPI 4B+ sur lequel tourne HA :

Activation des bus I2C et SPI, depuis HA en utilisant Pi Config Wizard
A noter que je viens de visualiser mon fichier config.txt et je constate que le GPIO ne serait pas activé ?
Je ne sais pas s’il faut le faire.

# Uncomment this to enable GPIO support for RPI-RF-MOD/HM-MOD-RPI-PCB
#enable_uart=1
#dtparam=i2c_arm=on
#dtoverlay=miniuart-bt
#dtoverlay=rpi-rf-mod

J’ai installé les pré-requis pour mqtt-io : pifacecommon et pifacedigitalio.
Au début, mqtt-io ne se connectait pas au broker.
Mon fichier de config mqtt-io était mal configuré j’ai réussi à le mettre en forme.
Faut-il te diffuser mon fichier config ?

A noter que j’avais modifié, dans la config, les numéros de pin pour les entrées/sorties en me basant sur le schéma de la carte Piface, sans succès. J’en conclus que pifacedigitalio s’occupe de cela, mais c’est une supputation.

En tout cas, je te remercie de t’intéresser à mon problème.
Cdlt,

re,

j’avoue que j’aurai pas tenté le piface sur HA directement, éventuellement sur un pi dédié remontant en mqtt dans HA, ça serait plus simple. Pour ça que j’ai suivi, vu que j’en ai une en stock je voulais l’intégrer comme ça mais on est vite limité et j’ai opté pour une autre solution sans trop creuser piface. mais je reste sur le principe pi distant remontant en mqtt dans HA.

Au final c’est pour faire quoi?

cdt

Bonsoir,

Je souhaite utiliser les entrées du piface pour monitorer l’état de mon alarme et de mon portail. Les sorties étant utilisées pour commander mes volets électriques, le portail et l’entrée marche/arrêt de l’alarme.
Butant sur ce problème de carte piface, j’ai résolu provisoirement la commande de l’alarme et du portail via des commutateurs Zigbee et cela fonctionne parfaitement.
Je manage également la filtration de ma piscine avec du Zigbee, grâce au blueprint du forum.
Mais bon, je suis un aficionados du filaire et j’aimerais quand même aboutir !
Ayant un autre Raspberry 3B+ en stock et, pour le coup, parfaitement adapté à la piface2 sans y mettre un réhausseur, la solution Pi distant + Piface2 + MQTT me séduit aussi.
J’ai pensé aussi à virer la piface et interfacer directement les ports GPIO en entrées/sorties.
J’ai déjà une carte relais utilisable directement sur le GPIO.
Que me conseilles-tu ?

Cdlt,

re,

Ouais je suis revenu du chgt de pile tous azimut avec une tétraflopée de matériel…

problèmes principaux que je vois:
longueur de câbles ( l’ethernet pose pas trop de soucis sur 100m )
impossible d’attaquer une partie puissance directement

pour le reste faudra creuser je n’ai en prod pour le moment que les contacts filaires d’ouvertures et ça fonctionne très bien, j’ai eu 1 seul faux positif la semaine dernière sur cette période, mais j’ai bricolé pas loin du pi, j’ai dû touche qq chose

cdt

Hello,

Mon alarme filaire 4 zones date de 1992 et les contacts d’ouverture fonctionnent sans problème depuis cette date…
L’année dernière, j’ai changé les volumétriques IR filaires aussi, car j’avais eu un déclenchement intempestif.
Mes volets sont commandés par une centrale analogique de ma conception, basée sur des NE555. Chaque volet possède deux poussoirs Mosaïc, un pour la montée et l’autre pour la descente, raccordés à la centrale en câble RJ45 blindé. Les liaisons les plus longues font 18 m. La montée et la descente peut se faire en manuel ou automatique, via une discrimination par le temps.
Sur la centrale, j’ai 3 zones pour la montée et 1 zone pour la descente et chaque volet peut être affecté à chaque zone via des dip switch.
Tout fonctionne parfaitement depuis 2008.

Le câble ethernet blindé fonctionne très bien en 12v, par question évidemment d’attaquer des bobines 230v mais des contacteurs à bobine 12v sont dispos sur le marché. La section est largement capable de passer les 50 à 100 mA demandés par les bobines. De plus, avec le câble torsadé blindé, on est très résistant aux perturbations induites.

Je vais explorer la voie du Pi + Piface2 séparés de HA.
Zigbee, c’est facile à mettre en œuvre mais je ne considère pas cela comme la cible. Le seul périphérique Zigbee à piles chez moi est la sonde de température piscine. Je découvre cet univers, tout est nouveau pour moi.
A suivre !
Cdlt,

Bonjour,

J’ai installé un RPI 3B+ avec ma carte Piface2.
Après avoir levé les difficultés pour installer pifacecommon, pifacedigitalio et pifaceio, j’ai pu tester ma carte Piface via des commandes Python, en initialisant la carte Piface puis en tapant les commandes adéquates pour actionner les sorties de la carte et lire les entrées.

Cela fonctionne parfaitement. J’ai installé aussi MQTT-IO sur ce PI mais je patine un peu pour la suite. Mais bon, ce n’est pas l’objet de ma question de ce jour.

Je me suis dit qu’en lançant un interpréteur Python dans le terminal de HA, j’allais pouvoir initialiser ma Piface et la commander en direct via des instructions Python.

Cela ne fonctionne pas car les modules Piface ne sont pas trouvés.
Quand je tape « import pifaceio » sous Python, j’ai une erreur :
ModuleNotFoundError: No module named 'pifaceio'

Alors que le module pifaceio est bien installé sur mon système.

Existe-t-il dans home assistant un endroit ou les modules python sont déclarés ?
J’ai lu que HA listait les modules dans le répertoire custom_components. Faut-il que j’y place les fichiers piface ?

Merci pour votre retour !

Bonjour
Si j’ai bien compris le piface est sur un 2ieme Pi.

Tu ne pourras pas le piloter de HA en python.

Par contre tu pourrais faire tourner un script Python sur le Pi du Piface et créer automatiquement des devices dans HA pour le piloter en utilisant le protocol MQTT discovery de HA.
Ça demande un peu de dev. quand même.

Si tu connais Python, je peux donner un exemple avec le MQTT Discovery

Bonjour,

Merci pour ton retour.
Oui, j’ai mis la carte piface sur un second Pi, sans HA puisque je n’arrive pas à la faire reconnaître sur le Pi qui supporte HA.

J’avais dans l’idée de faire tourner MQTT-IO sur le Pi qui possède le piface et renvoyer les infos vers le Pi qui fait tourner HA.
Je débute et je ne connais pas Python ou si peu et je suis preneur des conseils et exemples !

Voici un exemple de topic à envoyer dans le protocole MQTT Discovery pour créer un input dans HA correspondant à l’input0 de la Piface:

homeassistant/binary_sensor/picoface/input0/config

{
  "device": {
    "identifiers": [
      "picoface"
    ],
    "manufacturer": "PiFace",
    "name": "PicoFace",
    "model": "V1",
    "sw_version": "24/08/2024"
  },
  "name": "Input 0",
  "payload_on": "off",
  "state_topic": "home/pico/piface/input/0",
  "unique_id": "picoface_input_0",
  "force_update": true,
  "device_class": "opening",
  "expire_after": 600,
  "payload_off": "on"
}

Ce qui veux dire que ton programme qui gère la Piface sur ton 2ième Pi doit envoyer ce topic au démarrage et ensuite envoyer régulèrement l’état de input0’ sur le topic home/pico/piface/input/0 à ‹ on › ou ‹ off › suivant l’état.

Pour les sorties du Piface voici le topic à envoyer au démarrage pour créer un switch sur la sortie output0 dans HA:

homeassistant/switch/picoface/output0/config

{
  "retain": true,
  "device": {
    "identifiers": [
      "picoface"
    ],
    "manufacturer": "PiFace",
    "name": "PicoFace",
    "model": "V1",
    "sw_version": "24/08/2024"
  },
  "name": "Output 1",
  "payload_on": "on",
  "unique_id": "picoface_switch_output_0",
  "state_topic": "home/pico/piface/output/0",
  "state_on": "on",
  "state_off": "off",
  "command_topic": "home/pico/piface/switch/0",
  "payload_off": "off"
}

Ton programme devra écouter les messages des topics de type home/pico/piface/switch/N pour commander la sortie N en question et envoyer un topic home/pico/piface/output/N pour retourner l’état à HA ce qui permettra à ton switch dans HA de basculer.

J’ai pris les topics de mon programme perso. qui pilote un Piface V1 à partir d’un Raspberry Pico sous Mycropython, je suis parti de la library
https://github.com/mchobby/esp8266-upy/tree/master/hat-piface pour gèrer la Piface et rajouter des fonctions MQTT pour l’intégrer à HA.

Dans les topics ci-dessus la partie device crée un nouveau appareil dans HA comme ceci: