Skip to main content

NX-595E UltraSync Hub

Compatible with both NX-595E Hills ComNav, xGen, xGen8 (such as NXG-8-Z-BO), Interlogix, and ZeroWire UltraSync solutions.

ZeroWire Hub Image

Paypal Follow
Python Build Status CodeCov Status Downloads

How Does It Work?

  1. First you need to install it; this part is easy:

    # Install ultrasync onto your system
    pip install ultrasync
    
  2. Create a configuration file that identifies:

    1. The hostname or IP address of the ComNav/ZeroWire hub you've got setup on some the network.
    2. Your ComNav/ZeroWire login User ID.
    3. Your ComNav/ZeroWire login pin.

    Note: You can only be logged into the ComNav/ZeroWire hub with the same user once; a subsequent login with the same user logs out the other. Since this tool/software actively polls and maintains a login session to your Hub, it can prevent you from being able to log into at the same time elsewhere (via it's website). It is strongly recommended that you create a second user account on your Hub dedicated to just this service.

    # An example of what would be found in your configuration file:
    # Use hashtags/pound symbols (#) to optionally add comments
    # Syntax is simply <key>: <value>
    #
    # You must specify a ip/hostname, user, and pin
    #
    host: 192.168.0.30
    user: My Username
    pin: 1234
    
  3. Use the --scene (-s) to set your security system's alarm scene. The possible options are: disarm, away, and stay.

    # By default if no --config= (-c) is specified, one will be automatically
    # loaded from the following location (if present):
    #  ~/.ultrasync
    #  ~/.config/ultrasync
    
    # Windows users can store their default configuration files here:
    #  %APPDATA%/UltraSync/config
    #  %LOCALAPPDATA%/UltraSync/config
    
    # Disarm your security system
    ultrasync --scene disarm
    
    # Arm your security system and activate all of your sensors when setting the
    # away mode macro
    ultrasync --scene away
    
    # Arm your security system and only activate your perimeter sensors:
    ultrasync --scene stay
    

What Else Can It Do?

  • You can put up a live monitor of your device by typing the following:

    # A live monitoring of your home security system:
    ultrasync --watch
    

UltraSync Watch Mode

  • You can generate a snapshot (in JSON format) that greatly details everything taking place through your security home setup. It provides MUCH greater detail than the --watch which allows it to also be integrated with Home Assistant.

    # Print a JSON formatted snapshot of all home security details
    ultrasync --details
    
  • You can perform a dump of all of the web based files (that I've found to be useful so far) to disk. This makes troubleshooting much easier.

    # Extracts information from your UltraSync Hub that can be
    # incredibly useful in debugging and/or adding enhancements
    # later on:
    ultrasync --debug-dump
    

    The debug content gets written to a zip file (residing in the same folder you ran this command from) in the form of: YYYYmmddHHMMSS.ultrasync-dump.zip.

Reverse Proxy

If you've exposed your panel to the internet, you can access it by setting your host to the full URL to it (instead of just the hosthame/ip). For example:

# A sample UltraSync configuration that requires you to pass through
# a proxy in order to get to your destination:
host: https://your.security.panel/
user: My Username
pin: 1234

If you've also protected your panel behind an additional user/pass combo using Basic Auth at the reverse proxy level, you can pass through it like so:

# A sample ultrasync configuration that requires you to pass through
# a proxy expecting authentication in order to get to your destination:
host: https://user:pass@your.security.panel/
user: My Username
pin: 1234
# You can also optionally turn off the secure hostname verification
# by using the verify switch.  But default this is set to yes if not
# specified:
verify: no

Global Variables

You can also (optionally) set the following global variables to provide the equivalent of what the configuration file could have. If a configuration file is also loaded, it's settings will always prevail. If an entry is missing, then the environment variable is used instead (if it's defined):

Global Variable Description
ULTRASYNC_PIN Provides the pin variable to the library
ULTRASYNC_USER Provides the user variable to the library
ULTRASYNC_HOST Provides the host variable to the library
ULTRASYNC_SSL_VERIFY Provides the verify variable to the library

Disclaimer

This software was created by reverse engineering my own personal security system. All of this code was generated through trial and error since there is no documentation that I could find that explains the registers. If you can help out by filling in some of the blanks throughout the code base, I would be greatly appreciative of it! Alternatively buying me a coffee greatly inspires me to continue improving the application.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ultrasync-0.9.8.tar.gz (80.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ultrasync-0.9.8-py2.py3-none-any.whl (29.2 kB view details)

Uploaded Python 2Python 3

File details

Details for the file ultrasync-0.9.8.tar.gz.

File metadata

  • Download URL: ultrasync-0.9.8.tar.gz
  • Upload date:
  • Size: 80.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for ultrasync-0.9.8.tar.gz
Algorithm Hash digest
SHA256 6b5fe695bad875b39193a0649c9eaa628441d4dfbe9371a6e47c99d6f51cf6f6
MD5 f1e441a2f1f599fe032f0c4cae750556
BLAKE2b-256 55292cec485d9124b301a1830ecebcb80b219e3d90e35f2658b4474d472d8930

See more details on using hashes here.

File details

Details for the file ultrasync-0.9.8-py2.py3-none-any.whl.

File metadata

  • Download URL: ultrasync-0.9.8-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.2 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.3

File hashes

Hashes for ultrasync-0.9.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 19c274379e5424f041b8c5a2fc88ef4371617c3296128e9977e1df9275002244
MD5 79c9e4fb907d0506be725e02127821ba
BLAKE2b-256 3979f273b65a8b41d2a41faf29a217fcde86499827a05fe0d718bee3c6f57920

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.9.9

2 files

This release

0.9.8 This release

2 files

0.9.7

2 files

0.9.6

2 files

0.9.5

2 files

0.9.4

2 files

0.9.3

2 files

0.9.2

2 files

0.9.1

2 files

0.9.0

2 files

0.8.1

2 files

0.8.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page