# Homebridge UI

[![npm](https://badgen.net/npm/v/homebridge-config-ui-x/latest?label=latest)](https://www.npmjs.com/package/homebridge-config-ui-x)
[![npm](https://badgen.net/npm/v/homebridge-config-ui-x/beta?label=beta)](https://www.npmjs.com/package/homebridge-config-ui-x)
[![npm](https://badgen.net/npm/dt/homebridge-config-ui-x?label=downloads)](https://www.npmjs.com/package/homebridge-config-ui-x)

:gb: :de: :fr: :poland: :czech_republic: :ru: :cn: :hungary: :jp: :es: :netherlands: :tr: :it: :bulgaria: :sweden: :norway: :finland: :slovenia: :brazil: :portugal: :indonesia: :kr: :macedonia: :thailand: :israel: :ukraine:

**Homebridge UI** is a web based management tool for [Homebridge](https://github.com/homebridge/homebridge) that allows you to manage all aspects of your Homebridge setup.

- Install and configure Homebridge plugins
- Edit the Homebridge `config.json` with advanced JSON syntax checking and structure validation
- Visual configuration for over 450 plugins (no manual config.json editing required)
- Monitor your Homebridge server via a fully customisable widget-based dashboard
- View the Homebridge logs
- View and control Homebridge accessories
- Restart Homebridge
- Backup and Restore your Homebridge instance
- Set up and manage your Homebridge plugins as [child bridges](https://github.com/homebridge/homebridge/wiki/Child-Bridges)
- and more...

Homebridge UI also provides a tool called [`hb-service`](https://github.com/homebridge/homebridge-config-ui-x/wiki/Homebridge-Service-Command) which makes it easy to set up Homebridge as a service on Linux/Raspbian, macOS and Windows 10.

## Installation Instructions

For detailed instructions on how to set up Node.js and Homebridge with Homebridge UI as a service, see the guides on the wiki:

- homebridge-raspbian-image [Setup Homebridge using the official Homebridge Raspberry Pi Image](https://github.com/homebridge/homebridge-raspbian-image/wiki/Getting-Started)
- raspbian [Setup Homebridge on a Raspberry Pi (Raspbian)](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Raspbian)
- linux [Setup Homebridge on Debian or Ubuntu Linux](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Debian-or-Ubuntu-Linux)
- windows [Setup Homebridge on Windows 10](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Windows-10)
- macos [Setup Homebridge on macOS](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-macOS)
- docker [Setup Homebridge using Docker](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Docker)
- synology-dsm [Setup Homebridge on a Synology NAS](https://github.com/homebridge/homebridge/wiki/Install-Homebridge-on-Synology-DSM)

If your platform is not listed above, or you want to use your own service manager, see the [Manual Configuration](https://github.com/homebridge/homebridge-config-ui-x/wiki/Manual-Configuration) wiki article for instructions on setting up the Homebridge UI to run as a Homebridge plugin instead of a service.

The default username is `admin` and the default password is `admin`.

The UI can be accessed via web browser by default on port `8581` (e.g. `http://localhost:8581`).

## Usage

### Status Screen

This shows an overview of your Homebridge system. The dashboard is widget-based and completely customisable with a number of themes available.

![Status](screenshots/homebridge-config-ui-x-status.png)

### Plugin Screen

This shows you the currently installed plugins and allows you to install, configure, update and remove plugins.

![Plugin](screenshots/homebridge-config-ui-x-darkmode-plugins.png)

You can configure supported plugins using the graphical settings editor, or by editing the config JSON directly.

![Plugin Settings](screenshots/homebridge-config-ui-x-darkmode-alexa-settings.png)

### Configuration Screen

The configuration screen allows you to modify your Homebridge `config.json`. The built-in editor automatically syntax-checks your JSON and makes a backup of your config every time you make a change.

![Config](screenshots/homebridge-config-ui-x-config.png)

### Log Screen

This shows you the Homebridge rolling log. This is helpful for troubleshooting.

![Log](screenshots/homebridge-config-ui-x-logs.png)

### Accessories Screen

This shows you the Homebridge accessories for all the Homebridge instances on your network. You can use this to control accessories from a web browser and works well on mobile devices which allows users to control Homebridge from non-Apple devices.

![Accessories](screenshots/homebridge-config-ui-x-accessories.png)

## Plugin Development

The https://developers.homebridge.io website contains the Homebridge API reference, available service and characteristic types, and plugin examples.

The [Homebridge Plugin Template](https://github.com/homebridge/homebridge-plugin-template) project provides a base you can use to create your own _platform_ plugin.

There are many existing plugins you can study; you might start with the [Homebridge Example Plugins](https://github.com/homebridge/homebridge-examples) or a plugin that already implements the device type you need.

## Community

The official Homebridge Discord server and Reddit community are where users can discuss Homebridge and ask for help.

[![Homebridge Discord](https://discordapp.com/api/guilds/432663330281226270/widget.png?style=banner2)](https://discord.gg/kqNCe2D) [![Homebridge Reddit](https://raw.githubusercontent.com/homebridge/homebridge/50f91541bc8731ed0c794f1370d9b76f49443d11/.github/homebridge-reddit.svg)](https://www.reddit.com/r/homebridge/)

HomeKit communities can also be found on both [Discord](https://discord.gg/RcV7fa8) and [Reddit](https://www.reddit.com/r/homekit).

## Limitations

- One bridge can only expose 150 accessories due to a HomeKit limit. You can however run your plugins as a [Child Bridge](https://github.com/homebridge/homebridge/wiki/Child-Bridges) or run [Multiple Homebridge Instances](https://github.com/oznu/homebridge-config-ui-x/wiki/Homebridge-Service-Command#multiple-instances) to get around this limitation.
- Once an accessory has been added to the Home app, changing its name via Homebridge won't be automatically reflected in iOS. You must change it via the Home app as well.

## Credits

- Homebridge was originally created by [Nick Farina](https://twitter.com/nfarina).
- The original HomeKit API work was done by [Khaos Tian](https://twitter.com/khaost) in his [HAP-NodeJS](https://github.com/homebridge/HAP-NodeJS) project.
- Homebridge UI was originally created by [oznu](https://github.com/oznu).
