@irusland/homebridge-mqttthing
Version:
Homebridge plugin supporting various services over MQTT (with TLS fixes)
1,029 lines (1,028 loc) • 36 kB
JSON
{
"bridge": {
"name": "Homebridge",
"username": "DB:7D:A3:24:AA:69",
"_username": "DA:7C:A6:27:A7:69",
"port": 55555,
"pin": "884-67-467",
"_pin": "813-65-465"
},
"description": "This is an example configuration file. You can use this as a template for creating your own configuration file.",
"platforms": [
{
"platform": "config",
"name": "Config",
"port": 8080,
"sudo": false
}
],
"disabledAccessories": [
{
"type": "lightbulb-Colour",
"name": "Test lightbulb",
"url": "homebridge2",
"mqttPubOptions": {
"retain": true
},
"logMqtt": true,
"codec": "empty-codec.js",
"topics": {
"getOnline": "test/lightbulb/getOnline",
"getOn": "test/lightbulb/getOn",
"setOn": "test/lightbulb/setOn",
"getHue": "test/lightbulb/getHue",
"setHue": "test/lightbulb/setHue",
"getSaturation": "test/lightbulb/getSaturation",
"setSaturation": "test/lightbulb/setSaturation",
"getBrightness": "test/lightbulb/getBrightness",
"setBrightness": "test/lightbulb/setBrightness",
"getColorTemperature": "test/lightbulb/getTemperature",
"setColorTemperature": "test/lightbulb/setTemperature"
},
"startPub": [
{
"topic": "test/lightbulb/setOn",
"message": "1"
},
{
"topic": "test/lightbulb/getOn",
"message": "1"
},
{
"topic": "test/lightbulb/setBrightness",
"message": "80"
},
{
"topic": "test/lightbulb/getBrightness",
"message": "80"
},
{
"topic": "test/lightbulb",
"message": "Hello world"
}
],
"onlineValue": "Online",
"integerValue": true,
"accessory": "mqttthing"
},
{
"type": "lightbulb-HSV",
"name": "Test HSV Light",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setHSV": "test/hsvlight/setHSV",
"getHSV": "test/hsvlight/getHSV"
},
"startPub": [
{
"topic": "test/hsvlight/setHSV"
}
],
"accessory": "mqttthing"
},
{
"accessory": "mqttthing",
"type": "lightbulb-HSV",
"name": "Test espurna Light",
"url": "homebridge2",
"topics": {
"getHSV": "test/hsvlight2/hsv",
"setHSV": "test/hsvlight2/hsv/set",
"getOn": "test/hsvlight2/on",
"setOn": "test/hsvlight2/on/set"
},
"logMqtt": true,
"integerValue": true,
"codec": "keep-alive-codec.js",
"keepAliveTopic": "keep/alive",
"keepAlivePeriod": 120,
"keepAliveMessage": "Keep-alive!"
},
{
"accessory": "mqttthing",
"type": "lightbulb",
"name": "Test RGB Light",
"url": "homebridge2",
"topics": {
"getRGB": "test/rgblight/get",
"setRGB": "test/rgblight/set",
"getOn": "test/rgblight/get",
"setOn": "test/rgblight/set"
},
"logMqtt": true,
"integerValue": false,
"codec": "json",
"jsonCodec": {
"properties": {
"on": "state.power",
"RGB": "state.rgb"
},
"fixed": {
"version": 1,
"sender": "MQTT-Thing"
}
}
},
{
"accessory": "mqttthing",
"type": "lightbulb-RGBW",
"name": "Test RGBW Light",
"url": "homebridge2",
"topics": {
"getRGBW": "test/rgbwlight/rgb",
"setRGBW": "test/rgbwlight/rgb/set"
},
"logMqtt": true,
"integerValue": true,
"hexPrefix": "#"
},
{
"accessory": "mqttthing",
"type": "lightbulb-RGB",
"name": "Test RGBW Light 2",
"url": "homebridge2",
"topics": {
"getRGB": "test/rgbwlight2",
"setRGB": "test/rgbwlight2/set",
"getWhite": "test/rgbwlight2",
"setWhite": "test/rgbwlight2/set",
"getOn": "test/rgbwlight2",
"setOn": "test/rgbwlight2/set"
},
"logMqtt": true,
"integerValue": true,
"hexPrefix": "#",
"codec": "json",
"jsonCodec": {
"properties": {
"RGB": "state.rgb",
"white": "state.white",
"on": "state.on"
}
}
},
{
"accessory": "mqttthing",
"type": "lightbulb-RGBWW",
"name": "Test RGBWW Light",
"url": "homebridge2",
"topics": {
"getRGBWW": "test/rgbwwlight/rgb",
"setRGBWW": "test/rgbwwlight/rgb/set"
},
"logMqtt": true
},
{
"accessory": "mqttthing",
"type": "lightbulb-White",
"name": "Test White Light",
"url": "homebridge2",
"topics": {
"getWhite": "test/whitelight/white",
"setWhite": "test/whitelight/white/set"
},
"logMqtt": true
},
{
"accessory": "mqttthing",
"type": "lightbulb-ColTemp",
"name": "Test ColorTemperature Light",
"url": "homebridge2",
"topics": {
"getOn": "test/coltemp/getOn",
"setOn": "test/coltemp/setOn",
"getBrightness": "test/coltemp/getBrightness",
"setBrightness": "test/coltemp/setBrightness",
"getColorTemperature": "test/coltemp/getTemperature",
"setColorTemperature": "test/coltemp/setTemperature"
},
"logMqtt": true,
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "lightbulb-Dimmable",
"name": "Test Dimmable Light",
"url": "homebridge2",
"topics": {
"getOn": "test/dimmable/setOn",
"setOn": "test/dimmable/setOn",
"getBrightness": "test/dimmable/getBrightness",
"setBrightness": "test/dimmable/setBrightness"
},
"logMqtt": true,
"onValue": "DIMMABLE",
"offValue": "OFF",
"otherValueOff": true,
"codec": "test-codec.js"
},
{
"accessory": "mqttthing",
"type": "lightbulb-OnOff",
"name": "Alternative Light Mode",
"url": "homebridge2",
"topics": {
"getOn": "test/dimmable/setOn",
"setOn": "test/dimmable/setOn"
},
"logMqtt": true,
"onValue": "ALTMODE",
"offValue": "OFF",
"otherValueOff": true
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Test switch",
"url": "homebridge2",
"topics": {
"getOn": "test/switch/getOn",
"setOn": "test/switch/setOn"
},
"integerValue": true,
"turnOffAfterms": 2000
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Test switch 2",
"url": "homebridge2",
"topics": {
"getOn": "test/switch2/getOn",
"setOn": "test/switch2/setOn"
},
"integerValue": true,
"history": true
},
{
"accessory": "mqttthing",
"type": "outlet",
"name": "Test outlet",
"url": "homebridge2",
"mqttPubOptions": {
"retain": true
},
"topics": {
"getOn": "test/outlet/getOn",
"setOn": "test/outlet/setOn",
"getInUse": "test/outlet/getInUse",
"getWatts": "test/outlet/getWatts",
"getVolts": "test/outlet/getVolts",
"getAmperes": "test/outlet/getAmperes"
},
"integerValue": true,
"history": true,
"confirmationPeriodms": 2000,
"retryLimit": 10,
"logMqtt": true
},
{
"accessory": "mqttthing",
"confirmationPeriodms": 1000,
"confirmationIndicateOffline": true,
"mqttPubOptions": {
"retain": true
},
"name": "WZ Licht Vorne",
"offValue": "off",
"onlineValue": "true",
"onValue": "on",
"retryLimit": 3,
"topics": {
"getOn": "shellies/shelly1-2C6BF0/relay/0",
"getOnline": "shellies/shelly1-2C6BF0/online",
"setOn": "shellies/shelly1-2C6BF0/relay/0/command"
},
"type": "switch",
"url": "homebridge2"
},
{
"accessory": "mqttthing",
"type": "motionSensor",
"name": "Test motion sensor",
"url": "homebridge2",
"topics": {
"getMotionDetected": "test/motion/detected",
"getStatusActive": "test/motion/active",
"getStatusFault": "test/motion/fault",
"getStatusTampered": "test/motion/tampered",
"getStatusLowBattery": "test/motion/lowBattery",
"getBatteryLevel": "test/motion/batteryLevel",
"getChargingState": "test/motion/chargingState"
},
"integerValue": true,
"chargingStateValues": [
"NotCharging",
"Charging",
"NotChargeable"
],
"logMqtt": true,
"turnOffAfterms": 3000,
"history": {
"mergeInterval": 5
}
},
{
"accessory": "mqttthing",
"type": "occupancySensor",
"name": "Test occupancy sensor",
"url": "homebridge2",
"topics": {
"getOccupancyDetected": "test/occupancy/detected",
"getStatusActive": "test/occupancy/active",
"getStatusFault": "test/occupancy/fault",
"getStatusTampered": "test/occupancy/tampered",
"getStatusLowBattery": "test/occupancy/lowBattery"
},
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "lightSensor",
"name": "Test light sensor",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getCurrentAmbientLightLevel": "test/light/level"
}
},
{
"accessory": "mqttthing",
"type": "temperatureSensor",
"name": "Test temperature sensor",
"url": "homebridge2",
"topics": {
"getCurrentTemperature": "test/temperature"
},
"history": true,
"logMqtt": true,
"maxTemperature": 150
},
{
"accessory": "mqttthing",
"type": "humiditySensor",
"name": "Test humidity sensor",
"url": "homebridge2",
"topics": {
"getCurrentRelativeHumidity": "test/humidity"
},
"history": {
"size": 1000,
"autoRepeat": false,
"persistencePath": "history"
}
},
{
"accessory": "mqttthing",
"type": "airPressureSensor",
"name": "Test air pressure sensor",
"url": "homebridge2",
"topics": {
"getAirPressure": "test/airpressure"
},
"history": true
},
{
"accessory": "mqttthing",
"type": "weatherStation",
"name": "Test weather station",
"serviceNames": {
"temperature": "WS-Temperature",
"humidity": "WS-Humidity",
"airPressure": "WS-AirPressure",
"weather": "WS-WeatherData"
},
"url": "homebridge2",
"topics": {
"getCurrentAmbientLightLevel": "test/weather/level",
"getCurrentTemperature": "test/weather/temperature",
"getCurrentRelativeHumidity": "test/weather/humidity",
"getAirPressure": "test/weather/airpressure",
"getWeatherCondition": "test/weather/condition",
"getRain1h": "test/weather/rain1",
"getRain24h": "test/weather/rain24",
"getUVIndex": "test/weather/uv",
"getVisibility": "test/weather/visibility",
"getWindDirection": "test/weather/winddirection",
"getWindSpeed": "test/weather/windspeed"
},
"history": false
},
{
"accessory": "mqttthing",
"type": "contactSensor",
"name": "Test contact sensor",
"url": "homebridge2",
"topics": {
"getContactSensorState": "test/contact/state"
},
"integerValue": true,
"history": true
},
{
"accessory": "mqttthing",
"type": "doorbell",
"name": "Test doorbell",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getSwitch": "test/doorbell/ring",
"getMotionDetected": "test/doorbell/motion/detected",
"setVolume": "test/doorbell/volume",
"setBrightness": "test/doorbell/brightness"
},
"switchValues": [
"SINGLE",
"DOUBLE",
"LONG"
],
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "securitySystem",
"name": "Test Security System",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setTargetState": "test/security/target",
"getTargetState": "test/security/current",
"getCurrentState": "test/security/current"
},
"targetStateValues": [
"StayArm",
"AwayArm",
"NightArm",
"Disarmed"
],
"currentStateValues": [
"StayArm",
"AwayArm",
"NightArm",
"Disarmed",
"Triggered"
],
"restrictTargetState": [
1,
2,
3
]
},
{
"accessory": "mqttthing",
"type": "smokeSensor",
"name": "Test smoke sensor",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getSmokeDetected": "test/smoke/detected"
},
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "leakSensor",
"name": "Test leak sensor",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getLeakDetected": "test/leak/detected"
},
"integerValue": true,
"resetStateAfterms": 5000
},
{
"accessory": "mqttthing",
"type": "statelessProgrammableSwitch",
"name": "Test Stateless Programmable Switch",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getSwitch": "test/spswitch/state"
},
"restrictSwitchValues": [
0,
1
]
},
{
"accessory": "mqttthing",
"type": "statelessProgrammableSwitch",
"name": "Multi-switch",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getSwitch": [
"test/mspswitch/1",
"test/mspswitch/2",
"test/mspswitch/3"
]
}
},
{
"accessory": "mqttthing",
"type": "garageDoorOpener",
"name": "Test Garage Door",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setTargetDoorState": "test/garage/target",
"getTargetDoorState": "test/garage/target",
"getCurrentDoorState": "test/garage/current",
"setLockTargetState": "test/lock/target",
"getLockTargetState": "test/garagelock/target",
"getLockCurrentState": "test/garagelock/current",
"getObstructionDetected": "test/garage/obstruction"
},
"doorValues": [
"Open",
"Closed",
"Opening",
"Closing",
"Stopped"
],
"lockValues": [
"Unsecured",
"Secured",
"Jammed",
"Unknown"
]
},
{
"accessory": "mqttthing",
"type": "garageDoorOpener",
"name": "Simple Garage Door",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setTargetDoorState": "test/garage2/target",
"getTargetDoorState": "test/garage2/target",
"getDoorMoving": "test/garage2/moving"
},
"doorTargetValues": [
"Open",
"Closed"
]
},
{
"accessory": "mqttthing",
"type": "lockMechanism",
"name": "Test Lock",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setLockTargetState": "test/lock/target",
"getLockTargetState": "test/lock/current",
"getLockCurrentState": "test/lock/current"
},
"lockValues": [
"Unsecured",
"Secured",
"Jammed",
"Unknown"
]
},
{
"accessory": "mqttthing",
"type": "lightbulb",
"name": "OnOffTest",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getOn": "test/onoff/getOn",
"setOn": "test/onoff/setOn"
},
"onValue": "on",
"offValue": "off"
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Morning Scene",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getOn": "test/scene/name",
"setOn": "test/scene/name"
},
"onValue": "morning"
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Afternoon Scene",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getOn": "test/scene/name",
"setOn": "test/scene/name"
},
"onValue": "afternoon"
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Evening Scene",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getOn": "test/scene/name",
"setOn": "test/scene/name"
},
"onValue": "evening"
},
{
"accessory": "mqttthing",
"type": "speaker",
"name": "Speaker",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getMute": "test/speaker/getMute",
"setMute": "test/speaker/setMute",
"getVolume": "test/speaker/getVolume",
"setVolume": "test/speaker/setVolume"
}
},
{
"accessory": "mqttthing",
"type": "microphone",
"name": "Microphone",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getMute": "test/microphone/getMute",
"setMute": "test/microphone/setMute",
"getVolume": "test/microphone/getVolume",
"setVolume": "test/microphone/setVolume"
}
},
{
"accessory": "mqttthing",
"type": "windowCovering",
"name": "Blind",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getCurrentPosition": "test/blind/getCurrentPosition",
"setTargetPosition": "test/blind/setTargetPosition",
"getPositionState": "test/blind/getPositionState",
"setTargetVerticalTiltAngle": "test/blind/setTargetVerticalTiltAngle",
"getCurrentVerticalTiltAngle": "test/blind/getCurrentVerticalTiltAngle"
}
},
{
"accessory": "mqttthing",
"type": "window",
"name": "Window",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getCurrentPosition": "test/window/getCurrentPosition",
"setTargetPosition": "test/window/setTargetPosition",
"getPositionState": "test/window/getPositionState"
}
},
{
"accessory": "mqttthing",
"type": "door",
"name": "Door",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getCurrentPosition": "test/door/getCurrentPosition",
"setTargetPosition": "test/door/setTargetPosition",
"getPositionState": "test/door/getPositionState"
}
},
{
"accessory": "mqttthing",
"type": "carbonDioxideSensor",
"name": "CO2",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getCarbonDioxideDetected": "test/co2/get"
}
},
{
"accessory": "mqttthing",
"type": "airQualitySensor",
"name": "AirQuality",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getAirQuality": "test/airquality/get",
"getAirQualityPPM": "test/airqualityppm/get",
"getPM10Density": "test/airquality/pm10",
"getPM2_5Density": "test/airquality/pm2_5",
"getOzoneDensity": "test/airquality/ozone",
"getSulphurDioxideDensity": "test/airquality/so2",
"getNitrogenDioxideDensity": "test/airquality/no2",
"getVOCDensity": "test/airquality/voc",
"getCarbonMonoxideLevel": "test/airquality/co",
"getCarbonDioxideLevel": "test/airquality/co2",
"getCurrentTemperature": "test/airquality/temperature",
"getCurrentRelativeHumidity": "test/airquality/humidity"
},
"history": true
},
{
"accessory": "mqttthing",
"type": "valve",
"valveType": "sprinkler",
"name": "Sprinkler",
"url": "homebridge2",
"topics": {
"getActive": "test/sprinkler/getActive",
"setActive": "test/sprinkler/setActive",
"getInUse": "test/sprinkler/getInUse",
"getDuration": "test/sprinkler/getDuration",
"setDuration": "test/sprinkler/setDuration",
"getRemainingDuration": "test/sprinkler/getRemainingDuration"
},
"integerValue": true,
"durationTimer": true,
"maxDuration": 180
},
{
"accessory": "mqttthing",
"type": "thermostat",
"name": "Thermostat",
"url": "homebridge2",
"logMqtt": "true",
"topics": {
"getCurrentHeatingCoolingState": "test/thermostat/getCurrentState",
"setCurrentHeatingCoolingState": "test/thermostat/setCurrentState",
"getTargetHeatingCoolingState": "test/thermostat/getTargetState",
"setTargetHeatingCoolingState": "test/thermostat/setTargetState",
"getCurrentTemperature": "test/thermostat/getCurrentTemperature",
"setTargetTemperature": "test/thermostat/setTargetTemperature",
"getTargetTemperature": "test/thermostat/getTargetTemperature",
"setTemperatureDisplayUnits": "test/thermostat/setTemperatureDisplayUnits",
"getTemperatureDisplayUnits": "test/thermostat/getTemperatureDisplayUnits"
},
"minTemperature": 5,
"maxTemperature": 27.5,
"restrictHeatingCoolingState": [
0,
1
]
},
{
"accessory": "mqttthing",
"type": "television",
"name": "Television",
"url": "homebridge2",
"topics": {
"setActive": "test/television/setActive",
"getActive": "test/television/getActive",
"setActiveInput": "test/television/setActiveInput",
"getActiveInput": "test/television/getActiveInput",
"setRemoteKey": "test/television/setRemoteKey"
},
"inputs": [
{
"name": "Live TV",
"value": "TV"
},
{
"name": "HDMI 1",
"value": "HDMI1"
},
{
"name": "HDMI 2",
"value": "HDMI2"
},
{
"name": "HDMI 3",
"value": "HDMI3"
},
{
"name": "Amazon Prime Video",
"value": "AMAZON"
}
],
"logMqtt": true,
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Ucam Gartenhaus Audio",
"manufacturer": "INSTAR",
"model": "IN-9008 FullHD",
"serialNumber": "1234567890",
"firmwareRevision": "0.1",
"url": "homebridge2",
"username": "USERNAME",
"password": "PASSWORD",
"caption": "Audio",
"mqttOptions": {
"keepalive": 30
},
"mqttPubOptions": {
"retain": true
},
"logMqtt": true,
"topics": {
"getOn": {
"topic": "instar/local/status/multimedia/audio/enable/high",
"apply": "return JSON.parse(message).val;"
},
"setOn": {
"topic": "instar/local/multimedia/audio/enable/high",
"apply": "return JSON.stringify({val: (message)})"
}
},
"onValue": "1",
"offValue": "0",
"confirmationPeriodms": 1000,
"retryLimit": 3
},
{
"accessory": "mqttthing",
"type": "switch",
"name": "Hallway Lights",
"url": "homebridge2",
"manufacturer": "Sonoff",
"model": "Touch",
"serialNumber": "sonoff1",
"topics": {
"setOn": "cmnd/sonoff1/power",
"getOn": "stat/sonoff1/POWER",
"getOnline": {
"topic": "tele/sonoff1/LWT",
"apply": "return message == 'Online' ? 'ON' : 'OFF';"
}
},
"onValue": "ON",
"offValue": "OFF",
"confirmationPeriodms": 1000,
"retryLimit": 3,
"logMqtt": true,
"startPub": {
"cmnd/sonoff1/power": ""
},
"turnOffAfterms": 6000
},
{
"accessory": "mqttthing",
"type": "statelessProgrammableSwitch",
"name": "4 Button Remote",
"url": "homebridge2",
"caption": "4 Button Remote",
"topics": {
"getSwitch": [
{
"topic": "tele/RF/RESULT",
"apply": "return JSON.parse( message ).RfReceived.Data;"
}, {
"topic": "tele/RF/RESULT",
"apply": "return JSON.parse( message ).RfReceived.Data;"
}, {
"topic": "tele/RF/RESULT",
"apply": "return JSON.parse( message ).RfReceived.Data;"
}, {
"topic": "tele/RF/RESULT",
"apply": "return JSON.parse( message ).RfReceived.Data;"
}
]
},
"switchValues": [
[ "A56021" ],
[ "A56022" ],
[ "A56028" ],
[ "A56024" ]
],
"restrictSwitchValues": [
0
],
"logMqtt": true
},
{
"accessory": "mqttthing",
"type": "irrigationSystem",
"name": "Irrigation",
"url": "homebridge2",
"topics": {
"getActive": "test/irrigation/getActive",
"setActive": "test/irrigation/setActive"
},
"zones": [
{
"name": "Zone 1",
"topics": {
"getActive": "test/irrigation/1/getActive",
"setActive": "test/irrigation/1/setActive",
"getInUse": "test/irrigation/1/getInUse"
}
},
{
"name": "Zone 2",
"topics": {
"getActive": "test/irrigation/2/getActive",
"setActive": "test/irrigation/2/setActive",
"getInUse": "test/irrigation/2/getInUse"
}
},
{
"name": "Zone 3",
"topics": {
"getActive": "test/irrigation/3/getActive",
"setActive": "test/irrigation/3/setActive",
"getInUse": "test/irrigation/3/getInUse"
}
}
],
"durationTimer": true,
"integerValue": true
},
{
"accessory": "mqttthing",
"type": "airPurifier",
"name": "Air Purifier",
"url": "homebridge2",
"topics": {
"getActive": "test/airpurifier/getActive",
"setActive": "test/airpurifier/setActive",
"getCurrentAirPurifierState": "test/airpurifier/getCurrentState",
"getTargetAirPurifierState": "test/airpurifier/getTargetState",
"setTargetAirPurifierState": "test/airpurifier/setTargetState",
"getRotationSpeed": "test/airpurifier/getRotationSpeed",
"getSwingMode": "test/airpurifier/getSwingMode",
"setLockPhysicalControls": "test/airpurifier/setLockPhysicalControls"
},
"integerValue": true
}
],
"accessories": [
{
"accessory": "mqttthing",
"type": "heaterCooler",
"name": "HeaterCooler",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"setActive": "test/heatcool/setActive",
"getActive": "test/heatcool/getActive",
"getCurrentHeaterCoolerState": "test/heatcool/getCurrentHeaterCoolerState",
"setTargetHeaterCoolerState": "test/heatcool/setCurrentHeaterCoolerState",
"getCurrentTemperature": "test/heatcool/getCurrentTemperature",
"setCoolingThresholdTemperature": "test/heatcool/setCoolingThresholdTemperature",
"setHeatingThresholdTemperature": "test/heatcool/setHeatingThresholdTemperature",
"setRotationMode": "test/heatcool/setRotationMode",
"setSwingMode": "test/heatcool/setSwingMode",
"setRotationSpeed": {
"topic": "test/heatcool/setRotationSpeed",
"apply": "return [ 'off', 'min', 'low', 'medium', 'high', 'max' ][ Math.floor( message / 20 ) ];"
}
}
}, {
"accessory": "mqttthing",
"type": "fan",
"name": "Test Fan",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getOn": "test/fan/getOn",
"setOn": "test/fan/setOn",
"getRotationDirection": "test/fan/getRotationDirection",
"setRotationDirection": "test/fan/setRotationDirection",
"getRotationSpeed": { "topic": "test/fan/getRotationSpeed", "apply": "return Math.floor((message+10)/20)*20" },
"setRotationSpeed": { "topic": "test/fan/setRotationSpeed", "apply": "return Math.floor((message+10)/20)*20" },
"xgetRotationSpeed": "test/fan/getRotationSpeed",
"xsetRotationSpeed": "test/fan/setRotationSpeed"
},
"integerValue": true
}, {
"accessory": "mqttthing",
"type": "lightbulb-OnOff",
"name": "Toggle-Light",
"url": "homebridge2",
"logMqtt": true,
"topics": {
"getOn": "test/toggleLight/getOn",
"setOn": {
"topic": "test/toggleLight/setOn",
"apply": "return 1;"
}
},
"integerValue": true
}, {
"accessory": "mqttthing",
"type": "lightbulb",
"url": "homebridge2",
"topics": {
"getOn": "test/DimmerRgb1",
"setOn": "test/DimmerRgb1",
"getRGB": "test/DimmerRgb1/rgb",
"setRGB": "test/DimmerRgb1/rgb"
},
"onValue": "on",
"offValue": "off",
"name": "RGBTest"
}
]
}