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.6.tar.gz (80.4 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.6-py2.py3-none-any.whl (29.0 kB view details)

Uploaded Python 2Python 3

File details

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

File metadata

  • Download URL: ultrasync-0.9.6.tar.gz
  • Upload date:
  • Size: 80.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 CPython/3.10.10

File hashes

Hashes for ultrasync-0.9.6.tar.gz
Algorithm Hash digest
SHA256 3539e58e2fffb48f417ecf10184d6a4f9710b1472a9714d60c7e3b8e7484c899
MD5 c62ca486094d6554f7bfd5a886177725
BLAKE2b-256 ec1251cf0f5c64db59cdd5eb03aa8cf3f821014a0d9f04b3e8c09dcef6596f56

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ultrasync-0.9.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 29.0 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 CPython/3.10.10

File hashes

Hashes for ultrasync-0.9.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 bcb4efea353ab51b63522d7fbb7a6cb586a98ba2a6a6ee64c5e0ce0613be95c6
MD5 92756be7bb003324435999c985e219b6
BLAKE2b-256 030cabb0246e0ea92a90e38338a07339628cb0ae76aa251758545fd73fb550c5

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

0.9.8

2 files

0.9.7

2 files

This release

0.9.6 This release

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