-
Notifications
You must be signed in to change notification settings - Fork 10
developer config json
The config.json file is used by the YIO software to determine the integrations, the look and use of YIO.
In this file all data is stored from YIO, so if you like to make a backup of your data, you only need to save this File.
The following things can be defined in YIOs config file:
At the Entity Section you define what devices will be available at the YIO GUI. YIO is not limiting you to define areas.
friendly_name Tag: is user defined and will be used for display the name of the entity at the YIO UI.
integration Tag: determine the integration to what the interaction with a device gets forwarded (homeassistant, homey)
Following Code will be used to determine an Entity:
"entities": {
"light": [
{
"entity_id": "light.livingroom",
"friendly_name": "Main Lamp",
"integration": "homeassistant",
"supported_features": [
"BRIGHTNESS","COLOR"
]
},
,
"blind": [
{
"entity_id": "cover.living_room_blinds_level",
"friendly_name": "Living room blinds",
"integration": "homeassistant",
"supported_features": [
"OPEN",
"CLOSE",
"STOP",
"POSITION"
]
},
"media_player": [
{
"entity_id": "media_player.livingroom",
"friendly_name": "Living Room Sonos",
"integration": "homeassistant",
"supported_features": [
"SOURCE",
"APP_NAME",
"VOLUME",
"VOLUME_UP",
"VOLUME_DOWN",
"VOLUME_SET",
"MUTE",
"MUTE_SET",
"MEDIA_TYPE",
"MEDIA_TITLE",
"MEDIA_ARTIST",
"MEDIA_ALBUM",
"MEDIA_DURATION",
"MEDIA_POSITION",
"MEDIA_IMAGE",
"PLAY",
"PAUSE",
"STOP",
"PREVIOUS",
"NEXT",
"SEEK",
"SHUFFLE",
"TURN_ON",
"TURN_OFF"
]
},
]
},
At the Integration Section you define what integration is available for YIO.
Following Integrations are actually possible:
[x] Home Assistant [x] Homey [ ] openHAB
ip Tag: needs to point to your integrations server ip and port or to the hostname with port
token Tag: generate a Home Assistant Long-lived access token and copy it here
friendly_name Tag: user defined name will be used for display the name of the integration at the YIO UI settings page.
plugin Tag: select the plugin that is used
type Tag:
Following Code will be used to determine an home assitant Integration:
"integration": [
{
"connectionOpen": true,
"data": {
"ip": "XXX.XXX.XXX.XXX:8123",
"token": "Long-lived access token"
},
"friendly_name": "Home Assistant",
"id": 1,
"obj": null,
"plugin": "homeassistant",
"type": "homeassistant"
}
],
Following Code will be used to determine an homy Integration:
"integration": [
{
"connectionOpen": true,
"data": {
"ip": "XXX:XXX:XXX:XXX:8936"
},
"friendly_name": "Homey",
"id": 1,
"obj": null,
"plugin": "homey",
"type": "homey"
}
],
At the Settings Section all settings will be saved when changed via the Settings Page.
You can also preset the settings here for first bootup.
language Tag: add a predefined language here (needs to be available at YIO, else englisch is used as default)
autobrightness Tag: set true or false to enable or disable auto brightness of the display
proximity Tag: changes the sensitivity of the proximity sensor (value from 0 to 255)
shutdowntime Tag: time in minutes when the remote shut itself down (value from 0 (endless) to 7200 (8h))
softwareupdate Tag: set true or false to enable or disable automatic updates to the software
wifitime Tag: time in minutes when the remote shuts down the Wi-Fi connection (value 0 (endless) to 60 (1h))
bluetootharea Tag: set true or false to enable or disable bluetooth area scanning
Following Code will be used to determine settings:
"settings":
{
"language": "en_US",
"autobrightness": true,
"proximity": 40,
"shutdowntime": 7200,
"softwareupdate": false,
"wifitime": 240,
"bluetootharea": false
},
At the UI_Config Section the complete UI will be defined. YIO will not limit you where you like your devices to be or how many pages you would like to have.
selected_profile Tag: here YIO will save what profile was used last, you can determine it here as well
profile Tag: generate profiles with this tag, each profile hold the name, pages & favorites tag
profile/name Tag: is user defined and will be used for display the name of the profil at the YIO Profile selector
profile/pages Tag: define the order and the show of pages at the YIO UI
profile/favorites Tag: define which devices will be displayed at the favorites page for each profile
pages Tag: basically desing your displayed page here it will hold the name, image & group tag
pages/name Tag: name of the page that will be displayed in the UI and in the selection menu
pages/image Tag: path to image that will be used as headergrapic (images needs to be available, else it will be blank)
pages/groups Tag: groups that will be available at the defined page (e.g. grouped lights, grouped media player or mixed)
groups Tag: will group devices under a header and will hold the name, switch & entities tag
groups/name Tag: user defined header that will be displayed above each group
groups/switch Tag: set true or false to enable or disable a group switch
group/entities Tag: will hold all devices that should be displayed in this group
Following Code will be used to determine settings:
"ui_config":
{
"darkmode": true,
"selected_profile": 0,
"profiles": {
"0": {
"name": "YIO",
"pages": ["favorites","0","settings"],
"favorites": ["light.livingroom"]
},
"1": {
"name": "Standard",
"pages": [],
"favorites": ["favorites","1","settings"]
}
},
"pages": {
"0": {
"name": "Living Room",
"image": "/usr/yio-remote/living.png",
"groups": ["0"]
},
"1": {
"name": "Garden",
"image": "/usr/yio-remote/garden.png",
"groups": ["1","2"]
}
},
"groups": {
"0": {
"name": "Lights",
"switch": true,
"entities": ["light.livingroom", "light.livingroom2", "light.livingroom3"]
},
"1": {
"name": "Lights",
"switch": true,
"entities": ["light.garden","light.garden1"]
},
"2": {
"name": "Sonos",
"switch": false,
"entities": ["media_player.garden"]
}
}
},
At the Remote Section the IR Devices wil be saved. You are able to define the IR Codes that need to be send here, or you can learn these codes via the YIO UI.
area Tag: needs to match a previously defined area (case Senitive)
entity_id Tag: used to determine the entity id that is connected to this IR code
friendly_name Tag: is user defined and will be used for display the name of the IR device
integration Tag: determine the integration the interaction with this remote will be forwarded to (ir, tcp_ip)
supported_features Tag: define features that are supported from the device
commands Tag: define the command that is used to control your device
commands/button_map Tag: map software or hardware buttons to this command
Following Code will be used to determine a IR remote:
"remote": [
{
"area": "Living Room",
"entity_id": "remote.living_room",
"friendly_name": "Living Room TV",
"integration": "ir",
"supported_features": ["POWER TOGGLE", "CHANNEL UP"],
"commands": [
{
"code": "R1,0000,0067,0000,0015,0060,0018,0018,0018,0030,0018,0030,0018,0030,0018,0018,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,0018,0030,0018,0030,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,03f6",
"button_map": "POWER_TOGGLE"
},
{
"code": "R2,0000,0067,0000,0015,0060,0018,0018,0018,0030,0018,0030,0018,0030,0018,0018,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,0018,0030,0018,0030,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,0018,0018,0018,0030,0018,0018,03f6",
"button_map": "CHANNEL_UP"
}
]
}
]
YIO Remote Project Documentation Wiki Page https://github.com/YIO-Remote/documentation/wiki
Home
YIO Remote API
Dock
FAQ
Supporters
Remote Firmware
Dock Firmware
YIO Homepage
YIO Community
YIO Github
YIO Discord Channel
YIO Facebook
YIO Instagram
YIO Twitter
YIO YouTube
YIO Translation
Dock
Remote
Supported IR Extenders
Home Assistant
Homey
openHAB
Roon
Spotify
YIO Dock
Build Environment
Setup Qt IDE
Setup PlatformIO IDE
Developer VM
Setup Buildroot
API
API
WebSocket API
Generic
SSH/SCP
Architecture
Coding Guidelines
Configuration File
Developing Integrations
Entity Types
Logging
Workflow
Git Workflow
Pull Requests
Continuous Integration