ZYMKEY4i production mode self destruct mode


I had followed steps as given at link for production mode.

I set the device to notify and destruct mode to false and cut the tab as suggested.
Once device is in production mode i tried to arm system using python code self destruct mode in
case of perimeter detection.

But i am getting this error when i try to set self destruct mode.

Traceback (most recent call last):
File “zykeytest.py”, line 3, in
zymkey.client.set_perimeter_event_actions(0, action_notify=False, action_self_destruct=True)
File “/usr/local/lib/python3.7/dist-packages/zymkey/module.py”, line 971, in set_perimeter_event_actions
raise AssertionError(‘bad return code %d’ % ret)
AssertionError: bad return code -1

My code for arm system is this.

import zymkey
zymkey.client.set_perimeter_event_actions(0, action_notify=False, action_self_destruct=True)
zymkey.client.set_perimeter_event_actions(1, action_notify=False, action_self_destruct=True)

Can you tell me what i am doing wrong ?


Hello Naresh,

Steps 14, 15, and 16 are key - you must close the perimeter detect circuits and make sure there are no perimeter detect events. Once in Production Mode, the Perimeter Event Action can only be set once per circuit. After the first time, you cannot change the settings and you will get the AssertionError.

What is the flashing pattern of your Blue LED? It you completed all steps properly it should be flashing 3 quick flashes every 3 seconds.

Hello Bob

Thank you for suggestion. I just set the state notify python script after cutting the tab. So i cant change state to self destruct , right ?

Correct. You can only call it one time for each circuit after you have cut the tab. This is by design to prevent a bad actor from turning off your self-destruct at a later time.