EspHome récupération d'une valeur mqtt

Bonsoir,
Je refait mon Nspanel sous EspHome.
J’essaye de récupérer des valeurs d’un autre capteur. Le capteur envois bien les valeurs.
Sous Z2M j’ai
2023-07-17 20:43:10MQTT publish: topic ‹ zigbee2mqtt/TuyaTh01 ›, payload ‹ {« battery »:62,« humidity »:87.86,« linkquality »:102,« temperature »:30.29,« voltage »:2800} ›

Par contre dans mon code je ne écupére que cela (et encore c est le mieux que j’ai réussit à faire)
[20:43:10][D][JSON:042]: \x8f\xfd?Ў\xfd? \x84\xfd?\xb0&\xfb?(

Je ne suis même pas certain que cela soit le bon endroit pour le code. sensor? sensor_text?

Si quelqu un peux m’aider avec un bout de code
Cordialement

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password 
  on_json_message:
    topic: zigbee2mqtt/TuyaTh01
    then: 
      - lambda: |-
          ESP_LOGD("***JSON***", "%s", x);   
          

Salut,

A en croire la doc de esphome pour mqtt, on_json_message, te donne une objet de type JsonObject, donc pas forcément une chaine de caractères directement affichable.

image

Si tu essayais plutôt d’afficher : x["temprature"] par exemple ça devrait mieux se passer.

Merci de votre réponse, elle m’a mise sur la voie. :+1:
J’avais lu le truc du x (et root) dans la doc, mais pas moyen de faire fonctionner mon code.
Il manque un ‹ e › dans ‹ temprature ›. Il semble que j’ai fait tout mes tests(ssss) d’hier en écrivant ‹ temperatur › sans e final. :face_with_hand_over_mouth: :face_with_peeking_eye:
Maintenant mon code fonctionne;
Merci encore

mqtt:
  broker: !secret mqtt_broker
  username: !secret mqtt_user
  password: !secret mqtt_password 
  on_json_message:
    topic: zigbee2mqtt/TuyaTh01
    then: 
      - lambda: |-
          float TpExt = x["temperature"];
          id(disp1).set_component_text_printf("TpExt", "%.1f ""\xb0""C", TpExt);
          ESP_LOGD("***JSON***", "%.1f", TpExt );