danielperna84 / hass-configurator

Configuration UI for Home Assistant

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

HASS Configurator

Build Status

Configuration UI for Home Assistant

The HASS Configurator is a small webapp (you access it via web browser) that provides a filesystem-browser and text-editor to modify files on the machine the configurator is running on. It has been created to allow easy configuration of Home Assistant. It is powered by Ace editor, which supports syntax highlighting for various code/markup languages. YAML files (the default language for Home Assistant configuration files) will be automatically checked for syntax errors while editing.
IMPORTANT: The configurator fetches JavaScript libraries, CSS and fonts from CDNs. Hence it does NOT work when your client device is offline. And it is only available for Python 3.

Feature list:

  • Web-Based editor to modify your files with syntax highlighting and automatic yaml-linting
  • Upload and download files
  • Lists of available triggers, events, entities, conditions and services. Selected element gets inserted into the editor at the last cursor position.
  • Home Assistant event observer (connect to Home Assistant via WebSocket and see all the events that happen)
  • Restart Home Assistant directly with the click of a button
  • SSL support
  • Optional authentication and IP filtering for added security
  • Direct links to Home Assistant documentation and icons
  • Execute shell commands
  • Stage and commit changes in Git repositories, create and switch between branches, push to SSH remotes
  • Customizable editor settings (saved using localStorage)
  • Standalone mode that hides the Home Assistant related panel on the left side (triggers, entities etc.). Set HASS_API to None or use the commandline flag -s / --standalone to enable this mode.

Screenshot HASS Configurator:

Screenshot

If there is anything you want to have differently, feel free to fork and enhance. And if something is not working, create an issue here and I will have a look at it.
WARNING: This tool allows you to browse your filesystem and modify files. So be careful which files you edit, or you might break critical parts of your system.

Installation

Possible methods to install the configurator are documented in the Wiki: Installation

Configuration

Available options to customize the behaviour of the configurator are documented in the Wiki: Configuration

Keeping the configurator running

Since the configurator script on its own is no service, you'll have to take some extra steps to keep it running. More information on this topic can be found in the Wiki: Daemonizing

API

There is an API available to programmatically add and remove IP addresses / networks to and from ALLOWED_NETWORKS and BANNED_IPS. Usage is documented in the Wiki: API

Embedding into Home Assistant

Once you have properly set up the configurator, you can use the panel_iframe component of Home Assistant to embed the configurator directly into the Home Assistant UI.
An example configuration would look like this:

panel_iframe:
  configurator:
    title: Configurator
    icon: mdi:wrench
    url: http://1.2.3.4:3218

IMPORTANT: Be careful when setting up port forwarding to the configurator while embedding into Home Assistant. If you don't restrict access by requiring authentication and / or blocking based on client IP addresses, your configuration will be exposed to the web!

About

Configuration UI for Home Assistant

License:MIT License


Languages

Language:Python 50.3%Language:HTML 48.1%Language:CSS 1.5%Language:Dockerfile 0.1%