Migration from Fibaro HC2 to HAOS


I’m new here and I consider migrating from HC2 to HAOS but I would like to clarify a few things prior to fully committing myself :laughing: for this task.
My plan and questions are:

  • to run HAOS as VM in Proxmox as I have my server already running and include it in my PBS backups scheme. Disadvantage of this option is its location - in a bit blinded sector, away from devices
  • therefore I need to use controller being in other location - can I use (after all devices are migrated and managed by HA) HC2 as dumb transmitter via Fibaro integration in HA?
  • main worry is migrating scenes written in lua (quite complex like garden watering…), what is the best approach to migrate / convert them to language (python?) accepted by HA?

I’m sorry for more likely dumb questions but I don’t know (yet) HA and its capabilities …

I moved from a HC2 to HA about 6 months ago. Not in one go, but step by step.

About your questions, yes, with the Fibaro integration in HA you can use the HC2 as a z-wave controller. Advantage is that you don’t have to remove z-wave devices from HC2 and add those to a z-wave stick in HA. Disadvantage is that only a limited amount of device entities of Fibaro devices show up in the Fibaro integration in HA. For instance, if you have Fibaro dimmers, you can switch lights on/off, but you cannot control the dim levels.
So I started with using my old HC2 as a z-wave controller, but batch by batch moved all my devices over to HA. (Mind you, I kept my unused HC2, it’s the only way to update firmware of the Fibaro devices (if ever needed)).

On Lua, I had a number of quite complicated lua scenes, have not faced much trouble in transferring those to HA automations (some with the add of some “templates”). I’m quite impressed with HA automations and scripts, much more user friendly, less complex than (the Fibaro version of) lua. HA also has some “user community” tools (see HACS). One of those tools is a scheduler I use for all my thermostats and lights. Instead of a few hundreds lines of lua, I now have a graphical interface I can program and modify on the spot (even my wife is using this from the HA dashboard, when for instance earlier heating is required in bathroom).

Hope this helps you with your transfer from HC2 to HA. I was a bit hesitant in the beginning, but am very glad that I switched. (Having now also zigbee, 433 mHz controls, wifi (tuya) control etc., all from one controller).

Thanks @wimjanse
I’m exactly where you have been: I’m hesitating of doing first step (since I don’t know what to expect from HA).
Is there any standalone z-wave (and maybe other protocols too) controller capable of being managed over LAN? Like I said, I can’t just connect it over USB to my server as it is at the edge of z-wave range.
Didn’t you have any issues when running 2 separate (HC2 and HA) mesh networks while in transition to HA?

When transferring batches of devices, at first you remove them from HC2 in order to be included in HA?


I’m not aware of an LAN based controller, but zwave creates a mesh, all 230 volt powered devices act as a node in the mesh, so if you have a number a devices near the (remote) controller, the z-wave network still works fine. I have a few devices that need 2/3 hops (devices in between) to communicate with the z-wave controller, but no problem with those.

One tip/suggestion if you are going to setup z-wave with HA, use the “z-wave js ui” add-on in combination with the z-wavejs integration, not the z-wavejs integration + z-wavejs add-on. The z-wave js UI gives much more and better information and control over your z-wave network.

On the second question: yes, you must first remove the devices from the HC2 controller and then add those to the HA based controller, that took me quite some time. Easy with Fibaro devices that also had a physical switch to the S1 connector, triple click to remove them from the HC2 network, and triple click to add those to the HA network. But for a number I had to dismantle my wall contact to physically click the B button on the device.

And no, no issues with running two z-wave networks in parallel, you can have two controllers (HC2 and HA), each controlling their own devices in their respective mesh.

For further information, I’m using an Aeotec gen-7 stick as HA z-wave controller. If you search this forum, you see that there are some issues with this controller, i.e. it “jammes” a few times per day (2/3 per day, but sometimes more), making the mesh non-responsive a minute or two. I faced the same with the HC2, not always getting proper response, so I’m not too worried. Next week (few days on holidays), I’m going to change the gen-7 to a gen-5 and see if I get any improvement. Nice thing with the earlier mentioned “z-wave js ui” is that I can transfer the entire z-wave network from one stick to the other, don’t have to go through the motions of removing and adding all devices again.

Thanks again for tips.
So, my plan is:

  • purchase Zooz 800 (as it’s the newest compatible stick - to avoid technological debt :laughing:) and plug in to my PVE server for doing pass-through
  • install in HAOS zwave js ui (HAOS already running)
  • do I need to install separate instance of MQTT broker?
  • start device migration.
    The biggest tasks will be:
  • simulation scene (triggered by alarm system when is fully armed), simulates activities/lights on/off at home after sunset - I need to replace Satel comm. module to ETHM-1 Plus
  • garden watering scene - takes into account Netatmo Rain sensor, forecast and controls sprinkles in garden
  • recuperation unit control (StorkAir WHR) scene - controls unit speed in function of CO2 content read by Netatmo.

Above scenes are fully in LUA, do I need to transform then to yaml config or maybe there are some templates or different solutions available?

MQTT: you can use your present matt server, or use the HA mqtt add-on.
I started with my existing mqtt server on a Raspberry Pi, but when moving everything else from my HC2 to HA running on an Intel-NUC, I moved mqtt (and node-red, and alarm sip call-out, maria-dbs, etc) all to the one NUC, freeing up 2 raspberries in the process.

For the various scenes, do some searching on this forum. To replace the alarm system I had on the HC2, I could find good examples on the forum. I have no experience with watering system (still manual labor here :grinning:), but I do have NetAtmo integration running on HA as well, you can use sensor data in your automations.

On Automations, I suggest you start automations in the UI interface, you can switch in the UI to see the underlying yaml code (and switch back again). This gives a good start, and is easier than starting with yaml.

Just to confirm, in order to use HA mqtt I need to keep disabled “Disable MQTT Gateway” in zwave js ui settings? Do I need to change anything there or just use default settings in MQTT, Gateway and HA tabs?

Associations - I’m a bit surprised that I can’t do it directly in HA(??). Is zwave js ui the only way to make associations?

I use Aeotec ZW140 nano switches for handling irrigation valves. In addition I have Fibaro switch as master power control to cut off power completely after watering is done and switch power back on minutes before next watering. BUT… unless I manually do routes rebuild, Aeotec valves remain dead. It wasn’t an issue with Fibaro HC2 controller. Is there anything to tweak in zwavejs to let it rebuild routes much quicker in automatic mode?

Or maybe it has something to do with the fact that Aeotec switches use zwave+ and surrounding Fibaro devices not? I guess with HC2 in control it wasn’t the case…

Fibaro dimmer FGD211 doesn’t have any lifeline/controller updates association but its status is updated in HA after being locally/manually operated. How come?

Any other Fibaro switch has controller updates group automatically configured

and Aeotec switches have lifeline group…

Keep MQTT Gateway disabled, just use default settings.

The ZWaveJS UI integration is the part of HA controlling all zwave aspects, so it’s logical that you setup associations from here.

The Aeotec switch problem is not clear how this is setup, is the Fibaro switch not switching? Why do you need to rebuild routes? Only reason I did a rebuild was after relocating my HA system including the zwave controller, messed up my network for a day before new routes were stable.

Fibaro switch cuts completely power off to Aeotec switches (and controlled valves) - they become dead nodes. Main reason is an extra measure to avoid uncontrolled flooding.
Like I said, with HC2, after restoring power, Aeotec switches were back online within a less than minute. With HA/zwave js ui, it’s not the case. I need to manually run rebuild routes. How to improve this behaviour?

If I understand correctly, the Fibaro switch works ok, but the Aeotec remain “dead” in HA.

I’m not familiar with the Aeotec switch (if it’s battery operated, you have to wait for the next polling period), but as you switch this with the Fibaro switch I assume it is direct powered, but even a direct powered switch takes a while before it is seen again in the network.

What you can do, after the Fibaro switch has powered the Aeotec, do a soft restart (reload) of zwavejs-ui , much simpler and less time-consuming than a rebuild of the entire network. It will interrogate all devices, the Aeotec should then seen as “alive”.

For an automation how to reload zwavejs-ui, see Automate ZWave JS Soft Restart - #5 by kramttocs

Thanks very much @wimjanse
One more thing every restart of HA or system reboot, Home Assistant Core Integration: Generic turn off kicks in and turns off that Fibaro (master) switch - if left at “on” state.
I have only a small part of my system migrated - still testing possibilities; but as far as I can see, it affects only that particular switch. What the hell is it and why does it?


I have 40 Fibaro switches and dimmers, after a HA reboot those remain in the state as before the reboot.

I know that you can program a Fibaro switch to go to off mode after a power failure, so I suggest that you look into the settings of that particular switch and see whether that is the case. Alternatively, remove the switch from the network, do a full reset on the switch and re-add. Hope this helps.

I have all of them: Fibaro master switch and Aeotec switches (all of them are for irrigation valves control) set on purpose to remain at OFF state upon power recovery. I had already power outage during watering period and after having it back, all valves remained open - and garden was flooded.
But restarting HA doesn’t cut the power off and this issue affects 1 out of 10 already migrated Fibaro switches. And I can’t find the reason why…

I understand, strange that only one switch has this issue. Only suggestion remains a full reset of that switch and see if that fixes the problem.