I’m very proficient with openHAB and there are a few things I’m seeing that I’d like to change. But sometimes things are done a way for a good reason and I’d hate to run into problems that are foreseeable.
My initial integration with OH went very smoothly using MQTT. I decided not to move it to use my main system broker because I think I read on a thread here that the UI uses MQTT to communicate with OH. If that’s the case I don’t want to introduce an external dependency if I don’t have to. But it was simple enough to create a couple Things on my main system OH and access the needed topics. So my initial pressure to read and understand how it all works is reduced.
Long term I’m looking to do the following:
-
run reasonable frequent apt updates
-
I’d like to try to get it to run on OH 2.5 release if that’s possible. I don’t see why it would be having scanned through the Things and Items and Rules.
-
install and configure tripwire (I’m not paranoid, it’s a great way to monitor file system changes to discover potential problems, I discovered a failing SD card once through oddness in the tripwire report)
-
if successful getting it to run on OH 2.5, I’d like to rewrite the Rules using Scripted Automation and Python or JavaScript. The Rules as they exist right now are not all that complicated really so it should be pretty easy for someone with my experience with both
-
migrate much if not all of the config stuff to JSONDB (including Rules), I believe it will greatly improve the boot times on the RPi 0 as OH has to do a lot less work to parse and load them all and in my experience on OH it requires less ram and runs faster too.
-
replace the system started Rule that resets everything with a Rule that only resets a couple of things and depend on restoreOnStartup to restore to the most recent settings. The Rule already checks for not NULL before updating the Items so I might not need to change much but there are a few hard coded settings (e.g. if my Heater was on Auto before HestiaPi closed down, it had better come back up on Auto. Starting up completely off is not an option and there’s no practical way I can put this machine on an UPS.
-
add in a configurable hysteresis and/or a timeout to keep from cycling the unit too fast. As written it appears to turn on the furnace immediately when it goes below the setpoint and turns off when the setpoint is reached, rounding the decimal places giving a hysteresis of one degree F (I haven’t looked at how it would work with C). That’s too tight. The house should be allowed to get colder before starting the heater so it runs less often but for longer periods, at least when dealing with forced air furnaces like I have.
-
Update the logger to suppress the warning from org.eclipse.jetty.server.HttpChannel about
Asynchronous processing not supported on Servlet 2.x container.
. It’s a warning and it doesn’t look like there is anything I can do about it. May as well suppress it in the pax logging config. Unless this is something I need to be worried about. I’m assuming it’s because the RPi0 is a single CPU machine.
These are just a few ideas I have after about a day with it installed and working. Obviously, if any of the above are good ideas I’m more than willing to contribute them to the project.