Creer des objets avec python

Quelqu’un pourrait t il me donner un exemple de programmation python pour créer un objet personnalisé telle que un simple bouton qui enverrait une valeur lorsqu’on clique dessus. cette valeur pourrait être envoyer en mqtt vers un client. Quel est le mécanisme ?

Salut va falloir nous en dire un peu plus sur ce que tu cherches à faire et le contexte. Plus tu donnes de détails plus cela sera facile pour la communauté de te répondre.

En première analyse il n’y a pas besoin de Python pour envoyer depuis un bouton sur ton Dashboard Lovelace une valeur sur ton installation MQTT.

Bonjour,

Je ne sais si j’ai bien compris la question mais j’ai procédé comme ceci pour intégrer mes programmes Python MQTT dans home-assistant

J’utilise le protocole HA MQTT Discovery:

J’envoie un topic config de type switch comme ceci:
Je donne les exemples avec un client MQTT en ligne de commande, c’est plus simple à tester dans un premier temps.
Le topic doit etre envoyé avec le flag RETAIN (-r) dans la commande.

Ton programme Python doit envoyer un topic comme ceci:

mosquitto_pub -h mqttbrocker -p 1883 -r -t "homeassistant/switch/arrosage/config" -m '{
        "name": "Arrosage", 
        "command_topic": "command/arrosage/set", 
        "state_topic": "sensor/arrosage/state",
        "availability": [{"topic": "sensor/arrosage/status"}], 
        "payload_on": "ON",
        "payload_off": "OFF",
        "state_on": "ON",
        "state_off": "OFF",
        "unique_id": "arrosage-exterieure-1",
        "device": {
                "sw_version": "V20210113", 
                "model": "Mon_programme", 
                "identifiers": ["arrosages-exterieures"], 
                "name": "Arrosage extérieures", 
                "manufacturer": "vdomos"
        } 
}'

Cela va créer un device « Arrosage extérieures » dans HA.
Et toute *entités" rajoutées avec le l « identifiers » « arrosages-exterieures » sera inclus dans ce device.

Ensuite, il faudra envoyer ce topic pour que le device soit actif dans HA:

$ mosquitto_pub -h mqttbrocker -p 1883 -r -t "sensor/arrosage/status" -m 'online'

Le switch dans HA enverra ces messages MQTT:

2021-01-13 15:56:44,106 0 0  command/arrosage/set  ON
2021-01-13 16:02:20,278 0 0  command/arrosage/set  OFF

Ton programme python devra retourner l’état du switch pour qu’il s’affiche dans HA:

$ mosquitto_pub -h mqttbrocker -p 1883 -t "sensor/arrosage/state" -m 'OFF'
$ mosquitto_pub -h mqttbrocker -p 1883 -t "sensor/arrosage/state" -m 'ON'

Si le programme python se termine, j’envoie ce topic pour désactiver le device:

$ mosquitto_pub -h mqttbrocker -p 1883 -r -t "sensor/arrosage/status" -m 'offline'

2 « J'aime »

Je vais mourir moins c…
merci