NEWS
simple-api: Hilfe beim Aufdröseln der URL in Key, Value etc.
-
Ich habe mich als blutiger Anfänger beim Thema REST-API versucht darin einzulesen, ich komme aber nach langem Lesen nicht weiter und erhoffe hier Hilfe.
Ich beabsichtige aus einer anderen Anwendung folgende URL an die simple-api von ioBroker zu senden:
http://192.168.178.69:8087/set/0_userdata.0.QVR.Kamera-hinten.bewegung-erkannt?value=1
Wenn ich das aus meinem Browser heraus mache, funktioniert es.
In besagter Anwendung kann ich leider die URL nicht als ganzes eingeben, sondern muss dies über folgende UI machen:Das "Ziel" habe ich wie folgt definiert:
Ich habe schon Verschiedenes probiert, nachdem ich versucht habe zu verstehen, was in der o.g. URL "key" und was "value" ist. Ich habe es auch in den "body" geschrieben ... aber ich scheine auf dem Holzpfad zu sein, denn der Datenpunkt ändert sich nicht.
z.B.
oder
... aber ich weiß nicht was ich mit dem "set" machen soll.
Ich freue mich, wenn mir jemand auf die Sprünge hilft ...!
-
@rennigel Das ist ein HTTP-Get Methode und nicht PUT. Wenn Du die GET- Methode nimmst, dann kannst Du die URL auch so wie im Browser eingeben. Dann gibts auch kein Body - weil dann alle Infos in der URL mitgegeben werden, wie eben im Browser auch.
-
Aber ich will doch einen Wert in einem Datenpunkt setzen, dann ist es doch PUT.
GET wäre ja nur lesen ... oder?Ich habe es trotzdem mal probiert, die komplette URL im Feld "HTTP URL" einzugeben ... hatte leider nicht den gewünschten Effekt.
-
@rennigel Nein die HTTP - Methode ist immer GET - das hat nichts mit dem simple API Adapter zu tun - sondern sind Methoden, wie HTTP arbeitet.
Die Möglichkeit Daten zu lesen oder zu schreiben - steuerst Du direkt in der URL.
Beschrieben ist alles hier: https://github.com/ioBroker/ioBroker.simple-api/blob/master/README.md
Mit get liest Du in der URL:
http://localhost:8087/get/admin.0.memHeapTotal/?prettyPrint
Mit set schreibst Du:
http://ip:8087/set/hm-rpc.0.IEQ12345.LEVEL?value=1&prettyPrint
Kannst Du alles über Browser testen. Auch ein set gibt Dir ein JSON als Quittung im Browser zurück-
-
@rennigel Nein die HTTP - Methode ist immer GET - das hat nichts mit dem simple API Adapter zu tun - sondern sind Methoden, wie HTTP arbeitet.
Den Teil hatte ich mir schon angelesen, genau deswegen ging ich von der http-Methode PUT aus, weil ich einen Datenpunkt ja modifiziere. Der eigentliche "Befehl" ist dann das "set", aber damit der funktioniert, dachte ich, die richtige Methode müsste eingestellt sein. Aber da habe ich vielleicht zu weit gedacht ...
Also nehme ich GET.Die github-Doku hatte ich mir auch schon angeschaut, die hat mir zumindest geholfen, meine URL im Browser zu testen, was ja auch erfolgreich war (Datenpunkt wird geändert, Response im Browser).
Nur der Transfer in die UI dieser oben gezeigten Anwendung gelingt nicht - leider auch nicht mit GET.Ich habe es nochmal richtig getestet ... letztlich hat es doch geklappt!
-
@rennigel Ich kenne Deine Anwendung nicht. Aber wenn Du es im Browser hinbekommen hast - dann sollte es eigentlich auch mit Deiner Anwendung gehen. Es sieht aber so aus, dass Du halt nicht auf GET umgestellt hast.
-
Danke mickym, Du hast mich doch auf den richtigen Pfad gebracht!
Ich habe es nochmal anders getestet - jetzt funktioniert es! -
@rennigel sagte in simple-api: Hilfe beim Aufdröseln der URL in Key, Value etc.:
Danke mickym, Du hast mich doch auf den richtigen Pfad gebracht!
Ich habe es nochmal anders getestet - jetzt funktioniert es!Freut mich - sonst hätte ich an meinem Verstand zu zweifeln begonnen .