查看Noduino OpenLight的源代码
←
Noduino OpenLight
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
==== Turn off ==== * replace the mqtt_uname in line 10 <source lang=python> $ cat openlight.py #!/usr/bin/python3 import json, requests import paho.mqtt.client as mqtt import sys # replace it to your id ########################################### mqtt_uname = 'o7okr76757879RfhBs_XM339' <---- YOUR_mqtt_uname devid = 'MJD123456789012' <---- YOUR_devid ########################################### # mqtt json message ########################################### # {"m":"set", "d":{"r":255,"g":255,"b":255,"w":255,"s":1}} # {"m":"bri", "d":23} --> bri:[0, 255] # {"m":"set_voice_name", "d":"room light"} # {"m":"get_voice_name"} # {"m":"get_state"} # ota ########################################### DEBUG = True def dbg(msg): global DEBUG if DEBUG: print(msg) sys.stdout.flush() #http://docs.python-requests.org/en/latest/user/quickstart/#json-response-content def help_msg(): print("Supported cmd:") print("\tlight.py dev_id on") print("\tlight.py dev_id off") print("\tlight.py dev_id 23") print("\tlight.py dev_id ota") print("\tlight.py dev_id set_vn \"kitchen light\"") print("\tlight.py dev_id get_vn") if len(sys.argv) >= 2: devid = sys.argv[1] set_state = sys.argv[2] else: help_msg() sys.exit(-2) if set_state == "on": mqtt_msg = '{"m":"set", "d":{"s":1}}' elif set_state == "off": mqtt_msg = '{"m":"set", "d":{"s":0}}' elif set_state.isdigit(): mqtt_msg = '{"m":"bri", "d":' + set_state + '}' elif set_state == "ota": mqtt_msg = "ota" elif set_state == "get_state": mqtt_msg = '{"m":"get_state", "d":""}' elif set_state == "set_vn": mqtt_msg = '{"m":"set_voice_name", "d":"' + sys.argv[3] + '"}' elif set_state == "get_vn": mqtt_msg = '{"m":"get_voice_name", "d":""}' elif set_state == "set_cold_on": mqtt_msg = '{"m":"set_cold_on", "d":' + sys.argv[3] + '}' elif set_state == "get_cold_on": mqtt_msg = '{"m":"get_cold_on", "d":""}' elif set_state == "set_grad_on": mqtt_msg = '{"m":"set_grad_on", "d":' + sys.argv[3] + '}' elif set_state == "get_grad_on": mqtt_msg = '{"m":"get_grad_on", "d":""}' elif set_state == "set_alexa_on": mqtt_msg = '{"m":"set_alexa_on", "d":' + sys.argv[3] + '}' elif set_state == "get_alexa_on": mqtt_msg = '{"m":"get_alexa_on", "d":""}' else: help_msg() sys.exit(-2) url = 'http://api.noduino.org/user/login' dat = dict ( user_id = mqtt_uname, app_id = 'mj2030064278', app_key = '0077d4829f52b1b2d668f8a82c5f5ded' ) #print(json.dumps(dat)) try: resp = requests.post(url = url, json = dat) except Exception as e: dbg(e) sys.exit(-1) mqtt_rx_topic = 'dev2app/' + devid mqtt_tx_topic = 'app2dev/' + devid mqtt_host = 'mqtt.noduino.org' mqtt_port = 1883 print("mqtt msg: " + mqtt_msg) def on_connect(client, u_dat, rc): if rc == 0: print("Connected successfully") else: print("Connection failed. rc = "+str(rc)) def on_publish(client, u_dat, rc): print("Message "+str(rc)+" published.") def on_subscribe(client, u_dat, mid, qos): print("Subscribe with "+str(mid)+" received") def on_message(client, udat, msg): print("Message received on topic "+msg.topic+" and payload "+str(msg.payload)) mqttc = mqtt.Client() mqttc.on_connect = on_connect mqttc.on_publish = on_publish mqttc.on_subscribe = on_subscribe mqttc.on_message = on_message #mqttc.username_pw_set(mqtt_uname, mqtt_pass) mqttc.username_pw_set(tu, tp) mqttc.connect(mqtt_host, mqtt_port) mqttc.publish(mqtt_tx_topic, mqtt_msg) mqttc.subscribe(mqtt_rx_topic) mqttc.loop_forever() </source> <source lang=bash> $ ./openlight.py your_dev_id off </source> <br>
返回到
Noduino OpenLight
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面