UNPKG

@irusland/homebridge-mqttthing

Version:

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

643 lines (642 loc) 21.6 kB
{ "bridge": { "name": "Dev-2", "username": "CA:7C:A3:34:AA:6C", "port": 51826, "pin": "784-65-425" }, "platforms": [ { "platform": "config", "name": "Config", "port": 8080, "sudo": false } ], "disabledAccessories": [ { "type": "lightbulb-ColTemp", "name": "Light-Temp", "url": "homebridge2", "logMqtt": true, "topics": { "setOn": "testTempLight/setOn", "setBrightness": "testTempLight/setBrightness", "setColorTemperature": "testTempLight/setColorTemperature", "getColorTemperature": "testTempLight/getColorTemperature", "getBrightness": "testTempLight/getBrightness" }, "whiteMix": true, "accessory": "mqttthing", "minColorTemperature": 130, "maxColorTemperature": 450 }, { "type": "lightbulb-Colour", "name": "Light-Colour", "url": "homebridge2", "logMqtt": true, "debounceRecvms": 250, "topics": { "setOn": "colour/setOn", "setHue": "colour/setHue", "setSaturation": "colour/setSaturation", "setBrightness": "colour/setBrightness", "xxsetColorTemperature": "colour/setTemperature" }, "noWhiteMix": false, "accessory": "mqttthing" }, { "accessory": "mqttthing", "type": "valve", "valveType": "sprinkler", "name": "Sprinkler", "url": "homebridge2", "topics": { "getActive": "test/sprinkler/getActive", "setActive": "test/sprinkler/setActive", "getInUse": "test/sprinkler/getInUse" }, "integerValue": true, "durationTimer": true, "minDuration": 1, "maxDuration": 30 }, { "type": "television", "name": "Tasmota-TV", "url": "homebridge2", "logMqtt": true, "accessory": "mqttthing", "topics": { "setActive": "cmnd/Remote/irsend", "setActiveInput": "cmnd/Remote/irsend" }, "inputs": [ { "name": "Input 1", "value": "3249178998" }, { "name": "Input 2", "value": "input-2-rf-code" }, { "name": "Input 3", "value": "input-3-rf-code" }, { "name": "Input 4", "value": "input-4-rf-code" } ], "codec": "json", "jsonCodec": { "fixed": { "Protocol": "NEC", "Bits": 32 }, "properties": { "activeIdentifier": "Data", "active": "Data" } }, "onValue": "power-on-rf-code", "offValue": "power-off-rf-code" }, { "accessory": "mqttthing", "type": "switch", "name": "Toggle Switch", "url": "homebridge2", "logMqtt": true, "topics": { "getOn": "test/toggle/get", "setOn": "test/toggle/set" }, "codec": "toggle.js" }, { "accessory": "mqttthing", "type": "doorbell", "name": "Door Bell", "url": "homebridge2", "caption": "Front Door Bell", "topics": { "getSwitch": { "topic": "tele/RF/RESULT", "apply": "return JSON.parse( message ).RfReceived.Data;" } }, "switchValues": [ [ "F1FB61" ] ], "restrictSwitchValues": [ 0 ], "logMqtt": true }, { "url": "homebridge2", "type": "switch", "name": "Tasmota05s", "logMqtt": true, "topics": { "getOnline": "tele/tasmota05s/STATE", "getOn": { "topic": "stat/tasmota05s/RESULT", "apply": "return JSON.parse( message ).POWER" }, "setOn": "cmnd/tasmota05s/POWER" }, "integerValue": false, "onValue": "ON", "offValue": "OFF", "accessory": "mqttthing" }, { "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-RGB", "name": "Winter-Light", "url": "homebridge2", "topics": { "getRGB": { "topic": "light/get", "apply": "return message.r + ',' + message.g + ',' + message.b;" }, "setRGB": { "topic": "light/set", "apply": "let rgb = message.split(',').map( v => parseInt(v) ); return { r: rgb[0], g: rgb[1], b: rgb[2] };" }, "getOn": "light/get", "setOn": "light/set" }, "logMqtt": true, "codec": "json", "jsonCodec": { "properties": { "on": "state", "RGB": "color" }, "retain": true }, "onValue": "ON", "offValue": "OFF" }, { "type": "statelessProgrammableSwitch", "name": "Hall Entry", "url": "homebridge2", "topics": { "getSwitch": "zigbee2mqtt/0x0017880104e6c096", "getBatteryLevel": "zigbee2mqtt/0x0017880104e6c096", "getStatusLowBattery": { "topic": "zigbee2mqtt/0x0017880104e6c096", "apply": "return message < 20;" } }, "switchValues": [ "on-press", "up-press", "down-press" ], "codec": "json", "jsonCodec": { "properties": { "switch": "action", "batteryLevel": "battery", "statusLowBattery": "battery" } }, "accessory": "mqttthing", "logMqtt": true }, { "accessory": "mqttthing", "type": "custom", "name": "Composite", "url": "homebridge2", "logMqtt": true, "services": [ { "type": "switch", "name": "Switch 1", "topics": { "getOn": "home/get/switch1/POWER", "setOn": "home/set/switch1/POWER" }, "integerValue": true }, { "type": "switch", "name": "Switch 2", "topics": { "getOn": "home/get/switch2/POWER", "setOn": "home/set/switch2/POWER" }, "integerValue": true }, { "type": "motionSensor", "name": "My PIR", "topics": { "getMotionDetected": "home/get/pir/STATUS", "getStatusActive": "home/get/pir/ACTIVE", "getStatusFault": "home/get/pir/FAULT", "getStatusLowBattery": "home/get/pir/BATLOW" }, "onValue": "MOTION", "otherValueOff": true } ] }, { "accessory": "mqttthing", "type": "custom", "name": "Flower Care", "url": "homebridge2", "logMqtt": true, "codec": "json", "jsonCodec": { "properties": { "currentRelativeHumidity": "moisture", "currentTemperature": "temperature", "currentAmbientLightLevel": "light", "statusLowBattery": "battery" } }, "services": [ { "type": "humiditySensor", "topics": { "getCurrentRelativeHumidity": "miflora/Limone", "getStatusLowBattery": { "topic": "miflora/Limone", "apply": "return message < 20;" } } }, { "type": "temperatureSensor", "topics": { "getCurrentTemperature": "miflora/Limone", "getStatusLowBattery": { "topic": "miflora/Limone", "apply": "return message < 20;" } } }, { "type": "lightSensor", "topics": { "getCurrentAmbientLightLevel": "miflora/Limone", "getStatusLowBattery": { "topic": "miflora/Limone", "apply": "return message < 20;" } } } ] }, { "accessory": "mqttthing", "type": "statelessProgrammableSwitch", "name": "4 Way Switch", "url": "homebridge2", "logMqtt": true, "topics": { "getOnline": "zigbee2mqtt/bridge/state", "getSwitch": "zigbee2mqtt/0x04cf8cdf3c791ad9" }, "switchValues": [ "button_1_single", "button_1_double", "button_1_hold" ], "codec": "json", "jsonCodec": { "properties": { "switch": "action" } } }, { "accessory": "mqttthing", "type": "statelessProgrammableSwitch", "name": "Multi-switch", "url": "homebridge2", "logMqtt": true, "topics": { "getSwitch": [ { "topic": "test/multiswitch", "apply": "let msg = JSON.parse( message ); if( msg.id === 1 ) { return msg.state; }" }, { "topic": "test/multiswitch", "apply": "let msg = JSON.parse( message ); if( msg.id === 2 ) { return msg.state; }" }, "test/multiswitch3$.state" ] } }, { "type": "lightbulb-RGBWW", "name": "Test RGBWW Light", "url": "homebridge2", "logMqtt": true, "topics": { "getRGBWW": "test/rgbwwlight/rgb", "setRGBWW": "test/rgbwwlight/rgb/set" }, "noWhiteMix": true, "accessory": "mqttthing" }, { "type": "fan", "name": "Test Fan", "url": "homebridge2", "logMqtt": true, "topics": { "getRotationDirection": "test/fan/getRotationDirection", "setRotationDirection": "test/fan/setRotationDirection", "setRotationSpeed": "test/fan/setRotationSpeed", "getRotationSpeed": "test/fan/getRotationSpeed", "setOn": "test/fan/setOn", "getOn": "test/fan/getOn" }, "integerValue": true, "accessory": "mqttthing", "optimizePublishing": true }, { "accessory": "mqttthing", "type": "battery", "name": "Test Battery", "url": "homebridge2", "logMqtt": true, "topics": { "getBatteryLevel": "battery/level", "getStatusLowBattery": "battery/low" } }, { "type": "lightbulb-RGBWW", "name": "Test RGBWW", "url": "homebridge2", "logMqtt": true, "topics": { "setRGBWW": "rgbww/rgbww", "setOn": "rgbww/on" }, "switchWhites": true, "accessory": "mqttthing" }, { "type": "thermostat", "name": "Termostat", "url": "homebridge2", "topics": { "getCoolingThresholdTemperature": "/termostat/espSogutmaEsik", "setCoolingThresholdTemperature": "/termostat/homekitSogutmaEsik", "getCurrentHeatingCoolingState": "/termostat/espIsitiliyorSogutuluyor", "getCurrentRelativeHumidity": "/termostat/espnem", "getTargetRelativeHumidity": "/termostat/gettarghum", "setTargetRelativeHumidity": "/termostat/settarghum", "getCurrentTemperature": "/termostat/espSicaklik", "getHeatingThresholdTemperature": "/termostat/espIsitmaEsik", "setHeatingThresholdTemperature": "/termostat/homekitIsitmaEsik", "getTargetHeatingCoolingState": "/termostat/espDurumu", "setTargetHeatingCoolingState": "/termostat/homekitDurumu", "getTargetTemperature": "/termostat/espHedefSicaklik", "setTargetTemperature": "/termostat/homekitHedefSicaklik" }, "confirmationPeriodms": 1500, "logMqtt": true, "accessory": "mqttthing" }, { "type": "lightbulb-RGBWW", "name": "Office Lamp 1", "url": "homebridge2", "topics": { "setRGBWW": "15858303/RGBWW", "setOn": "15858303/State" }, "integerValue": true, "whiteMix": false, "accessory": "mqttthing" }, { "type": "lightbulb-RGBWW", "name": "Office Lamp 2", "url": "homebridge2", "topics": { "setRGBWW": "8387/RGBWW", "setOn": "8387/State" }, "integerValue": true, "whiteMix": false, "accessory": "mqttthing" }, { "type": "lightbulb-White", "name": "LightDim255", "url": "homebridge2", "logMqtt": true, "topics": { "getWhite": "light255/get", "setWhite": "light255/set" }, "whiteMix": true, "accessory": "mqttthing" }, { "accessory": "mqttthing", "type": "airQualitySensor", "name": "Air Quality", "url": "homebridge2", "logMqtt": true, "topics": { "getAirQuality": "test/airquality", "getCurrentTemperature": "test/aqTemp" }, "airQualityValues": [ "0", "1", "2", "3", "4", "5" ], "history": true, "room2": true }, { "accessory": "mqttthing", "type": "occupancySensor", "name": "Occupancy Sensor", "url": "homebridge2", "logMqtt": true, "topics": { "getOccupancyDetected": "test/occupancy" } }, { "name": "AMAX", "accessory": "mqttthing", "url": "homebridge2", "username": "user", "password": "passwd", "type": "securitySystem", "codec": "shellyAMAX", "ShellyGen": 1, "AMAX": { "setState": { "Armed": { "name": "shellies/shellyuni-98CDAC25XXXX", "id": 0, "ACTIVE": "on" }, "Disarmed": { "name": "shellies/shellyuni-98CDAC25XXXX", "id": 0, "ACTIVE": "on" } }, "getState": { "Armed": { "name": "shellies/shellyuni-98CDAC25XXXX", "id": 0, "ACTIVE": 1 }, "Triggered": { "name": "shellies/shellyuni-98CDAC25XXXX", "id": 1, "ACTIVE": 0 }, "AltTriggered": { "name": "shellies/shellyuni-98CDAC25XXXX", "id": 1, "ACTIVE": 1 } } }, "targetStateValues": [ "SA", "AA", "NA", "D" ], "currentStateValues": [ "SA", "AA", "NA", "D", "T" ], "restrictTargetState": [ 1, 3 ], "logMqtt": true }, { "accessory": "mqttthing", "type": "door", "name": "Door", "url": "homebridge2", "logMqtt": "true", "topics": { "getCurrentPosition": "test/door/getCurrentPosition", "setTargetPosition": "test/door/setTargetPosition", "getPositionState": "test/door/getPositionState" }, "minPosition": 10, "maxPosition": 60 }, { "type": "weatherStation", "name": "WeatherPI", "topics": { "getAirPressure": "weatherstation/getAirPressure", "getRain1h": "weatherstation/getRain1h", "getRain24h": "weatherstation/getRain24h", "getWindDirection": "weatherstation/getWindDirection", "getWindSpeed": "weatherstation/getWindSpeed", "getCurrentRelativeHumidity": "weatherstation/getCurrentRelativeHumidity", "getCurrentTemperature": "weatherstation/getCurrentTemperature" }, "history": true, "accessory": "mqttthing" } ], "accessories": [ { "type": "outlet", "name": "Test Outlet", "url": "homebridge2", "topics": { "setOn": "test/outlet/on", "getInUse": "test/outlet/inuse", "getWatts": "test/outlet/watts", "getVolts": "test/outlet/voltage", "getAmperes": "test/outlet/amps" }, "accessory": "mqttthing", "logMqtt": true, "minVolts": 0, "maxVolts": 30 }, { "accessory": "mqttthing", "type": "lightbulb", "url": "homebridge2", "name": "Escalier", "topics": { "getOn": { "topic": "test/Escalier", "apply": "return JSON.parse(message).state_right" }, "setOn": "test/Escalier/right/set", "getOnline": { "topic": "zigbee2mqtt/boutonentree2/availability", "apply": "return message == 'online' ? 'ON' : 'OFF';" } }, "logMqtt": true, "integerValue": false, "onValue": "ON", "offValue": "OFF", "turnOffAfterms": "120000", "onlineValue": "ON", "offlineValue": "OFF" }, { "accessory": "mqttthing", "type": "lightbulb", "url": "homebridge2", "name": "Simple light", "topics": { "getOn": "fake/light/getOn", "setOn": "fake/light/setOn" }, "integerValue": true, "logMqtt": true } ] }