NEWS
http request Erläuterung für Anfänger
-
Hallo zusammen, bin ein kompletter Neuling und daher bitte nicht gleich ins Kalte wasser werfen
Hab mich nun fast 2 Wochen mit dem Thema rumgeschlagen und dennoch kein Erfolg. Jetzt muss ich mich doch mal an die Profis wenden. Kenn mich auch noch nicht so gut mit Blockly oder Node aus, kann auch ruhig da ein Fehler von mir vorliegen. Zu meinem Anliegen gib es da schon einiges im Forum, aber nirgends kam ich mit deren Post weiter.
Folgendes:
Lese Werte über ModBus TCP aus diversen Geräten aus. Klappt alles wunderbar. Hab mir auch eine Grafana gebaut und auch da alles OK. Nun möchte ich einen Schritt weiter gehen.
Habe einen Gira Homeserver und jenen würde ich gerne einige Daten zusenden.
Nachdem ich mich mit dem Thema Websocket und Endpoints rumgeschlagen habe, hab ich nun eine Lösung gefunden, die für mich technisch funktioniert. Danke schonmal an die Beiträge hier im Forum.Der Homeserver reagiert auf folgende Links, wenn ich diesen in einem Browser eingebe:
https://192.168.1.254/endpoints/call?key=CO@Test_1&method=set&value=5&user=test&pw=testtest
Ergebniss erscheint im Browser folgendes, aber keine Ahnung ob dies für mich relevant ist. Werte kommen an und das reicht mir aus.
Link erklärung:
Test_1 sind meine Datenpunkte im Homeserver
5 sind die Werte, welche ich an den Homeserver sende und sind Variable Werte vom iobroker
User und Passwort bleiben immer gleich.Nun hab ich mir folgendes gebaut:
Aber da kommt nichts am Homeserver an bzw. der iobroker schreibt mir auch einen Fehler:
Wäre nun über jede Hilfe dankbar und schönen Sonntag
-
Ist deine generierte url denn wirklich genau identisch zu der im Browser?
Kannst den generierten Link ja mal mit einem Debugbaustein ausgeben und das Ergebnis im Browser eingeben.
Mal sehen, was da kommt. -
Wenn du über die Developer Tools im Browser deine Abfrage anschaust, wirst du sehen, dass der Browser noch ein paar Angaben ergänzt.
Das sind meist die so genannten Header?
Welche Angaben der Server wirklich benötigt, steht eigentlich in einer so genannten API Beschreibung.
Versuche die mal zu finden, da sollten alle Informationen enthalten sein.
Was die meisten Server auf jeden Fall wollen ist ein header
Mit der Bezeichnung User Agent. Da steht eine technische Bezeichnung deines Browsers drin.Wenn du in Blockly die Funktion URL request benutzt,
dann wird wirklich nur das genutzt, was du im Befehl angibst. Request im Hintergrund wird nichts automatisch dazu definieren. Das musst du alles selber machenNachtrag
Schon gefunden
https://partner.gira.de/data3/Gira_IoT_REST_API_v2_DE.pdfGibts du im Browser vorher deine Benutzernamen ein?
Wenn ja, dann musst du dich per blockly vorher ja auch authorisieren. Sonst lässt er dich nicht rein -
@oliverio
wenn ich da die Abfrage anschaue, kommt so was:
das war gemeint oder?Im Browser gebe ich keinen Benutzer vorher ein. Kopiere nur den Link, welcher mir der iobroker macht bzw. wie ich Ihn zusammengestellt habe siehe Beitrag vorne, in den Browser ein und fertig. Wenn ich es im Browser dann mit Enter bestätigte wird der Wert auch am Homeserver empfangen. Geht das im Rednode besser also? Also wenn ich mir den Auszug oben zusammenbauen müsste?
@David-G ja war identisch
-
@danielo sagte in http request Erläuterung für Anfänger:
Geht das im Rednode besser also?
Das soll jetzt aber nicht NodeRed heißen?
Falls doch können wir es gerne zusammen probieren.
-
nein das ist der elemente tab.
im network tab (name je nach browser etwas abweichend)
die request headers
aber besser ist es die api Beschreibung zu lesen und dort die Anforderung alle erfüllen
die daten im screenshot ist keine vorlage für deine Abfrage. Ich habe jetzt hier eine beliebige Abfrage genommen und kopiert.
die meisten headers sind auch nur rein browser relevant.da du nach node red gefragt hast,
ja da gibt es bereits ein vorgefertigtes modul, das genau dafür gedacht ist.
wahrscheinlich ist es für dich einfacher das mit node red umzusetzen
https://www.npmjs.com/package/node-red-contrib-gira-endpointund was ist damit?
https://github.com/klein0r/ioBroker.gira-iot -
Ich hatte zwar an die Umsetzung des Http-Requests gedacht - aber wenn es fertige Nodes bzw. iobroker Adapter gibt - dann ist das ja vielleicht noch einfacher - da kann ich aber nichts zu beitragen.