Useful Sensor: Motion Last Seen & Meta Motion Sensor

You know what’s great about motion sensors? They are very, very cheap to build yourself. All it takes is an esp8266 module like the Wemos D1 Mini, some PIR sensors, and the ESP Easy firmware and you can have a bunch up and running in a few minutes. I haven’t DIYed a battery powered one yet, but there are plenty of great Z-Wave ones available.

Once you have a couple of motion sensors in your smart home, you can have Home Assistant track the last place it saw motion. This is a useful bit of info – useful as a condition for your automations, or as an input for a bayesian binary sensor. See below for YAML to create a meta-motion sensor with a history.

Continue reading →

Basic Node-Red Flows for Automating Lighting with Home Assistant

Smart light bulbs are probably the first thing everyone getting into home automation buys. It is easy to see the applications for them – have the lights come on at night, turn off when you’re home, etc. It’s very satisfying to have the lights react to the day and your activities, and my goal with automating lighting has always been to not have to think about it, for it to work in the background.

In my initial post about Home Assistant and Node-Red, I explained the initial hoops you have to jump through to get both pieces of software up and running and talking to each other. Now we will start using them together in some very simple flows to control lighting, to get a better understanding of how Node-Red works, and to start to delve into this powerful tool.

Continue reading →

Auto-Downloading Youtube Videos for Plex Media Server with youtube-dl

Recently it appears Youtube has decided they want to become cable TV, complete with the unending commercials for American pharmaceuticals. Since I cannot stand watching any advertising, am cloud averse, and also don’t like Youtube’s terribly busy interface, I have automated downloading of channels and playlists I follow with the wonderful youtube-dl tool into my Odroid XU4 based Plex Media Server.

Downloading is pretty straight forward as long as we take care to follow Plex’s file naming guidelines. Getting all the metadata in without doing any work requires a little bit of configuration, and to automate it all takes a few simple shell scripts.

Continue reading →

Self Hosting: How to Get Free and Cheap Linux Virtual Servers

I try to avoid the cloud in favor of self-hosting the services I use. Then I know my information is private, and I can tailor them to suit my needs. I do run some services at home on my network, but my local internet service is pretty slow. So my solution is to run services like VPN, Owntracks Recorder, and this blog on a virtual private server.

Even if you don’t have any grand plans, you could host something simple like Pi Hole to block all ads on your devices – even your phone.

The same economies of scale that make cloud computing so ubiquitous and cheap also work in our favor if we are willing to administer a Linux server ourselves. Here are some cheap, and even free, ways to get your own server.

Continue reading →

Config: Setting up the Xiaomi Mi Robot Vacuum in Home Assistant

I have a dog who sheds like crazy, and the only thing that keeps the dust bunnies from overrunning me is a robot vacuum. My aging Neato Botvac, after fulfilling several years of hard labor, ate it’s 3rd expensive replacement battery recently. This was obviously a great excuse to get a new one that works with Home Assistant.

I went with the Xiaomi Mi Robot.

After getting paired with the app, teaching the robot English, and sending it on it’s way around the house to do it’s thing, I realized that the process of getting it paired with Home Assistant was not going to be straightforward.

For anyone else who runs into trouble, here’s how I got it working.

Continue reading →

Favorite ESP8266 Internet of Things Projects

So many good uses for these chips, here are a few I’ve made and some I still intend to.

  1. ESP Easy – by far the easiest way to connect a bunch of cheap sensors to an esp8266. I have about 6 of these doing various things.
  2. Bed Occupancy Sensor – FSR sensor for pressure and a simple automation to determine bed occupancy
  3. WiFi Candle Using multiple WS2812 addressable LEDs to create a simple lamp that flickers like a candle.
  4. Notification Flag – Raise a flag based on a simple condition. Would be nice to combine in tandem with…
  5. Mailbox Sensor – Notify when mailbox is opened.
  6. DIY Milight Hub – I’ve been using this and it works great. Control as many cheap Chinese RGB bulbs as you want.
  7. Simple Water Alarm – If water shorts the wires, it wakes a sleeping esp8266 and sounds the alarm
  8. Door/Window Monitor – Along the same lines, a simple magnetic switch monitors the status of a window or door.
  9. Smart Power Strip – Retrofitting a power strip with 2 banks of controllable outlets, using 3D printed parts.
  10. Weather Station Display – Another super cool 3D printed project that plugs in and displays info on a small screen.

My favorite form factor of the esp8266 is the Wemos D1 Mini. Tiny, all the inputs you need, and there are many premade ‘shields’ for it so you can stack components.

 

Hardware: Odroid XU4 as Plex Media Server

The Odroid XU4 – like a Raspberry Pi, but better.

As part of my efforts to be cloud non-dependent, I have a NAS full of several terabytes of music, movies, and TV shows. Plex is of course everyone’s favorite software for solving this problem, as it essentially turns your hard drive full of files into a private Netflix capable of streaming and syncing to any device.

1080p and commercial free, sorry Anthony.

The problem is that streaming and syncing is a very CPU intensive task and requires a server of substantial processing power. Is the cheap Odroid XU4 single board computer up to it?

Continue reading →

Presence Detection Part 2: Improving Presence with Node-Red

In my previous post about presence detection, I showed how you can combine multiple device trackers into one highly accurate Bayesian sensor.

In Home Assistant, the binary_sensor.brad_presence that I created is either on or off. It would be a little nicer if it were a device_tracker entity instead that was either home or not home.

With Node-Red that’s easy enough, but what if we take it a step further and create our own custom device_tracker based on a different set of rules?

Continue reading →

The Open Source Smart Home: Getting Started with Home Assistant & Node-Red

Home Assistant is one of the most interesting open source projects I’ve ever come across. It interfaces with any device, platform, or service you can think of and allows you to perform actions based on the data you monitor. It has a great community and is under extremely active development. With a little creativity almost anything is possible with Home Assistant, and best of all it’s private and totally under your control.

After using Hass to control my smart home for the last year, I started to hit the limitations of it’s YAML-based configuration. Any automation that was even moderately complicated  required a lot of pieces spread out through the configuration files (see the sprawling “Creating an Alarm Clock” thread on the HA forums for an example). Doing simple things like if-then or a  loop required awkward workarounds. As my automations (and ambitions) increased in complexity, so did the time I spent  trying to figure out what was going on.

That’s when I discovered Node-Red, a visual programming tool developed by IBM. Node-Red is the perfect complement to Home Assistant, allowing for very complicated logic to be constructed visually through a simple “flow” interface. It integrates seamlessly with Home Assistant. Let’s set it up.

Continue reading →