Overall architecture

This is a comprehensive view of the system. Further down this page, each component is described in more details while keeping it simple to provide an aerial perspective.

End-User Interactions with the System

Software Client Applications

The main interactions are coming through client applications built in C# using Microsoft Xamarin. and optimized for portrait phones and tablets.

Note: Although currently only the Android versions are actively maintained, the source code is compatible with Windows, iOS, Mac and Linux.

Harmony
Application used to control all devices and locations. Turn on/off activities and sub-activities, send direct commands to any device, monitor DLNA network and access the system’s logs.
This is the main application used on phones and tablets.

Maestro
This is the music-centric client application. It allows browsing and building playlists. It controls three physical playlists: home theater, multiroom and local playback. It provides access to all the music decoration (scores, biographies, descriptions, original lyrics and translations when available…).

I Stream of Jeannie
This is the video-centric client application. It allows browsing and building playlists. It controls the physical playlists of rooms with video stream capabilities: home theater and family room. It provides access to all the movie and show decorations provided by Plex. It also has all the standard features like tracking what is in progress, current episode in TV shows…

Hardware Clients

For the convenience, the system supports various mechanical (electronic) devices to send commands.

Bluetooth Gaming Mechanical Mini-Keyboard
Using a combination of keys and knobs, the RawInput software component running on a HTPC translates the user’s intentions into commands sent through the server API.

Wireless HTPC Remote
HTPC remotes present themselves as a combination of keyboard and mouse simulation (hence extensive testing when configuring!). Here too, RawInput software component running on a HTPC translates the user’s intentions into commands sent through the server API.

Insteon Switches
Insteon is a Home Automation protocol combining a RF and electrical mesh network of appliances that can be controlled through an ISY hub. The main server includes an Insteon module that allow presenting switches, plugs and others as devices and can be used to map actions to commands sent through the server API.

RawInput
In order to intercept and map keyboard/mouse events into meaningful commands, and also train new devices, a piece of software resides both inside the system (on a HTPC) and on the admin computer.

The Application Server

Media Browser
TBD

Image Server
TBD

Wiki Server
TBD

Network Map
TBD

Main Server
TBD

Plex Server
TBD

Data Stores

Synology Media Server
TBD

Devices

TBD.

Environmental Devices

TBD.

Electronic Equipment

TBD.

Streaming Services

TBD.

Administration Tools

TBD.

Audio Tools

TBD.

Audio File Acquisition

TBD.

Tagging and tag propagation

TBD.

Video Tools

TBD.

Video File Acquisition

TBD.

Video File Organization and Information

TBD.