#! /usr/bin/env python3 import requests import json import time import sys def commande_sonoff(device, ip, port, command, param): #allumage/extinction param on off if command=="switch": URL = "http://" + ip + ":" + str(port) + "/zeroconf/switch" PARAMS = {'deviceid': device, 'data':{'switch': param }} #etat de redemarrage param on off stay elif command=="starup": URL = "http://" + ip + ":" + str(port) + "/zeroconf/startup" PARAMS = {'deviceid': device, 'data':{'startup': param }} #wifi signal no param elif command=="wifi": URL = "http://" + ip + ":" + str(port) + "/zeroconf/signal_strength" PARAMS = {'deviceid': device, 'data':{}} #info no param elif command=="info": URL = "http://" + ip + ":" + str(port) + "/zeroconf/info" PARAMS = {'deviceid': device, 'data':{}} #print URL #print json.dumps(PARAMS) try : r = requests.post(url = URL, data = json.dumps(PARAMS), timeout=10) data = r.json() if data["error"]!=0: return "error" elif (command=="info" and data["data"]["switch"]=="on"): return 1 else: return 0 except: return "sonoff injoignable" print (commande_sonoff (sys.argv[1],sys.argv[2],8081,sys.argv[3],sys.argv[4])) #print (commande_sonoff ("10009053b8","192.168.1.198",8081,"info",""))