JSON-RPC über Python

[emoji23][emoji23][emoji1303][emoji15] Freut mich - und ich kann wieder gut schlafen! [emoji16]

Hallo alle zusammen,

Das Beispiel aus Post #10 hat die Wende für meinen Tingbot gebracht! :slight_smile:

Besten Dank!!!

ich hole das mal wieder nach obe.
nutze hier auch die rpc schnittstelle.
SetValue funktioniert bei mir tadellos.
Allderdings weiß ich nicht wie ich Werte ausgelesen bekomme…
Folgendes Script:

#!/usr/bin/env python
import time
import requests
import json
from pyquery import PyQuery
from pyA20.gpio import gpio
from pyA20.gpio import port
from pyA20.gpio import connector

def IPSrpc(methodIps, paramIps):
url = „http://**************@172.16.50.10:3777/api/
headers = {‚content-type‘: ‚application/json‘}

payload = {
    "method": methodIps,
    "params": paramIps,
    "jsonrpc": "2.0",
    "id": "0",
}
response = requests.post(url, data=json.dumps(payload), headers=headers)

c = IPSrpc(„GetValue“, [55624])
print c

die überflüssigen imports sind drin, da dies nur ein testscript ist… :wink:
ausgabe ist bei mit immer „None“
hat da jemand eine idee?

Hallo,

Absicht, dass du das Passwort mit gepostet hast?
Vielleicht solltest du das „ausblenden“? Auch wenn es nur lokal ist. (Ich weiß ja nicht, ob du es noch wo anders nutzt!)

Grüße,
Kai

äh ja ^^ ist nur local
aber wieso gibt es hier keinen edit Button?!?

Du benötigst 25 Beiträge zum editieren, diese Regel wurde aufgrund von Spam Nachrichten eingeführt. (IP-Symcon Community Forum)

Grüße,
Kai

Ich habe das Passwort entfernt.

paresy

alte Threads leben länger; habe gerade das gleiche Problem… ich kriege auch die Wert nicht ausgelesen…
hat da jemand was? bastel hier so vor mich hin, aber komme irgendwie zu keinem Ergebnis…

Hallo Zusammen,

Ich versuche auch schon seit längerem dies wieder hinzubekommen, leider geht dies nicht mehr. :banghead:

Bekomme immer folgede fehlermeldung:

{"jsonrpc": "2.0", "params": [12349, 12.9], "method": "SetValue", "id": "0"}
<bound method Response.json of <Response [401]>>

Wer hat eine Idee?
Danke, Wolfgang

Hallo Zusammen,

Ich konnte das Problem lösen, Ich musste nur die Authentifizierung nochmals mitsenden:

# notwendige Module importieren
import time
import requests
import json
from requests.auth import HTTPBasicAuth

# JSON-RPS zu IPS definieren
def IpsRpc(methodIps, paramIps):
    url = "http://oe2swm.ddns.net:3777/api/"
    auth=HTTPBasicAuth('**USER**', '**pass**')  
    headers = {'content-type': 'application/json'}

    payload = {
        "method": methodIps,
        "params": paramIps,
        "jsonrpc": "2.0",
        "id": "0",
    }
    print json.dumps(payload)

    response = requests.post(url, data=json.dumps(payload), headers=headers, auth=auth).json

    print(response)

IpsRpc("SetValue", [12349, 12.5])  # 10900 = zu aktualisierende IPS-Variablen-ID, key = zu sendender Wert

Ich versuche es auch nochmal, ist das der richtige Weg, um auf daten per json zu zu greifen? Ich finde in der Referenz leider keine Hinweise.
Anders gefragt, wie kann ich per Python aus einem entfernten IPS Variablenwerte auslesen?
Danke und Grüße
Thomas