“Home Automation” sounds like something that belongs, well… in the home. But since we sometimes live in a van, I could not help but wonder: is there anything the Internet of Things could make easier?
I chose instead to work with the Home-Assistant platform. The AutoPi platform does have some nice consumer uses, but is geared more at fleet vehicles and commercial applications. On the other hand, I was already familiar with Home-Assistant and it seemed better suited for my needs.
This is one of those posts where I can’t give very precise instructions to DIY. I hope that the source code gives you a good starting place for some of the features I describe below. If not, at least let it serve as inspiration 😉
Security & Dashcams
Having things stolen from the van could be devastating. When we travel and work from the road, we’re carrying our entire lives with us. Not to mention, it’s nice to have a dashcam recording in case of any accident or police interaction.
A better security solution is the popular motion open-source project, which can save all video or just detect periods of motion. The various options are quite exhaustive. Most importantly, it can run a script when motion is detected.
When we’re not around, the security camera motion detection becomes “active” and triggers a notification to my phone.
100% DIY home automation. From the thermostats to the security cameras, everything we used in designing our home was built on a budget. At the heart is Raspberry Pi home automation with Arduino sensors. Below are all of the IOT projects (networking, software, and hardware) that made this DIY home automation possible.
I’m a data nerd. I love seeing stats about our trip — all the better if they can be collected automatically.
The OBD II port is standard diagnostic on pretty much every vehicle created in the last decade. A simple bluetooth ELM327 dongle can plug into the port to read everything the vehicle has to offer.
Plus, a simple USB GPS device is enough to track where the car is at all times.
Protecting Pets
In my post about living the vanlife with a dog, I shared a scary story about police nearly breaking in to our van to “save” our dog. We started using the relatively low-tech solution of taping a note to the window explaining that Azuli is fine and has her own fan and amenities.
But for our own peace of mind, we wanted to know when the van might become uncomfortable for her. A simple temperature sensor is enough to trigger a notification when it gets too hot (or cold) for her to be in the car. This particular sensor also detects light, air pressure, humidity, and motion — making it a pretty full-featured addition to the Home Assistant configuration.
Tracking Cellular Data Usage
Finally, perhaps one of the most useful features.
Our solution to having internet involved bonding multiple internet connections together. This meant that we could use our cell phones, a Mifi, or connect to local Wifi networks — or use all of them at once. This is great for getting work done on the road, but we have to keep an eye on data usage.
The Verizon Jetpack, like many Mifi providers, can be queried to determine the current data plan usage. I wired up some quick scripts that parsed this information so that they each showed as sensors in Home Assistant. Putting it all together, we get a nice readout on the Home Assistant UI (above) that shows:
Connectivity (the bars to the left of the Verizon name)
Data usage so far (and how many days remain)
Wifi connectivity status
It would be possible to extend this even further. The Speedify CLI (the software I used for internet bonding) can output specific information about how much data is being used by each of the different connections, apply throttling/caps, etc.
This site began as a place to document DIY projects. It's grown into a collection of IOT projects, technical tutorials, and how-to guides. Read more about this site...
This is great. I’ve forked your HASS config, cloned your OBD docker, and got it all running…. but then I know nothing of prometheus. I’ve set up a basic ARM7 prometheus docker but I can’t see any OBD info.
I can’t access the OBD stuff via port 8000 and I can get into prometheus but not see anything other than the standard metrics the docker image comes with.
You say you *can’t* access the OBD stuff on port 8000? Are you sure the container is up and running? It should at least be serving a HTTP interface for Prometheus to consume from that URL. Prometheus works by polling (scraping) a URL periodically, so until that page can be accessed there’s nothing for Prometheus to consume. Have you tried looking at the logs from the container?
If you want to reach out via the contact form, I’d be happy to chat over email directly — include your docker logs and I’ll try to debug: [link to technicallywizardry.com]
Hi! Sorry I never got back to you. Life kinda took over but with the thing percolating in my head I got it working. I had a docker (newbie) problem was all. Thanks. Loving your work. Glenn.
This is all super cool! I’ve been getting into using HA at home and am thinking about giving it a go in our vehicle as well which we’re building out for full-time travel. Thanks for the inspiration!
I love the project. But how do you power the raspberry Pi in the van? And, more importantly: how do you prevent the HA setup from draining your battery? In understand that autopi goes into ‘deep sleep’ when the car is not running. Did you implement something like that?
Well, our vanlife van has a 7,600 Ah “house” battery (enough to run a Pi continuously for many months on a single charge), plus 510 W of solar and an alternator wiring kit to recharge the house battery. Suffice to say: I wasn’t too concerned about power draw, I’m afraid. That said, I’m sure you could use the OBD monitor to trigger various power saving features when the car is off!
This article is really exciting. I’m an owner/operator truck driver who has a background in computers. About a year ago I dropped serious money on a multicam dashcam system and it’s already dead. I started thinking about building one of my own and ended up here. I also really like the idea of bonding multiple connections.
Types of Waterproof Cases IP67 enclosures and connectors are the most common and versatile for outdoor usage. The IP67 rating means that the waterproof case can handle up to thirty minutes in partially submerged water (read about the IP ratings)...
A DIY home security camera is only as good as its ability to detect threats. Our CCTV system can detect people, cars, visitors, and more. Pictures are captured and presented for review.Machine learning filters the data to find interesting objects ...
Home Assistant support for MotionEye cameras limited. I created a custom component with auto-discovery and actions for my pan tilt zoom security camera. You can find the Home Assistant MotionEye component on Github. I've been working on automating...
Building a DIY Raspberry Pi security camera is much easier than it might sound thanks to open-source security camera software. We use several such cameras placed around the house, as part of our DIY CCTV security camera system. One such camera is...
No silly gimmicks. This collection of home automation ideas will actually make your home more enjoyable for you and your guests. I've personally implemented many of the ideas in this list. These all came from our DIY Home Automation project...
Dashcams (video cameras in cars) are a great security and safety feature. As with the rest of the vanlife IOT, I built my own DIY dashcam that has some unique features — like motion detection and automatic recording. On its surface, this is a post...
This is great. I’ve forked your HASS config, cloned your OBD docker, and got it all running…. but then I know nothing of prometheus. I’ve set up a basic ARM7 prometheus docker but I can’t see any OBD info.
I can’t access the OBD stuff via port 8000 and I can get into prometheus but not see anything other than the standard metrics the docker image comes with.
Any guidance?
Thanks, Glenn!
You say you *can’t* access the OBD stuff on port 8000? Are you sure the container is up and running? It should at least be serving a HTTP interface for Prometheus to consume from that URL. Prometheus works by polling (scraping) a URL periodically, so until that page can be accessed there’s nothing for Prometheus to consume. Have you tried looking at the logs from the container?
If you want to reach out via the contact form, I’d be happy to chat over email directly — include your docker logs and I’ll try to debug: [link to technicallywizardry.com]
– Z
Hi! Sorry I never got back to you. Life kinda took over but with the thing percolating in my head I got it working. I had a docker (newbie) problem was all. Thanks. Loving your work. Glenn.
Thanks Glenn! Life tends to do that 😉 Very glad you’re enjoying it, and the offer stands for help on any of my projects.
This is all super cool! I’ve been getting into using HA at home and am thinking about giving it a go in our vehicle as well which we’re building out for full-time travel. Thanks for the inspiration!
Nice! Home automation in the car can be pretty useful when living out of it. It was definitely good peace of mind for us. Good luck!
I love the project. But how do you power the raspberry Pi in the van? And, more importantly: how do you prevent the HA setup from draining your battery? In understand that autopi goes into ‘deep sleep’ when the car is not running. Did you implement something like that?
Thanks!
Well, our vanlife van has a 7,600 Ah “house” battery (enough to run a Pi continuously for many months on a single charge), plus 510 W of solar and an alternator wiring kit to recharge the house battery. Suffice to say: I wasn’t too concerned about power draw, I’m afraid. That said, I’m sure you could use the OBD monitor to trigger various power saving features when the car is off!
This article is really exciting. I’m an owner/operator truck driver who has a background in computers. About a year ago I dropped serious money on a multicam dashcam system and it’s already dead. I started thinking about building one of my own and ended up here. I also really like the idea of bonding multiple connections.