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.
HASS_API
to None
or use the commandline flag -s
/ --standalone
to enable this mode.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.
Possible methods to install the configurator are documented in the Wiki: Installation
Available options to customize the behaviour of the configurator are documented in the Wiki: Configuration
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
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
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!