UNPKG

homebridge-lgwebos-tv

Version:
1,466 lines (1,465 loc) • 64 kB
{ "pluginAlias": "LgWebOsTv", "pluginType": "platform", "singular": true, "fixArrays": true, "strictValidation": true, "headerDisplay": "This plugin works with webOS based TV and are exposed to HomeKit as separate accessories and each needs to be manually paired.", "footerDisplay": "For documentation please see [GitHub repository](https://github.com/grzegorz914/homebridge-lgwebos-tv).", "schema": { "type": "object", "properties": { "devices": { "type": "array", "items": { "type": "object", "title": "Device", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "LG TV", "required": true }, "host": { "title": "IP/Hostname", "type": "string", "placeholder": "192.168.1.8", "format": "hostname", "required": true }, "mac": { "title": "Address Mac", "type": "string", "placeholder": "ab:cd:ef:fe:dc:ba", "pattern": "^([A-Fa-f0-9]{2}:){5}[A-Fa-f0-9]{2}$", "required": true }, "broadcastAddress": { "title": "Broadcast address", "type": "string", "placeholder": "255.255.255.255", "format": "ipv4", "description": "Her set Your own broadcast address, only if You have problem to Power ON TV.", "required": false }, "disableAccessory": { "title": "Disable Accessory", "type": "boolean", "default": false, "description": "Here You can disable this accessory.", "required": false }, "getInputsFromDevice": { "title": "Load Inputs From Device", "type": "boolean", "default": false, "description": "This function get all available inputs and apps direct from device, manually configured inputs will be skipped.", "required": false }, "disableLoadDefaultInputs": { "title": "Disable Load Default Inputs", "type": "boolean", "default": false, "description": "This function disable load default inputs Live TV, HDMI 1, HDMI 2 in to the inputs list.", "condition": { "functionBody": "return model.devices[arrayIndices].getInputsFromDevice === false" }, "required": false }, "filterSystemApps": { "title": "Hide System Apps", "type": "boolean", "default": false, "description": "If enabled, all System Apps will not be displayed on the list of inputs.", "condition": { "functionBody": "return model.devices[arrayIndices].getInputsFromDevice === true" }, "required": false }, "inputsDisplayOrder": { "title": "Inputs Display Order", "type": "integer", "minimum": 0, "maximum": 4, "default": 0, "description": "Here select display order of the inputs list.", "oneOf": [ { "title": "None", "enum": [ 0 ] }, { "title": "Ascending by Name", "enum": [ 1 ] }, { "title": "Descending by Name", "enum": [ 2 ] }, { "title": "Ascending by Reference", "enum": [ 3 ] }, { "title": "Descending by Reference", "enum": [ 4 ] } ], "required": true }, "inputs": { "type": "array", "items": { "title": "Input", "type": "object", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Name", "description": "Here set Your own name.", "required": false }, "reference": { "title": "Reference", "type": "string", "placeholder": "Input/App, Channel reference", "description": "Here set the Input/App, Channel reference.", "required": false }, "mode": { "title": "Mode", "type": "integer", "description": "Here select the function mode.", "default": 0, "oneOf": [ { "title": "Input/App", "enum": [ 0 ] }, { "title": "Live TV Channel", "enum": [ 1 ] } ], "required": true } } } }, "buttons": { "type": "array", "items": { "title": "Button", "type": "object", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Name", "description": "Here set Your own name.", "required": false }, "mode": { "title": "Mode", "type": "integer", "description": "Here select the function mode.", "minimum": 0, "maximum": 2, "default": 0, "oneOf": [ { "title": "Input/App", "enum": [ 0 ] }, { "title": "Live TV Channel", "enum": [ 1 ] }, { "title": "Remote Control", "enum": [ 2 ] } ], "required": true }, "reference": { "title": "Reference", "type": "string", "placeholder": "Input/App, Channel reference", "description": "Here set the Input/App or Channel reference.", "required": false }, "command": { "title": "RC Command", "type": "string", "default": "POWER", "oneOf": [ { "title": "0", "enum": [ "0" ] }, { "title": "1", "enum": [ "1" ] }, { "title": "2", "enum": [ "2" ] }, { "title": "3", "enum": [ "3" ] }, { "title": "4", "enum": [ "4" ] }, { "title": "5", "enum": [ "5" ] }, { "title": "6", "enum": [ "6" ] }, { "title": "7", "enum": [ "7" ] }, { "title": "8", "enum": [ "8" ] }, { "title": "9", "enum": [ "9" ] }, { "title": "Power", "enum": [ "POWER" ] }, { "title": "Volume Up", "enum": [ "VOLUMEUP" ] }, { "title": "Volume Down", "enum": [ "VOLUMEDOWN" ] }, { "title": "Mute", "enum": [ "MUTE" ] }, { "title": "Channel Up", "enum": [ "CHANNELUP" ] }, { "title": "Channel Down", "enum": [ "CHANNELDOWN" ] }, { "title": "Home", "enum": [ "HOME" ] }, { "title": "Menu", "enum": [ "MENU" ] }, { "title": "Q Menu", "enum": [ "QMENU" ] }, { "title": "Menu Up", "enum": [ "UP" ] }, { "title": "Menu Down", "enum": [ "DOWN" ] }, { "title": "Menu Left", "enum": [ "LEFT" ] }, { "title": "Menu Right", "enum": [ "RIGHT" ] }, { "title": "Menu OK", "enum": [ "ENTER" ] }, { "title": "Back", "enum": [ "BACK" ] }, { "title": "Exit", "enum": [ "EXIT" ] }, { "title": "Eject", "enum": [ "EJECT" ] }, { "title": "Info", "enum": [ "INFO" ] }, { "title": "Play", "enum": [ "PLAY" ] }, { "title": "Pause", "enum": [ "PAUSE" ] }, { "title": "Record", "enum": [ "RECORD" ] }, { "title": "Fast Forward", "enum": [ "FASTFORWARD" ] }, { "title": "Rewind", "enum": [ "REWIND" ] }, { "title": "Red", "enum": [ "RED" ] }, { "title": "Green", "enum": [ "GREEN" ] }, { "title": "Yellow", "enum": [ "YELLOW" ] }, { "title": "Blue", "enum": [ "BLUE" ] }, { "title": "Live Zoom", "enum": [ "LIVE_ZOOM" ] }, { "title": "Magnifier Zoom", "enum": [ "MAGNIFIER_ZOOM" ] }, { "title": "3D Mode", "enum": [ "3D_MODE" ] }, { "title": "List", "enum": [ "LIST" ] }, { "title": "AD", "enum": [ "AD" ] }, { "title": "Dash", "enum": [ "DASH" ] }, { "title": "Favorites", "enum": [ "FAVORITES" ] }, { "title": "Program", "enum": [ "PROGRAM" ] }, { "title": "My Apps", "enum": [ "MYAPPS" ] }, { "title": "Aspect Ratio", "enum": [ "ASPECT_RATIO" ] }, { "title": "Screen Remot", "enum": [ "SCREEN_REMOT" ] }, { "title": "Recent", "enum": [ "RECENT" ] }, { "title": "SAP", "enum": [ "SAP" ] }, { "title": "CC", "enum": [ "CC" ] }, { "title": "Click", "enum": [ "CLICK" ] }, { "title": "Teletext", "enum": [ "TELETEXT" ] }, { "title": "Text Option", "enum": [ "TEXTOPTION" ] }, { "title": "BML Data", "enum": [ "BML_DATA" ] }, { "title": "3 Digital Input", "enum": [ "3DIGIT_INPUT" ] } ], "description": "Here select the remote control command.", "required": false }, "displayType": { "title": "Display Type", "type": "integer", "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Outlet", "enum": [ 1 ] }, { "title": "Switch", "enum": [ 2 ] } ], "description": "Here select display type in HomeKit app.", "required": true }, "namePrefix": { "title": "Prefix", "type": "boolean", "description": "Here enable/disable the accessory name as a prefix for button name.", "required": false } } } }, "sensorPower": { "title": "Power", "type": "boolean", "default": false, "description": "This expose Power as a Motion Sensor to use with automations, fired if Power ON.", "required": false }, "sensorPixelRefresh": { "title": "Pixel Refresh", "type": "boolean", "default": false, "description": "This expose Pixel Refresh as a Motion Sensor to use with automations, fired if PixelRefresh ON.", "required": false }, "sensorVolume": { "title": "Volume", "type": "boolean", "default": false, "description": "This expose Volume as a Motion Sensor to use with automations, fired on every Volume change.", "required": false }, "sensorMute": { "title": "Mute", "type": "boolean", "default": false, "description": "This expose Mute as a Motion Sensor to use with automations, fired if Mute ON.", "required": false }, "sensorInput": { "title": "Input", "type": "boolean", "default": false, "description": "This expose Input as a Motion Sensor to use with automations, fired on every Input change.", "required": false }, "sensorChannel": { "title": "Channel", "type": "boolean", "default": false, "description": "This expose Channel as a Motion Sensor to use with automations, fired on every Input change.", "required": false }, "sensorSoundMode": { "title": "Sound Mode", "type": "boolean", "default": false, "description": "This expose Sound Mode as a Motion Sensor to use with automations, fired on every Sound Mode change, webOS >= 6.0.", "required": false }, "sensorSoundOutput": { "title": "Sound Output", "type": "boolean", "default": false, "description": "This expose Sound Output as a Motion Sensor to use with automations, fired on every Sound Output change.", "required": false }, "sensorPictureMode": { "title": "Picture Mode", "type": "boolean", "default": false, "description": "This expose Picture Mode as a Motion Sensor to use with automations, fired on every Picture Mode change, webOS >= 4.0.", "required": false }, "sensorScreenOnOff": { "title": "Screen Off", "type": "boolean", "default": false, "description": "This expose Screen ON/OFF as a Motion Sensor to use with automations, fired if Screen Off, webOS >= 4.0.", "required": false }, "sensorScreenSaver": { "title": "Screen Saver", "type": "boolean", "default": false, "description": "This expose Screen Saver as a Motion Sensor to use with automations, fired if Screen Saver ON, webOS >= 4.0.", "required": false }, "sensorPlayState": { "title": "Play State", "type": "boolean", "default": false, "description": "This expose Play State as a Motion Sensor to use with automations, fired if Playing, webOS >= 7.0.", "required": false }, "sensorInputs": { "type": "array", "items": { "title": "Inputs", "type": "object", "description": "Here create Input/App Sensors based on reference, sensor will active if switch to it.", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Name", "description": "Here set Your own name.", "required": false }, "reference": { "title": "Reference", "type": "string", "placeholder": "Input/App reference", "description": "Here set the Input/App reference.", "required": false }, "displayType": { "title": "Type", "type": "integer", "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Motion Sensor", "enum": [ 1 ] }, { "title": "Occupancy Sensor", "enum": [ 2 ] }, { "title": "Contact Sensor", "enum": [ 3 ] } ], "description": "Here select sensor type to be exposed in HomeKit app.", "required": true }, "namePrefix": { "title": "Prefix", "type": "boolean", "description": "Here enable/disable the accessory name as a prefix for sensor name.", "required": false } } } }, "turnScreenOnOff": { "title": "Turn Screen ON/OFF", "type": "boolean", "default": false, "description": "This enable possibility turn screen ON/OFF, webOS >= 4.0.", "required": false }, "turnScreenSaverOnOff": { "title": "Turn Screen Saver ON/OFF", "type": "boolean", "default": false, "description": "This enable possibility turn screen saver ON/OFF, webOS >= 4.0.", "required": false }, "brightnessControl": { "title": "Brightness", "type": "boolean", "default": false, "description": "This enable possibility adjust the Brightness.", "required": false }, "backlightControl": { "title": "Backlight", "type": "boolean", "default": false, "description": "This enable possibility adjust the Backlight.", "required": false }, "contrastControl": { "title": "Contrast", "type": "boolean", "default": false, "description": "This enable possibility adjust the Contrast.", "required": false }, "colorControl": { "title": "Color", "type": "boolean", "default": false, "description": "This enable possibility adjust the Color.", "required": false }, "pictureModeControl": { "title": "Picture Modes", "type": "boolean", "default": false, "description": "This enable possibility change the Picture Mode, webOS >= 4.0.", "required": false }, "pictureModes": { "title": "Picture Mode", "type": "array", "items": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Picture Mode Name", "description": "Here set Your own Picture Mode name.", "required": false }, "reference": { "title": "Mode", "type": "string", "default": "normal", "description": "Here choice the Picture Mode.", "oneOf": [ { "title": "Normal", "enum": [ "normal" ] }, { "title": "Cinema", "enum": [ "cinema" ] }, { "title": "Eco", "enum": [ "eco" ] }, { "title": "Game", "enum": [ "game" ] }, { "title": "Photo", "enum": [ "photo" ] }, { "title": "Sports", "enum": [ "sports" ] }, { "title": "Vivid", "enum": [ "vivid" ] }, { "title": "Technicolor", "enum": [ "technicoloro" ] }, { "title": "Filmmaker", "enum": [ "filmMaker" ] }, { "title": "HDR Filmmaker", "enum": [ "hdrFilmMaker" ] }, { "title": "HDR Cinema", "enum": [ "hdrCinema" ] }, { "title": "HDR Cinema Bright", "enum": [ "hdrCinemaBright" ] }, { "title": "HDR Standard", "enum": [ "hdrStandard" ] }, { "title": "HDR Effect", "enum": [ "hdrEffect" ] }, { "title": "HDR Game", "enum": [ "hdrGame" ] }, { "title": "HDR Vivid", "enum": [ "hdrVivid" ] }, { "title": "HDR Technicolor", "enum": [ "hdrTechnicolor" ] }, { "title": "HDR External", "enum": [ "hdrExternal" ] }, { "title": "Dolby HDR Cinema", "enum": [ "dolbyHdrCinema" ] }, { "title": "Dolby HDR Cinema Bright", "enum": [ "dolbyHdrCinemaBright" ] }, { "title": "Dolby HDR Cinema Dark", "enum": [ "dolbyHdrDarkAmazon" ] }, { "title": "Dolby HDR Standard", "enum": [ "dolbyHdrStandard" ] }, { "title": "Dolby HDR Vivid", "enum": [ "dolbyHdrVivid" ] }, { "title": "Dolby HDR Game", "enum": [ "dolbyHdrGame" ] }, { "title": "Expert 1", "enum": [ "expert1" ] }, { "title": "Expert 2", "enum": [ "expert2" ] } ], "required": false }, "displayType": { "title": "Display Type", "type": "integer", "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Outlet", "enum": [ 1 ] }, { "title": "Switch", "enum": [ 2 ] } ], "description": "Here select display type in HomeKit app.", "required": true }, "namePrefix": { "title": "Prefix", "type": "boolean", "description": "Here enable/disable the accessory name as a prefix for picture mode.", "required": false } } } }, "volumeControl": { "title": "Volume Control", "type": "integer", "minimum": 0, "maximum": 3, "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Slider", "enum": [ 1 ] }, { "title": "Fan", "enum": [ 2 ] }, { "title": "Speaker", "enum": [ 3 ] } ], "description": "Here select what a volume control mode You want to use.", "required": true }, "volumeControlName": { "title": "Volume Control Name", "type": "string", "placeholder": "Name", "description": "Here set Your own volume control name or leave empty.", "required": false }, "volumeControlNamePrefix": { "title": "Volume Control Name Prefix", "type": "boolean", "default": false, "description": "Here enable/disable the accessory name as a prefix for volume control name.", "required": false }, "soundModeControl": { "title": "Sound Modes", "type": "boolean", "default": false, "description": "This enable possibility change the Sound Mode, only for webOS >= 6.0.", "required": false }, "soundModes": { "title": "Sound Mode", "type": "array", "items": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Sound Mode Name", "description": "Here set Your own Sound Mode name.", "required": false }, "reference": { "title": "Mode", "type": "string", "default": "standard", "description": "Here choice the Sound Mode.", "oneOf": [ { "title": "Ai Sound Plus", "enum": [ "aiSoundPlus" ] }, { "title": "Standard", "enum": [ "standard" ] }, { "title": "Movie", "enum": [ "movie" ] }, { "title": "Clear Voice", "enum": [ "clearVoice" ] }, { "title": "News", "enum": [ "news" ] }, { "title": "Sports", "enum": [ "sports" ] }, { "title": "Music", "enum": [ "music" ] }, { "title": "Game", "enum": [ "game" ] } ], "required": false }, "displayType": { "title": "Display Type", "type": "integer", "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Outlet", "enum": [ 1 ] }, { "title": "Switch", "enum": [ 2 ] } ], "description": "Here select display type in HomeKit app.", "required": true }, "namePrefix": { "title": "Prefix", "type": "boolean", "description": "Here enable/disable the accessory name as a prefix for sound mode.", "required": false } } } }, "soundOutputControl": { "title": "Sound Output", "type": "boolean", "default": false, "description": "This enable possibility change the Sound Output.", "required": false }, "soundOutputs": { "title": "Sound Outputs", "type": "array", "items": { "type": "object", "properties": { "name": { "title": "Name", "type": "string", "placeholder": "Sound Output Name", "description": "Here set Your own Sound Output name.", "required": false }, "reference": { "title": "Output", "type": "string", "default": "tv_speaker", "description": "Here choice the Sound Output.", "oneOf": [ { "title": "TV Speaker", "enum": [ "tv_speaker" ] }, { "title": "External Speaker", "enum": [ "external_speaker" ] }, { "title": "External Optical", "enum": [ "external_optical" ] }, { "title": "External ARC", "enum": [ "external_arc" ] }, { "title": "Line Out", "enum": [ "lineout" ] }, { "title": "Headphone", "enum": [ "headphone" ] }, { "title": "TV External Speaker", "enum": [ "tv_external_speaker" ] }, { "title": "TV Speaker Headphone", "enum": [ "tv_speaker_headphone" ] }, { "title": "BT Soundbar", "enum": [ "bt_soundbar" ] }, { "title": "Soundbar", "enum": [ "soundbar" ] } ], "required": false }, "displayType": { "title": "Display Type", "type": "integer", "default": 0, "oneOf": [ { "title": "None/Disabled", "enum": [ 0 ] }, { "title": "Outlet", "enum": [ 1 ] }, { "title": "Switch", "enum": [ 2 ] } ], "description": "Here select display type in HomeKit app.", "required": true }, "namePrefix": { "title": "Prefix", "type": "boolean", "description": "Here enable/disable the accessory name as a prefix for sound output.", "required": false } } } }, "serviceMenu": { "title": "Service Menu", "type": "boolean", "default": false, "description": "This enable access to the service menu from input list.", "required": false }, "sslWebSocket": { "title": "SSL WebSocket", "type": "boolean", "default": false, "description": "This enable SSL WebSocket, support TV with new firmware.", "required": false }, "disableTvService": { "title": "Disable TV Service", "type": "boolean", "default": false, "description": "This disable TV service and prevent display double services if TV already support HomeKit native.", "required": false }, "ezAdjustMenu": { "title": "EZ Adjust Menu", "type": "boolean", "default": false, "description": "This enable access to the ez adjust menu from input list.", "required": false }, "infoButtonCommand": { "title": "Info Button", "type": "string", "default": "MENU", "oneOf": [ { "title": "Home", "enum": [ "HOME" ] }, { "title": "Menu", "enum": [ "MENU" ] }, { "title": "Q Menu", "enum": [ "QMENU" ] }, { "title": "Info", "enum": [ "INFO" ] }, { "title": "Red", "enum": [ "RED" ] }, { "title": "Green", "enum": [ "GREEN" ] }, { "title": "Yellow", "enum": [ "YELLOW" ] }, { "title": "Blue", "enum": [ "BLUE" ] } ], "description": "Here select the function of info button in RC.", "required": false }, "disableLogDeviceInfo": { "title": "Disable Log Device Info", "type": "boolean", "default": false, "description": "This disable logging device info by every connections device to the network.", "required": false }, "disableLogInfo": { "title": "Disable Log Info", "type": "boolean", "default": false, "required": false }, "disableLogSuccess": { "title": "Disable Log Success", "type": "boolean", "default": false, "required": false }, "disableLogWarn": { "title": "Disable Log Warn", "type": "boolean", "default": false, "required": false }, "disableLogError": { "title": "Disable Log Error", "type": "boolean", "default": false, "required": false }, "enableDebugMode": { "title": "Enable Log Debug", "type": "boolean", "default": false, "required": false }, "restFul": { "title": "RESTFul", "type": "object", "properties": { "enable": { "title": "Enable", "type": "boolean", "default": false, "description": "This enable RESTful server." }, "debug": { "title": "Debug", "type": "boolean", "default": false, "description": "This enable debug mode for RESTFul.", "condition": { "functionBody": "return model.devices[arrayIndices].restFul.enable === true;" }, "required": false }, "port": { "title": "Port", "type": "integer", "placeholder": 3000, "description": "Here set the listening Port for RESTful server.", "condition": { "functionBody": "return model.devices[arrayIndices].restFul.enable === true;" }, "required": false } } }, "mqtt": { "title": "MQTT", "type": "object", "properties": { "enable": { "title": "Enable", "type": "boolean", "default": false, "description": "This enable MQTT client." }, "debug": { "title": "Debug", "type": "boolean", "default": false, "description": "This enable debug mode for MQTT.", "condition": { "functionBody": "return model.devices[arrayIndices].mqtt.enable === true;" }, "required": false },