jx-mqtt v1.0.38
jx_mqtt
项目说明
晶讯MQTT插件,用于晶讯平台上的设备消息订阅、发布;
## Project setupnpm install jx-mqtt
Example
import { createMqtt } from 'jx-mqtt'
const mqttInstance = createMqtt(MQTT_URL, {
token,
placeId,
lGroupId,
gateway: {
deviceId,
meshAddress
}
srcAddress,
version: 2,
commandModels: abilityMap // version 为1时不需要此字段
})
mqttInstance.run().then(() => {
// 主动查询所有设备状态
mqttInstance.publishAllDeviceStates()
})
// 监听所有设备消息
mqttInstance.on('message', (data: Record<string, any>) => {
console.log(data)
})
// 监听单个设备消息
mqttInstance.onDeviceMessage(meshAddress, (states) => {
console.log(meshAddress)
})
// 通用开关, 只有V1版本有
mqttInstance.genericOnoff(meshAddress: 1000, onoff: 0 )
// 灯具开关
mqttInstance.onoffLight({ meshAddress: 1000, value: 1, isLowPower: false })
// handle为监听消息函数的句柄
mqttInstance.removeListener(meshAddress, hanelde)初始化
createMqtt(url: string, options: JxMqttOptions)
url: Mqtt连接地址
JxMqttOptions:
token: 用户tokenlGroupId: 大群IDsrcAddress: 源地址。接口返回的是localAddressplaceId: 场所ID(房间或教室...)version?: 1 | 2 // 版本,1表示按非能力值,2表示按能力值,具体看固件实现gateway: 网关, 类型{}deviceId: 网关的deviceIdmeshAddress: 网关的meshAddress
commandModels: 命令模型列表, 按能力值透传的话必须, 类型ArrayfunctionId: numberidentifier: string,dataSize: numberdataType?: numberdata?: anyparams?: any[]
接口说明
公共API,即按非能力值和能力值的版本都有的API
- jxMqtt.run()
- jxMqtt.destroy()
- jxMqtt.publishAllDeviceStates()
- jxMqtt.subscribeDevicesStates()
- jxMqtt.on()
- jxMqtt.onDeviceMessage()
- jxMqtt.removeListener()
按能力值透传接口
- jxMqtt.sendCommand()
- jxMqtt.onoffLight()
- jxMqtt.setBrightness()
- jxMqtt.setColorTemperature()
- jxMqtt.setColorHSL()
- jxMqtt.sceneRecall()
- jxMqtt.onoffCurtain()
- jxMqtt.puaseCurtain()
- jxMqtt.setCurtainState()
- jxMqtt.onoffSirenAlarm()
- jxMqtt.checkSirenAlarm()
- jxMqtt.setSirenAlarmVolume()
- jxMqtt.onoffSirenAlarmLight()
- jxMqtt.setSirenAlarmTime()
- jxMqtt.onoffSwitch()
- jxMqtt.onoffHumidifier()
- jxMqtt.setHumidifierGear()
- jxMqtt.setHumidifierValue()
- jxMqtt.setPirSensitivity()
- jxMqtt.onoffAirCleaner()
jxMqtt.onoffAirCleanerAnion()
旧版API(v1版本接口), 即非能力值相关透传接口
- jxMqtt.sendMsg()
- jxMqtt.setBrightness()
- jxMqtt.setColorTemperature()
- jxMqtt.sceneRecall()
- jxMqtt.setAirConditionerMode()
- jxMqtt.setAirConditionerTemperature()
- jxMqtt.setAirConditionerWindSpeed()
jxMqtt#run()
异步,调用此方法则连接mqtt服务器,同时订阅主题 +/Grp_${lGroupId}/App 的消息
jxMqtt#destroy()
销毁实例
jxMqtt#publishAllDeviceStates()
查询网关下所有子设备状态,与 jxMqtt#subscribeDevicesStates()配合使用
jxMqtt#subscribeDevicesStates()
订阅网关下所有子设备状态,与 jxMqtt#publishAllDeviceStates()配合使用
jxMqtt#on(eventName: message | connect | disconnect | error)
监听消息和MQTT状态,
jxMqtt#onDeviceMessage(meshAddress: number, eventName: function)
监听指定设备的消息
jxMqtt#removeListener(eventName: string | number, handler: function)
移除监听事件,包括on 和 onDeviceMessage 的事件
jxMqtt#sendCommand(commandList: array, meshAddress: number, isLowPower: boolean = false)
透传接口, 按能力值透传
jxMqtt#onoffLight({ meshAddress, value: 0 | 1, isLowPower: boolean })
灯具开关,关: 0,开: 1, isLowPower:是否低功耗设备,默认 false
jxMqtt#setBrightness({ meshAddress, value: 0 | 1, isLowPower: boolean })
设置灯具亮度,value 1-100
jxMqtt#setColorTemperature({ meshAddress, value: 0 | 1, isLowPower: boolean })
设置灯具色温,value: 1-100
jxMqtt#setColorHSL({ meshAddress, h, s = 100, l = 100, isLowPower })
设置灯具的HSL值, h: 1-360
jxMqtt#sceneRecall(sceneId: number)
场景触发
jxMqtt#onoffCurtain({ meshAddress, value: 0 | 1, isLowPower })
窗帘开关, 关: 0,开: 1
jxMqtt#puaseCurtain({ meshAddress, isLowPower })
暂停窗帘当前动作
jxMqtt#setCurtainState({ meshAddress, value: number, isLowPower })
设置窗帘打开的百分比,value: 0-100
jxMqtt#onOffSirenAlarm({ meshAddress, value: 0 | 1, isLowPower })
报警器开关,关: 0, 开: 1
jxMqtt#checkSirenAlarm({ meshAddress, isLowPower })
报警器自检
jxMqtt#setSirenAlarmVolume({ meshAddress, value: number, isLowPower })
设置报警器音量,value: 0-100
jxMqtt#onoffSirenAlarmLight({ meshAddress, value: number, isLowPower })
设置报警器报警灯光
jxMqtt#setSirenAlarmTime({ meshAddress, value: number, isLowPower })
设置报警器报警时长,value 单位s
jxMqtt#onoffSwitch({ meshAddress, index: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, value: 0 | 1, isLowPower })
开关控制, index指明控制哪一路,0为总路, value: 0 | 1
jxMqtt#onoffHumidifier({ meshAddress, value: 0 | 1, isLowPower })
空气加湿器开关,关: 0, 开: 1
jxMqtt#setHumidifierGear({ meshAddress, value: 0 | 1 | 2 | 3, isLowPower })
设置空气加湿器档位
jxMqtt#setHumidifierValue({ meshAddress, value: number, isLowPower })
设置空气加湿器目标湿度,value:0-100
jxMqtt#setPirSensitivity({ meshAddress, value: number, isLowPower })
设置PIR灵敏度,value:0-255
jxMqtt#onoffAirCleaner({ meshAddress, value: number, isLowPower })
空气净化器开关
jxMqtt#onoffAirCleanerAnion({ meshAddress, value: number, isLowPower })
空气净化器开关
jxMqtt#sendMsg(execHex: string)
透传接口,按16进制透传,透传协议见晶讯蓝牙Mesh Vendor协议
jxMqtt#genericOnoff(meshAddress: number, onoff: 0 | 1)
通用开关,包括灯、窗帘、空调等
jxMqtt#setBrightness(meshAddress: number, lightness: number)
设置灯具亮度
jxMqtt#setColorTemperature(meshAddress: number, colorTemperature: number)
设置灯具色温
jxMqtt#sceneRecall(sceneAddress: number)
场景触发
jxMqtt#setAirConditionerMode(meshAddress: number, mode: number)
设置空调模式, mode: 0/制冷 1/制热 2/送风 3/制湿
jxMqtt#setAirConditionerTemperature(meshAddress: number, temperature: number)
设置空调温度, temperature: 0x5 - 0x28(5°-40°)
jxMqtt#setAirConditionerWindSpeed(meshAddress: number, windGeer: number)
设置空调风速档位:0/低 1/中 2/高 3/自动 4/关闭
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago