Below a full code. This is modified python code to get values while calling cgminer API. Raw output prints a lot of values - https://gist.github.com/Demontager/e6070387f0bbe97268af from original script - https://gist.github.com/Demontager/5b7a98ea0f26bc8ecea9
Code:
#!/usr/bin/env python
import socket
import json
import sys
def linesplit(socket):
buffer = socket.recv(4096)
done = False
while not done:
more = socket.recv(4096)
if not more:
done = True
else:
buffer = buffer+more
if buffer:
return buffer
api_command = sys.argv[1].split('|')
if len(sys.argv) < 3:
api_ip = '127.0.0.1'
api_port = 4028
else:
api_ip = sys.argv[2]
api_port = sys.argv[3]
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.settimeout(5.0)
s.connect((api_ip,int(api_port)))
if len(api_command) == 2:
s.send(json.dumps({"command":api_command[0],"parameter":api_command[1]}))
else:
s.send(json.dumps({"command":api_command[0]}))
response = linesplit(s)
response = response.replace('\x00','')
response = json.loads(response)
if api_command[0]=="devs+pools":
j=1
pool_url="Not defined"
for i in range(len(response["pools"][0]["POOLS"])):
if response["pools"][0]["POOLS"][i]['Stratum Active']:
pool=response["pools"][0]["POOLS"][i]
pool_url=response["pools"][0]["POOLS"][i]["URL"]
for i in range(len(response["devs"][0]["DEVS"])):
d=response["devs"][0]["DEVS"][i]
print i, d["Temperature"] + "C", d["MHS 5s"],"Kh/s", pool_url
else:
print response
s.close()
I tried to concanate as suggested and getting error
Code:
# ./test devs+pools
0
Traceback (most recent call last):
File "./test", line 48, in <module>
print i, d["Temperature"] + "C", d["MHS 5s"],"Kh/s", pool_url
TypeError: unsupported operand type(s) for +: 'float' and 'str'
Bookmarks