Physical Lane Overview - sofwerx/mad-jack GitHub Wiki

This section will document the Physical lane of the Safe House project. These pages are intended for a general audience that might not be familiar with Linux and other software/services used in our project, so if you're already armed with that knowledge please feel free to breeze on through. Questions? Comments? We welcome all feedback at [email protected].

Contents
Software and Apps
System Requirements
Devices

Software and Apps

A goal for this project is to make as much use of open-source software as possible. While some proprietary applications and services proved necessary, a closer examination of equipment options could reduce the need for non-free software. Here are the applications and services used in the Safe House project. During the project, some of these applications run off a Docker container. This is not absolutely essential, but greatly facilitates software deployment.

Domoticz

Domoticz is a free and open source home automation manager available on Windows, MacOS, and Linux platforms as well as for several embedded devices. It supports the integration of a wide variety of technologies, including Z-Wave, Zigbee, RFXCOM, Smart Meter, and more. Additionally, Domoticz's API allows for device communication with JSON, so if a device can be configured to communicate over the local network via JSON, it can be integrated into a Domoticz system as well. Domoticz features native support for log exports to InfluxDB, Google PubSub, FibaroLink, or via HTTP. Notifications may also be sent in JSON to a web listener. In the safe house project, Domoticz was deployed in a Docker container. For a partial list of devices compatible with Domoticz, please refer to the Domoticz wiki here:

Apart from its documentation, Domoticz is supported by an active community of users and makers: providing an additional source of troubleshooting assistance as well as feature extensions with user-contributed scripts.

August Home

This is a proprietary smart phone app, for iOS and Android, that the manufacturer requires for operation of their August Smart Lock. The application needs internet access for account registration. After your account has been authenticated and hardware has been linked to your account, the user may control the lock using Bluetooth. The application uses AES-encryption for authentication. The application also authorizes guest access to the lock, displays the logs of lock activity, and adds other August devices, such as the Connect hub, for use in their system.

Tuya Smart Life

This is a proprietary smart phone application, for iOS and Android, that the manufacturer requires for operation of their Wi-Fi devices. These include Wi-Fi power plugs and Wi-Fi smart lights. The application needs internet access for account registration, and then access to the same local area network as the Wi-Fi devices for operation. Tuya claims it protects its applications with "military-grade" encryption.

IFTTT

IFTTT (If This Then That) is a web service that provides a platform for inter-connectivity and automation between a wide variety of disparate web services and IoT devices. IFTTT enables automation through the use of a series of conditional statements via a very user-friendly web interface. These statements are based on triggers provided by IFTTT partner vendors and manufacturers. IFTTT is proprietary. Although it supports a large swathe of popular devices and services, IFTTT requires an internet connection. In addition to basic triggers, IFTTT also provides a means to send JSON data to a user-provided public address. Security-wise, the user may elect TLS for this communication.

Amazon Alexa

Amazon Alexa is a popular virtual assistant providing voice-activated functionality to a variety of services and devices. It requires the user to register for a free Amazon account for use. It runs off of Amazon's Echo devices and needs internet access. Alexa support is provided by most newer IoT devices.

Elasticsearch

Elasticsearch is a powerful, cross-platform, free and open source search engine used to query documents in near real time. It's based off the earlier Lucene search engine and is one of the most popular open source search engine and is used by many tech companies, namely Facebook, Adobe, Netflix, and Github. It's operated from an HTTP web interface. In the safe house project, Elasticsearch was deployed in a Docker container.

Kibana

Kibana is a data visualization plugin for Elasticsearch. It's commonly deployed as part of an ELK stack: Elasticsearch, Logstash (for document parsing), and Kibana. Kibana provides several dashboards for creating pie charts, histograms, or line graphs. Its API also allows for creation of custom data visualizations. It reports in near real time, and includes tools for monitoring and notifying on incoming data. In our setup, Kibana is run from a Docker container.

From the perspective of the ISR lane, the safe house is intended to consist of affordable devices widely available on the consumer market. I'll divide the devices into two groups: security devices and smart devices. Wrapping up will be some considerations to keep in mind when choosing other devices for the safe house.


System Requirements

Domoticz System Requirements

Domoticz is a relatively lightweight application, and can even run reliably on mobile devices or single-board computers like a Raspberry Pi. The Domoticz team recommends:

  • Minimum 256MB RAM
  • 200MB free storage space
  • 1280 x 1024 screen resolution or higher
  • Up-to-date Chrome, Firefox, or Safari; Microsoft Edge or Internet Explorer 10+

Elasticsearch System Requirements

The Elastic Guide does not provide hardware requirements. Rather, they acknowledge that specifications rely on the scale of the Elasticsearch system, and provide general recommendations. The following is a summary.

  • At least 16GB RAM, ideally 64GB.
  • Modern (within last 5 years) multi-core processor
  • At least 1GbE, data-center networking
  • SSDs, or at least 15k RPM HDDs

Docker System Requirements

Requirements may change depending on the container application being used. Generally, a machine with a 64-bit processor is recommended.

Project Machine Specifications

To give a better idea of hardware requirements, here are the specifications of the two machines used to run the software.

System76 Oryx Pro

  • CPU: Intel i7-7820HK 8-core @ 3.9 GHz
  • Memory: 32GB RAM
  • GPU: NVIDIA GeForce GTX 1070 Mobile
  • OS: Pop!OS 17.10 (Artful Aardvark) x86_64

NVIDIA Jetson TX-2

  • CPU: 64-bit Denver 2 and A57 CPUs
  • Memory: 32GB RAM
  • GPU: NVIDIA Pascal, 256 CUDA cores
  • OS: Ubuntu 16.04 LTS

Safe House Devices

Vstarcam C7837WIP Wireless IP Camera

This wireless camera records at 720p and supports ONVIF 2.0 and RTSP streaming protocols. Although the device is plug an play ready for immediate use with Vstarcam's proprietary cloud services, finding the device on your network may be a little tedious, especially if you have several devices connected. I recommend using Vstarcam's device location app. The app has a Windows and MacOS version, but it runs hassle-free on a VM with a Linux host:

You can use the device's full network address to access it's GUI and video streams.

Aeotec Z-Stick Gen5

This is a Z-Wave Plus master controller configurable on PCs via USB. It uses free and open source software, Open Z-Wave, to establish a Z-Wave network. This is probably the most popular device of its type on the market, and compatible with nearly all home automation software.

Monoprice Z-Wave Plus PIR Motion Detector with Temperature Sensor

This is a rebranded Vision ZP3102 licensed from Vision Security. It has a passive infrared motion sensor, a temperature sensor, and a tamper sensor. It communicates with AES encryption. It is entirely wireless, and can run for 3 years off of a CR123A battery.

Monoprice Z-Wave Plus PIR Multi Sensor

This is a rebranded Vision ZP3111 licensed from Vision Security. It is a 4-in-1 sensor with passive infrared motion, temperature, humidity, and light detection capabilities. It communicates with AES encryption and is entirely wireless. It takes 2 AAA batteries.

August Smart Lock 3rd Gen

The August Smart Lock uses Bluetooth technology to wirelessly secure a door. It can be retrofitted to any door using a standard single cylinder deadbolt. The locking mechanism can be operated manually with a key or via the August app available on iOS and Android. It runs off of 2 AA batteries and includes a door sensor.

August Connect

This is a Wi-Fi bridge for August devices to extend their connectivity through the Internet. The functionality of locks registered with the August connect is accessed through the August app. The August Connect is also compatible with Amazon Alexa and Google Home.

Smart Home Devices

TanTan Smart Plug

This is a Wi-Fi accessible electrical smart plug accessible via the Smart Life app for iOS and Android. Can activate or shut off power to connected appliances remotely, and is compatible with Google Home and Amazon Alexa.

Smart Wi-Fi Plug

A brandless Wi-Fi plug that is almost identical to the TanTan. Access is provided by the Smart Life app, is compatible with Google Home and Alexa.

Element Classic by Sengled

This is a multi-colored Wi-Fi enabled light bulb. Like the previous two devices, access is provided by the Smart Life application, and is compatible with Google Home and Amazon Alexa.

Amazon Echo Dot

The Echo Dot uses Amazon Alexa to provide voice functionality to a variety of smart home devices. This is supported usually by linking accounts from different services with an Amazon account. It is a wireless device and requires a wireless access point and a mobile phone for initial setup.

Google Home Mini

The Google Home Mini is a product competing with Amazon's Echo. It provides similar features as the Echo.It is a wireless device and requires a wireless access point and a mobile phone for initial setup.