This plugin communicates with your devices using HTTP or MQTT. Currently it supports Light Bulb, Switches, Outlets, Fan, Valve, Sprinkler / Irrigation, Shower, Tap, Door, Garage Door, Shades / Blinds, Temperature/Humidity, Motion, Contact and Occupancy sensor, Air Quality, Smoke, Carbon Dioxide and Light Sensor.
Simple Discord Webhooks available in Light Bulb, Switches and Outlets and sensors.
Note
Multiple accessories can use same data source http://url/source.json
Enable Shared Polling under HTTP. Set Group name, Data Source URL and Update Interval for each.
Supported Nested JSON data structure: 'switches.switch2'
{
"switches": {
"switch1": 1,
"switch2": 0
},
"temperature1": 12.23,
"temperature2": 24.43
}
⚙️ Parameters
{
"sharedPolling": true,
"sharedPollingId": "Switches",
"sharedPollingInterval": 5000, // Miliseconds - 5sec
"urlStatus": "THIS MUST BE INSERTED FOR ALL IN SHARED POLL",
}
Note
HTTP - Read status (true or 1 /false or 0) from JSON
MQTT - Read status (true or 1/false or 0)
Parameters for services you do NOT need, should be left BLANK
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameOccupancyDetected mqttOccupancyDetected |
Occupancy Status | 0 (Not detected), 1 (Detected) |
paramNameMotionDetected mqttMotionDetected |
Motion Status | 0 (Not detected), 1 (Detected) |
paramNameContactSensorState mqttContactSensorState |
Contact status | 0: Contact detected (closed), 1: Contact not detected (open) |
paramNameStatusActive mqttStatusActive |
Status of Sensor | 0 (Inactive), 1 (Active) |
paramNameStatusFault mqttStatusFault |
Fault status | 0 (No Fault), 1 (Fault Detected) |
paramNameStatusLowBattery mqttStatusLowBattery |
Battery status | 0 (Battery OK), 1 (Low Battery) |
paramNameStatusTampered mqttStatusTampered |
Tempered Status | 0 (No Tampering), 1 (Tampered) |
{
"MotionSensor": {
"MotionDetected": 1,
"Active": 1,
"Fault": 0,
"BatteryLevel": 0,
"LowBattery": 0,
"Tampered": 0
},
"OccupancyDetected": 0,
"Active" : 1,
"Fault" : 0,
"BatteryLevel": 0,
"LowBattery" : 1,
"Tampered" : 0
}
Note
HTTP:
- Read Status (On/Off), Turn ON (url), Turn OFF (url)
- Control RGB or HSV on device
- Brightness
- Color Temperature: Mired (153-500) OR Kelvin (2000-6500)
MQTT:
- Turn ON/OFF | Values: On = true || 1, Off = false || 0
- RGB in format #FFAA22 or without #
Parameters for services you do NOT need, should be left BLANK
⚙️ Parameters
Param | Description | Values |
---|---|---|
urlON | URL to Turn ON Device | URL |
urlOFF | URL to Turn OFF Device | URL |
urlStatus | URL to retrieve JSON with all Data | URL |
urlLightBulbControl | HTTP address where to send Device control commands (POST) | URL |
stateName | JSON Parameter Name for Reading ON/OFF | Key |
onStatusValue | JSON return Value for status ON | ON, true, 1 |
offStatusValue | JSON return Value for status ON | Off, false, 0 |
useRGB | Use RGB instead of HSV | true / false |
useBrightness255 | Use Brightness 0 - 255 not 0 - 100 | true / false |
useColorTKelvin | Color Temperature in Mired (153-500), Kelvin (2000-6500) | true / false |
rgbParamName mqttRGB |
JSON Parameter Name for RGB color / mqtt Topic | String |
brightnessParamName mqttBrightness |
JSON Parameter Name for Brightness / mqtt Topic | String |
saturationParamName mqttSaturation |
JSON Parameter Name for Saturation / mqtt Topic | String |
hueParamName mqttHue |
JSON Parameter Name for HUE / mqtt Topic | String |
colorTemperatureParamName mqttColorTemperature |
JSON Parameter Name for Color Temperature / mqtt Topic | String |
{
"Light": true,
"Brightness": 100,
"RGB": "FF00AA",
"Hue": 120,
"Saturation": 20,
"ColorTemperature": 500
}
Tip
useRGB will Send and Receive values in RGB format
If useRGB is set, Saturation and Hue will not be sent or read. Brightness will be calculated from RGB value.
useBrightness 0-255 will Send and Receive converted Brightness value in range 0-255
Parameters for services you do NOT NEED, should be left BLANK
Important
Use HTTP or MQTT not both for same accessory.
Note
HTTP:
- Read Status (On/Off), Turn ON (url), Turn OFF (url)
- Outlet read Status: Outlet In Use( true/false)
MQTT:
- Turn ON/OFF ( Values: On = 1 || true, Off = 0 || false )
- Outlet In Use ( Values: true/false or 1/0)
Discord Webhook publishes switch status to your Discord channel
Tip
If you don't have Manual switch and you don't mind when Homebridge is rebooted, your device is going to be set as OFF
then you don't have to use Parameter urlStatus.
How to setup Discord Webhooks: link
Important
Use HTTP or MQTT not both for same accessory.
Caution
Parameter: urlStatus = 'url points to JSON with device status' when is set it will bind Accessory into 5 sec check status interval
{
"POWER": "ON", "inUSE": false
}
Note
Sensor - Read JSON Or MQTT for Temperature, Humidity
Nested JSON
Support for Nested JSON structure: sensor2.tCelsius
Tip
Parameters required in Config:
deviceType = 'Sensor',
deviceName = 'Name your Accessory',
deviceID = 'Put something unique / chars and numbers',
For JSON read use param sensorUrl:
sensorUrl = 'JSON file containing sensor readings (temperature, humidity)',
For MQTT use param mqttBroker:
mqttBroker = 'URL of MQTT Broker'
Important
MQTT is just an basic implementation, no encription etc.
Sensor JSON file example
{
"t": 25.25,
"h": 33.54,
"p": 1025.04,
"sensor2": {
"tCelsius": 22.2
}
}
Note
HTTP
Read interval 5 sec
Select HTTP Method - GET / POST
MQTT
param for ACTIVE is mqttSwitch
Parameters for SERVICES you do NOT NEED, should be left BLANK
Discord Webhook publishes Fan status to your Discord channel (On/Off)
Caution
Parameter: urlStatus = 'url points to JSON with device status' when is set it will bind Accessory to 5 sec check status interval
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameStatusActive mqttSwitch |
Turn Fan On / Off | 0 (Inactive), 1 (Active) |
paramNameRotationSpeed mqttRotationSpeed |
Rotation Speed | Valid range: 0 to 100 |
paramNameRotationDirection mqttRotationDirection |
Fan turn direction | 0 (Clockwise), 1 (Counterclockwise) |
paramNameSwingMode mqttSwingMode |
Swing Mode On / Off | 0 (Disabled), 1 (Enabled) |
paramNameTargetFanState mqttTargetFanState |
Automatione mode | 0 (Manual), 1 (Automatic) |
paramNameCurrentFanState mqttCurrentFanState |
Read Status of Fan | 0 (Inactive), 1 (Idle), 2 (Blowing Air) |
⚙️ Fan JSON Example
{
"Active": 0,
"RotationSpeed": 100,
"RotationDirection": 0,
"SwingMode": 1,
"CurrentFanState": 1,
"TargetFanState": 1
}
Note
HTTP
Read interval 5 sec
If param InUse is not in use SET it with the same value as StatusActive so that can be triggered with same value, enabling it to set On/Off
Param ValveType is set in Config so it does not need to be set in JSON. Dynamic change is not supported in current plugin version
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameStatusActive mqttSwitch |
Set Valve Status | 0 (Inactive), 1 (Active) |
paramNameInUse mqttInUse |
In Use Status | 0 (Not in Use), 1 (In Use) |
paramNameValveType | Valve Type | 0: Generic valve, 1: Irrigation, 2: Shower head, 3: Tap |
⚙️ Valve JSON Example
{
"StatusActive": 0,
"InUse": 0,
"ValveType": 1
}
Note
Parameters for SERVICES you do NOT NEED, should be left BLANK
Discord Webhook publishes status to your Discord channel (On/Off)
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameTargetDoorState mqttTargetDoorState |
SET Door position | 0 (Open), 1 (Closed) |
paramNamePositionState mqttPositionState |
Door state | 0 (Closing), 1 (Opening), 2 (stopped) |
paramNameCurrentDoorState mqttCurrentDoorState |
Door state | 0: Open, 1: Closed, 2: Opening, 3: Closing, 4: Stopped |
paramNameObstructionDetected mqttObstructionDetected |
Read Obstruction | 0: false, 1: true |
paramNameStatusJammed mqttStatusJammed |
Is Jammed | 0 (not jammed), 1 (Jammed) |
paramNameTargetPosition mqttTargetPosition |
Set Position | Range: 0 (Fully Closed) to 100 (Fully Open) |
paramNameCurrentPosition mqttCurrentPosition |
Read Current Possition | Range: 0 (Fully Closed) to 100 (Fully Open) |
paramNamePositionState mqttPositionState |
Read position state | 0: Closing, 1: Opening, 2: Stopped |
paramNameHoldPosition mqttHoldPosition |
Enables holding a specific position | 0, 1 |
⚙️ JSON Example
{
"door": {
"TargetPosition": 0, // 0 - 100 %
"CurrentPosition": 0, // 0 - 100 %
"PositionState": 2,
"ObstructionDetected": 0,
"DeviceJammed": 0,
},
"garage": {
"TargetDoorState": 0,
"CurrentDoorState": 1,
"ObstructionDetected": 0,
"StatusJammed": 0
},
"Window": {
"TargetPosition": 0,
"CurrentPosition": 0,
"PositionState": 0
},
"WindowCovering": {
"TargetPosition": 0,
"CurrentPosition": 0,
"PositionState": 2,
"HoldPosition": 0,
"StatusJammed": 0
}
}
Note
Parameters for SERVICES you do NOT NEED, leave BLANK
Discord Webhook publishes change in Carbon Dioxide Detected, Smoke Detected and Status Low Battery to your Discord channel
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameCarbonDioxideDetected mqttCarbonDioxideDetected |
Read Detection | 0: no Detection, 1: Detected |
paramNameCarbonDioxideLevel mqttCarbonDioxideLevel |
CO2 Concentration | Range: 0 to 5000 ppm |
paramNameCarbonDioxidePeakLevel mqttCarbonDioxidePeakLevel |
Peak CO2 Concentration | Range: 0 to 5000 ppm |
paramNameStatusActive mqttStatusActive |
Is Active | 0: Inactive, 1: Active |
paramNameStatusFault mqttStatusFault |
Fault Status | 0: No Fault, 1: Fault |
paramNameStatusLowBattery mqttStatusLowBattery |
Battery Status | 0: Normal, 1: Low |
paramNameStatusTampered mqttStatusTampered |
Tampered Status | 0: Not Tampered, 1: Tampered |
paramNameSmokeDetected mqttSmokeDetected |
Read Smoke Detection | 0: No Smoke, 1: Smoke Detected |
paramNameAirQuality mqttAirQuality |
Air Quality Index | Range: 1 (Excellent) to 5 (Very Poor) |
paramNamePM2_5Density mqttPM2_5Density |
PM2.5 Particle Density | Range: 0 to 500 µg/m³ |
paramNamePM10Density mqttPM10Density |
PM10 Particle Density | Range: 0 to 500 µg/m³ |
paramNameOzoneDensity mqttOzoneDensity |
Ozone Concentration | Range: 0 to 500 µg/m³ |
paramNameNitrogenDioxideDensity mqttNitrogenDioxideDensity |
NO₂ Concentration | Range: 0 to 500 µg/m³ |
paramNameSulphurDioxideDensity mqttSulphurDioxideDensity |
SO₂ Concentration | Range: 0 to 500 µg/m³ |
paramNameCarbonMonoxideLevel mqttCarbonMonoxideLevel |
CO Concentration | Range: 0 to 500 ppm |
⚙️ JSON Example
{
"CO2Sensor2": {
"CO2Detected": false,
"CO2Level": 700,
"CO2PeakLevel": 1400,
"Active": 1,
"Fault": 0,
"LowBattery": 0,
"Tampered": 0
},
"SmokeDetected": 0,
"StatusActive" : true,
"StatusFault" : 0,
"LowBattery" : false,
"StatusTampered" : 0
}
Note
Parameters for SERVICES you do NOT NEED, leave BLANK
Discord Webhook publishes change in Carbon Dioxide Detected, Smoke Detected and Status Low Battery to your Discord channel
⚙️ Parameters
Param | Description | Values |
---|---|---|
paramNameCurrentAmbientLightLevel mqttCurrentAmbientLightLevel |
Ambient Light Level | Range: 0.0001 to 100,000 lux |
paramNameStatusActive mqttStatusActive |
Is Active | 0: Inactive, 1: Active |
paramNameStatusFault mqttStatusFault |
Fault Status | 0: No Fault, 1: Fault |
paramNameStatusLowBattery mqttStatusLowBattery |
Battery Status | 0: Normal, 1: Low |
paramNameStatusTampered mqttStatusTampered |
Tampered Status | 0: Not Tampered, 1: Tampered |
⚙️ JSON Example
{
"AmbientLightSensor": {
"CurrentAmbientLightLevel": 4500,
"Active": true,
"Fault": 0,
"LowBattery": false,
"Tampered": 0
}
}
Compromise: Switch accessory, in order to work properly getStatus is bind in 5 sec interval. This is for passive devices not pushing their status. I have several devices built by my self like ESP8266 with relay and I'm just switching state. I have JSON file showing status:
{
"POWER": "ON"
}
⚙️ Plugin Config example
{
"bridge": {
"name": "Homebridge xxxx",
"username": "xx:xx:xx:xx:xx:xx",
"port": 51576,
"pin": "xxx-xx-xxx",
"advertiser": "bonjour-hap"
},
"platforms": [
{
"name": "Config",
"port": 8581,
"auth": "form",
"theme": "auto",
"tempUnits": "c",
"lang": "auto",
"noFork": true,
"standalone": true,
"platform": "config"
},
{
"platform": "HttpSensorsAndSwitches",
"name": "Stergo",
"description": "Http all in one place",
"devices": [
{
"deviceType": "Sensor",
"deviceID": "896543287",
"deviceName": "Attic",
"deviceManufacturer": "NameTheManufacturer",
"deviceModel": "DHT",
"deviceSerialNumber": "203ab773-d5cd-42ww-b531-a98bba0e4444",
"deviceFirmwareVersion": "v1.4.0",
"sensorUrl": "http://192.168.1.74/mesures.json",
"temperatureName": "t",
"humidityName": "h",
"updateInterval": 60000
},
{
"deviceType": "Switch",
"deviceID": "1234578",
"deviceName": "Night Light",
"deviceManufacturer": "Stergo",
"deviceModel": "Switch",
"deviceSerialNumber": "203ab773-d5cd-42a2-b531-a98bba0e4444",
"deviceFirmwareVersion": "0.4.0",
"urlON": "http://192.168.1.77/POWER?state=ON",
"urlOFF": "http://192.168.1.77/POWER?state=OFF",
"urlStatus": "http://192.168.1.77/POWER",
"stateName": "POWER",
"onStatusValue": "ON",
"offStatusValue": "OFF"
},
{
"deviceType": "Sensor",
"deviceID": "65432258",
"deviceName": "Balcony",
"sensorUrl": "http://192.168.1.72/mesures.json",
"temperatureName": "t",
"updateInterval": 300000
},
{
"deviceType": "Switch",
"deviceID": "21wqwweqwee65432258",
"deviceName": "Relay",
"mqttBroker": "192.168.1.200",
"mqttPort": "1883",
"mqttSwitch": "iot/things/StergoTestSwitch/switch1",
"mqttUsername": "testuser",
"mqttPassword": "testuser",
"discordWebhook": "https://discordapp.com/api/webhooks/XXXXX",
"discordUsername": "SmartHome",
"discordAvatar": "",
"discordMessage": " is "
},
{
"deviceType": "Sensor",
"deviceID": "65432258",
"deviceName": "Balcony",
"mqttBroker": "192.168.1.200",
"mqttPort": "1883",
"mqttTemperature": "qiot/things/Attic/Temperature",
"mqttHumidity": "qiot/things/Attic/Humidity",
"mqttUsername": "testuser",
"mqttPassword": "testuser"
},
{
"deviceType": "Fan",
"enableLogging": true,
"deviceID": "sssert45-58aaaa7f-689",
"deviceName": "Fan test",
"deviceManufacturer": "Stergo",
"deviceModel": "Stergo-Fan",
"deviceSerialNumber": "www2s5587-6s598-6s58",
"deviceFirmwareVersion": "v1",
"urlStatus": "http://192.168.1.101/test/Fanv2/fanv2.json",
"urlFanControl": "http://192.168.1.101/test/Fanv2/fanv2.php",
"paramNameStatusActive": "Fan2.Active",
"paramNameRotationSpeed": "Fan2.RotationSpeed",
"paramNameRotationDirection": "Fan2.RotationDirection",
"paramNameSwingMode": "Fan2.SwingMode",
"paramNameCurrentFanState": "Fan2.CurrentFanState",
"paramNameTargetFanState": "Fan2.TargetFanState"
},
{
"deviceType": "CarbonDioxideSensor",
"enableLogging": true,
"deviceID": "sssda3-23fdaf-sdadf-sdfsdf",
"deviceName": "CO2",
"deviceManufacturer": "Stergo",
"deviceModel": "vvdd",
"deviceSerialNumber": "33-2-2ds3-ss3-2223-323-w",
"deviceFirmwareVersion": "v1",
"sharedPolling": true,
"sharedPollingId": "CarbonDioxide",
"urlStatus": "http://192.168.1.101/test/co2.json",
"paramNameStatusActive": "Active",
"paramNameCO2Detected": "CO2Detected",
"paramNameCO2Level": "CO2Level",
"paramNameCO2PeakLevel": "CO2PeakLevel",
"paramNameStatusFault": "Fault",
"paramNameBatteryLevel": "BatteryLevel",
"paramNameStatusLowBattery": "LowBattery",
"paramNameStatusTampered": "Tampered",
"sensorUrl": "http://192.168.1.101/test/co2.json",
"sharedPollingInterval": 30000,
"discordWebhook": "https://discordapp.com/api/webhooks/",
"discordUsername": "Stergo",
"discordAvatar": ""
},
{
"deviceType": "OccupancySensor",
"enableLogging": true,
"deviceID": "sdadddd3-23fdddssdaf-sadf-sdfsdf",
"deviceName": "Occupancy",
"deviceManufacturer": "Stergo",
"deviceModel": "vvdd",
"deviceSerialNumber": "ddd33-2-2ss3-3-22dds23-323-w",
"deviceFirmwareVersion": "v1",
"sharedPolling": true,
"sharedPollingId": "CarbonDioxide",
"urlStatus": "http://192.168.1.101/test/co2.json",
"paramNameStatusActive": "CO2Sensor2.Active",
"paramNameOccupancyDetected": "CO2Sensor2.CO2Detected",
"paramNameStatusFault": "CO2Sensor2.Fault",
"paramNameBatteryLevel": "CO2Sensor2.BatteryLevel",
"paramNameStatusLowBattery": "CO2Sensor2.LowBattery",
"paramNameStatusTampered": "CO2Sensor2.Tampered",
"sensorUrl": "http://192.168.1.101/test/co2.json",
"sharedPollingInterval": 30000,
"mqttOccupancyDetected": "test/detect",
"mqttActive": "test/Active",
"discordWebhook": "https://discordapp.com/api/webhooks/",
"discordUsername": "Stergo",
"discordAvatar": ""
},
{
"deviceType": "LightBulb",
"enableLogging": true,
"deviceID": "12399ASdhz1244s9yt-2345-98g",
"deviceName": "Attic Clock",
"deviceManufacturer": "Stergo",
"deviceModel": "Test",
"deviceSerialNumber": "12399a-234sdf-34saf-234sdf",
"deviceFirmwareVersion": "000.06.002",
"useRGB": true,
"useBrightness255": true,
"useColorTKelvin": false,
"mqttBroker": "192.168.1.XXX",
"mqttPort": 1883,
"mqttUsername": "testuser",
"mqttPassword": "testuser",
"mqttSwitch": "iot/things/Attic/AtticClock/displayON",
"mqttRGB": "iot/things/Attic/AtticClock/Color"
}
]
}
]
}
⚙️ Config params
Param | Description | Param needed |
---|---|---|
brightnessParamName | JSON Parameter Name for Brightness | false |
colorTemperatureParamName | JSON Parameter Name for Color Temperature | false |
deviceFirmwareVersion | Firmware running on device | false |
deviceID | Unique ID for this Accessory | true |
deviceManufacturer | Name for Manufacturer of this Accessory | false |
deviceModel | Name of model for this Accessory | false |
deviceName | Name for Your Accessory | true |
deviceSerialNumber | Unique serial number | false |
deviceType | Sensor or Switch | true |
discordAvatar | URL to Online Avatar image | false |
discordMessage | Message | false |
discordUsername | Name for message publisher | false |
discordWebhook | URL to Discord WebHook | false |
enableLogging | Default is enabled (1) | true |
hueParamName | JSON Parameter Name for HUE | false |
humidityName | JSON param name for Humidity reading | true |
inUseOffStatusValue | JSON return Value for inUSE OFF | false |
inUseOnStatusValue | JSON return Value for inUSE ON | false |
inUseStateName | JSON status param in Use | false |
motionSensorName | JSON param name for Motion Sensor reading | true |
motionSensorUrl | JSON file containing Motion Sensor readings | true |
mqttActive | MQTT Topic for Active Status | true |
mqttBrightness | MQTT Topic for Brightness | false |
mqttBroker | URL of MQTT Broker | true/false |
mqttCarbonDioxideDetected | MQTT Topic for CO2 Detection | true |
mqttCarbonDioxideLevel | MQTT Topic for CO2 Level | true |
mqttColorTemperature | MQTT Topic for Color Temperature | false |
mqttContactSensorState | MQTT Topic for Contact Sensor State | false |
mqttCurrentDoorState | MQTT Topic for Current Door State | true |
mqttCurrentFanState | MQTT Topic for Current Fan State | false |
mqttCurrentPosition | MQTT Topic for Current Position | true |
mqttHue | MQTT Topic for Hue | false |
mqttInUse | Outlet in Use Topic | false |
mqttMotionDetected | MQTT Topic for Motion Detection | true |
mqttObstructionDetected | MQTT Topic for Obstruction Detection | false |
mqttOccupancyDetected | MQTT Topic for Occupancy Detection | false |
mqttPassword | MQTT Broker password | false |
mqttPort | MQTT port | false |
mqttPositionState | MQTT Topic for Position State | false |
mqttReconnectInterval | Reconnect interval to MQTT Broker | true/false |
mqttRGB | MQTT Topic for RGB | false |
mqttRotationDirection | MQTT Topic for Rotation Direction | false |
mqttRotationSpeed | MQTT Topic for Rotation Speed | false |
mqttSaturation | MQTT Topic for Saturation | false |
mqttSmokeDetected | MQTT Topic for Smoke Detection | true |
mqttStatusActive | MQTT Topic for Active Status | true |
mqttStatusFault | MQTT Topic for Fault Status | false |
mqttStatusJammed | MQTT Topic for Jammed Status | false |
mqttStatusLowBattery | MQTT Topic for Low Battery Status | false |
mqttStatusTampered | MQTT Topic for Tampered Status | false |
mqttSwitch | Switch Topic | true |
mqttSwingMode | MQTT Topic for Swing Mode | false |
mqttTargetDoorState | MQTT Topic for Target Door State | true |
mqttTargetFanState | MQTT Topic for Automation | false |
mqttTargetPosition | MQTT Topic for Target Position | true |
paramNameActive | JSON Parameter Name for On/Off | true |
paramNameAmbientLightLevel | JSON Parameter Name for Ambient Light Level | true |
paramNameCarbonDioxideDetected | JSON Parameter Name for CO2 Detection | true |
paramNameCarbonDioxideLevel | JSON Parameter Name for CO2 Level | true |
paramNameCarbonDioxidePeakLevel | JSON Parameter Name for Peak CO2 Level | false |
paramNameContactSensorState | JSON Parameter Name for Contact Sensor State | false |
paramNameCurrentDoorState | JSON Parameter Name for Current Door State | true |
paramNameCurrentFanState | JSON Parameter Name for Current Fan State | false |
paramNameCurrentPosition | JSON Parameter Name for Current Position | true |
paramNameHoldPosition | JSON Parameter Name for Hold Position | false |
paramNameMotionDetected | JSON Parameter Name for Motion Detection | true |
paramNameObstructionDetected | JSON Parameter Name for Obstruction Detection | false |
paramNameOccupancyDetected | JSON Parameter Name for Occupancy Detection | false |
paramNamePositionState | JSON Parameter Name for Position State | false |
paramNameRotationDirection | JSON Parameter Name for Rotation Direction | false |
paramNameRotationSpeed | JSON Parameter Name for Rotation Speed | false |
paramNameSmokeDetected | JSON Parameter Name for Smoke Detection | true |
paramNameStatusActive | JSON Parameter Name for Active Status | true |
paramNameStatusFault | JSON Parameter Name for Fault Status | false |
paramNameStatusJammed | JSON Parameter Name for Jammed Status | false |
paramNameStatusLowBattery | JSON Parameter Name for Low Battery Status | false |
paramNameStatusTampered | JSON Parameter Name for Tampered Status | false |
paramNameSwingMode | JSON Parameter Name for Swing Mode | false |
paramNameTargetDoorState | JSON Parameter Name for Target Door State | true |
paramNameTargetFanState | JSON Parameter Name for Automation | false |
paramNameTargetPosition | JSON Parameter Name for Target Position | true |
paramNameValveType | JSON Parameter Name for Valve Type - 0: Generic valve, 1: Irrigation, 2: Shower head, 3: Tap | true |
rgbParamName | JSON Parameter Name for RGB color | false |
saturationParamName | JSON Parameter Name for Saturation | false |
sensorUrl | JSON file containing sensor readings (temperature, humidity) | true |
stateName | JSON Parameter Name for Reading ON/OFF | true |
temperatureName | JSON param name for Temperature reading | true |
updateInterval | Update interval for reading Sensors | false |
updateIntervalMotionSensor | Update interval for reading Motion Sensor | true |
urlLightBulbControl | HTTP address for sending Device control commands | false |
urlOFF | URL to Turn OFF the Switch | true |
urlON | URL to Turn ON the Switch | true |
urlStatus | URL to retrieve JSON with all Data | true |
useBrightness255 | Use Brightness 0-255 instead of 0-100 | true |
useColorTKelvin | Color Temperature in Mired (153-500), Kelvin (2000-6500) | true |
useRGB | Use RGB instead of HSV (true/false) | true |
Important
Homebridge v2.0 Information
This plugin currently supports
package.json -> engines.homebridge
value of"^1.8.0 || ^2.0.0-beta.0"
package.json -> devDependencies.homebridge
value of"^2.0.0-beta.0"
This is to ensure that this plugin will build and run on both Homebridge v1 and v2.
Important
Node v18 Information
Node.js version 18 (LTS) is scheduled to reach its end-of-life on April 30, 2025. After this date, it will no longer receive security updates or maintenance releases. If you're using Node.js 18, it's recommended to upgrade to a newer version, such as Node.js 20 or 22, to ensure continued security and stability.
Latest version of plugin supporting Node.js v18 is v2.1.x
This template currently has a
package.json -> engines.node
value of"^18.20.4 || ^20.18.0 || ^22.10.0"