Gestion d'un bouton?

Bonjour

Voilà ma problématique: je gère des capteurs divers et variés en Lora qui remontent via MQTT à mon HA. La plupart sont gérés de la façon suivante dans HA:

terrasse
   - state_topic: "v3/sonde-ambiance@ttn/devices/terrasse/up"
     name: “Ext. Temp DS”
     value_template: '{{ value_json.uplink_message.decoded_payload.TempC_DS }}'
     state_class: measurement
     unit_of_measurement: °C

et cela fonctionne parfaitement depuis très longtemps ! Par contre je voudrais maintenant intégrer des boutons Lora mais là ça se complique ! En effet le bouton retourne juste un payload du type:

"uplink_message": {
      "session_key_id": "AYYMihwVu4DN3fn6dSomuA==",
      "f_port": 1,
      "f_cnt": 27,
      "frm_payload": "QQ==",
      "decoded_payload": {
        "button_pressed": 1
      },

J’ai trouvé le Device trigger dans HA: MQTT Device Trigger - Home Assistant mais malheureusement cela est uniquement utilisable sur des topics mqtt en autodiscovery :frowning:
Une idée de comment régler le soucis afin de pouvoir récupérer mon déclencheur de l’appui du bouton dans HA ?

Merci pour vos lumières,

Vincèn

Salut,

ça donne quoi dans MQTT explorer ?
Là ça ressemble pas à un json valide (ou pas complet)

Non il est pas complet car tout le reste est sans intérêt pour la problématique en question :smiley: mais le voici pour ta curiosité :wink: Désolé pas trouvé de moyen de l’afficher ici avec un peu de mise en forme pour que ça soit lisible :frowning:

{"end_device_ids":{"device_id":"boutons-1","application_ids":{"application_id":"buttons-actuators"},"dev_eui":"AC1F09FFhidden","join_eui":"AC1F09Fhidden","dev_addr":"260hidden"},"correlation_ids":["as:up:01GRTKVXEXBA9PQKWYASY1B5S2","gs:conn:01GRR6YTVS5WVS5WZVWSSMH98M","gs:up:host:01GRR6YTW1AAH4GCT8Y1FBXVXT","gs:uplink:01GRTKVX8F6K6Q7KZPGC8A2TXG","ns:uplink:01GRTKVX8GM80B3MJ10DG2ARKS","rpc:/ttn.lorawan.v3.GsNs/HandleUplink:01GRTKVX8G184XGNX3Q0VNY411","rpc:/ttn.lorawan.v3.NsAs/HandleUplink:01GRTKVXEWA4C5BZZKR5R4NVTQ"],"received_at":"2023-02-09T08:14:58.525027118Z","uplink_message":{"session_key_id":"AYYMihwVu4DN3fn6dSomuA==","f_port":1,"f_cnt":60,"frm_payload":"QQ==","decoded_payload":{"button_pressed":1},"rx_metadata":[{"gateway_ids":{"gateway_id":"lausanne-hidden","eui":"AC1F09FFFE057D7F"},"time":"2023-02-09T08:14:58.292536973Z","timestamp":3333142979,"rssi":-85,"channel_rssi":-85,"snr":11.5,"location":{"latitude":xxxxxxxx,"longitude":xxxx.xxxx54828,"altitude":630,"source":"SOURCE_REGISTRY"},"uplink_token":"Ch0KGwoPbGF1c2FubmUtbWFpc29uEgisHwn//gV9fxDD8661DBoMCILXkp8GEIqrt5gBILjDtvaAqxI=","received_at":"2023-02-09T08:14:58.297673222Z"}],"settings":{"data_rate":{"lora":{"bandwidth":125000,"spreading_factor":7,"coding_rate":"4/5"}},"frequency":"868500000","timestamp":3333142979,"time":"2023-02-09T08:14:58.292536973Z"},"received_at":"2023-02-09T08:14:58.320810807Z","consumed_airtime":"0.051456s","version_ids":{"brand_id":"rakwireless","model_id":"rak7201","hardware_version":"1.0","firmware_version":"1.0.2.210520","band_id":"EU_863_870"},"network_ids":{"net_id":"000013","tenant_id":"ttn","cluster_id":"eu1","cluster_address":"eu1.cloud.thethings.network"}}}

Les autres données sont effectivement sans intérêt, mais la structure est importante pour déterminer le path.
Sur le dernier exemple j’ai l’impression que c’est pas plus bon

oui mais le path je l’ai depuis longtemps, mon soucis c’est de comment gérer cela en mqtt avec HA car y’a rien de prévu pour un appareil qui remonte juste une impulsion de temps en temps :frowning: Autant tout ce qui est capteur aucun soucis et cela marche depuis longtemps sans aucun soucis !

Euh pas compris :frowning:

Celui pour ça ?
"button_pressed": 1

C’est pas important, c’est ton template qui fait le boulot,
Si info/path existe alors tu valorises ton sensor à 1, sinon à 0
Genre :
{{ max(0,value_json.xxxxxxxxxxxxxxxxxxx.button_pressed|int(0) }}

Oui tout bon pour ça :slight_smile:

oki mais quand j’essaye de faire ce que tu indiques qui est ceci si je ne me suis pas emmêlé les pinceaux:

mqtt:
  sensor:
# Boutons
    - state_topic: "v3/buttons-actuators@ttn/devices/boutons-1/up"
      name: “Bouton 1”
      value_template: '{{ max(0,value_json.uplink_message.decoded_payload.button_pressed|int(0)) }}'
      state_class: measurement

HA est pas content et me dit que mon value template est incorrecte :frowning: Mal compris ton explication ?
Pas d’erreur dans les logs mais ça ne marche pas :frowning:

C’est quoi le message d’erreur ?
Tu as double quotes bizarres :
image

Euh comme indiqué il y en a aucun mais j’ai trouvé une erreur du côté MQTT/serveur Lora que j’ai résolu et effectivement cela marche bien avec ton code :slight_smile: Merci beaucoup pour l’astuce :ok_hand:

Ben ça lui pose pas de soucis à priori, la plupart de mes configs sont comme ça :slight_smile:

1 « J'aime »