Monday, December 1, 2014

Our New Place: www.leantegra.com

Please follow me on the new web site and blog:

http://www.leantegra.com


I will keep posting new blog entries about IoT and other topics on the web site of Leantegra.

Meanwhile, this blog is temporarily closed.



Wednesday, July 30, 2014

Wireless Fusion for Smart Indoor Space (by Leantegra)

Some time has passed since the last blog post. All this time we've been working on something really interesting and innovative. You can take a look at the following web site for some high-level information: http://www.leantegra.com

Yes, we've decided to build our own platform and products for IoT - under a new brand, which will definitely disrupt the industry pretty soon.

In this specific post I would like to cover one of the key features delivered by Leantegra for the commercial indoor space. We call it "Wireless Fusion for Smart Indoor Space".

So what is Wireless Fusion in the context of Leantegra solutions? - It is about combining several wireless technologies and related applications in a single "product box":

  • Indoor RTLS - positioning and navigation based on the wireless technologies.
  • Wireless Analytics - tracking and analyzing all radio signals for marketing or operational efficiency purposes.
  • Location-aware and Context-aware Marketing - both pull and push marketing utilizing the innovative customer engagement scenarios and the targeted content distribution.
  • RFID and Proximity Identity - radio identification technologies can go further than the standard EPC passive tags.
  • Real-time Traffic Mapping - remote monitoring of the foot traffic and the mobile assets in your buildings using a nicely looking 2D/3D map view. 
  • Real-time Search and Discovery - find products, equipment, personnel or customers using the wireless technologies and the real-time information indexing.

There is a tremendous value in this combination and hundreds of next-generation IoT applications, which can be built on top of this foundation. You can take a look at the list of use cases and venues on our web site.

The main enabling component for all these features is a device called PowerBeacon - our product and an important part of Leantegra Platform. Yes, its name is derived from the beacon devices utilizing iBeacon technology for the proximity marketing features. And we do have iBeacon in the box as well.

Some pictures of the current design for this device:



Overall PowerBeacon device combines the following three wireless technologies:
  1. Ultra-wideband (UWB) - innovative wireless technology operating in 3.5 GHz - 6.5 GHz frequencies. High precision for the indoor positioning - up to 10-15 cm.
  2. Wi-Fi - supporting 802.11ac and b/g/n, both 2.4 GHz and 5 GHz. 
  3. Bluetooth - BR/EDR, LE and iBeacon.

All of them are fully managed, configurable and connected to the application layer, which delivers all the above Wireless Fusion features - both locally using the wireless connectivity to the user devices and remotely using the cloud PaaS/SaaS.

The device itself is powered over PoE and has several other useful connectivity options for the extended functionality.

We're currently in the middle of our hardware and software development, but definitely looking forward to show a nice demo pretty soon! Stay tuned!


Wednesday, March 26, 2014

iBeacon vs Wi-Fi RTLS: Key Differences

I've just posted a detailed message in IoT Group of LinkedIn to finalize the above question completely: link

There are different discussions and opinions about this topic, which I've heard recently. So let's collect as much arguments as possible to have a complete answer here.

If you can't open this link or do not belong to IoT Group yet, then I'm attaching the screenshot:


Friday, March 21, 2014

Wi-Fi RTLS and Indoor Navigation: Part #1


Yesterday I've purchased several UniFi AP devices and one Ubiquiti ToughSwitch Pro (8 ports) to start some experimenting with RTLS solutions and indoor navigation.

In the end this will become a basis for another interesting project, which I will cover later in this blog...

Ubiquiti has made a really nice and affordable solution for Enterpise WLAN market. UniFi is a really disruptive device, which has stressed the market in terms of its value for the money.

Just to compare the prices for Enterprise WLAN equipment between Ubiquiti and some other vendors:

  • Ubiquiti: ToughSwitch Pro ~ $190; UniFi AP ~ $70;
  • Cisco: WLAN Controller ~ $5000; Access Point ~ $400;
  • Netgear: WLAN Controller ~ $4000; Access Point ~ $350;

Yes, these prices depend upon the concrete models and the scope of features. But still, the price difference is extremely large. So the compromise about UniFi makes a clear sense for your small-to-mid size WLAN installation without 1000+ of enterprise IT policies.


Here in Ukraine they cost even more - I really like this price for Cisco WLAN Controller :-)

http://ipland.com.ua/cisco/cisco_wireless/wlan_controller/cisco_air-ct5508-12-k9.htm

Now, back to the main topic of this post - Wi-Fi RTLS and Indoor Navigation.

RTLS has been a hot topic during the last decade. There are some really good commercial-grade solutions available on the market, like Ekahau or AeroScout, but still the whole application domain of RTLS is far away from becoming mature, technically finalized and globally adopted. 

Accuracy of RTLS methods is an open question #1, which is still addressed and improved by various algorithms - no simple and universal solution here.

Indoor mapping has already become a commodity with Google's introduction of indoor support for Google Maps: https://www.google.com/maps/about/partners/indoormaps/

OpenStreetMap has been also supporting indoor mapping for several years already: http://wiki.openstreetmap.org/wiki/IndoorOSM

You can easily create an indoor map (vector) from your floor plan (raster image) using JOSM or QGIS tools. 


Here is one article describing the process of creating an indoor map from a floor plan using JOSM: http://support.sailstech.com/kb/tutorial/step1-create-indoor-map-and-path-routing-file-by-using-josm

Implementing the indoor navigation features in your mobile application is not a big deal anymore - with the help of such projects as OsmSharp or OsmAnd.

Now back to the technical part of RTLS - let's review the common technologies used in RTLS for location discovery:

RF based methods
  • Bluetooth LE beaconing, like iBeacon tags
  • Wi-Fi Triangulation 
  • Wi-Fi Fingerprinting 
  • Wi-Fi TDoA 
  • UWB (Ultra Wide Band) 
  • RFID UHF and SHF
  • Cell Tower Triangulation
  • GPS/GNSS

Non-RF methods
  • Infrared
  • Ultrasound

UWB is the ultimate champion for RF-based RTLS accuracy with a possibility to achieve ~10 cm precision. Still, this technology has a very small adoption, because of the need to install a pretty exotic UWB equipment and the compatible tags. 

Bluetooth LE, RFID - proximity based solutions suitable for presence detection and simple guidance scenarios. iBeacon technology has received a global attention after appearing in iOS 7 and is a good alternative to Wi-Fi RTLS. But this alternative is still not reaching the level of Wi-Fi in many aspects. 

Infrared - has been around since 1980s and is still in production for some specific applications in healthcare and manufacturing.

Ultrasound - pretty advanced technology with high precision and correspondingly high prices and complexities...

Cell Tower Triangulation - used by the mobile operators to track your location ;-) Pretty inaccurate method (hundreds of meters) involving 2-3 cell towers and the signal strength to understand the mobile device location.

Wi-Fi based RTLS methods are the most popular ones - driven by the popularity of Wi-Fi technologies and the widespread presence of Wi-Fi enabled client devices (e.g. mobile phones)

RSS Triangulation, TDoA and Fingerprinting are the common approaches to location discovery using Wi-Fi.

Triangulation has already proven itself as a highly ineffective technology - very inaccurate with the results varying over time. TDoA and Fingerprinting have much better accuracy and stability characteristics.

TDoA is something unachievable for the "simple mortals" like me in the home environment - this is a very complicated and a pretty expensive technology to calculate the location using the time difference between the arrived signals. Your network and the location calculation stack must be tuned to achieve a nanosecond level accuracy...

Fingerprinting is something doable and achievable even in your basement. From a high-level point of view Fingerprinting is about creating a "radio map", array of the reference points (vectors), which is used to approximate your location somewhere in between these points.

Creating this "radio map" or Fingerprinting Database (let's use this term) might be an effort consuming process - you need to stand with your mobile phone in every reference point and to record Wi-Fi RSSI value. But luckily there are some smart algorithms and the automation methods to save your time.

Please take a look at this wonderful report on the approximation algorithms for Fingerprinting technique:
http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3812643/pdf/sensors-13-11085.pdf

And this report shows the practical implementation of Fingerprinting and the related algorithms:
http://digitalcommons.calpoly.edu/cgi/viewcontent.cgi?article=1007&context=cpesp

OK... too much of text and not enough pictures in this blog post? :-)

In the next post we will try to build our own Indoor Navigation system based on several UniFi access points, OpenStreetMap tooling and Android application.

Stay tuned!


Sunday, March 9, 2014

OpenRemote: Experimenting with DIY Smart Home

OpenRemote is the leading open source platform for practical IoT applications with the main focus on Residential and Commercial Building Automation: http://www.openremote.org

OpenRemote converts your PC, Mac, Linux computer or even your NAS device like QNAP or Synology into a full-featured Home Automation Gateway. It is also worth mentioning that OpenRemote delivers a nice WYSIWYG framework called OpenRemote Designer, which helps you in creating iOS/Android applications with a visual design tool.

If you will try to dig deeper, then you will understand that OpenRemote is basically an "integration platform" for connecting different useful components into a working system, for example:
  • It doesn't have its own Z-Wave Controller, but provides recommendations and code examples to integrate with RaZberry or Aeon USB Z-Stick using their available APIs.
  • It doesn't have its own implementations for many other protocol controllers like EnOcean, X10, KNX, AMX etc. But is has some proven methods and integration code for connecting to the vendors' certified devices, for example: USB gateway for EnOcean network or NetLinx Controller for AMX.
The full list of supported protocols is available on OpenRemote's web site: http://www.openremote.org/display/docs/OpenRemote+2.0+User+Tutorial#OpenRemote2.0UserTutorial-ProtocolIntegration

So what's the real value of OpenRemote itself? If it doesn't implement the actual networks and the protocol-level controllers for your Smart Home.

My own assessment of the main value of OpenRemote - quick and easy implementation of GUI applications for the control panels. Yes, including the backend system for GUI to serve the actual logic of your Home Automation applications. 

Again, OpenRemote is an integration and automation platform for wrapping around all the involved technologies and presenting them with a nice GUI. You will need some other things, both extra hardware and software, for implementing a working Smart Home solution using OpenRemote.

So let's try to play around with OpenRemote and implement our own "Hello World" Smart Home system - controlling the light bulbs with Z-Wave protocol.

For our "Hello World" Smart Home we will need the following things:
  1. Any device officially supported by OpenRemote Controller - it can be your Mac/PC laptop or another device from the list of supported ones: http://www.openremote.org/display/docs/Get+Started#GetStarted-SettingUpOpenRemote
  2. Z-Wave Controller - the one supported by OpenRemote: RaZberry board (http://razberry.z-wave.me) or Aeon USB Z-Stick (http://amzn.com/B003MWQ30E)
  3. Any kind of Z-Wave enabled Light Bulb Socket - for example: http://amzn.com/B00G3OEW9C  Please pay attention to the radio frequency values for Z-Wave, they must be compatible between your Z-Wave Controller and Light Bulb Socket.
  4. Registered account for OpenRemote Designer: https://composer.openremote.org/demo/login.jsp
Since OpenRemote Designer is a web-based tool you won't need any installations. Just open it and try to create some devices for your Smart Home and some screens for your iPhone application:
  1. Go to "Devices" section and create "Smart Light Bulb" device.
  2. Next we need to create several commands to control our Smart Light Bulb: "Light On" and "Light Off" to keep it simple. You can also add "Light Level" command for dimming the lights later.
  3. Upon creating these commands please select Z-Wave in the protocol selection and a couple of extra Z-Wave parameters: nodeID and Command Name. Please use this web page for the related instructions: http://www.openremote.org/display/docs/Discover+Controller+Z-Wave+Devices
  4. Now logically we need to create a "Light Switch" for turning on/off our Smart Light Bulb remotely. But there are several other steps to be accomplished before this one.
  5. Create a new command "Light State" for reading the current state of our Smart Light Bulb (on, off). Please use the instructions from OpenRemote to configure the detailed Z-Wave parameters.
  6. Create a new sensor object - go to "New Sensor", enter "Light Sensor" for its name and select "Light State" in the list of available commands. In the list called "Type" just select "switch", because we're dealing with a binary operation here (on/off switch).
  7. Now we're good to create our "Light Switch" object - go to "New Switch", enter "Light Switch" for its name, select our previously created "Light State" sensor and logically select "Light On" and "Light Off" for the related commands. 
Picture 1: Creating a new command in OpenRemote Designer ("Light On")



OK, now we're good to go with our Smart Home network. We've just created our own controllable Connected Lighting network based on Z-Wave protocol. Let's create some screens for your iPhone application now.
  1. Go to "Panel" section in OpenRemote Designer and create "Lights" screen using the intuitive panel with widgets.
  2. Place the switch GUI control onto your screen and connect it to the previously created "Light Switch" object.
  3. Basically you're done now or you can continue implementing some other GUI features for your iPhone application. I've added another option for dimming the lights based on the slider GUI control.

Picture 2: Creating a new screen in OpenRemote Designer for Connected Lighting App



Now save all your work in OpenRemote Designer and export everything in "openremote.zip" file - downloaded automatically by pressing "Export" button in the top menu.

Open the previously installed OpenRemote Controller in your web browser, by default it is available with the following URL: http://localhost:8080/controller

Select "offline" for the configuration update mode and upload your "openremote.zip" file from OpenRemote Designer. Or use the "online" mode for direct syncing with OpenRemote Designer - it just didn't work for me somehow...

Now just follow the rest of instructions on OpenRemote web site to deploy the designed user interface to your iPhone device: http://www.openremote.org/display/docs/Deploy+your+user+interface

That's it! Now you can control your home lighting with your iPhone device!



Tuesday, March 4, 2014

LinkedIn Discussion - IoT Group: What Will You Do With All the Data?

Let me repost the link to one discussion on LinkedIn IoT Group: http://goo.gl/9Fzl9n

This is just to emphasize that the common questions about IoT Data Layer are being faced by many people - in this or that form. The same set of questions, maybe in a different context.

And here is my answer for this question - just another explanation of importance to address IoT Data Layer on a platform level. Otherwise we will keep reinventing the wheel and wasting time to address the same challenges again and again.



Wednesday, February 26, 2014

IoT-SCR: Java API Diagram

Draft version of Java API for IoT-SCR (Smart Context Repository) - the main component in Data-driven IoT™ platform: