物联网-服务器下发命令控制设备

服务器下发命令到设备一般经过哪些步骤,简单来说就是服务器通过MQTT把需要设置的设备的属性值发送到设备具体流程,通常情况下设备一般都有像开关(打开,关闭的操作),还有就是语音控制的一些设备(百度的小度,阿里的天猫精灵),一般都是需要区分开来控制的,你可能是控制天猫精灵说什么或者是做什么,具体到数据库设计的话就是如果不是语音控制设备,一般需要一张属性表(attribute)保存这个设备都有哪些操作,操作之间可能还有联动(后续有能力再写),

1:DevicesAction的setAttribute()方法

参数:deviceId(设备ID),index(attribute表的attribute_index字段),content(具体下发的内容,控制开关等等操作,其他设备查看表attribute表的name和content_info字段做对应的操作,语音设备不查表)

eg:下发一个语音设备说:你好

物联网-服务器下发命令控制设备_第1张图片

具体调用RoomServiceImpl的setDevice方法

public boolean setDevice(Long deviceId, Integer index, String content) throws RemoteConnectFailureException {

如果不是语音设备和电动窗帘,则需要调用DeviceCenterService的setDevice方法

deviceCenterService.setDevice(roomDeviceDO.getSerialId(), indexValueMapToSet, Constant.SMARTHOTEL_DOMAIN_NAME);

方法参数serialId, Map(indexValueMapToSet),smart-hotel,map里放入index和对应的attribute

你可能感兴趣的:(物联网-服务器下发命令控制设备)