OH2-OH3 Update with full rollback possible?

Dear all,

I have a quite large OH2.4 installation on MacOS (100+ things (Hue, zwave), MQTT, persistence, NodeRed/HomeKit integration, many rules) and I am afraid of doing the update.

Reason: I have only a few hours to troubleshoot any issues.

For this reason I am thinking about to do a test update and if it doesn’t work out rollback immediately.

Question: Is a full rollback possible so that I do not have any negative impact after the rollback?

Thanks for any input


A full rollback is possible if you make a backup and if you need to roll back you do so by restoring the backup.

If you have a lot of rules and those rules use DateTime, a few hours may not be enough time. I would either:

  • try to run them side by side and move stuff over little by little
  • do period of processing where you run your old version when you are not working on things, shut it down and run OH 3 when you are working on it

Note that the jump from 2.4 to 3.0 is a huge update. That’s at least a year and a half worth of development, if not more. There will be lots of little things that will pop up.


I imaged the whole disk to a new disk under Linux, unplugged the original and then did an upgrade on the new copy before changing the system to a dual boot setup. Its proven a very very good idea as all my DateTime rules were broken, my restore on startup values were gone along with a bunch of other stuff that needed minor tweaks. Its good now but don’t underestimate the time it can take especially if you have a bunch of time related rules. If dual booting isn’t possible on MacOS I’d suggest a disk imaging program with USB booting to allow you to switch back and forward without losing progress.
My system is at the larger end of the spectrum with 1231 items and 385 rules running on a dedicated machine so most will likely have an easier path. I’d also suggest swapping out any V1 bindings you have apart from expire HTTP and WoL as they are gone in OH3. (Expire is built into the OS, there is a new HTTP binding together with some HTTP functionality built in OH itself. This seemed to work without any changes on my system and WoL is built into the Network Binding)
I’d already got rid of my OH1 addons apart from those above so everything had a working binding that was picked up during the upgrade phase, and apart from a few minor issues its working well.
There may well be easier ways to switch back and forward, but OH3 from what I gather isn’t straight forward to install next to OH2 on the same system as some of the paths collide, and OH3 needs a newer Java Version so you’ll need 2 versions of Java to coexist.
Don’t get me wrong, the team have done an excellent job with OH3 but changing isn’t straight forward on a complex system

I wonder if you are using the sendHttpXRequest actions which are built into the core. The HTTP binding in OH 3 is radically different from the HTTP 1 binding. There is no way the old Item binding configs would would.

It takes a bit of work but it can be done. Docker makes it super easy to manage so that might be worth exploring.

I’m using

wantedCommand = 'http://xxx.xxx.xxx.xxx/doStuff' 
var String response = sendHttpGetRequest(wantedCommand, 15000)

This is a workaround for a binding that couldn’t be trusted to work under OH 2.5 and I think it works?

Reading the Actions part of the documentation this seems to be using the built in stuff, yet the OH3 HTTP binding also installed as part of the upgrade hence the confusion