jx-mqtt v1.0.16
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: 用户token
- lGroupId: 大群ID
- srcAddress: 源地址。接口返回的是localAddress
- placeId: 场所ID(房间或教室...)
- version?: 1 | 2 // 版本,1表示按非能力值,2表示按能力值,具体看固件实现
- gateway: 网关, 类型- {}- deviceId: 网关的deviceId
- meshAddress: 网关的meshAddress
 
- commandModels: 命令模型列表, 按能力值透传的话必须, 类型- Array- functionId: number
- identifier: string,
- dataSize: number
- dataType?: number
- data?: any
- params?: 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