Giter VIP home page Giter VIP logo

hass-configurator's Introduction

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!

hass-configurator's People

Contributors

danielperna84 avatar jmart518 avatar salim-b avatar atoxio avatar tjorim avatar munsio avatar sytone avatar javawizard avatar adebree avatar nelsonblaha avatar proloser avatar emontnemery avatar wrt54g avatar misterbenj34 avatar overkill32 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.