News

+7 (831) 410 9704

Automation systems

Intelligent building automation system with voice control integrated

Our Company presents a high-performance solution in the management of intelligent buildings. Our system provides all necessary functions, easily scalable and can be used with devices of firms such as AMX, CBus and others through the front-end converters and its software.

This is a highly cost-efficiency and functionality OEM solution. One of the main features of the solution is an ability to control and mandage every component in the system from iOS and Android devices such as iPhone/iPad, Galaxy Nexus and etc. including VOICE CONTROL!

Features

  • - Control your objects with iPhone/iPad/iPod & Android based devices!
  • - VOICE CONTROL!
  • - Unlimited scalability
  • - Full AMX & Crestron compatability
  • - Ability to integrate non-standart devices (ask our specialists)
  • - Most usable devices and sensors are of own development
  • - Fully programmable
  • - Easy setup
  • - Best price in the market
  • - Hundreds of satisfied customers

Description

The central part of the system is a controller; it serves for processing of input data and decision taking in accordance with its built-in operating logics.  The controller is set up using SmartHomeStudio software.

The system can be controlled using touch pads, for that a control interface is created in the SmartHomeStudio and graphic elements are linked with various instructions of other devices.

Automation devices are liked by means of a dataway and operate via ISBus protocol.  Devices are set up using LinkStudio2 software and can operate both off-line and connected to the controller.  This link is implemented using Ethernet/ISBus interface converter.  Such automation devices can be controlled using controllers from outside manufacturers, e.g., AMX company controllers.


 

System architecture

 

 

Current system configuration

Devices: 
Software: 
  • Software «Controller»
  • Software for touch panel (iOS - iPhone/iPad/iPod, Android OS - Galaxy Tab, Galaxy S/S II, Nexus One, Galaxy Nexus and e.t.c.)
  • Software LinkStudio2
  • Software SmartHomeStudio

Devices under development: 
  • Temperature controller (inside temperature measurement, control of servomotors heating system)
  • Humidity controller (inside humidity measurement and control of other automation devices in network)
  • Electric parameters meter (voltage and current measurement in power system,  calculation of phase shifting and other parameters)
  • Stereo amplifier with in-built FM-tuner

 

Our solution is one of the best with respect to price-quality criterion not only in the Russian market, but also among the best international analogues.

 

 

SmartHomeStudio programming environment

 SHS (SmartHomeStudio) is the product for programming and communication of various control, automation devices, etc.  The software is written in С++ using  Qt(Nokia) framework.  The program's source code we transfer to other platforms supported by the Qt (after debugging process). To ease program setting-up and debugging, and for easy start-up of any routine operations V8 language (variant of the JAVASCRIPT on the basis of ECMA standard; language developer is Google and it uses this in the promoted browser Google Chrome, it is characterized by high execution speed since it is compiled into machine code) has been built into the product that entirely controls program logic at the start-up and runtime stages.

There is an environment implemented in the program for writing an interface for control devices on the basis of iOS (IPAD, IPhone) and Android, to which the program can transmit composed interface via TCP channel.

At the same time, the program has the implemented environment for programming the logic for joint operation of any devices on the basis of signal/slot connections allowing for visual creation of operating logic having any skills, i.e. this function is oriented to a wide range of users.  And more advanced users can have the access to powerful low-level features allowing to develop device interaction combinations of any complexity.  Although only the knowledge of JavaScript (the most common dialect among developers) and of program operation fundamentals is required for being able to use the mentioned above "advance" features.

All the developed data are transmitted via TCP channel to the controller - an application also written in Qt + V8 fulfilling the role of a daemon and controlling the operation of all devices in the runtime on the basis of user developed logic.  And the basic function on the controller is implemented by V8. Since V8 in the compiled version represents the same machine (assembler) code, therefore all logic operates fast and with the minimum consumption of resources.  It has to be noted that SHS is completely ready for joint operation with the controller, and scripts on the controller can be run and also various information can be obtained from the controller from this environment for the purposes of debugging of projects.

The most distinguishing feature if the program (SHS) is its versatility.  Theoretically it can operate with any types of devices.  If a user wishes the controller to operate with any new device, he can write a protocol for it using JavaScript, on the basis of a special API.  After that, a device is ready for the operation.  Thus, e.g., to control a XBMC multimedia center it is sufficient only to implement a communication protocol in javascript, and modifications are not introduced into controller program code or SHS.  Also under consideration is the possibility to build DLNA library into the controller to be able to control various multimedia devices supporting this standard.

The initial code of the program is covered by its in-built unit-tests on the basis of Google-test and Google-mock.

 

Principles of SmartHomeStudio operation


        

 

The SHS is intended for linking different devices into a common control system.  The main logical items of the program are:

  • a controller,
  • display and control device,
  • driver of any device.

Each of the presented devices has inputs for the control of this device - 'slots', and events produced by the device itself - 'signals'.  To establish a logical link, a signal from a device shall be linked with a slot of another or of the same device.

For example, control panel signals are pressing/holding/releasing of a certain button, travelling of the cursor.  And slots are change of a text for a certain button, change of button status, etc.

Device driver has signals and slots defined by a special nature of device operation.  For example, if that is an amplifier driver, then the slots will be setting of volume level, setting of a defined input, setting of balance, tone, etc.  And slots will be the status of volume, status of balance, current input.

If we want to assign change of volume level to a certain control panel button, we link pressing on a button (signal) with setting of volume level (slot) and get a logical link.  This link is processed by the controller.  The controller receives button pressing event (signal), then it searches for a slot (slots) linked with this signal and executes them.

To create much sophisticated logical links requiring for checking of certain conditions, there is a possibility in the program to write scripts on the basis of the ECMA-script.

To add a driver of an unknown device into the program, it is necessary to describe by means of a script the type of a signal/slot, what parameters it incorporates, and also to describe activity log of this device.

The basic communication protocol of the controller to other devices is TCP or UDP.  But also it is possible to use computer 232/485 interfaces on which a computer is installed.

 

SmartHomeStudio Functions and Features

  • Creation of a graphical interface for iPod, iPhone, iPadAndroid (testing is undergoing with iPad):
    • Available control elements: button, cursor, list;
    • Elements of the graphical interface: a page, a pop-up page;
    • Free arrangement of control elements on pages;
    • Copying/pasting/relocation of control elements;
    • Assigning of icons to control elements;
    • Animation when passing from a page to another page.
  • Uploading of a graphical interface on the panel
    • Automatic searching for a panel in the network.
  • Uploading of a project into the controller;
  • Creation of logical links for devices (signal-slot links);
  • Possibility to add new device drivers using ECMA-script without recompilation of all the program;
  • Adjustment of device interactions without programming;
  • Possibility of scripts writing for establishing of a complicated logic for device interactions;
  • Bidirectional interaction of the controller and touch pads.

 

Controller

The controller is a console-based application (demo) controlling the logic of operation of all devices.  All devices (automatic, control, etc.) continuously inform the controller about various events in and changes of their state, and the controller, in its turn, on the basis of the logic programmed into the SHS (so-called 'scheme' being an array of serial signal/slot links) takes a decision concerning a response to these messages as launching some actions (so-called 'slots') in that or another devices.  All this activity occurs in the content of V8, that provides for the flexibility of logic operation without losing capacity and resources (because the V8 in the operating (compiled) mode represents the same low-level machine (assembler) code). To avoid the negative impact of the operation of one devices to the operation of another devices (in terms of using resources of the machine a controller is running on), its operation is built asynchronously as much as possible.  Practically each control device communicates with the controller in a separate stream that allows reduction of possible collisions to the maximum extent.

Depending on user settings, the controller can send debugging data related to operations taking place on it (and in standard form), on the SHS, that makes the mechanism of the controller operation 'transparent' for a customizer.  It is also possible to influence onto the current operation of the controller from the SHS (as also from the controller directly) by launching different scripts that may be required in the process of project debugging.

The product is written in С++ using  Qt(Nokia) framework.  The program's source code we transfer to other platforms supported by the Qt (after debugging process). The initial code of the program is covered by its in-built unit-tests on the basis of Google-test and Google-mock.

 

Setting of automatics - Linkstudio 2

LS2 is the program for controlling and setting of automation devices.  The product is written in С++ using  Qt(Nokia) framework.  The program's source code we transfer to other platforms supported by the Qt (after debugging process). For the convenience of program setting and debugging, and for easy launching of any routine operations, the product has a built-in Qt Script (a variant of JAVASCRIPT based on ECMA standard) that entirely controls the program logic at the start-up stage and in the runtime.  The program is not oriented to specific types of devices, and provides for the API on the Qt Script for dynamic creation of devices of any kind including dynamically programmable device setting dialogue and the programmable mechanism for the operation with the device memory.  In a network, the program operates via TCP and 232 interfaces.

The initial code of the program is covered by its in-built unit-tests on the basis of Google-test and Google-mock.  The tool kit of the program includes different utilities for operating with automatic devices, such as device search by various parameters and a sniffer.  The program is provided with powerful logging means - visual log, asynchronous file-based and UDP log that can be switched/set independently.

Data exchange between devices is implemented using ISBus protocol on the basis of RS-485 interface.  Each device has its physical address in the network.

Functions of devices may be merged into groups, and interaction between devices is implemented on the basis of groups.  Each device has its own set of functions and the own set of parameters for setting.  Merging of functions into a group results in establishing of a logical link among these functions.