71 lines
1.8 KiB
Python
71 lines
1.8 KiB
Python
################################################################
|
|
# Install:
|
|
# * python -m pip install requests
|
|
#
|
|
# Usage:
|
|
# * python basicrest.py
|
|
#
|
|
# Description:
|
|
# A simple test of the REST Like API
|
|
################################################################
|
|
|
|
import json, requests
|
|
import time
|
|
|
|
url = 'http://127.0.0.1:8085'
|
|
|
|
def findSensors(node):
|
|
sensors = {}
|
|
|
|
if len(node["Children"]) > 0:
|
|
for child in node["Children"]:
|
|
sensors.update(findSensors(child))
|
|
else:
|
|
if "Type" in node:
|
|
sensors[node["SensorId"]] = node
|
|
|
|
return sensors
|
|
|
|
def getValue(sensorId):
|
|
params=dict(id=sensorId, action="Get")
|
|
resp = requests.post(url=url + "/Sensor", params = params, timeout=10);
|
|
result = json.loads(resp.text);
|
|
|
|
if result["result"] != "ok":
|
|
raise Exception("Server returned error:\n " + result["message"].replace("\\n", "\n").replace("\\r", ""))
|
|
if result["value"] == None:
|
|
return None;
|
|
else:
|
|
return float(result["value"])
|
|
|
|
def setValue(sensorId, sensorValue):
|
|
if sensorValue == None:
|
|
sensorValue = "null"
|
|
params=dict(id=sensorId, action="Set", value=sensorValue)
|
|
resp = requests.post(url=url + "/Sensor", params = params, timeout=10);
|
|
result = json.loads(resp.text)
|
|
if result["result"] != "ok":
|
|
raise Exception("Server returned error:\n " + result["message"].replace("\\n", "\n").replace("\\r", ""))
|
|
|
|
def main():
|
|
params = dict()
|
|
|
|
print("Fetching all sensor ids:")
|
|
resp = requests.get(url=url + "/data.json", params=params, timeout=10)
|
|
data = json.loads(resp.text)
|
|
sensors = findSensors(data)
|
|
|
|
for key, value in sensors.items():
|
|
v = getValue(key)
|
|
print(key, ":", v);
|
|
|
|
# Change the id to one of yours
|
|
print("Setting GPU Fan to full speed!")
|
|
setValue("/nvidiagpu/0/control/0", "100.0")
|
|
time.sleep(10);
|
|
print("Returning GPU Fan speed to default")
|
|
setValue("/nvidiagpu/0/control/0", None)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main() |