I’m new to Home Assistant and have recently set up a basic alarm system using door sensors integrated with the Z-Wave JS add-on. I’m seeking advice on creating a reliable automation to trigger a wired siren if the Z-Wave network experiences interference from a frequency jammer.
Initially, I attempted to create an automation to activate the alarm when the intrusion state transitions to “unavailable.” However, I’ve noticed that in some instances, this state remains unchanged during a jamming event.
I’ve come across information in the documentation regarding the node status and ping entities for Z-Wave devices. Could these be the key to resolving this issue?
Thank you in advance for any assistance you can provide!
How are you going to send a command to a Z-Wave device if the network is jammed?
For controller jamming detection:
Use the “status” entity of the controller. It will report Jammed if the driver thinks it’s being jammed. This may provide false alarms due to a current bug in the 700/800-series controller firmware
Create template sensors using the (average) background rssi and current rssi entities of the controller, you can compute the difference to detect jamming. You’ll need to decide what value constitutes jamming.
My intention isn’t to send Z-Wave commands when the network is jammed; rather, I have a wired siren in place. While I haven’t jammed the network myself, I’ve come across discussions in various forums where individuals have reported doing so relatively easily, leaving sensors state unchanged.
In response to your suggestion, I’ll explore the status entity of my controller (Aeotec ZW090 Plus “Z-Stick” GEN5+).
My first intuition was to establish a communication with the door sensors and sending periodic messages to verify their functionality. If a sensor fails to respond, it could indicate a potential issue such as jamming or other malfunctions. However, battery usage might be an issue… Is it possible to do that in Home Assistant? What do you think about this approach?
Ah my bad. In my head it read as “trigger a Z-Wave siren”.
I personally don’t think that’s going to work very well. First, you can’t send messages to battery devices on demand. They only listen when they wake up. Second, the wake up intervals are usually set as multiple hours or days (default often 1 hour). The lower the value the more power used, meaning more battery replacements. Going down to minutes is certainly going to kill your batteries very frequently.
You can use the “last_seen” sensor to make kind of heuristic about device activity. You can find examples of that here. That is updated anytime the device sends a message. So you could trigger something based on device not update since X time. Not sure how useful that will be a “jammed” scenario though.
Jammers are illegal to possess in the U.S., so how would you test this?
Jammers work by flooding the ether with an overwhelming amount of broadband RF radiation. The technical term is desense. It makes normal communication difficult or impossible. It’s like being in a stadium holding a conversation with the person sitting next to you. Then the home team scores and the crowd erupts. Your conversation has been jammed.
How are you going to discriminate from a strong, normal adjacent-channel signal and a broadband signal? If you are jammed by an on-frequency signal, most protocols anticipate a busy channel and have the ability to change the channel.
If you have secrets or valuables that you are protecting, why are you using Z-Wave? Wires can’t be jammed.
I believe that to be an assumption. Right now zwavejs reports “jammed” when the controller fails to respond in a timely manner. AFAIK, this has nothing to do with RF jamming. However, What you will see is an increasing level of timeouts (assuming you are periodically polling line powered devices).