Mit Tasker sende ich mittels Json Daten an IPS in eine String-Variable. Nun ist mir aufgefallen, dass diese Daten seit dem Update nicht mehr ankommen. Sende ich die Daten jedoch an eine Float-Variable, werden diese geschrieben.
Hallo,
bei mir schaut es folgend aus:
String:
Float:
Ich hoffe, das hilft dir weiter…
Schöne Grüße
Daniel
Probier mal richtige Anführungszeichen, quasi doppelte…
Hi Dan
tatsächlich. Das wars. Da muss man ja auch zuerst draufkommen. Danke für den Hinweis.
Hallo,
ich versuche im Moment krampfhaft Http-Post-Requests zu verstehen und habe mir euren Thread hier angesehen und denke wenn ich es mit „Tasker“ hinbekommen würde, wäre ich meinem Vorhaben ein wenig näher.
Ich habe es so versucht:
Nach dem Anlegen einer HTTP-Post Aktion im Tasker muss man doch unter Server:Port seinen Lizenznamen und das Fernzugriffspasswort eintragen (vgl. Screenshot)?
Danach folgt dann, nach einem @ die IP-Adresse des Computer auf dem IPS läuft mit dem Port 82.
Unter Pfad habe ich das api-Verzeichnis (/api/) eingetragen.
Da ich gerne ein Skript ausführen würde, habe ich unter „Data/File“ folgendes verwendet:
{„jsonrpc“:„2.0“,„method“:„IPS_RunScript“,„params“:[28073],„id“:1}
Sind meine Angaben soweit richtig?
Muss ich evtl etwas bei der Auführung der Task beachten?
Muss ich Lizenzname und Fernzugriffspasswort verwenden wenn ich im selben Netzwerk bin?
Hoffentich kann jemand Licht ins dunkle bringen
Lieben Gruß
Snook
Falls diesen Thread doch noch einer lesen sollte, wollte ich noch eben meine Lösung bzw. meinen Fehler posten:
Ich habe lediglich vergessen den Inhalts Typ „application/json“ anzugeben.
Vllt hilft es ja noch dem ein oder anderen
Lieben Gruß
Snook
Ich komme auch nicht weiter…
Wenn ich es zu Testzwecken von PC als Post sende, bekomme ich immer als Antwort : File not found ?
Was mache ich falsch :
http://max@gmail.com:1234@drapple.no-op.new:83/api/{"jsonrpc":"2.0","method":"IPS_RunScript","params" :[22917],"id":1}
Öhh… POST oder GET ?
Du schreibst du willst einen Post machen und dann hast du den JSON-String einfach an die URL gehängt (=HTTP-Get) ?!
Das wird so nix mit der JSON-RPC-API von IPS.
Du musst schon den JSON-String als Inhalt per POST senden.
Die URL hört dabei bei /api/ auf.
Außerdem bitte nicht vergessen im Header den Content-Type mit application/json festzulegen.
Dann sollte es flutschen.
Und wenn du User & PW da auch noch aus der URL weg haben möchtest, könntest du das auch im Header übergeben.
Michael
Das mit der URL war nich ein Beispiel :eek:
Habe den sau dummen Fehler gefunden:
Ich habe „application/json“ in Feld „User Agent“ eingetragen, das ist falsch :eek:
„application/json“ muss ins Feld „Inhalts Typ“
Moin,
habe hier auch etwas länger gebraucht, aber zur Zeit klappt es. Allderings nur (und das war mein Fehler:banghead:), wenn ich die „IPS“-Befehle und -funktionen auch mit genau der Groß-/Kleinschreibung versehe, wie sie in der Doku stehen. Hier soll als Beispielt der Wert der Variablen 12345 gesetzt werden.
Im Tasker eine Aufgabe mit einem HTTP POST anlegen.
Server:Port: (hier natürlich eure Werte einsetzen;))
http://lizenzname:fernzugriffspasswort@ips-ip:82
Pfad:
/api/
Bei Data / File je nach Variablentyp:
String:
{"jsonrpc": "2.0", "method": "SetValue", "params": [12345, "Das ist der neue Inhalt der Variablen"], "id": 1}
Boolean:
{"jsonrpc": "2.0", "method": "SetValue", "params": [12345, true], "id": 1}
Integer:
{"jsonrpc": "2.0", "method": "SetValue", "params": [12345, 6789], "id": 1}
Float:
{"jsonrpc": "2.0", "method": "SetValue", "params": [12345, 987.6], "id": 1}
Bei Inhalts Typ:
application/json
Objektnamen ändern:
{"jsonrpc": "2.0", "method": "IPS_SetName", "params": [12345, "Der neue Name"], "id": 1}
Ident setzen:
{"jsonrpc": "2.0", "method": "IPS_SetIdent", "params": [12345, "NEUER_IDENT"], "id": 1}
Float-Variable anlegen:
{"jsonrpc": "2.0", "method": "IPS_CreateVariable", "params": [2], "id": 1}