OH2 and EnOcean?

Have a look at the Migration tutorial:

You can and probably should for now just stick with the 1.9 bindings instead of the 2.0 version of the bindings. That will work like and behave more like what you are coming from. Once it works that way gradually migrate to those bindings for which there is a 2.0 version one at a time.

Minimize the amount of change you are introducing at the same time so errors are easier to identify.

A couple of things you mentioned do raise questions/concerns:

Things are a way to map openHAB Items to devices. They are essentially the equivalent to the stuff you put inside the { } in the old openHAB 1.x Item config. I don’t think you can directly refer to Things within your Rules. And even if you can I don’t think that would be considered a best practice. You should only be referencing Items inside your Rules.

Do you mean a “global variable?” What is the error, it could be relevant. It could also be the case that the OH 2 rules engine is less tolerant of such errors, particularly if it occurs when loading/parsing the rules file.

At all or just EnOcean triggered rules?

Things are only relevant for OH 2.0 bindings. If you are using OH 2.0 bindings (e.g. it sounds like you are for Homematic) you must change the stuff in the {} of your Items to be

channel="<channel ID>"

The channel ID can be obtained from PaperUI or the Karaf console. See the migration tutorial above for where to look.

For 1.9 bindings, you should be able to leave your Item definitions unchanged.