Man kann eine HTTP-Anforderungsszene erstellen. Es funktioniert, aber wie kann man die Rückmeldung kennen und die Antwort nutzen, die nur im Testrahmen angezeigt wird, aber nicht in der allgemeinen Tabelle oder der Szenentabelle? Es wäre gut, ein Tag zu haben, das die Antwort anzeigt und das man für andere bedingte Aktionen (wenn dann) nutzen kann.
Hallo @bob ![]()
Gute Nachricht: Es ist schon heute möglich, aber es gibt einen nicht ganz intuitiven Schritt, der erklärt, warum du die Antwort nirgendwo außer in der Vorschau findest ![]()
1. Klicke zuerst auf „Ausprobieren“
Der „Ausprobieren“-Button dient nicht nur zum Testen: Er ermöglicht es Gladys, das von der API zurückgesendete JSON zu analysieren und die Liste der verfügbaren Felder zu speichern. Solange du nicht mindestens einmal darauf geklickt hast, werden keine Variablen in den folgenden Blöcken vorgeschlagen.
2. Verwende die Antwort in den folgenden Aktionen
Nachdem du es ausprobiert hast, tippe in einem Textfeld in einer beliebigen Aktion, die nach deinem „HTTP-Anfrage“-Block platziert ist, {{: Du wirst die Variablen deiner Anfrage sehen, in der Form data.mein_feld (für JSON-Felder, einschließlich verschachtelter wie data.results.temperature) und status (der HTTP-Code, z. B. 200).
3. Zum Anzeigen der Antwort
- Am einfachsten: Eine Aktion „Nachricht senden“ mit der Variable darin, du erhältst den Wert auf Telegram / im Gladys-Chat.
- Noch besser, wenn es sich um einen numerischen Wert handelt, den du in deinem Dashboard sehen möchtest: Eine Aktion „Gerät steuern“, wobei der Modus „Berechnet“ anstelle von „Einfach“ gewählt wird, die auf ein virtuelles Gerät zeigt. Dort hast du den Wert ständig auf deinem Dashboard angezeigt, mit dem Verlauf und den dazugehörigen Diagrammen

4. Für „wenn… dann…“
Das ist genau die Aufgabe der Blöcke „Bedingung für Variablen“ oder „Bedingung « Wenn… Dann… Sonst… »“: Dort wählst du die Variable deiner HTTP-Anfrage, einen Operator (=, !=, >, >=, <, <=) und einen Wert. Zum Beispiel: Wenn data.temperature > 25, dann den Ventilator einschalten.
Zwei Grenzen, die du kennen solltest:
- Die automatische Analyse der Felder funktioniert nur, wenn die API in JSON antwortet (
Content-Type: application/json). Wenn die API rohen Text oder XML zurückgibt, werden keine Variablen vorgeschlagen. - Wenn du die URL änderst oder die API neue Felder zurückgibt, musst du erneut auf „Ausprobieren“ klicken, um die Liste zu aktualisieren.
Wofür möchtest du es verwenden? ![]()
Ich würde hinzufügen, dass man die geschweiften Klammern UND einen Leerzeichen (also {{ ) dahinter eingeben muss, sonst wird nie die Liste der Variablen angezeigt.
Fortsetzung des Themas Wie man die Antwort einer HTTP GET-Anfrage verwendet:
deshalb sehe ich die Antwort nach dem Klicken auf „Testen“. Wenn ich eine neue Aktion nach der Anfrageaktion erstelle, z. B. eine Nachricht senden, bleibt das Textfeld „Nachricht“ leer, wenn ich {{ gefolgt von einem Leerzeichen eingebe. Dann sprichst du von virtuellen Objekten, aber auch hier habe ich keine Vorschläge dieser Art in den Dropdown-Listen. Danke für deine Antworten.
Kannst du uns die URL teilen, die du in deiner HTTP-Anfrage aufrufst? Was ist die Antwort? Ist es wirklich ein JSON?