THAT Logo

THAT Home Automation Topology

The Open Home Automation and Control System

«  THAT Overview  »




Modules and System Interaction:

THAT System is defined to be used in (but not limited to) two (2) basic system configurations: minimalistic and comprehensive. The minimalistic configuration describes a "system" consisting of only a couple THAT modules. These modules operate essentially as "stand-alone" devices, with little or no communication between modules.

The comprehensive configuration describes a system consisting of a few to many modules, with a "master" computer. In this system the computer is the master arbitrator of the system, using information from some modules to dictate the behavior of other modules. The computer shall run comprehensive control software writing in Python or similar cross-platform compatible software. Should the computer fail or otherwise disappear from the network, certain modules controlling critical systems shall revert to self-contained, "fail-safe" modes.

Possible modules to be designed for THAT System are listed and shown in the figure below. THAT System will, however, work with many different modules above and beyond those listed due to its modular, open-ended design.

Possible modules for THAT System
  • Input-based Modules:
    • Rain / water sensor module
    • Temperature / humidity sensor module
    • Light Sensor / infrared receiver module
    • Smoke / carbon monoxide detector module
    • Sound / vibration detection module
    • Window and door integrity / doorbell module
    • Motion / proximity detection module
    • Electricity / water / gas metering module(s)
  • Output-based Modules:
    • Siren / annunciator module
    • Relay / TRIAC switching module
    • Light sensor / infrared receiver module
    • Water / gas valve control module
    • Irrigation system control Module
    • HVAC system control module
    • Simple system status module
  • Complex Control Modules:
    • Digital HVAC thermostat Module
    • System "dumb" terminal control module
    • THAT IP - X10 bridge module
    • THAT IP - INSTEON bridge module
    • THAT IP - Bluetooth bridge module
    • Remote / electronic entry control module


Overall Design Goals:

  • Modularity on the lowest feasible level.
  • Standardization of hardware to the largest extent possible.
  • Standardization of communication to the largest extent possible.
  • Standardization of master-to-modules system control, including "fail-safe" modes.
  • Form follows function.
  • Design integrity takes precedence over design cost.
  • Open Source Software for most functionality.
  • Open Hardware for most functionality.
  • "Freemium" philosophy for advanced functionality.


Hardware Requirements:

  • Link protocol: 10BASE-T, 100BASE-TX Ethernet
  • Data port(s): 8P8C Modular jack
  • External power port: 2.1mm barrel jack
  • Primary power supply: IEEE 802.3af Power over Ethernet (PoE)
  • Secondary power supply: 12-48 VDC or 9-30 VAC [1]

[1] The presence of the PoE power supply, shall take precedence over (and disable) the sourcing of any power from the secondary power supply, such as that from a "wall-wart" or other point-of-use supply.



Communication Requirements:

  • Data transport protocol: TCP
  • Internet protocol: IP [2]
  • Data port: 8428
  • Host type: Server [3]
  • Provisions for master-control of a THAT system using a software client. [4]

[2] Initial THAT modules shall support IP, version 4. While modules can support IP, version 6, this support is not required for THAT conformance.

[3] All modules shall default to being servers on the network, listening on port 8428. Modules are allowed to optionally be set to communicate as clients and/or using other TCP ports. However, such behavior shall never be the default mode of operation.

[4] A "master" control software suite is planned for THAT system. The software shall be written using the Python programming language and should act as a client on the network to send and receive data with as many modules as necessary. Additionally, the software will provide more robust control of THAT system through its position as a "master" data controller.