Pro's
- No internet required, can run entirely on a Rasberry Pi
- Integrates with most everything thanks to the huge component library (https://home-assistant.io/components/)
- Easy to write your own Python component to integrate with new stuff
- Can use existing SmartThings/etc hubs or Z-wave usb stick to talk to most anything
- Fairly easy to write automations
- Well written Python 3 code-base that's fairly easy to read and see what's going on yourself
Con's
- Definitely more for the DIY tinkerer
- Need to write YAML for the automations, though a new GUI makes this easier for many cases
Setting up an SMS to me when a motion sensor tripped was pretty easy, my automation was:
- alias: Alerting on bedroom motion
initial_state: False
trigger:
platform: numeric_state
entity_id: sensor.bedroom_burglar
above: 0
action:
- service: notify.aws_sns
data:
message: "Bedroom alarm sensor has been tripped!"
target: HassAlert
I've had it running for over a year now, and it's been quite nice.Admittedly I'm definitely a tinkerer myself, but I honestly like the config just being a bunch of YAML files. It's really easy to back up that way.
[1]: https://techtutorialsx.com/2016/12/11/esp8266-external-inter...
The put an ESP8266 in each device approach puts the complexity in hardware, and in interfacing the hardware to the smoke detector. If you ever replace a smoke detector with one from a different manufacturer you may have to change the interface method.
In addition to that, the ESP8266 approach is harder to manage. Whenever you change your wifi network in a way that requires updating login parameters you have to update the firmware on all your smoke alarm monitors.
With the listening approach, you just have to change login parameters on the device that is doing the listening (if it is using wifi...I'd probably actually have it on ethernet)
Furthermore, the listening approach can be expanded to listen for other things besides smoke detectors just be changing software. You could add listening for your doorbell, or your telephone, or your dog barking, or glass breaking.
Or a whistling gas kettle, which is an actual use case for me.
Generally, I very like the approach of listening and trying to recognize sounds. It's much more flexible than trying to put a brain in every other thing you have at home.
[0]: http://www.mcscs.jus.gov.on.ca/english/FireMarshal/MakeitSto...
i was doing some research recently about having wifi-connected smoke alarm/CO listening device that can recognize [1] off-the-shelf alarm beeps (which are standardized) and send me an SMS & email. this turned out to be surprisingly difficult to achieve. ideally, i could hook up a microphone to a BeagleBoard of Raspberry Pi, run some daemon that monitors audio, does beep recognition and lets me hook into notifications.
instead, there are proprietary listening devices (ok, fine) that all work by sending notifications via third-party service (not fine) to some android or iphone app (not fine).
[1] https://github.com/benjaminchodroff/alarmBeepDetect