@irusland/homebridge-mqttthing
Version:
Homebridge plugin supporting various services over MQTT (with TLS fixes)
1,006 lines • 98.5 kB
JSON
{
"pluginAlias": "mqttthing",
"pluginType": "accessory",
"schema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"title": "Type",
"description": "Select the accessory type.",
"placeholder": "lightbulb",
"oneOf": [
{
"title": "Air Pressure Sensor",
"enum": [
"airPressureSensor"
]
},
{
"title": "Air Purifier",
"enum": [
"airPurifier"
]
},
{
"title": "Air Quality Sensor",
"enum": [
"airQualitySensor"
]
},
{
"title": "Carbon Dioxide Sensor",
"enum": [
"carbonDioxideSensor"
]
},
{
"title": "Contact Sensor",
"enum": [
"contactSensor"
]
},
{
"title": "Door",
"enum": [
"door"
]
},
{
"title": "Doorbell",
"enum": [
"doorbell"
]
},
{
"title": "Fan",
"enum": [
"fan"
]
},
{
"title": "Fanv2",
"enum": [
"fanv2"
]
},
{
"title": "Garage door opener",
"enum": [
"garageDoorOpener"
]
},
{
"title": "Heater Cooler",
"enum": [
"heaterCooler"
]
},
{
"title": "Humidity Sensor",
"enum": [
"humiditySensor"
]
},
{
"title": "Irrigation System",
"enum": [
"irrigationSystem"
]
},
{
"title": "Leak Sensor",
"enum": [
"leakSensor"
]
},
{
"title": "Light bulb",
"enum": [
"lightbulb"
]
},
{
"title": "Light bulb - on/off",
"enum": [
"lightbulb-OnOff"
]
},
{
"title": "Light bulb - white dimmable (0-100)",
"enum": [
"lightbulb-Dimmable"
]
},
{
"title": "Light bulb - white dimmable (0-255)",
"enum": [
"lightbulb-White"
]
},
{
"title": "Light bulb - white with variable colour temperature",
"enum": [
"lightbulb-ColTemp"
]
},
{
"title": "Light bulb - colour (separate topics)",
"enum": [
"lightbulb-Colour"
]
},
{
"title": "Light bulb - HSV",
"enum": [
"lightbulb-HSV"
]
},
{
"title": "Light bulb - RGB",
"enum": [
"lightbulb-RGB"
]
},
{
"title": "Light bulb - RGBW",
"enum": [
"lightbulb-RGBW"
]
},
{
"title": "Light bulb - RGBWW",
"enum": [
"lightbulb-RGBWW"
]
},
{
"title": "Light Sensor",
"enum": [
"lightSensor"
]
},
{
"title": "Lock Mechanism",
"enum": [
"lockMechanism"
]
},
{
"title": "Microphone",
"enum": [
"microphone"
]
},
{
"title": "Motion Sensor",
"enum": [
"motionSensor"
]
},
{
"title": "Occupancy Sensor",
"enum": [
"occupancySensor"
]
},
{
"title": "Outlet",
"enum": [
"outlet"
]
},
{
"title": "Security System",
"enum": [
"securitySystem"
]
},
{
"title": "Smoke Sensor",
"enum": [
"smokeSensor"
]
},
{
"title": "Speaker",
"enum": [
"speaker"
]
},
{
"title": "StatelessProgrammableSwitch",
"enum": [
"statelessProgrammableSwitch"
]
},
{
"title": "Switch",
"enum": [
"switch"
]
},
{
"title": "Television",
"enum": [
"television"
]
},
{
"title": "Temperature Sensor",
"enum": [
"temperatureSensor"
]
},
{
"title": "Thermostat",
"enum": [
"thermostat"
]
},
{
"title": "Valve",
"enum": [
"valve"
]
},
{
"title": "Weather Station",
"enum": [
"weatherStation"
]
},
{
"title": "Window",
"enum": [
"window"
]
},
{
"title": "Window Covering",
"enum": [
"windowCovering"
]
}
]
},
"name": {
"type": "string",
"minLength": 1,
"required": true,
"title": "Name",
"description": "Name of accessory, as displayed in HomeKit."
},
"url": {
"type": "string",
"title": "URL",
"description": "URL of MQTT server (optional), default: mqtt://localhost:1883",
"placeholder": "mqtt://localhost:1883"
},
"username": {
"type": "string",
"required": false,
"title": "Username",
"description": "Username for MQTT server (optional)"
},
"password": {
"type": "string",
"required": false,
"title": "Password",
"description": "Password for MQTT server (optional)"
},
"mqttOptions": {
"type": "object",
"title": "MQTT Options",
"properties": {
"keepalive": {
"type": "integer",
"title": "Keep Alive",
"description": "Keep alive interval (seconds), or 0 to disable",
"placeholder": 0
}
}
},
"mqttPubOptions": {
"type": "object",
"title": "MQTT Publish Options",
"properties": {
"retain": {
"type": "boolean",
"title": "Retain",
"description": "Publishing - set Retain flag"
}
}
},
"logMqtt": {
"type": "boolean",
"readOnly": false,
"writeOnly": false,
"title": "Log MQTT",
"description": "Set to true to enable MQTT logging for this accessory"
},
"codec": {
"type": "string",
"title": "Codec",
"description": "Filename of JavaScript file implementing codec"
},
"debounceRecvms": {
"type": "integer",
"title": "Receive Debounce (ms)",
"description": "Whenever receiving a message on any configured topic, wait for the number of milliseconds specified before notifying Homekit. If a subsequent message is received during the debounce period, the debounce timer is restarted. This can be useful to filter extraneous notification messages from accessories."
},
"optimizePublishing": {
"type": "boolean",
"title": "Optimize Publishing",
"description": "Set to true to suppress republishing of the previously-published value (on each topic)"
},
"topics": {
"type": "object",
"title": "Topics",
"properties": {
"getOnline": {
"type": "string",
"description": "Topic used to notify mqttthing of 'online' status"
},
"getAirPressure": {
"type": "string",
"description": "Topic used to notify mqttthing of 'air pressure'",
"condition": {
"functionBody": "return ['airPressureSensor','airPressureSensor','weatherStation'].includes(model.type);"
}
},
"getSwitch": {
"type": "string",
"description": "Topic used to notify mqttthing of switch state",
"condition": {
"functionBody": "return ['doorbell','statelessProgrammableSwitch'].includes(model.type);"
}
},
"getRotationMode": {
"type": "string",
"description": "Topic used to notify mqttthing of 'rotation mode'",
"condition": {
"functionBody": "return ['heaterCooler'].includes(model.type);"
}
},
"setRotationMode": {
"type": "string",
"description": "Topic published by mqttthing to control 'rotation mode'",
"condition": {
"functionBody": "return ['heaterCooler'].includes(model.type);"
}
},
"setHSV": {
"type": "string",
"description": "In HSV mode, control topic published by mqttthing with comma-separated hue (0-360), saturation (0-100) and value (0-100)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-HSV'].includes(model.type);"
}
},
"getHSV": {
"type": "string",
"description": "In HSV mode, status topic used to notify mqttthing of comma-separated hue (0-360), saturation (0-100) and value (0-100)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-HSV'].includes(model.type);"
}
},
"getRGB": {
"type": "string",
"description": "In RGB mode, topic to notify mqttthing of comma-separated red, green and blue",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGB'].includes(model.type);"
}
},
"setRGB": {
"type": "string",
"description": "In RGB mode, control topic published by mqttthing with comma-separated red, green and blue (all 0-255)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGB'].includes(model.type);"
}
},
"getRGBW": {
"type": "string",
"description": "In RGBW mode, topic to notify mqttthing of comma-separated red, green, blue and white",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGBW'].includes(model.type);"
}
},
"setRGBW": {
"type": "string",
"description": "In RGBW mode, control topic published by mqttthing with comma-separated red, green, blue and white (all 0-255)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGBW'].includes(model.type);"
}
},
"getRGBWW": {
"type": "string",
"description": "In RGBWW mode, topic to notify mqttthing of comma-separated red, green, blue, warm_white and cold_white",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGBWW'].includes(model.type);"
}
},
"setRGBWW": {
"type": "string",
"description": "In RGBWW mode, control topic published by mqttthing with comma-separated red, green, blue, warm_white and cold_white (all 0-255)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-RGBWW'].includes(model.type);"
}
},
"getWhite": {
"type": "string",
"description": "Topic used to notify mqttthing of white level (0-255) - can be used with getRGB for RGBW with separately-published white level",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-White','lightbulb-RGB'].includes(model.type);"
}
},
"setWhite": {
"type": "string",
"description": "Control topic published by mqttthing with white level (0-255) - can be used with getRGB for RGBW with separately-published white level",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-White','lightbulb-RGB'].includes(model.type);"
}
},
"getWatts": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current consumption' [Watts] (optional, Eve-App-only)",
"condition": {
"functionBody": "return ['outlet'].includes(model.type);"
}
},
"getVolts": {
"type": "string",
"description": "Topic used to notify mqttthing of 'voltage' [Volts] (optional, Eve-App-only)",
"condition": {
"functionBody": "return ['outlet'].includes(model.type);"
}
},
"getAmperes": {
"type": "string",
"description": "Topic used to notify mqttthing of 'electricCurrent' [Amperes] (optional, Eve-App-only)",
"condition": {
"functionBody": "return ['outlet'].includes(model.type);"
}
},
"getTotalConsumption": {
"type": "string",
"description": "Topic used to notify mqttthing of 'electricCurrent' [Amperes] (optional, Eve-App-only)",
"condition": {
"functionBody": "return ['outlet'].includes(model.type);"
}
},
"setTargetState": {
"type": "string",
"description": "Topic published by mqttthing to control 'target alarm state'",
"condition": {
"functionBody": "return ['securitySystem'].includes(model.type);"
}
},
"getTargetState": {
"type": "string",
"description": "Topic that may be published to notify HomeKit that the target alarm state has been changed externally.",
"condition": {
"functionBody": "return ['securitySystem'].includes(model.type);"
}
},
"getCurrentState": {
"type": "string",
"description": "Topic used to notify mqttthing that an alarm state has been achieved. HomeKit will expect current state to end up matching target state.",
"condition": {
"functionBody": "return ['securitySystem'].includes(model.type);"
}
},
"setActiveInput": {
"type": "string",
"description": "Topic published by mqttthing to control 'active input source' (optional).",
"condition": {
"functionBody": "return ['television'].includes(model.type);"
}
},
"getActiveInput": {
"type": "string",
"description": "Topic used to notify mqttthing of 'active input source' (optional).",
"condition": {
"functionBody": "return ['television'].includes(model.type);"
}
},
"getWeatherCondition": {
"type": "string",
"description": "Topic used to notify mqttthing of 'weather condition' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getRain1h": {
"type": "string",
"title": "Get Rain 1H",
"description": "Topic used to notify mqttthing of 'rain [mm] in last 1h' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getRain24h": {
"type": "string",
"title": "Get Rain 24H",
"description": "Topic used to notify mqttthing of 'rain [mm] in last 24h' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getUVIndex": {
"type": "string",
"title": "Get UV Index",
"description": "Topic used to notify mqttthing of 'UV index' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getVisibility": {
"type": "string",
"description": "Topic used to notify mqttthing of 'visibility [km]' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getWindDirection": {
"type": "string",
"description": "Topic used to notify mqttthing of 'wind direction' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getWindSpeed": {
"type": "string",
"description": "Topic used to notify mqttthing of 'wind speed [km/h]' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getmaxWind": {
"type": "string",
"description": "Topic used to notify mqttthing of 'wind speed [km/h]' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getDewPoint": {
"type": "string",
"description": "Topic used to notify mqttthing of 'DewPoint' (optional, Eve-only)",
"condition": {
"functionBody": "return ['weatherStation'].includes(model.type);"
}
},
"getActive": {
"type": "string",
"description": "Topic used to notify mqttthing of 'active'",
"condition": {
"functionBody": "return ['airPurifier','fanv2','faucet','heaterCooler','humidifierDehumidifier','irrigationSystem','valve','cameraEventRecordingManagement','television','televisionSpeaker','targetControl'].includes(model.type);"
}
},
"setActive": {
"type": "string",
"description": "Topic published by mqttthing to control 'active' state",
"condition": {
"functionBody": "return ['airPurifier','fanv2','faucet','heaterCooler','humidifierDehumidifier','irrigationSystem','valve','cameraEventRecordingManagement','television','televisionSpeaker','targetControl'].includes(model.type);"
}
},
"getAirQuality": {
"type": "string",
"description": "Topic used to notify mqttthing of 'air quality'",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"getAirQualityPPM": {
"type": "string",
"description": "Topic used to notify mqttthing of 'air quality voc in ppm' (Eve-only)",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"setDuration": {
"type": "string",
"description": "Topic published by mqttthing to control 'default duration (seconds)' (optional, with external timer)",
"condition": {
"functionBody": "return ['valve'].includes(model.type);"
}
},
"getDuration": {
"type": "string",
"description": "Topic used to notify mqttthing of 'default duration (seconds)' (optional, with external timer)",
"condition": {
"functionBody": "return ['valve'].includes(model.type);"
}
},
"getBatteryLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'battery level'",
"condition": {
"functionBody": "return ['airPressureSensor','airPressureSensor','airQualitySensor','batteryService','carbonDioxideSensor','carbonMonoxideSensor','contactSensor','humiditySensor','leakSensor','lightSensor','motionSensor','occupancySensor','smokeSensor','temperatureSensor','valve','weatherStation'].includes(model.type);"
}
},
"getCarbonDioxideDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon dioxide detected'",
"condition": {
"functionBody": "return ['carbonDioxideSensor'].includes(model.type);"
}
},
"getCarbonDioxideLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon dioxide level'",
"condition": {
"functionBody": "return ['airQualitySensor','carbonDioxideSensor'].includes(model.type);"
}
},
"getCarbonDioxidePeakLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon dioxide peak level'",
"condition": {
"functionBody": "return ['carbonDioxideSensor'].includes(model.type);"
}
},
"getCarbonMonoxideDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon monoxide detected'",
"condition": {
"functionBody": "return ['carbonMonoxideSensor'].includes(model.type);"
}
},
"getCarbonMonoxideLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon monoxide level'",
"condition": {
"functionBody": "return ['airQualitySensor','carbonMonoxideSensor'].includes(model.type);"
}
},
"getCarbonMonoxidePeakLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'carbon monoxide peak level'",
"condition": {
"functionBody": "return ['carbonMonoxideSensor'].includes(model.type);"
}
},
"getChargingState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'charging state'",
"condition": {
"functionBody": "return ['airPressureSensor','airPressureSensor','airQualitySensor','batteryService','carbonDioxideSensor','carbonMonoxideSensor','contactSensor','humiditySensor','leakSensor','lightSensor','motionSensor','occupancySensor','smokeSensor','temperatureSensor','valve','weatherStation'].includes(model.type);"
}
},
"getContactSensorState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'contact sensor state'",
"condition": {
"functionBody": "return ['contactSensor'].includes(model.type);"
}
},
"getCoolingThresholdTemperature": {
"type": "string",
"description": "Topic used to notify mqttthing of 'cooling threshold temperature'",
"condition": {
"functionBody": "return ['heaterCooler','thermostat'].includes(model.type);"
}
},
"setCoolingThresholdTemperature": {
"type": "string",
"description": "Topic published by mqttthing to control 'cooling threshold temperature'",
"condition": {
"functionBody": "return ['heaterCooler','thermostat'].includes(model.type);"
}
},
"getCurrentAmbientLightLevel": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current ambient light level'",
"condition": {
"functionBody": "return ['lightSensor','weatherStation'].includes(model.type);"
}
},
"getCurrentDoorState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current door state' (from 'door current values'). Use either 'current door state' or 'door moving'.",
"condition": {
"functionBody": "return ['garageDoorOpener','lockManagement'].includes(model.type);"
}
},
"getDoorMoving": {
"type": "string",
"description": "Topic used to notify mqttthing whether or not the door is moving (as a simpler alternative to getCurrentDoorState). Use either 'current door state' or 'door moving'.",
"condition": {
"functionBody": "return ['garageDoorOpener'].includes(model.type);"
}
},
"getCurrentAirPurifierState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current air purifier state'",
"condition": {
"functionBody": "return ['airPurifier'].includes(model.type);"
}
},
"getCurrentFanState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current fan state'",
"condition": {
"functionBody": "return ['fanv2'].includes(model.type);"
}
},
"getCurrentHeaterCoolerState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current heater cooler state'",
"condition": {
"functionBody": "return ['heaterCooler'].includes(model.type);"
}
},
"getCurrentHeatingCoolingState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current heating cooling state'",
"condition": {
"functionBody": "return ['thermostat'].includes(model.type);"
}
},
"getCurrentHorizontalTiltAngle": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current horizontal tilt angle'",
"condition": {
"functionBody": "return ['windowCovering','cameraControl'].includes(model.type);"
}
},
"getCurrentPosition": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current position'",
"condition": {
"functionBody": "return ['door','window','windowCovering'].includes(model.type);"
}
},
"getCurrentRelativeHumidity": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current relative humidity'",
"condition": {
"functionBody": "return ['airQualitySensor','humidifierDehumidifier','humiditySensor','thermostat','weatherStation'].includes(model.type);"
}
},
"getCurrentTemperature": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current temperature'",
"condition": {
"functionBody": "return ['airQualitySensor','heaterCooler','temperatureSensor','thermostat','weatherStation'].includes(model.type);"
}
},
"getCurrentVerticalTiltAngle": {
"type": "string",
"description": "Topic used to notify mqttthing of 'current vertical tilt angle'",
"condition": {
"functionBody": "return ['windowCovering','cameraControl'].includes(model.type);"
}
},
"getHeatingThresholdTemperature": {
"type": "string",
"description": "Topic used to notify mqttthing of 'heating threshold temperature'",
"condition": {
"functionBody": "return ['heaterCooler','thermostat'].includes(model.type);"
}
},
"setHeatingThresholdTemperature": {
"type": "string",
"description": "Topic published by mqttthing to control 'heating threshold temperature'",
"condition": {
"functionBody": "return ['heaterCooler','thermostat'].includes(model.type);"
}
},
"setHoldPosition": {
"type": "string",
"description": "Topic published by mqttthing to control 'hold position'",
"condition": {
"functionBody": "return ['door','window','windowCovering'].includes(model.type);"
}
},
"getInUse": {
"type": "string",
"description": "Topic used to notify mqttthing of 'in use' state",
"condition": {
"functionBody": "return ['outlet','irrigationSystem','valve'].includes(model.type);"
}
},
"getLeakDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'leak detected'",
"condition": {
"functionBody": "return ['leakSensor'].includes(model.type);"
}
},
"getLockCurrentState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'lock current state'",
"condition": {
"functionBody": "return ['garageDoorOpener','lockMechanism'].includes(model.type);"
}
},
"getLockTargetState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'lock target state'",
"condition": {
"functionBody": "return ['garageDoorOpener','lockMechanism'].includes(model.type);"
}
},
"setLockTargetState": {
"type": "string",
"description": "Topic published by mqttthing to control 'lock target state'",
"condition": {
"functionBody": "return ['garageDoorOpener','lockMechanism'].includes(model.type);"
}
},
"getMotionDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'motion detected' state",
"condition": {
"functionBody": "return ['doorbell','lockManagement','motionSensor'].includes(model.type);"
}
},
"getMute": {
"type": "string",
"description": "Topic used to notify mqttthing of 'mute'",
"condition": {
"functionBody": "return ['microphone','speaker','televisionSpeaker'].includes(model.type);"
}
},
"setMute": {
"type": "string",
"description": "Topic published by mqttthing to control 'mute' state",
"condition": {
"functionBody": "return ['microphone','speaker','televisionSpeaker'].includes(model.type);"
}
},
"getName": {
"type": "string",
"description": "Topic used to notify mqttthing of 'name' (optional, rarely-used)"
},
"getNitrogenDioxideDensity": {
"type": "string",
"description": "Topic used to notify mqttthing of 'nitrogen dioxide density'",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"getObstructionDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'obstruction detected'",
"condition": {
"functionBody": "return ['door','garageDoorOpener','window','windowCovering'].includes(model.type);"
}
},
"getOccupancyDetected": {
"type": "string",
"description": "Topic used to notify mqttthing of 'occupancy detected'",
"condition": {
"functionBody": "return ['occupancySensor'].includes(model.type);"
}
},
"getOn": {
"type": "string",
"description": "Topic used to notify mqttthing of on/off state",
"condition": {
"functionBody": "return ['fan','lightbulb','lightbulb-OnOff','lightbulb-RGB','lightbulb-RGBW','lightbulb-RGBWW','lightbulb-HSV','lightbulb-Dimmable','lightbulb-Colour','lightbulb-Colour','lightbulb-ColTemp','outlet','switch','cameraControl'].includes(model.type);"
}
},
"setOn": {
"type": "string",
"description": "Topic published by mqttthing to control on/off state",
"condition": {
"functionBody": "return ['fan','lightbulb','lightbulb-OnOff','lightbulb-RGB','lightbulb-RGBW','lightbulb-RGBWW','lightbulb-HSV','lightbulb-Dimmable','lightbulb-Colour','lightbulb-ColTemp','outlet','switch','cameraControl'].includes(model.type);"
}
},
"getHue": {
"type": "string",
"description": "Topic used to notify mqttthing of hue (range 0-360)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-Colour'].includes(model.type);"
}
},
"setHue": {
"type": "string",
"description": "Topic published by mqttthing to control hue (range 0-360)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-Colour'].includes(model.type);"
}
},
"getSaturation": {
"type": "string",
"description": "Topic used to notify mqttthing of saturation (range 0-100)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-Colour'].includes(model.type);"
}
},
"setSaturation": {
"type": "string",
"description": "Topic published by mqttthing to control saturation (range 0-100)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-Colour'].includes(model.type);"
}
},
"getBrightness": {
"type": "string",
"description": "Topic used to notify mqttthing of brightness (range 0-100)",
"condition": {
"functionBody": "return ['doorbell','lightbulb','lightbulb-Dimmable','lightbulb-Colour','lightbulb-ColTemp'].includes(model.type);"
}
},
"setBrightness": {
"type": "string",
"description": "Topic published by mqttthing to control brightness (range 0-100)",
"condition": {
"functionBody": "return ['doorbell','lightbulb','lightbulb-Dimmable','lightbulb-Colour','lightbulb-ColTemp'].includes(model.type);"
}
},
"getColorTemperature": {
"type": "string",
"description": "Topic used to notify mqttthing of colour temperature (range 140-500)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-ColTemp','lightbulb-Colour'].includes(model.type);"
}
},
"setColorTemperature": {
"type": "string",
"description": "Topic published by mqttthing to control colour temperature (range 140-500)",
"condition": {
"functionBody": "return ['lightbulb','lightbulb-ColTemp','lightbulb-Colour'].includes(model.type);"
}
},
"getOzoneDensity": {
"type": "string",
"description": "Topic used to notify mqttthing of 'ozone density'",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"getPM10Density": {
"type": "string",
"title": "Get PM10 Density",
"description": "Topic used to notify mqttthing of 'PM10 Density'",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"getPM2_5Density": {
"type": "string",
"title": "Get PM2.5 Density",
"description": "Topic used to notify mqttthing of 'PM2.5 Density'",
"condition": {
"functionBody": "return ['airQualitySensor'].includes(model.type);"
}
},
"getPositionState": {
"type": "string",
"description": "Topic used to notify mqttthing of 'position state'",
"condition": {
"functionBody": "return ['door','window','windowCovering'].includes(model.type);"
}
},
"getRemainingDuration": {
"type": "string",
"description": "Topic used to notify mqttthing of 'remaining duration'",
"condition": {
"functionBody": "return ['irrigationSystem','valve'].includes(model.type);"
}
},
"getRotationDirection": {
"type": "string",
"description": "Topic used to notify mqttthing of 'rotation direction'",
"condition": {
"functionBody": "return ['fan','fanv2'].includes(model.type);"
}
},
"setRotationDirection": {
"type": "string",
"description": "Topic published by mqttthing to control 'rotation direction'",
"condition": {
"functionBody": "return ['fan','fanv2'].includes(model.type);"
}
},
"getRotationSpeed": {
"type": "string",
"description": "Topic used to notify mqttthing of 'rotation speed'",
"condition": {
"functionBody": "return ['airPurifier','fan','fanv2','heaterCooler','humidifierDehumidifier'].includes(model.type);"
}
},
"setRotationSpeed": {
"type": "st