php 连接 onenet,如何通过第三方MQTT SDK连接oneNet

#!/usr/bin/env python

# -*- coding:utf-8 -*-

from __future__ import print_function

import paho.mqtt.client a**tt

import struct

import json

# CONNECT 方式:

# client_id:     DEV_ID

# username:  PRO_ID

# password:   AUTHINFO(鉴权信息)

# 可以连接上设备云,CONNECT 和 CONNACK握手成功

# PRO_ID:项目ID

# API_KEY:设备API_KEY

# DEV_ID:设备ID

# temperature:已创建的一个数据流

#

# 我订阅的主题是PRO_ID/API_KEY/DEV_ID/temperature

# 我发布的主题是DEV_ID/temperature

DEV_ID = "24831088"

PRO_ID = "118363"

AUTH_INFO = "**"

API_KEY = "**"

# topic = 'topic1'

TYPE_JSON = 0x01

TYPE_FLOAT = 0x17

body = {

"datastreams":[

{

"id":"temperature",

"datap**":[

{

"at":"2016-08-15T14:47:00",

"value":50

}

]

}

]

}

def build_payload(type, payload):

datatype = type

packet = bytearray()

packet.extend(struct.pack("!B", datatype))

if isinstance(payload, str):

udata = payload.encode('utf-8')

length = len(udata)

packet.extend(struct.pack("!H" + str(length) + "s", length, udata))

return packet

def on_connect(client, userdata, **s, rc):

print("<<<

print("connected with result code " + mqtt.connack_string(rc))

json_body = json.dumps(body)

packet = build_payload(TYPE_JSON, json_body)

print("PUBLISH>>>>")

client.publish("$dp", packet, qos=1)

# client.publish(topic, packet, qos=1)

# def on_message(client, userdata, msg):

#     print(msg.topic+" "+str(msg.payload))

def on_publish(client, userdata, mid):

print("<<<

print("mid:" + str(mid))

def main():

client = mqtt.Client(client_id=DEV_ID, protocol=mqtt.MQTTv311)

client.on_connect = on_connect

client.on_publish = on_publish

# client.on_message = on_message

client.username_pw_set(username=PRO_ID, password=AUTH_INFO)

print("CONNECT>>>>")

client.connect('183.230.40.39', port=6002, keepalive=120)

client.loop_forever()

if __name__ == '__main__':

main()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值