微信公众号分为订阅号和服务号,其中服务号需要xxx认证,个人不好申请。
但服务号提供“设备功能”。若想要使用微信硬件平台,就必须花钱认证服务号。
通过微信硬件平台提供的AirSync、AirKiss、硬件JSAPI、直连SDK等技术,蓝牙设备、Wi-Fi设备与移动网络设备等智能设备都能便捷地实现与微信之间的互联和通讯,用户可以通过公众号查看和控制自己的手环、电视、空调和其它智能家电等。
- 平台基础接入方案
如果是没有进行认证的公众号,设备不接入微信硬件云,可以使用连接、消息接收等基础能力,但将不具备微信硬件平台制定的产品标准能力。简单来说,微信就只是一个入口+转发消息的功能。
- 微信硬件云标准接入方案
接入微信硬件云的产品可拥有微信硬件平台制定的产品标准能力,实现设备互联与数
据互通。
设备有两种方法接入微信硬件云:
1、直连微信硬件云
2、通过设备商云(其他云平台)再连接到微信硬件云
另:这个和aws alexa有点像,经过alexa skill kit 出来的发送json可以发送到aws lambda,也可以直接直接转发到自己的url。(直连和转发)
1、微信硬件直连SDK
概述 微信硬件直连SDK是微信硬件平台对外提供的,能够帮助设备自动登录微信硬件云的设备SDK库,目前仅支持Wi-Fi设备使用。
采用微信硬件直连SDK,能够降低智能设备接入微信硬件云的开发门槛。开发者只需要按照微信硬件云规范的格式生成数据并调用SDK接口上报数据,同时解析和处理服务器返回或推送下来的业务数据即可,设备应用层不需要处理登录、鉴权等网络逻辑。
使用说明 - 通信数据流说明: 目前设备直连SDK主要为硬件创建了上行和下行的数据通道。设备应用层不需要处理登录,鉴权等网络逻辑,只需要负责按微信硬件云平台的格式生成数据并调用SDK接口上报数据,同时解析和处理服务器返回或推送下来的业务数据即可。
2、设备商云连接微信云通道
设备连接厂商服务器后,可通过设备openAPI与微信硬件云对接
设备能力
产品基础能力
连接能力 即设备具备微信配网、局域网发现、蓝牙发现、近场通讯等能力
微信配网 通过微信AirKiss协议配置设备上网
局域网发现 设备可在局域网内被微信发现
蓝牙发现 设备可通过蓝牙被微信发现
近场通讯 设备可以与微信近场通讯
子设备管理 可动态添加删除配件或子设备
消息接收能力 即设备具备接收音乐、地理位置、图片、文件等微信消息的能力产品标准能力
设备状态类 设备可提供其运行状态、开关状态、电池状态、声光电提醒等设备状态的能力
家电能力 家电类设备可通过微信实现如温度调节等具体能力(支持的能力类别将陆续更新)
家居类 设备可感知家居环境或可通过远程控制来开启,关闭等
环境类 设备支持空气质量,天气,水质等环境信息的检测
健康类 设备支持运动数据收集,身体体征数据检测等能力
位置类 设备可提供定位服务或地理位置信息等AirSync概述
AirSync是微信硬件平台提供的一种微信客户端与蓝牙设备间通讯的技术协议,它允许蓝牙设备与微信客户端之间收发数据,并支持通过微信客户端透传到远程服务器。该技术在支持微信互联的蓝牙手环、血压计、智能秤、血糖仪等设备上有比较多的应用。
AirSync支持经典蓝牙和BLE低功耗蓝牙技术。
- AirKiss概述
AirKiss是微信硬件平台为Wi-Fi设备提供的微信配网、局域网发现和局域网通讯的技术。开发者若要实现通过微信客户端对Wi-Fi设备配网、通过微信客户端在局域网发现Wi-Fi设备,或者把微信客户端内的音乐、图片、文件等消息通过局域网发送至Wi-Fi设备,需要在硬件设备中集成相应的AirKiss静态库。
目前,AirKiss有两种版本的静态库供开发者自行选择:
Airkiss2.0:支持局域网发现和微信配网
AirKiss3.0:支持局域网发现和局域网通讯
(局域网通信:用户可以使用微信客户端发现与手机在同一局域网下的Wi-Fi设备。比如把微信里的图片分享到连接到同一局域网的电子相框里面去)
- 微信jsapi
微信jsapi是网页javascript的接口,该接口允许厂商的网页对局域网设备(设备必须支持AirKiss3.0)和蓝牙设备进行操作。例如扫描设备,连接设备,收发数据,绑定设备等。
Html通过Jsapi可以和设备本地收发数据(即Html发送给微信客户端,微信客户端发给设备),无需通过服务器中转,所以速度较快。
举例,对于实时性要求高的蓝牙设备(如遥控汽车)可采用jsapi收发数据。
对于局域网设备,当路由器无法连上互联网,并且设备和手机处于同一个路由器下面的情况,可以使用该jsapi直接和设备通信。
可以用蓝牙
也可以用wifi
- 补充:微信 AirSync 和 微信精简协议的区别
微信精简协议目前用的就是计步协议,就是能把 BLE 设备上的记步数据上传到 微信运动 这个公众号里,然后实行排名的动作。但是功能很单一,只有统计步数这个功能,而且目前还没办法实时上传数据,BLE 设备和 微信运动 连接一次,只能上传一次数据,并且目前数据只能到微信服务器,还不支持微信服务器和客户服务器的连通。有客户在用,但是用的不多。
微信 AirSync 就是一直说的微信协议,客户可以在微信上面开设自己的公众号,然后在公众号里加入自己的功能,而且数据最终会到客户自己的服务器。如下图所示。当然,这里还有很多其他的功能,后面再说。
另:微信公众平台可以配置url,将数据转发到后台服务器(如sae,bae)中进行处理,并有两种加密手段。分别是TOKEN和ASEkey对称加密。感觉两个加密方法原理应该没得撒子区别得,都是对称加密,只是一般来说ASEkey可以写长一点。
关于非对称加密和CA(授权中心):
我觉得吧,只要没上RSA,都没得撒子区别。但由于非对称加密方法一般都比较慢,性能较差,实际使用中也仅仅是用它确定一个双方要使用的暗号(也就是对称加密密码),此后的通信都还是基于对称加密机制。
而数字签名一般就是用非对称加密技术来实现的,例如消息的发送者用他自己的私钥进行消息的加密,接受者用发送者的公钥对接收到的消息进行解密,从而实现不可否认性。
同样的,非对称加密也涉及一个问题:公钥的发布和交换问题。如何去确定及验证一个信息发布者公钥的合法性。
为此,人们提出了CA(授权中心)的概念,授权中心会发行一个个的证书,每个证书本质上包含:实体或个人的名字以及对应的公钥。为了保证证书的安全性,授权中心用自己的私钥对证书进行加密,证书接受者用授权中心的公钥对该证书进行解密,从而实现证书的数字签名。
证书解密后,就可以拿到实体或个人的公钥了。
参考:
CC2541 连接微信(1)——微信 AirSync 和 微信精简协议 介绍
WIKI
- 设备功能
针对硬件厂商和开发者提供的公众号-设备功能”插件,通过微信认证的公众号
可以开通-设备功能”插件,开通了此功能的公众号可以进行硬件开发并可以调
用与微信硬件有关的接入。
- 微信硬件云端
运行与微信硬件相关服务、接入提供 API 和数据交换服R的微信侧网络服R层。
设备厂商、开发者云端
由硬件设备生产商或硬件数据开发者运行的,提供与微信硬件云进行数据交换,
互联互通的开发者侧网络服R层。硬件开发者云端提供 URL 后,微信硬件云与
之进行通讯。硬件开发者云端 URL 与公众号 URL 可以不同。
- 产品能力(service)
硬件产品所具有的抽象话的功能或特性,在微信硬件平台中一款硬件产品具有一
个或多个产品能力,如:开关,电池状态,运行状态等。每一个产品能力具有能
力名称和能力代码,能力代码用于T分唯一的一个能力。
另:这个产品能力和AWS alexa的Skill的使用方法有点像,都需要自己定义“产品能力”的“枚举类型。”
- 特征值
除了个M产品能力无特征外,大部分产品能力由多个特征值组成,如-电池状态”
能P中的-电量”。特征值在设备的远程控制、状态查询接入中将频繁A用N。
数值类型的特征值具有 MIN 最小值,MAX 最大值及 STEP 步进值。例某特征值
MIN 5 0,MAX 5 5,步进值5 1,则通过接入进行控制时只允许接收 0 5 的
数值,递增时特征值+1。