Skip to content

Which Installation should I do? #3918

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 11 commits into from
Closed

Which Installation should I do? #3918

wants to merge 11 commits into from

Conversation

ryanm101
Copy link
Contributor

@ryanm101 ryanm101 commented Nov 6, 2017

Description:
Blog entry to try and assist people in chosing the correct installation method for them

Pull request in home-assistant (if applicable): home-assistant/home-assistant#

Checklist:

  • Branch: Fixes, changes and adjustments should be created against current. New documentation for platforms/components and features should go to next.
  • The documentation follow the standards.


## Considerations

The primary consideration in my opinion is HOW do you want to use Home-assistant?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

use italics or bold instead of all caps

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed


This is the best option for beginners or people that want that appliance "just works feel".

For those that like to get into the nitty gritty and tinker, it's the worst option.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd mention here that there are some limitations with hass.io and that you may not be able to do things that you're using to doing in Linux

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


Simply download the image and install on the SD card, you can now edit the configs and also tweak code etc as needed.

This option is basically Option3 for lazy people :)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

you should mention that this option also installs hass in a venv

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was trying to be funny and imply that with:+This option is basically Option3 for lazy people :)

Unless you've been hiding under a rock (or you're just not a techie) you will have heard of Docker, Linux containers made easy.

This is basically Hass.io but you have more control over the image and how it is mounted, you can also manage your container as you normally do. This is a great way to run Home-assistant if you have a docker swarm and want to have high availability.

Copy link
Contributor

@cribbstechnologies cribbstechnologies Nov 6, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention that this doesn't have the same limitations as hass.io on hardware recognition for certain devices. Also, add info link on docker

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

This is basically Hass.io but you have more control over the image and how it is mounted, you can also manage your container as you normally do. This is a great way to run Home-assistant if you have a docker swarm and want to have high availability.

### Vagrant

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add info link to VirtualBox/Vagrant

### Option 3: [Virtual Environments](https://home-assistant.io/docs/installation/python/)

This is the most "complex" / flexible install (and I use complex in the loosest possible sense of the word). This is for when you don't want to dedicate your system to only home-assistant, you want to tweak the code and contribute back, or perhaps you want to install multiple versions with different configs.
Or perhaps you dont have a raspberry Pi or you want to install on other hardware / operating systems.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

point out it's not a great idea to do this on Windows and mention that the Hassbian install does install a venv itself

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not? Windows is listed in the Install Docks

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Windows install is limited since quite a few components requires the underlying OS is *nix based.
It's been moving that way for quite a while.

@fabaff fabaff added the blog This PR adds a blog article to the Home Assistant website label Nov 6, 2017

* I don't care I just want an autonomous home using my RPi / NUC -> Hass.io
* I don't want to fully dedicate my Pi and I want a simple install -> Hassbian
* I'm a developer -> Python Virtual Env
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or someone who wants more control


This is the best option for beginners or people that want that appliance "just works feel".

For those that like to get into the nitty gritty and tinker, it's the worst option as the Hass.io is fully self contained so you lose access to the underlying Linux system.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"the Hass.io" to "Hass.io"
Mention that there are some issues with certain USB devices not being recognized.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a list anywhere?


# Decisions, Decisions, Decisions...

Ok you've made it this far you're interested in automating your home, but Home-assistant has you stuck there are 3 main ways to install it.. Which should you choose?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's Home Assistant and two periods at the end of sentence.

* Python Virtual Environment
* Hassbian

This brief article will hopefully give you a starting point to make your decision as all 3 are perfectly viable options. These are not prescriptive and hass.io for example can be installed on any linux server but if you are looking to do that, you don't need this article to tell you the options.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use Hass.io. Well, you can't install it on any linux server. There are limitations and requirements.


* I don't care I just want an autonomous home using my RPi / NUC -> Hass.io
* I don't want to fully dedicate my Pi and I want a simple install -> Hassbian
* I'm a developer -> Python Virtual Env
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This option is not limited to developers. It's pretty much the default way how you could run Python based tools. Maybe advance user with command-line experience.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Already corrected


Simply download the image and install on the SD card, you can now edit the configs and also tweak code etc as needed.

This option is basically Option3 for lazy people :), basically the image has the virtual environment already setup and configured on your behalf so you dont need to worry about the commands to execute it .
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Option 3, don't and space before period.


In my case I want a simple stable install for my "production" instance and I have a few spare Raspberry Pis, So I use Hass.io for that "production" instance.

On my Linux Laptop I use the Python Virtual Environment install so I can test different configs and I also have multiple Virtual Environments on the laptop allowing me to develop components using different versions of the libraries.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would replace install with option.

## Install Options
### Option 1: [Hass.io](https://home-assistant.io/hassio/)

This is the simplest option, it hides all that nasty code from you so can only edit the config files and all you have to do is click update in the UI and hey presto you have an updated install.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of talking about nasty code I would focus on the add-ons.

@c727
Copy link
Contributor

c727 commented Nov 6, 2017

It's a great topic and the current installation wiki is definitive not beginner friendly.
Imo we should update the wiki sites instead of writing all to the blog (the blog post can be a summery that we updated install guidelines). Also the blog isn't indexed by search so it's lost after a while.

You should also explain each option a bit more:

  • hass.io: is an aio hub solution with separate addons (note: these addons are not hass components)
  • hassbian: based on raspbian with some modifications for easy updating hass
  • VENV: most flexible installation for all platforms

for each method:

  • pro/con
  • efford in installation and updating process
  • flexibilty
  • supported platforms
    ... maybe this can be done in a table?

also venv is not "complex" to use :P

Copy link
Contributor

@Landrash Landrash left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good.
Some things that might be good to highlight are hass.io addons & hassbian-config.

@@ -0,0 +1,79 @@
---
layout: post
title: "Which installation should I do"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggest another title: Which installation method should I use?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, I was tired and had had a few drinks. :)

---
layout: post
title: "Which installation should I do"
description: "Should you use hass.io or VirtualEnv or hassbian?"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hass.io and Hassbian should be spelled with a capital letter.


# Decisions, Decisions, Decisions...

Ok you've made it this far you're interested in automating your home, but Home Assistant has you stuck there are 3 main ways to install it. Which should you choose?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should it be 3 preferred ways?


Ok you've made it this far you're interested in automating your home, but Home Assistant has you stuck there are 3 main ways to install it. Which should you choose?

* Hass.io
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-order this list to reflect the ordering in the article below?


### Option 2: [Hassbian](https://home-assistant.io/docs/hassbian/installation/)

You have a raspberry Pi, you want to be able to see and edit the internals but you want a simple install and you want to use your RPi for multiple things.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Raspberry Pi.


Simply download the image and install on the SD card, you can now edit the configs and also tweak code etc as needed.

This option is basically Option3 for lazy people :), basically the image has the virtual environment already setup and configured on your behalf so you don't need to worry about the commands to execute it.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's quite a bit more.

  • Since quite a a few components have some external dependencies these are pre-installed in quite a few cases.
  • Home Assistant is run by a separate user that has limited privileges.
    There's more but it should be highlighted over a Venv.

### Option 3: [Virtual Environments](https://home-assistant.io/docs/installation/python/)

This is the most "complex" / flexible install (and I use complex in the loosest possible sense of the word). This is for when you don't want to dedicate your system to only Home Assistant, you want to tweak the code and contribute back, or perhaps you want to install multiple versions with different configs.
Or perhaps you don't have a raspberry Pi or you want to install on other hardware / operating systems. Although there are examples of running this on windows it is generally advisable to avoid doing it as there are numerous issues that seem to pop up. With Docker and Vagrant and Virtual box (see below) there is generally no good reason to use run Home Assistant on Windows.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Capital letter

  • Raspberry Pi
  • Windows


Simply choose where you fall into:

* I don't care I just want an autonomous home using my RPi / NUC -> Hass.io
Copy link
Contributor

@arsaboo arsaboo Nov 7, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove the extra spaces before and after /. Also, add a comma after I don't care, I ...


* I don't care I just want an autonomous home using my RPi / NUC -> Hass.io
* I don't want to fully dedicate my Pi and I want a simple install -> Hassbian
* I'm a developer or Poweruser / Tinkerer -> Python Virtual Env
Copy link
Contributor

@arsaboo arsaboo Nov 7, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same. Also don't capitalize Poweruser or Tinkerer

@balloob
Copy link
Member

balloob commented Nov 7, 2017

I don't like this blog post. We have done a ton of work to guide people to Hass.io. Our UI is all focussed around Hass.io and that is for a good reason: it requires 0 extra OS knowledge of people. If people are interested in the other options, they will find them.

Things like vagrant or custom Docker installations should only be found by people that know what it is. If you don't know what something is, learning Home Assistant and whatever tech you're going to use to run Home Assistant will be a bad choice.

@MartinHjelmare
Copy link
Member

I'd rather make an informed decision than being pushed onto something that perhaps in the end won't meet my expectations. I think this is an honest blog post, and it doesn't write hass.io down.

Many people who try hass.io don't understand its limitations, so stating those up front will cater for a better user experience in the long run.

@c727
Copy link
Contributor

c727 commented Nov 7, 2017

Many people who try hass.io don't understand its limitations,

As I said above. So we should update/ improve our docs and don't write a blog post

@MartinHjelmare
Copy link
Member

Why not both?

@balloob
Copy link
Member

balloob commented Nov 8, 2017

I hope that doing both won't hurt the SEO of our getting started page.

giphy 1

@balloob
Copy link
Member

balloob commented Nov 8, 2017

I'm leaning more to not publishing this blog post. I think that it will only confuse our users. This is fine on a third party blog but we should be clear about our message.

@ryanm101
Copy link
Contributor Author

ryanm101 commented Nov 8, 2017

@balloob
IMO our users are already confused hence the need for this post (regardless of if it should be a wiki or blog).

Not everyone's needs are the same and Hass.io is still not ready for the users with 0 knowledge as they still need to ssh in and modify configuration.yaml. SSH is a jump for some people, 0 knowledge would be when we can configure the whole application from the UI and never need commandline (with caveats for advanced/experimental use). My wife for example could not install and configure Hass.io without a bit of handholding.

I was in a meeting yesterday in work where very technical people told me how they struggled with YAML (in the context of Ansible). I was shocked as while I hold little love for YAML I certainly wouldn't class it as particularly difficult. Yes part of that is their learning and I'm sure they figured it out quickly, I mention it as I think it is a good example of how our own knowledge can blind us to others difficulty as to us it is easy.

I would see this post as an addendum to the Getting Started page or perhaps some of this could drive how we direct people between Hass.io & VirtualEnv by asking a question and then giving them the most appropriate install method.

I was hoping that this post / wiki entry would actually clarify our message and provide more confidence to users that they are infact choosing the most suitable installation method.

I'm happy to defer to the collective here, however I hate typing so I honestly wouldn't have bothered doing this if I didn't think there was a need for it in some form.

@c727

also venv is not "complex" to use :P

For you perhaps not, for someone whose prior experience of Python is a large snake not so simple :). It confused me the 1st time I encountered them (which was actually because of HA) but now I love them.

@DubhAd
Copy link
Contributor

DubhAd commented Nov 8, 2017

Following a long back and fore on Discord, here's my thoughts:

  1. The blog post feels a bit emotional, rather than calling out the cases for which each of the main 3 install options (Hass.io, Hassbian, Virtual Environment) are most suited to (not saying that none of us have an emotional reaction to the choices, just saying that it's not helpful for those who're new to Home Assistant)
  2. Any guides to picking choices should be aimed at those fresh to HA, and provide them with a limited set of primary choices, with a pointer to the list of other options, rather than calling those other options out. Some inexperienced folks will otherwise inevitably pick the one with most opportunity for confusion and frustration, then blame Home Assistant for being too hard. I think this (overall) would achieve that - with some changes to remove the emotive phrases, remove the Docker and Vagrant sections, and provide more detail on the advantages/disadvantages (again, keeping them to the facts).
  3. The "no fluff" summary to me pretty much nails it on the head ;)

I do think something like this is needed - it's not like we're short of questions about whether to use Hass.io/Hassbian/other. I think that full list also needs a summary of why you might not use a platform (thinking particularly of Windows here), rather than hiding that away as a footnote on the platform page.

@c727 c727 mentioned this pull request Nov 8, 2017
2 tasks
@ryanm101
Copy link
Contributor Author

ryanm101 commented Nov 8, 2017

Closing PR as I think the Discussion has run it's course and this post is not the correct format going forward

@ryanm101 ryanm101 closed this Nov 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blog This PR adds a blog article to the Home Assistant website
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants