I didn’t design it, but I do have a HestiaPi which is basically an openHAB based thermostat. I’m currently rewriting all of their rules to be more generic and therefore shorter and easier to maintain.
That’s basically how the HestiaPi works, though the logic isn’t all that complex yet. It’s pretty much just setpoint and sensor reading based. Though I am going to add hysteresis and some timing guards to avoid cycling the unit too fast for those of us with forced air systems. I’ve already implemented the hystersis but haven’t checked it in yet.
Anytime the word “industrial” is used in the context of openHAB alarm bells go off in my head. OH might be fine in this situation but it lacks many features that IMHO are required for any industrial application including stuff like real-time processing, fail safe, transactions, etc.
Pretty much. It’s designed and intended to be a bridge between lots of different technologies. Usually it doesn’t implement a device on it’s own (HestiaPi being an exception to the rule).
The HestiaPi is based on an RPi0w. It’s really really slow. I’m talking 10-20 minutes to reboot. 5-10 minutes just to parse and activate changes to rules. And it doesn’t fit in the RAM so you will need to use swap which means even more slowness and extra writes to the SD card which will wear it out faster. And when an SD card wears out, it does so silently. Just all of a suddenly the device starts to behave strangely.
All Linux based computers are sensitive to power loss file system corruption which is amplified when running off of SD card. Do you want to potentially have to run around replacing SD cards every time one of these controllers loses power?
It’s not just OH that I would say is unsuitable for industrial applications, at least not out of the box.
You can use the Python commands directly from openHAB Rules. Either using Scripted Automation with Python (see [beta testers wanted!] Jython addon w/ helper libraries (requires OH 2.5.x)) (note, it’s Python 2.7 so there might be problems depending on the libraries your Python code uses).
Or using any OH rules language you can execute your existing Python code using the Exec binding or executeCommandLine Action.
Or you can have a separate Python service that you communicate with from OH using MQTT or HTTP or something like that.
If you already know Python, I’d stick with that. If you already know how to program, I recommend one of the Scripted Automation languages (Python, JavaScript, or Groovy). At this point I would not recommend getting started with Rules DSL.
At the moment, as a new user IFTTT isn’t an option for you. And the latency is sooooo long that I wouldn’t recommend it for you anyway. People were abusing the myopenhab.org service which is the way OH connects to IFTTT so the ability to expose new Items to IFTTT has been turned off.
Also, this completely violates one of your requirements. You want these devices to be network independent. IFTTT not only requires network, it requires Internet access as all the processing takes place on IFTTT’s servers, not locally.
And I’m not really sure what you mean by “command set.” OH provides several choices in programming languages in which you write rules. They are all fully functional Turing Complete languages. If a Von Neumann computer can do it, you can write Rules in OH to do it. But this also means there is no thermometer or thermostat specific commands. It’s all at a much lower level than that.
One other minor quibble. openHABian is a series of scripts that will install and configure openHAB and a bunch of related software on an apt based Linux distro. openHAB is the software you would use to implement this, if that’s the direction you choose to go.
Personally, I would drop the RPi 0s and use microcontrollers instead. They can control relays just like the RPi 0s but they don’t have any of the problems with power loss and file system corruption. They are also super simple. They only run the one program you load onto it. It is very possible to implement a stand alone thermostat on the microcontrollers and then, as you plan, run openHAB on as beefier RPi to essentially adjust the settings or issue commands to the microcontrollers.