I can give you one thing off the bat that I found immensely helpful: prefixing all my automations with "Schedule: ", "Trigger: " and "Action Groups: "! I really saw automations as a mess when I first switched, but when I did that I actually like it far better than having Indigo’s categorized UI.
As for Z-Wave, it’ll be a bit of a pain and a bigger pain to come. The bigger pain is that HA is switching to ZWaveJS for the engine and there will likely be a lot of re-do when that happens. The reason is because the current ZWave engine is not maintained and has a few bugs here and there (but has worked great for me).
Setting up Z-Wave was pretty easy, I moved my USB stick over and 90% of my devices got discovered in HA. A handful of them, including ANY secure nodes, had to be unpaired and repaired with the stick.
Z-Wave is definitely “pokey-er” than Indigo because the current Z-Wave implementation doesn’t support multi-cast, so you might be in for a bit of a shock at first when controlling a large group of devices, it’s not as zippy as Indigo. However the new ZWaveJS does have multicast so that should improve things.
One other thing is that the current engine takes quite a while to spin up Z-Wave after restarts (again, better in ZWaveJS from what I’ve read). For my 200 or so devices it takes 3-4 minutes after reboot before my Z-Wave is set.
HomeKit integration is pretty darn good! I’m going to start contributing to that extension because there are some things I would like to do with it, but it has most of what I wrote into HomeKit Bridge.
Setting up Z-Wave is actually quite simple, but it took me a while to figure that out . There are two things I found when doing it that, had I know before, would have made Z-Wave setup a breeze.
configuration.yaml:
zwave:
usb_path: /dev/ttyACM0
device_config: !include zwave_device_config.yaml
Here’s the tricky bit, the docs mention putting your Z-Wave network key in configuration.yaml but I had loads of problems, what I found worked immediately was editing the .storage/core.config_entries and putting my key in there (just search for “zwave” and there will be a place for network key there).
I tried migrating the Indigo network key so I didn’t have to re-pair locks, but it never worked so I just generated a new key from a shell with:
cat /dev/urandom | tr -dc '0-9A-F' | fold -w 32 | head -n 1 | sed -e 's/\(..\)/0x\1, /g' -e 's/, $//'
When I was testing I just moved my Z-Stick from Indigo to HA and back, so 90% discovery was fine and allowed me to get most of my network pre-configured before committing fully to HA.