HTTP-Anfragen-Aktion in Szenen (GET/POST/PUT/PATCH/DELETE)

Hallo

Einfach nur die Möglichkeit bieten, bestimmte Webseiten mit Parametern aufzurufen, die von Sensoren zurückgegeben werden

Hallo, persönlich verstehe ich deinen Bedarf nicht, könntest du das ein bisschen genauer erklären, bitte?.

Kein Problem

Zum Beispiel hat mein Roboterstaubsauger eine API, mit der ich ihn steuern kann
Ich möchte Gladys sagen « Sauge das Schlafzimmer » und die Anfrage wäre
http://192.168.X.XX/api/start_cleaning_zone?key=XXX&room=« chambre »
Die Parameter können entweder Sensorwerte oder Räume oder anderes sein

Ein weiteres Beispiel für meine « vernetzte Klimaanlage » wenn die Temperatur einen bestimmten Schwellenwert überschreitet
http://192.168.X.XX/Clim/chambre/on/« temperature -6 »

Ich denke, dass man sich in diesen Fällen der Integration neuer Geräte nähert.

Das heißt, das Senden von HTTP-Anfragen könnte für die Integration von benutzerdefinierten Webhooks nützlich sein, ähnlich wie bei IFTTT.

Eins der Dinge, die ich entwickeln möchte und die so ähnlich aussehen, ist eine „HTTP-Anfrage“-Box in den Szenen.

  • Der Benutzer wählt das HTTP-Verben (GET/POST/PATCH/PUT/DELETE)
  • Die API-URL
  • Die GET/POST/PATCH/PUT-Parameter je nach Anfrage
  • Die Header, falls eine Authentifizierung erforderlich ist

Damit können Webhooks zu externen Diensten in den Szenen erstellt werden, das kann nützlich sein :slight_smile:

Bald im Spiel :heart_eyes:

Das ist gut :star_struck:

cool, kann man da Variablen übergeben oder geht es nur um statische URL-Aufrufe?

Ich würde mir wünschen, dass man Variablen an Termine übergeben kann :slight_smile:

Und vor allem den Inhalt der Antwort abrufen, um ihn später in der Szene zu verwenden.

Zum Beispiel eine zufällige API aufrufen und dann eine Nachricht an den Benutzer senden, die Daten aus der API-Antwort enthält :slight_smile:

Hast du ein Beispiel im Kopf oder wäre es nützlich, eine dynamische URL aufzurufen?

In der Zwischenzeit habe ich an der Hinzufügung von Headern in den Anfragen gearbeitet, das war nicht einfach auf der UI-Ebene, aber ich habe es geschafft ^^

Hop, die Funktion wurde in Add an HTTP request action in scene to make GET,POST,PATCH,PUT,DELETE… · GladysAssistant/Gladys@e467c86 · GitHub gemerged.

Das wird heute Abend im Dev-Image und nächste Woche in Gladys verfügbar sein :slight_smile:

Für den Teil der Variablen-Injektion in andere Felder der Szenen würde ich gerne etwas Ähnliches wie bei Zapier machen:

Zum Beispiel könnte man in einer Aktion „Nachricht senden“ in den Szenen auf Daten zugreifen, die von einer anderen Aktion abgerufen wurden (Gerätewert abrufen, HTTP-Anfrage, etc.).

Problem: Ich habe versucht, herauszufinden, wie sie das machen, und es sieht kompliziert aus! Sie haben ein Fake-Textarea, das 0 Pixel groß ist, und darüber eine Art

--Tag, um gleichzeitig den gesetzten Text und die „stilisierten“ Variablen anzuzeigen (da in einem klassischen Textarea kein Stil möglich ist).

Kann jemand gut HTML/CSS und so etwas mit Preact machen? :smiley:

Hallo,

Ich weiß nicht, ob ich das richtig verstanden habe, aber möchtest du Werte basierend auf den Rückgaben der vorherigen Aktionen (HTTP-Anfrage, etc.) einfügen können?
Für die Geräte hast du doch irgendwo schon die Liste der Geräte und ihre Werte, oder?
Bei den HTTP-Anfragen, wenn diese anpassbar sind, wird es kompliziert, und man muss den Benutzer nach den zurückgegebenen Daten und deren Format fragen (der Backend parst die Rückgabe, aber wo sind die Daten in dieser Rückgabe? Manche APIs geben direkt ein Datenobjekt zurück, andere haben zusätzliche Informationen (Listen zum Beispiel mit Pagination und die echten Daten sind eine Ebene tiefer), etc.), um die Rückgabe parsen zu können.

Für den Frontend-Teil muss man bei Komponenten wie Combobox/Autocomplete schauen, um genau zu sehen, wie sie das machen. Mir scheint, dass es meistens ein verstecktes Select zum Speichern der Daten und ein Textfeld/Div zum Anzeigen gibt. Die Auswahl-Liste ist eine einfache Liste. (Danach brauchst du mit Preact vielleicht kein Select mehr, du kannst die Auswahl im State speichern (habe noch nie mit Preact gearbeitet, ich bevorzuge Vue ^^ aber das Prinzip sollte gleich bleiben)).

Ansonsten, aus Nutzersicht, ein Textarea-Body für normale Benutzer, das sagt ihnen nichts. Man braucht so wie in deinem Beispiel Header, du fügst Parameterzeilen hinzu (ein Feld für den Parameternamen, ein Feld für den Wert, schau dir Postman an zum Beispiel (der Teil form-data), mit einer Option für das zu sendende Format (json, form-data, etc.)). Der Vorteil dieser Lösung ist, dass du die Parameter auf die gleiche Weise übergibst, egal ob es eine GET-Methode oder eine andere ist. Der Backend erstellt das richtige Format (Query-String oder Body, je nach Methode, und das Format json oder anderes je nach gewählter Option).

Ich weiß nicht, ob ich dir irgendwelche Ideen oder Lösungen gegeben habe, aber egal ^^

Gute Nacht an alle

Hallo @wazalop, ich habe mich gerade über Frontend-Entwicklung unterhalten, wie kann man das Screenshot, das ich oben gepostet habe, in HTML/CSS umsetzen? :smiley: Die Daten habe ich schon!

Edit: Bild der Entwicklung von Gladys mit der Funktion, die gerade gebaut wird (https://github.com/GladysAssistant/Gladys/actions/runs/401136485)