While I have been using OH for years, the RuleDSL was never to my liking due to its quirks, and what I call anomalies compared to other languages.
I did not count the hours I spent on figuring something out that was specific to RuleDSL’s quirkiness (wanting to throw out OH altogether). [Most recently a type-casting issue that should have never been a problem in the first place.]
When time permits, I will either migrate or rebuild the OH system in v3. (I like the idea of the bridge allowing me to work at my pace.)
Most likely rebuild; hence, where the “title” comes in: “What is a good replacement for RuleDSL?”
I have heard there is Python, which, while I have not done much with it, I assume microPython sticks to the language too, hence, I would have a single language for OH, micros, and rPis; which would allow me to focus on a single language for all my ‘controller’ needs.
Maybe someone who uses Python as rule language can comment, whether they can do everything RuleDSL can do, or even more.
codeless, simple when this do that type rules do not even require any code at all through the UI
Rules DSL
Python 2.7
JavaScript (ECMA Script 5.1)
Blockly, Scratch liked visual programming in the browser, not yet complete though, generates JavaScript under the blocks
Groovy
Experimental support for jRuby (search the forum)
Python, Groovy, and jRuby require an addon to be installed. All except Blockly (for now) and codeless are as capable or more capable than Rules DSL. In the case of jRuby, Python, and JavaScript, they are significantly more capable than Rules DSL.
If you plan on writing rules in text files, you will want to use the Helper Libraries for Python and JavaScript. jRuby also has a library but the Python and JavaScript ones prioritize similarity to Rules DSL to ease transition and translation of examples and jRuby prioritizes making rules more “pure” to the language so they are kind of their own thing.
Note that JavaScript, Python, and Groovy are also available in OH 2.5.
External to OH you have the choice of:
Node Red, visual programming flows
HABApp, pure Python 3
roll your own, the REST API is pretty robust
And of course, these are not mutually exclusive. You can use any or all of theses in any combination you choose at the same time.