Skip to main content

NX-595E Output Control Fork

This fork is designated to implementing the "Output Control" section of the NX-595E. The main objective is to enable communication with the outputs and ensure its proper implementation.

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-1.0.2.tar.gz (83.8 kB view details)

Uploaded Source

Built Distribution

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

ultrasync-1.0.2-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ultrasync-1.0.2.tar.gz
  • Upload date:
  • Size: 83.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for ultrasync-1.0.2.tar.gz
Algorithm Hash digest
SHA256 bcd0debaee642129346aed1f96ae3789b6bc7d6abb8343b98dc6d9866e87b693
MD5 590cc7a0b67b66c42dc39ce5bfc80c81
BLAKE2b-256 1aa918bd7bfcae45a3ff596632ed7cb768e5b91a6347dd2eb50f4f5171291781

See more details on using hashes here.

File details

Details for the file ultrasync-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: ultrasync-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.2

File hashes

Hashes for ultrasync-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 247934fcc7375e0c805a74a2728c7044b1f06c721055cf3868401559197ec354
MD5 27e16be28f450e602962ec70eb6ecff0
BLAKE2b-256 f0814fa6632b91775a847aa6c2a5ef9a47a0d83c4e3b28a8b774737ca4725d33

See more details on using hashes here.

Release history Release notifications | RSS feed

1.0.3

2 files

This release

1.0.2 This release

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

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