Can I create an entire custom UI / Frontend? - Other newbie questions

I am a web developer and have a new client that uses HA. I am new to Home Assistant, and have some general question I did not see answers to while browsing the site. It’s possible my questions are so high-level that the answers are implied knowledge. Nevertheless…

  1. Am I able to design a custom User Interface for my client to control his devices? If so, what learning path should I research? I know Polymer is used, is that where I would begin?

  2. Is it possible for us to create our own mobile application for the client where he could leverage Home Assistant’s functionality? For instance, can he switch off his bedroom light from within our own mobile app we designed?

  3. Lastly, is there a way I can set up a dev environment to work on?

Thank you for looking at my post. We are really excited to join the Home Assistant community.

Regards,

John

here is your personal helper for high level question: http://lmgtfy.com/?q=home+assistant+frontend+development

1 Like

Thanks. Prior to subscribing to this forum and asking this question, we of course did some preliminary research. There is no clear , definitive answer to custom UI development that we saw, other than cards, and more information dialogs.

I will say this though, our first impression of the Home Assistant community is disappointing. We were hoping to get involved in a project whose contributors were knowledgeable and supportive of new users.

We will look into alternative solutions that may answer our developer’s and client questions.

Regards,

John

Everything is documented in the frontend developer docs. You can set up a local dev environment and develop your custom UI.

If you have any specific question, feel free to ask. However, please note that devs support efforts that improve HA.

There’s a couple approaches. You can fork the home-assistant-polymer repo and build your own frontend based on the existing stock frontend.

Or, you just just use the HomeAssistant websocket API and write your own frontend from scratch. This is the approach used by interfaces like TileBoard