Frage zu MQTT Payload aus einer Automation versenden

Hallo!

Ich möchte gerne in einer Automation die Temperatur meines Thermostatventils setzen.

In der Dokumentation wird das wie folgt beschrieben:

current_heating_setpoint: Temperature setpoint. To control publish a message to topic zigbee2mqtt/FRIENDLY_NAME/set with payload {"current_heating_setpoint": VALUE} where VALUE is the °C between 5 and 30. Reading (/get) this attribute is not possible.

So sieht das LOG aus wenn ich die Temperatur direkt in Zigbee2MQTT ändere:

info 2024-09-16 09:26:19z2m:mqtt: MQTT publish: topic 'zigbee2mqtt/OG Stueberl RE Thermostat', payload '{"away_mode":"ON","battery":100,"child_lock":"UNLOCK","current_heating_setpoint":14,"linkquality":255,"local_temperature":19.3,"position":null,"preset":"away","running_state":null,"system_mode":"off","valve_detection":"ON","window_detection":"ON"}'

Aus diesen Informationen habe ich eine Aktion in der Automation erstellt.
Nach Eingabe der Parameter im GUI wird folgender YAML Code generiert:

action: mqtt.publish
metadata: {}
data:
  evaluate_payload: false
  qos: "1"
  retain: false
  topic: zigbee2mqtt/OG Stueberl RE Thermostat/set
  payload: "{\"current_heating_setpoint\": 24}"

Die Aktion wird zwar ausgeführt, aber es passiert nichts.
Ich habe mit den Anführungszeichen etwas herum experimentiert aber nichts davon bewirkt irgend was.

Wie muss das korrekt eingegeben werden?
Die Dokumentation erklärt das zwar aber ich versteh es nicht wirklich. ^^

Vielen Dank!

Moin,

Bauchgefühl, es ist keine gute Idee, Leerzeichen im Topic zu haben.

Leerzeichen in der Computerei ist sowieso ein Unding, immer Unterstrich, Minus, oder CamelCase, nutzen.

Danke KleinWeich :wink:

VG
Bernd

Danke für das PDF, ist immer gut was dazu zu lernen.
Ich habe Leerzeichen verwendet weil es sich eigentlich um den “Friendly Name” handelt.
Entitäten haben bei mir immer Underline und keine Sonderzeichen und Umlaute.

Das war übrigens nicht das Problem.

Es war ein DAU-Fehler.

Wenn der HLK-MODUS auf “OFF” steht geht der Thermostatkopf in den Modus der vor Frost schützt.
In dem Modus ist der Temperatur Range 5°C-15°C
Daher wird die Temperatur von 24°C die ich sende nicht übernommen und die Temperatur bleibt bei 15°C stehen.

Man muss zuvor den HLK-MODUS auf “HEAT” stellen, dann wird das MQTT auch ordnungsgemäß übernommen.

Wenn man es mal weiss ist das auch logisch.
Manchmal hilft es doch das Gerätehandbuch vollständig zu lesen …