UNPKG

@irusland/homebridge-mqttthing

Version:

Homebridge plugin supporting various services over MQTT (with TLS fixes)

1,029 lines (1,028 loc) 36 kB
{ "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" } ] }