Installing Home Assistant on a RPi 4b with SSD boot

Thank you very much. it works. you are totally right. need to use the right usb to sata. im running on usb 2.0 right now for temporary. going to purchase the cable as per your recommendation. Thanks again…

I’m using 120gb ADATA SSD, and a very cheap usb 3.0 data cable. I tried to use the higher end usb 3.0 cable and it does not work.

Good to know. Thanks!

Currently I’m in the middle of 2nd attempt to move to SSD.

Here are some findings:

i-tec USB 3.0 to SATA III Adapter - works only with USB2. With USB3 is hell slow - unussable, Even under raspbian booted from SDcard it caused mouse/keyboard unresponding. Quirks didn’t help.
But it has another serious issue: Its USB connector don’t work with some USB sockets well, requiring pulling back a bit to connect. Unfortunatelly it’s true for USB2 rpi4 sockets too (and Samsung TV and Dell laptop). DO NOT BUY IT.

AXAGON ADSA-FP3 USB 3.0 - SATA 6G - my recent buy. Works from beginning using USB3 without quirks.
lsusb shows it is jms567 based interface. But JMicron has no such chip on their pages.
Note this interface was initially selling with 12cm USB cable shown as a subject complaints. My one has 25cm.

I use Kingston SV300 120GB SSD

Both interfaces above has option to use external power supply. But I rely on USB power so far.

Some random notes:

  1. for soem reason dtoverlay=disable-wifi makes PI not booting (it falls into infinite loop of boot attempts)

  2. HA boots up pretty quick. I have measured time between 45s (pi restart) to 90s (from pluging pi into power socket to open responsive HA web interface). I’m not sure what is the reason of the difference. Maybe this 45 was before onboarding (?)

  3. System shutdown takes ages. I measured 2 min 45 sec since calling shutdown from HA web interface. From what I’ve seen it spend a lot of time waiting for docker containers/daemons.

Queston: If I use snapshot restore feature of HA, will it preserve current IP of my instance or change it to the one of the system which snapshot was created on?

@ maxym - regarding the IP, depends on whether you are using a static IP config or not in HASSIO - My router/DHCP server seems to dish out the same IP for each MAC address, so it is pretty permanent.

Trying to restore a snapshot from my old SD pi and not having much luck - looks like I will have to restart with a fresh version and then migrate over the settings - Not really an option as it will take days to get back to where I was/am with the old SD version.

Actually… the snapshot did restore - I waited 30 minutes post hitting ‘restore’ and had no response from the new pi, yanked the power and now it is running absolutely fine:

RPi 4 with 2Gb memory
Samsung Evo 840 SSD
OS 5.5
ASMedia USB3 to SATA adaptor using ASM1051E chipset

Anyone know hot to test read and write speeds on HASSIO ?

Dear all,

I have tried to migrate from SD to SSD, and finally I turn back to SD.

I have the following external devices:

  1. PI 4 4 GB ram.

  2. ConBee II Zigbee USB dongle.

  3. Sigma Designs Zwave Plus USB dongle.

These devices workks without problem with HA system 32 bits on SD.

For the migration I bought:

  1. ELUTENG Cables USB to SATA for 2.5 SATA SSD/HDD

  2. Crucial BX500 240 GB CT240BX500 SSD disk

The tutorial for the migration that I try was: https://community.home-assistant.io/t/installing-home-assistant-on-a-rpi-4b-8gb-with-ssd-boot/230948

With this tutorial I installed the HA version: hassos_rpi4-64-5.5.img.gz but I tried also the version hassos_rpi4-64-5.3.img.gz.

When I restore my last snapshot from the old system (32 bits), HA starts without problem from the SSD but with the following problems:

  1. My Sigma Designs - Z-Wave Plus USB dongle dont works, then all my zwave devices are misssing and I can’t start from scratch because I can’t add devices, delete old devices, etc. I tried to connect the zwave usb dongle to a extension USB cable and don’t works. Change the port from USB 3 to USB 2 and don’t works… The zigbee dongle works well and I can see all my zigbee devices.

  2. HACS integration don’t starts, and I need to unistall and install another time.

  3. AEMET integration don’t works

  4. The system is not fast than with SD card, proably because all the erros when starts. The upload time in browser for the Web UI is very slow, probably about 30 seconds or more. I deleted the database according with some tutorials, but this solve some errors, but the starting time to load the web interface is the same.

example of errors:

2020-11-14 04:19:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for variable which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for nodered which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for badnest which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:39 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for smartir which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:44 WARNING (MainThread) [homeassistant.components.climate] ClimateDevice is deprecated, modify NestClimate to extend ClimateEntity
2020-11-14 04:19:45 WARNING (MainThread) [homeassistant.loader] You are using a custom integration for bwalarm which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant.
2020-11-14 04:19:48 ERROR (MainThread) [custom_components.smartir] An error occurred while checking for updates.
2020-11-14 04:19:53 WARNING (MainThread) [homeassistant.components.broadlink.switch] The switch platform is deprecated, except for custom IR/RF switches. Please refer to the Broadlink documentation to catch up
2020-11-14 04:20:14 WARNING (SyncWorker_19) [homeassistant.components.bluetooth_le_tracker.device_tracker] No Bluetooth LE devices to track!
2020-11-14 04:20:14 ERROR (MainThread) [homeassistant.components.device_tracker] Error setting up platform legacy
2020-11-14 04:20:16 ERROR (MainThread) [homeassistant.components.calendar] google: Error on device update!
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 357, in _async_add_entity
await entity.async_device_update(warning=False)
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 466, in async_device_update
await task
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/src/homeassistant/homeassistant/components/google/calendar.py", line 106, in update
self.data.update()
File "/usr/src/homeassistant/homeassistant/util/__init__.py", line 239, in wrapper
result = method(*args, **kwargs)
File "/usr/src/homeassistant/homeassistant/components/google/calendar.py", line 175, in update
result = events.list(**params).execute()
File "/usr/local/lib/python3.8/site-packages/oauth2client/_helpers.py", line 133, in positional_wrapper
return wrapped(*args, **kwargs)
File "/usr/local/lib/python3.8/site-packages/googleapiclient/http.py", line 842, in execute
raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 404 when requesting https://www.googleapis.com/calendar/v3/calendars/616jclechijai43018fn6rr4m57e0mio%40import.calendar.google.com/events?orderBy=startTime&maxResults=5&singleEvents=true&timeMin=2020-11-14T04%3A20%3A16.480347%2B01%3A00&alt=json returned "Not Found">
2020-11-14 04:21:36 ERROR (MainThread) [metno] https://aa015h6buqvih86i1.api.met.no/weatherapi/locationforecast/2.0/complete returned Cannot connect to host aa015h6buqvih86i1.api.met.no:443 ssl:default [Name does not resolve]
2020-11-14 04:21:37 ERROR (MainThread) [metno] https://aa015h6buqvih86i1.api.met.no/weatherapi/locationforecast/2.0/complete returned Cannot connect to host aa015h6buqvih86i1.api.met.no:443 ssl:default [Name does not resolve]
2020-11-14 06:44:44 ERROR (MainThread) [homeassistant.helpers.entity] Update for climate.dining_room_thermostat fails
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 278, in async_update_ha_state
await self.async_device_update()
File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 474, in async_device_update
raise exc
File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
result = self.fn(*self.args, **self.kwargs)
File "/config/custom_components/badnest/climate.py", line 325, in update
self.device.update()
File "/config/custom_components/badnest/api.py", line 210, in update
for bucket in r.json()["updated_buckets"]:
File "/usr/local/lib/python3.8/site-packages/requests/models.py", line 898, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/local/lib/python3.8/site-packages/simplejson/__init__.py", line 525, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 370, in decode
obj, end = self.raw_decode(s)
File "/usr/local/lib/python3.8/site-packages/simplejson/decoder.py", line 400, in raw_decode
return self.scan_once(s, idx=_w(s, idx).end())
simplejson.errors.JSONDecodeError: Expecting value: line 2 column 1 (char 1)
2020-11-14 08:09:37 ERROR (MainThread) [metno] https://aa015h6buqvih86i1.api.met.no/weatherapi/locationforecast/2.0/complete returned Cannot connect to host aa015h6buqvih86i1.api.met.no:443 ssl:default [Name does not resolve]
2020-11-14 09:27:15 ERROR (MainThread) [homeassistant] Error doing job: Unclosed connection
2020-11-14 10:01:13 ERROR (MainThread) [homeassistant] Error doing job: Unclosed connection

For these reasons I decided to turn back to SD and wait to a stable version.

This was my experience with the migtration…

I’m using fixed IP configured in HA. Actually in hassos, but HA expose this setting.
Just have to make sure that network settings are backed/restored together with other options. Im fact HA offers partial backup and considering network settings are not located in “Folders” / “Home assistent configuration” this settings shouldn’t be restored to new instance. But with HA devs you never know

I followed your guide and everything went smooth

I am on Rasperry Pi 4 - 4 GB, Hassos with Aeotec zwave stick.

For the migration I bought:

  1. ELUTENG Cables USB to SATA for 2.5 SATA
  2. Crucial 120 GB

All went smooth with the small exception that the restore option from the start up screen didn’t work, so I had to install samba and copy the snapshot to the backup folder in order to restore.

SSD is connected to USB 3.0 and the system seems to be fairly faster in booting than on SD.
I hope SSD is more reliable than Sandisk SD even though I have to admit my system had been stable and totally working for over one year.

1 Like

I was looking into the documentation and we can read the following:
" Is USB Boot for the Pi4 supported? Is the Pi4 with 8GB RAM supported?

The bootloader for Home Assistant OS (uboot) does not yet support Pi4 booting from USB. Support is likely a month or two away as of July 2020.

The Pi4 with 8GB RAM is now supported on the 64-bit image."

-> Ddoes anyone knows when it will be officially supported(boot from USB/SSD)?

I don’t know, but I just finished migrating to Rpi4 8Gb ram and it works well with HassOs version 5.5

Hi guys I set this up on my Pi4 last night.
For some reason version 5.3&5.5 wouldn’t boot in any usb slot.
So I tried 5.4 and it booted from the usb2 ok.
The part about updating does that mean I can now update the OS to the latest official to take me out of the Dev version or do I have to keep on the Dev for now ?
Also if I was to turn the Pi off and swap the usb to the USB3 slot do you think it would boot?
And lastly I plugged in my usb ZigBee stick and the Pi seemed to stop responding do you guys use a powered usb hub when adding additional usb devices ?
Thanks

I have an Enocean USB 300 stick and a Crucial BX500 connected to and power supplied by the Pi4. No USB hub, no additional power supply. It is important though to use a sufficiently strong power plug for the Pi, i.e. the official 15 Watt Raspberry 4 power supply.

Thanks yeah i have the 3 amp power supply,
It seems to be working now but i can’t boot from SSD when using the usb3 ports.

Hey @Jpsy Is there any advantages or disadvantages between your guide and Installing Home Assistant Supervised on Raspberry Pi OS?

This sounds very much like the SATA-to-USB adapter problem discussed in the guide and in many comments here. Use another adapter. Recommendation contained in the guide.

I have never tried that version. AFAIK the supervised version was announced to be discontinued but that was revoked again due to heavy requests from the community to continue it. If you use that version you will have to keep two separate systems up-to-date. Why would you do that?

I bought the Eluteng adapter you recommended in post 1 which does seem to work ok.
I’ll try again maybe I’m not waiting long enough for it to boot fully.

That’s the key part I wasn’t aware of, thanks, I don’t fully understand the difference between the traditional install and the OS install.

Also I assume updating the OS is not the same as updating HASS?, and HASS will need to be updated independently.

If you installed the supervised version the answer is YES. You have to install and maintain RPi OS and HA separately.
If you install the version described in this guide the answer is NO. It comes bundled with its own OS and updates OS and HA together.

Sounds ideal, but a little confused by the procedure “ha os update”, will this be the route for every HASS release like the most recent 0.118.0?

Any reason why you suggest the Development Release and not the latest?