Json wird nur in Float-Variable geschrieben

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

bei mir so. Hab ja nix dran geändert. Geht einfach nicht mehr seit dem Update.

Probier mal richtige Anführungszeichen, quasi doppelte…

Und, geht es jetzt?
Bei mir funktioniert es so…

Siehe:

Schöne Grüße
Dan

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 :slight_smile:

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 :slight_smile:

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 ? :smiley: :wink:

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“:banghead::banghead::banghead::banghead::banghead:

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}