How much power is enough?

Trying to workout an appropriate amount of hardware / software to run a number of different interconnected apps at the same time.

I want to run Openhab 2.x, Mosquitto, a non web connected voice activation system (possibly write some of my own code) with very little latency or dodgy results, some presence detection in order to switch microphones from room to room. I would hand off the I/O duties for switch box relays to something like a RPi or Arduino.

The hardest of these to get right will be the voice activation since most of the speech to text engines that donā€™t connect to the web are questionable at best.

I have been playing around with a RPi 3B and I also have a non utilized older high spec games PCs just doing nothing. I could put either Windows or Linux on it.

Problem is Microsoft have become a joke with their constant updates and lack of reliability. On the plus side I write Visual C# and VB.Net code for Windows. Also Microsoft does some basic voice activation from which I can build my own system.

I am not big into Linux so I donā€™t know if something similar exists in that world. I kind of feel Linux on the PC would give me the best stability but perhaps not the best software.

Please help going crazy here trying to choose a platform to do it all.

1 Like

Personally speaking, Iā€™d suggest you look at a headless Linux based solution, maybe using something like the ODroid C2 machine.

Installing openHAB2 with apt-get couldnā€™t be any easier.

There is openhabian if you want an automated installation for 32 bit machines.

As for cloudless voice control, you might want to look at Snips.ai, with Snips clients running on tiny SBCs in each room, meaning that you donā€™t need to worry about presence detection to switch microphones, as the Snips Satellite units will only be monitoring one zone.

Or there is Mycroft AI if you can tolerate a cloud connected assistant that doesnā€™t share you data. (You can buy ready built units, or run their software on your hardware.)

I hope this helps.

1 Like

Headless Linux would be my preferred OS, but it all comes down to making all the required software work together.

I already have a RPi3B so for now I would like to stick with it or the PC since I have both. A bigger SBC might be the go down the track but for now I need to try and figure out how the required software packages and hardware will be distributed.

I would like to try and centralise the voice activation on one PC, since I am currently looking at Mozilla Pipsqueak when it becomes available. But for now I might look at something a little less sophisticated just for now.

But it would be nice to nail down the hardware and software now so I donā€™t need to go changing platforms later. I will need to think on your suggestion about putting a SBC in each room but it would be nice to have some kind of box that can take each input and route it accordingly.

1 Like

Get started with the spare box. Your ideas of how-to will probably evolve anyway, once you develop real solutions.

1 Like

Yeah thatā€™s what I am trying to get ahead of, but best laid plans of men and miceā€¦ I guess if I try to base everything off Linux or one of itā€™s derivatives, it shouldnā€™t provide as much of an issue should I need to migrate to other hardware.

Currently I donā€™t own any HA hardware as I am planning a new house that will be totally HA controlled. Think I am going to need to buy some hardware to simulate the new setup to get started.

I probably donā€™t need to go out and buy 240v main relay switches at this point, as I can get away with just using 12v relays and test with some 12v lights. The proper relays for the house will take a 12v signal so as long as I simulate for that, it should be fine come time an electrician gets involved.

2 Likes

The best hardware is usually the hardware you already have. Either machine will be perfectly adequate for getting started. Donā€™t let analysis paralysis stop your progress. Pick one and run with it. Just keep in mind that when/if you run out of resources or find you arenā€™t using many resources you can always move. So write scripts, take notes, and think about backup and restore from day one.

I personally would start out with the RPi 3B which should be adequate assuming your voice detection stuff doesnā€™t need too much RAM. If you do something with the AIY Voice kit and work with the hardware directly instead of through Googleā€™s APIs some of that processing can be offloaded to the hardware hat instead of the CPU.

Given that your voice detection is TBD, it is pretty much impossible for us to say whether the RPi would be sufficient. Itā€™s plenty sufficient for running OH and Mosquitto and a number of other services. But you donā€™t yet know what the voice stuff will require. I think some are running the software I recommend below on the same RPi as OH.

From a hardware perspective, you will have more flexibility on the RPi. But you already have a screaming desktop not doing anything so you might just start there and know it has enough power to do what you want. But it might be way overkill and once you are done it will be sitting there sucking down your electricity not doing much.

There are tons. Look into Jarvis, Jasper, and Kalliope which would get you started (note they all run on RPis).

If Windows updates is your big issue with Windows then you should know that most Linux distros work on a pretty much continuous upgrade cycle. There is hardly a day that goes by that running an update doesnā€™t have some library or program that has an update. But unlike with Windows, the update checks pretty much ALL the software installed, not just the OS. I do not recommend skipping updates.

Despite this, I run all my servers on Linux and I find it to be very stable. I havenā€™t turned on my last remaining Windows machine (a 5 year old laptop with a busted hinge) since I got my Chromebook last December.

Iā€™d recommend openHABian there too. openHABian is just a bunch of scripts to install and configure OH and related services on any Linux that supports apt. Just follow the manual instructions and you can have all the goodness of openHABian on the ODroid, an Ubuntu VM, etc.

Snips is a new one to me. Iā€™ll have to look into it some more, though itā€™s mainly out of curiosity. Weā€™ve become a Google house and are pretty happy with the Google Homes for this job.

Thatā€™s the real job though, isnā€™t it. And thatā€™s where the fun lives. The choice in hardware really doesnā€™t matter to much in solving this problem. And frankly you donā€™t know enough right now to really know what the optimal hardware needs to be. So I still recommend just getting started with the hardware you have. As you learn more you will discover if you need to move later.

So your problem here is going to be how do you wire up all those microphones to one machine? If you have six rooms with six microphones you need six microphone ports on your centralized machine. And most decent voice control systems require multiple microphones per room. A Google Home has something like eight.

Thatā€™s a lot of sound cards and a lot of wiring to run. There are some very compelling reasons from a hardware perspective to consider a separate SBC in each room. You might be able to do all the processing centrally, though personally Iā€™d rather have as much processing be done locally to the room instead of centralized. It really isnā€™t that much more work to deploy more than one nearly identically configured device, particularly if you automate the configuration (I like Ansible for this).

Iā€™ll provide my standard advice that comes from a Mitch Hedberg joke.

An escalator can never break: it can only become stairs. You should never see an Escalator Temporarily Out Of Order sign, just Escalator Temporarily Stairs. Sorry for the convenience.

As you plan and design your home automation, consider the failure cases. Make sure things fail gracefully into a perhaps less convenient but still usable state. Strive to build escalators instead of elevators.

2 Likes

Just load up Debian on the gaming pc and get started with openhab. The term ā€˜bloatwareā€™ was invented to describe Windows. Linux can do it all and runs on old hardware great

2 Likes

Another vote for ā€œget started and change plans when you have a reason toā€!

The RPi will be plenty for Openhab and Mosquitto. It might not handle local voice recognition. Iā€™d consider setting that up on one of the older PCs and using the more powerful CPUs in it for voice recognition. Once it has the text figured out, sending that to Openhab is straightforward.

If you need more microphones, you can hang a lot of USB mics on a machine. A single board computer for each room would be neat, but only if it has the CPU to do the voice processing.

1 Like

How much power you need is something no one can answer for you as only you know how far you may take it in the future.

I am pretty sure your Pi will run out of ram if your trying to do local voice recognition and run Openhab/mosquitto plus the unexpected stuff you will also want to run. Sure you can use the Pi for now, but how annoyed will you be if in 2 months you are having to move it all to a new machine? As Rich posted make sure you write down how you got everything running to make moving to something newer easier which is why I write my own install scripts.

Donā€™t use a gaming PC. They have huge 600+ watt power supplies which makes them idle and draw at least 50+ watts 24 hours a day. The cost of the electricity saved in 6 months would pay off buying a smaller leaner setup like an Odroid C2 which idles at around 2 watts of power measured at the wall. Power also means heat and if running the servers in a small area the heat builds up.

If you really want to spend some money consider this ideaā€¦

https://www.hardkernel.com/shop/odroid-h2/
Or any Intel NUC or Gigabyte Brix which donā€™t seem to have the same drive capabilities of the H2. Alternatively a mATX setup could be used with a PicoPSU to help get the idle power draw down. This way costs more but can give more drive IO especially if you factor in pcie expansion abilities.

If you dont have a NAS but wish you did:
Install a nvme drive for the OS and install 2 sata drives so you can use snapraid with 1 drive for parity reasons. https://www.openmediavault.org/ makes setting this up easier. Openhab or any of your other projects can run in docker containers.

If you dont want a NAS:
Install Ubuntu server image and run Openhabian and forget about the sata drives.

You end up with a system that uses 4 watts at idle plus any power for the drives if they are not spun down. Up to 32gb ram means you wont run out and it will be the CPU limiting you.

If you find you need to upgrade you can keep it as a NAS and setup something for openhab with more cpu power if or when that is needed. By using docker it will be easy to move it to a new machine.

Funny should mention lifts because I plan to fit one, but I will also be fitting stairs. I considered an escalator but unfortunately I need to turn corners.

Some really good advice given by all, considering I still need to do video surveillance in a lot of the rooms perhaps an SBC per room might just be the go, I could capture video and voice at the same time.

Plenty of ways to either process the voice on the SBC, or stream a feed back to a bigger computer, perhaps the home security PC could do voice processing and be shipped off to the HA system.

So many optionsā€¦

Edit: Perhaps I could set up another SBC to check the heartbeat of the other SBCs to give myself some kind of stall protection.

Very conscious of access, since I plan to have 3m ceilings and wonā€™t be easy to access once installed.

And with a speaker you have the start of an intercom.

This is something that could probably be done in OH itself with the Network binding. Though I recommend putting monitoring and maintenance onto tools designed to manage that sort of thing. OH does have an SNMP binding but ultimately it will be less work and you will gain better insight using purpose built software for that sort of thing compared to rolling your own implementing something in OH.

There are a few great tutorials on this forum for how to integrate OH with some of these systems (one on the ELK stack and another on Prometheus come to mind). You could start with that and expand to the rest of your system.

In the interest of full disclosure, I should say this is a ā€œdo as I say, not as I doā€ bit of advice. I just use the Network binding to see if my machines and important services are online or not and generate an alert if it goes offline.

I wouldnā€™t put the SBC in the ceiling. You can put the speakers and mics and such there but I would put the SBC behind a panel in the wall. Heck, you could attach a small touch screen and have a control panel in each room. You will have to access the SBC physically periodically. These things are really reliable and can run for months or years without problem. But once in a blue moon a cosmic ray may flip a bit in RAM causing a kernel panic or your SD card will wear out or become corrupted during a power outage.

After searching all day for IP cameras (ouch about $3000) I donā€™t think it would be all that advisable to try and capture and send video and audio via the SBC. I have long thought most surveillance cameras werenā€™t worth the time of day, so I am looking at some auto focusing 8MB cameras. fixed 12mm version tested here. https://www.youtube.com/watch?v=xjEPAd8Gy8Q

You took the words right out of my mouthā€¦ Was thinking ditch the cameras inside the house, and just use basic proximity sensors. If the cameras are up to scratch they will pick up anyone properly before they get in the house.

Using proximity sensors I could detect presence in the room without needing to go way over the top. Handy for turning off the lights if no one is in the room. But I started thinking if I wanted to mount proximity sensors, light switches, etc, etc. Then perhaps I could put all the electronics in a concealed wall cabinet, that way all the wiring would be together. I would just have to run one Ethernet cable for POE illuminated switches, and one for network. All neat and tidy and easy to access. Throw a bit of conduit down where the box in wall is going to go and wiring is a piece of cake. Could even put a speaker in the box for room to room communication and voice activation responses.

The more I think about it one box per room would seem the sensible way to go. Just make sure I have a spare to quickly swap out in the case of a serious failure not easily fixed.

Forgot to mention I own a CNC machine I built myself. I could do up a nice polished aluminum face plate to mount the switches, speaker and motion sensor inā€¦

???

https://www.amazon.com/s?k=raspicam&hvadid=241658457056&hvdev=c&hvlocphy=9029014&hvnetw=g&hvpos=1t1&hvqmt=e&hvrand=8924211584849741179&hvtargid=kwd-67701378271&tag=googhydr-20&ref=pd_sl_78xrsu1t7p_e

$25 per room. The IP streaming part is implemented by the SBC. If you are looking at IP cameras those would never be plugged into the SBC in the first place. They are stand alone.

You could probably get the price down even more with old USB web cams.

Anyway, an IP camera doesnā€™t plug into the SBC in that room anyway so it really has nothing to do with the decision whether to use SBCs or not.

I could always add those to the SBC just to see what room Erika is in (we are in a much smaller house now and she doesnā€™t answer me calling out), but originally I was tossing up, do I try to integrate the security into the HA, or do I go for better cameras and make it stand alone but perhaps use some alarms to send messages to Mosquitto.

The 1600sqm block I bought is a battleaxe block so my driveway is about 45m long and the front of the house will be about 70m back from the road. So I plan to put some fairly rugged cameras up the driveway.

The house in front of me has right of way access on my driveway, so I wonā€™t have a gate at the very front of the property. But I wanā€™t to monitor it just in case anyone decides to do something malicious up there.

I need a camera with an autofocus lens and really good quality to make sure I can see anyone that might come down the driveway uninvited day or night.

The cameras I am looking at have several triggering events that will be more easily integrated into an security system.

Smart Feature-set

Behavior Analysis: Line crossing detection, intrusion detection, unattended baggage detection, object removal detection	
Exception Detection: Scene change detection	
Face Detection: Yes	
Region of Interest:nbsp Support 1 fixed region for main stream and sub stream

Generally, I recommend putting most of the ā€œsmartsā€ in the end devices and OH integration consists of influencing them. OH excels at integration but itā€™s generic. A special purpose system (e.g. alarm system, thermostat, etc) will always be easier to set up and configure and use than building something from scratch. Then let those devices do what they do. And when you need to bridge between those systems and other systems (e.g. automatically arm the alarm system when everyone is away) OH just tells the alarm system what it wants to have happen. This way should OH go down for some reason, the alarm system still works (it becomes stairs).

For a concrete example. I have a Nest with forced air heating (i.e. one thermostat for the whole house). The house is three floors and there can be a large temperature differential, particularly in summer. So I have DIY thermometers on each floor of the house and when the top floor is warmer than the target temp and warmer than the basement temp, I turn on the house fan. But beyond that the Nest does the rest. I donā€™t have to implement hysteresis or complicated algorithms for how long it will take to warm the house when I start heading home or the like in OH. At most OH just needs to tell the Nest ā€œchange the target temp to Xā€.

So I would recommend making the alarm system separate and choosing one or build one with an API that can be used with OH. In fact, Iā€™d probably separate the alarm system and CCTV system and let OH bridge between the two. But it depends on what you choose for the alarm system and itā€™s capabilities. I currently use Shinobi for my two cameras which has a well defined way to send events to OH.

You just gave me another good idea. The lower floor of the house will comprise of a garage, a large workshop, laundry, and a very large home theatre room. The plan is to have no windows downs stairs. And with an abundance of concrete / blocks making up the walls downstairs, I expect it will get quite cold down there. I will have some roller doors to let heat in / out of the garage and workshop areas (separated by a wall) but it would be nice to be able to pipe some heat downstairs during winter. Summer I will probably welcome the cooler environment. Anyway it is now in the wee hours time I hit the sack. Thanks for all the good info. I will have a think about how to make the systems modular without having to rely on the other systems to function.

Hereā€™s a curve ball and a cunning trickā€¦

As Rich suggested, you could put a screen on an SBC and turn it into a user interface / web broswer for OH.

Now take that a step further and use an Android tablet, you could use the fabulous IP Webcam Pro app and provide the video and audio from the tablet to your network.
With a choice of video and audio formats.

Throw into the mix that the app has motion detection, 2 way audio support, automatic night mode, stealth mode, GET command on Motion and you have yourself not only a great intercom but the most covert CCTV you could getā€¦

Iā€™ve got this running on an old Samsung S3 phone, which is ā€œdoing nothingā€ on a shelf, with itā€™s back to the room.

That same S3 is also running a GSM gateway server, so I can send and receive SMS in OH.
(itā€™s not difficult to filter the senders of text messages to add a layer of security)

Itā€™s got a third app running that auto answers calls and switches on the speaker :wink:

all for a LOT less than the cost of a CCTV camera with a poor quality camera

Did I mention that you can remotely activate the flash light and (digitally) zoom in with Pavelā€™s IPWebcamPro app?

I ā€œcouldā€ mount the phone / device on a Servo driven mount for Pan & Tilt via Art-Net / sACN / DMX control from OH, but that it probably way more than is needed. :slight_smile: (But I might do it anyway, now that Iā€™ve thought about it)

AND that Pavel has written a IP Video to DirectShow app for Windows and Linux for his App, which I can use in Jinx! to influence my Art-Net LED array, but that is probably taking it all a little too far

Update

Iā€™ve just been told that those pan and tilt assemblies are quite lumpy when they are running, but the idea is sound

1 Like

Figure out a weather proof enclosure and Iā€™m sold.

Before I got the raspicam in the garage, I used IP Webcam on an old phone and it worked great. I have no interest in cctv inside the house but Iā€™d like to have one on all the doors. We have a lot of wildlife though so I want one in the back to support IR so I can see the deer and bear and bobcats and such wonder through the yard at night. I donā€™t think there are any old phones that can support that.

And I canā€™t believe I missed your post about the SMS Gateway software. Unfortunately I get a page not found error when I try to bring the app up. Perhaps itā€™s unavailable in the US. :frowning: I can probably set something up using Tasker and AutoRemote.

Is that pan tilt strong enough to move a phone? It looks to be designed for a Raspicam which weights a small fraction of a typical cell phone.

2 Likes

Iā€™ve double checked that link and it seems find from the UK.
https://play.google.com/store/apps/details?id=com.icecoldapps.smsgatewayultimate

Maybe it is a location issue.

However, there are lots of other SMS Gateway app on Google Play, so maybe one of them is accessible to you?

(It was the forwarding of SMS to OH that appealed to me)
I can ask the author of SMS Gateway Ultimate if he can let us have the APK file?

As for the gimble, Iā€™ll let you know when one arrives with me, a friend at smartshow.lighting who creating all kinds of Art-Net and SPi control gear says that he bought one to test his SPI to Servo PCB, and while it works, he thinks itā€™s a little cheap.

There are other versions out thereā€¦

:frowning:

I searched for the name too and found a bunch of other apps from Ice Cold Apps but not that one. For whatever reason I guess itā€™s not available in the US, or there is something else about my wireless provider or devices that makes it not show up.

None of the ones I could find were relevant. From what I could find there was only one that works similar to what you described (Green SMS Gateway) without using some cloud service, but it only supports sending, not forwarding and it costs $8. For $8 Iā€™d probably set something up with Tasker instead. There must be some sort of ban on these sorts of apps in the US.