I see a number of users mention running OH on a RPi 0w. I’m in the process of deploying a really small instance with just a few zwave sensors and MQTT event bus.
What are people’s experience? Too weak and slow or adequate once it’s up and running?
This will be a home monitoring deployment for my dad who lives an hour away so I don’t really want to have to mess with it too much once I deploy it.
I can get a RPi 0W with “all the fixens” for the same price as a “naked” RPi 3. If an RPi 0W is up to the job that would be great.
the SoC of RasPi Zero W is like the one on the RasPi 1B(+).
My first steps with openHab was on a RasPi 1B+ with openHab 1.0. All I remember is, that the startup process was much time consuming (about 20-30 min?) and the sitemaps were not really responsive at all.
But because you don’t need all this stuff for home monitoring, it could work…
No, it’s inadequate. It’s fine as a proxy entity to terminate cabling and consolidate sensor data or similar tasks, but to run a full scale OH installation requires almost as much memory as the Pi0 provides (512MB only).
Startup times are also an issue, they’re already annoying on a RPi3, and it’s well processing things in parallel which the Pi0 cannot so it’s even worse, and remind you the number of restarts will likely be higher than if you run a box in your own house. People incl. craftsmen tend to powercycle boxes they don’t understand.
Now given that al RPi3 isn’t $$$, those really few bucks you might be saving aren’t worth the risk and hassle.
PS: and given the intended “remote” deployment, remember SD issues, so make sure to apply OS tweaks to minimize writes, see my post on SD corruption.
Thanks for the feedback. It confirms what I already knew. I’m just surprised at how many users of this forum report using RPi 0w to run OH. Since I’ll be running a minimal instance without UI, persistence, other services, etc. and only three bindings (I forgot expire) it might be adequate.
The amount of time for reboots and the like is not too much of a concern. Right now the only job this deployment will have is to send me an alert when motion hasn’t been seen in the house for a certain period of time.
Though I should probably provision it for growth. Once something like this gets a toe hold it tends to grow.
Indeed, this will be done. I have no need for persistence and I’ve already an Ansible playbook that will all but turn the pi into a read only system with all the writes going to a tmpfs. Eventually I might set up an rsyslog to preserve the logs if that becomes a problem (it hasn’t yet). I probably won’t go as far as enforcing read only, though I have done that in the past as well.
I wouldn’t recommend a setup like this for a standard deployment but since I know I have certain constraints I know I can make it work within a read only context.
I’m also going to way over size the SD card (I’ve a 32 gig card sitting on my desk right now) to extend the life of the card as well. I’m sure I can make it last a couple years or so without needing to replace the SD card. And since this thing will be pretty static once it is set up it can probably continue to run for months or years with the SD card worn out so long as I’m stingy with the writes and don’t depend on new stuff written to disk.
Thanks for the feedback. I’ll spend the extra $40 for the RPi 3 and accessories.
Did you ever move forward on this? I’m considering using a few Zero Ws to act as remote bluetooth sensors across the house. Basically have them running the bluetooth binding and sending reports back to the main OH2 server through the API.
Look at reelyActive which was created exactly for this use case. FIND is also a good option which uses WiFi triangulation.
I would not deploy OH instances around the house to solve this problem.
I did go forward with this and have been running for over a year. But pay attention to the use case. I’m running this RPi over 100 miles away to keep an eye on my dad. Running a separate OH instance makes a lot of sense because something that inaccessible needs to stand on it’s own. I also wanted the opportunity to add more smart home features over time.
Thank you for the input. I have other things I was considering doing as well, similar to your application, this was going to be my pilot into running OH on the Zero W. Can you provide any feedback as to the ability for it to handle the system load?
Keep in mind how Java works. When a Java program first starts it goes out and grabs a certain amount of memory and reserves it for itself. Your OH could be using just 10 MB of RAM but it is configured by default to reserve 350 MB I believe. systeminfo doesn’t tell you anything about how much RAM is actually actively being used by OH.
In addition to the RAM issue though is the fact that a RPi0 is a single core CPU so it won’t be able to handle anything but the lightest of loads and parsing Rules is going to take forever.
EDIT: I should mention that regardless of how much RAM OH is actively using, Java reserved the full 350 MB from the system so that full 350 MB is not available to any other process on the system.
Funny but in fact I don’t think so because OH serializes rules processing and makes no (or just little) use of multi-core processors.
Yes I think you can run a cut-down OH on 512 MB. But as Rich states, I, too, wouldn’t run multiple OH instances. That’s overcomplicating things without adding benefit. Use your Pi0 as a sensor aggregator or as a FIND or reelyActive client.