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.
- Download: http://www.domoticz.com/downloads/
- Documentation: https://www.domoticz.com/wiki/Main_Page
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.
- Google Play: https://play.google.com/store/apps/details?id=com.august.luna
- iOS App Store: https://itunes.apple.com/us/app/august-home/id648730592?mt=8
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.
- Google Play: https://itunes.apple.com/us/app/smart-life-smart-living/id1115101477?mt=8
- iOS App Store: https://itunes.apple.com/us/app/tuyasmart/id1034649547?mt=8
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.
- Download: https://www.elastic.co/downloads/elasticsearch
- Documentation: https://www.elastic.co/guide/index.html
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.
- Download: https://www.elastic.co/downloads/kibana
- Documentation: https://www.elastic.co/guide/en/kibana/current/index.html
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:
- Windows: http://download2.eye4.cn/download2/application/app-find-vstarcam.zip
- MacOS: http://download2.eye4.cn/download2/application/app-Find-T-Mac.zip
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.