jx-mqtt v1.0.38
jx_mqtt
项目说明
晶讯MQTT插件,用于晶讯平台上的设备消息订阅、发布;
## Project setup
npm 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
: 命令模型列表, 按能力值透传的话必须, 类型Array
functionId
: 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/关闭
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago