Antwortvariablen in Automationen

Hallo zusammen

bin ein Neuling in HA, konnte aber schon viele Automatisationen erfolgreich umsetzen. Nun stosse ich aber an meine Grenzen und brauche Hilfe.

Ich sende Befehle via HTTP an ein Endgerät (via RESTful Command), das klappt schon mal gut. Gebe ich dieselbe URL in einen Web-Browser ein, erscheint im Browserfenster eine leere Seite mit dem Text “OK”. Nun dachte ich, ich könne die erfolgreiche Ausführung “überwachen” und die Option Antwortvariable in HA dazu benutzen. Habe folgendes versucht:
Code:

action: rest_command.dahua_email_aus
data: {}
response_variable: result
if:
  - condition: template
    value_template: "\"{{ result['status'] == 'OK' }}\""
then:
  - type: turn_on
    device_id: xxx
    entity_id: xxxxx
    domain: light
    brightness_pct: 100

Die Ausführung des Befehls selbst klappt. Zur Kontrolle will ich im Beispiel eine Lampe einschalten, diese geht aber nicht an was ja bedeutet, dass die If-Abfrage nicht mit “wahr” endet. Verstehe den Umgang mit den Antwortvariablen offenbar nicht richtig oder setze es nicht richtig um. Wo hab ich den Fehler drinn? Stimmt in meinem Beispiel die Syntax für die Antwortvariable? Ist ev die “response_variable” nicht identisch mit dem Resultat, wenn dasselbe über einen Webbrowser eingegeben wird? Hoffe, Ihr könnt mir helfen, danke!

Die Dokumentation schon studiert, dort findest Du auch zahlreiche Bsp.

Sollte eher lauten:

    actions:
      - action: rest_command.dahua_email_aus
        response_variable: result
      - if: "{{ result['status'] == 'OK' }}"
        then:

Gruß Osorkon

Die Doku hatte ich gelesen, bin aber nicht weiter gekommen. Wie gesagt, die commands selbst werden korrekt ausgeführt, nur die Sache mit der Abfrage der Antwortvariable klappt nicht, die Prüfung gibt immer wieder “false” zurück, obschon dieselbe URL in einem Webbrowser ein “OK” als Antwort meldet. In HA wähle ich “Führe eine Aktion unter einer Bedingung aus”, danach wähle ich den Bedingungs-Typ “Template” für die Abfrage der Antwortvariablen und gebe dort “ if: “{{ result[‘status’] == ‘OK’ }}”“ ein. Ist das der richtige Weg oder muss ich das anderswo eintragen?

Führe mal die Aktion in den Entwicklungswerkzeugen im Bereich Aktion aus.
Und schaue Dir aml an, was da als Antwort ankommt.

Gruß Osorkon

Als Beispiel:

Ich frage auch per http und REST eine Kamera ab und bekomme folgendes als Antwort:

So frage ich dann in der Automatisation den Alarmstatus ab:
{{ alarmstatus['status'] == 200 and 'armed="1"' in alarmstatus['content'] }}

1 „Gefällt mir“

Vielen Dank!!! Unzählige Versuche später klappt es endlich, bin so froh. Dank dem Tipp mit den Entwicklertools ging mir ein Licht auf. Der korrekte Status ist 200 anstelle des OK das mir der Webbrowser anzeigte. Nun klappt es, danke nochmals!