Looking for a siren (wifi or zigbee)

Could anyone recommend me a siren or something that can make a lot of noise?

  • Zigbee (zigbee2mqtt with the big TI dev board) or Wifi
  • With plug, USB or battery
  • HA compatible (of course)
  • For indoor use is fine, outdoor use is OK too

Reason for getting one:

  • Replicate doorbell in the backyard
  • Sound alarm when house alarm triggers or e.g what we had today, toilet flush button got stuck and it flushed about 1400 liters before we noticed, I have a monitor on the water usage but our phones were inside so we didn’t see the push notif as we were in the yard
1 Like

I bought this one. Works perfectly fine on zigbee with deconz

1 Like

Thanks, looks interesting! Come to think of it, perhaps siren is not the correct word. For example, I have an Aqara hub that I use for burglar alarm sound amongst other things. I guess, it shouldn’t necessarily be an alarm siren rather something that has a loud volume output and some sounds/ringtones.

For instance, when sitting in the backyard, no need for a siren to go off when someone rings the bell at the front door.

I was going to say, it sounds like you need something more than a siren. I have a very loud 12VDC alarm siren hooked to relay next to my pi3. I use a GPIO output on the pi to drive relay, but I do have something for other ‘quieter prompts’.

Are you decent at soldering? If so, you could do what I do and place some wemos d1 minis with dfplayer minis around the house, and use automations and mqtt to trigger playing of specific mp3 files. For example, I get a real doobell sound from the speakers when someone rings the bell, and I have voice prompts (mp3’s generated by audacity using google tts) for things like “dryer load is done”, “garage door left open”, “master bath shelly overheating”, “front door opened”, etc… no internet required since it’s just playing local mp3 files from an sd card. It’s not alexa, but it’s HA style cloud-free and it works perfect for this sort of thing. It also enables some pretty geeky cool stuff, like playing that “shhhht… shhhht” sound from startrek whenever doors are opened/closed.

Alternatively, you can simplify it if a beeper is enough. You can also use esphome to fire a peizo buzzer to warn you of something… much cheaper and smaller than the dfplayer option if you don’t need mp3’s. I used to do this before I added dfplayers… 2 short beeps when doors are opened, etc. In fact I still have beepers installed on the devices, because they’re better than mp3’s for repeated warnings. Like, beep beep, “garage door left open”, then every 30sec beep beep until it’s closed (or a manual silencing button is pressed).

Not sure if there is a place you can buy such devices pre-assembled, but a search for “esp dfplayer” might turn something up. I’ve got some 3d printable cases designed for these things if you’re interested (on thingiverse, same username).

2 Likes

Interesting, thanks for the inspiration! What speaker do you hook up to the dfplayer? How loud do they go? What about those piezo buzzers? The backyard (horse meadow behind it) goes a long way (around 80 meters) and sometimes we’re working in the back, so for it to be ‘perfect’ it should be quite loud.

You could also take a look at a DF Player Mini chip with an ESP… just use those terms in google.

And some people have also integrated it already in Home Assistant

1 Like

I’m using a tiny 3W speaker, and they’re definitely loud enough for inside my 2000sf home. Here is a writeup I did that has links to all the parts I typically use in these devices:

80’ away while working in the yard is going to need more volume though. You can also drive any old audio amplifier with a dfplayer; dfplayers have both an 8ohm speaker output, and stereo line outs as well. Not sure how well that would fit in to your plans though.

Also, I think a simple 5V piezo beeper could penetrate your ears from that far, and those can be easily controlled with an esp (you have to add a driver transistor… check out my schematic in that link I posted).

1 Like

It’s simple to do with esphome, which has a dfplayer component available. I just add some code to my esp’s so they subscribe to a voice topic. When an automation fires a voice prompt, it just sends a number (1-255) to that topic. When an esp recieves a number published to that topic, plays the corresponding numbered mp3 files. The relevant esphome config looks like this:

dfplayer:  
mqtt:
  broker: !secret mqtt_broker_ip
  username: !secret mqtt_client_user1
  password: !secret mqtt_client_pass1
  on_message:
    - topic: esphome/voice
      qos: 0
      then:
        - dfplayer.set_volume: 25
        - delay: 150ms
        - dfplayer.play_folder:
            folder: 1
            file: !lambda return atoi(x.c_str());
    - topic: ${name}/voice
      qos: 0
      then:
        - dfplayer.set_volume: 25
        - delay: 150ms
        - dfplayer.play_folder:
            folder: 1
            file: !lambda return atoi(x.c_str());

Note the 150ms delay is only required because I am using a clone/fake dfplayer (typical of the kind you get from amazon). With that config, you just need to pop in an sd card with the mp3 files all named and placed in a folder named “01” placed at the root, like this…

/01/001front_door_opened.mp3
/01/002garage_door_opened.mp3
/01/003doorbell_ding_dong.mp3
…etc

It’s a good idea to make all the sd cards on your dfplayers identical, to reduce confusion over which files are on which device (sd space is cheap enough to not worry about it here). It also lets you broadcast prompts to all devices with one message like I’m doing. So sending an mqtt message of “003” to the topic esphome/voice, will make all my dfplayers play a doorbell sound. Sending “001” to “garage/voice” makes just my garage device say “Front door is opened”.

Note that I put configs for 2 different topics, but only 1 is really required. By using 2 topics, one being the same on all esp’s (esphome/voice) and the other unique for each esp device (uniquename/voice), I can send a voice prompt to all dfplayers at once (using esphome/voice), or to each individual dfplayer as needed.

Also note that I’m hardcoding the volume with this method. I do plan on taking that out, and using mqtt to control volume depending on the prompt and location. This would be like a topic esphome/voice/volume, and I’d send numbers from 0-31, and use it in the code with the atoi just like I did with the track numbers.

4 Likes

This is to just for sending out a single tone based on the resistor? Could it be used with rtttl instead? And could I use a higher drive voltage like 12v?

This one works very well with zigbee2mqtt. It does not have plug but the battery last more than a 1 year

https://www.amazon.es/gp/product/B08HVXVHYW/ref=ppx_yo_dt_b_search_asin_image?ie=UTF8&psc=1

Regards

The tone is fixed as it is just a 5V piezo buzzer. The transistor and bias resistor are just a cheap/old school way of driving the 5V device with the 3v3 output on an esp device.

I am also driving some 12V high current sirens (very, very loud!) from another esp device. That device just uses isolated relays to switch the sirens on and off. By “isolated” I mean the relays have an optical isolator built in, with a 5V supply. So they can operate fine with a 3v3 input, switching my 12V sirens (could even be a 15A 120V heater even).

You can also use MOSFETs if you prefer solid state or need faster switching for a DC device (like 12VDC siren). The same concept, with the right FET chosen, can drive several 100W at 12V if needed. This type of circuit is commonly found in 3d printers, to run 12/24V heaters with PWM from 3v3 level outputs. There are all kinds of such MOSFET breakout boards available online.

I went with relays so I have the option to use 120V sirens if I even needed. Here are some options that would work, if you are curious:

Isolated relay (high powered devices, lower switch rates):

4x “medium power” MOSFETs (drive 4 different sirens):

High power MOSFET (drive high powered DC devices):

2 Likes