1.0.38 • Published 1 year ago

jx-mqtt v1.0.38

Weekly downloads
-
License
ISC
Repository
-
Last release
1 year ago

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: 用户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)

移除监听事件,包括ononDeviceMessage 的事件

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.0.38

1 year ago

1.0.37

2 years ago

1.0.36

2 years ago

1.0.35

2 years ago

1.0.34

2 years ago

1.0.33

2 years ago

1.0.32

2 years ago

1.0.31

2 years ago

1.0.30

2 years ago

1.0.29

2 years ago

1.0.28

2 years ago

1.0.27

2 years ago

1.0.26

2 years ago

1.0.25

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.20

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.16

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago