If you have any questions, please contact:
- Email: [email protected]
- Twitter: @zack_118
- Gitter: Join room
- Github Issues: Open an issue
No. We currently do not support iPhone. Unfortunately, the information about the WiFi scanning has to come from the use of the Apple80211
library. This is private library which means that a user would have to jail break their device in order to use it. We do not want to distribute an app that would require users to jailbreak their phones, so we will have to avoid developing for iOS until Apple removes this restriction. Sorry!
Yes - but not satisfyingly. Most solutions are not open-source, or they require external hardware (beacons, etc.), or they are expensive, or they just don't work very well. But don't take my word for it, try it yourself. Here are some of the programs I found that are similar:
If you are looking for a more commercial, large-scale deployable application, look at these up-and-coming solutions:
- MazeMap Indoor Navigation - a Norway-based and Cisco-partnered enterprise that takes your CAD floor plans and generates a nice user-interface with similar indoor-positioning capabilities.
- Meridian Kits - a SF and Portland based company (part of Aruba Networks) that offers specialized App SDK environments for building internal positioning systems into workplaces, businesses and hospitals
- MPact Platform - Motorola is working on a internal positioning system that takes advantage of BlueTooth beacons and Wi-Fi for internal positioning for large applications
If you are looking for a free single-user, single-home application, perhaps you can find solutions with these apps:
- Google Maps Floor Plan Maker - not sure how it works (and have not tested) but claims to be able to navigate within small businesses. Reviewed okay.
- WiFi Indoor Localization - single-floor grid-based learning system that uses Wi-Fi to train on the names of mac addresses. In my hands it did not work well below 20ft resolution. Reviewed okay.
- Indoor Positioning - Selective learning, not tested by me, but also grid-based. Not reviewed.
- BuildNGO - Indoor Navi - Offers Android app that requires online service for uploading floor plans to their server and uses learning based on Max signal, may require Bluetooth as well.
- Wifarer - Uses Beacons and WiFi for Indoor positioning, but trainable and limited to select museums. Reviewed well, but no training available.
- Indoor GPS - Perfunctory application that trains on a route, instead of a location and offers SDK but still lots of work to be done. Reviewed okay.
The point is to eventually incorporate FIND into home automation. FIND can replace motion sensors to provide positional and user-specific information. Anything that you would do with a motion sensor you can do with FIND. Anything you can do with GPS information you can do with FIND information. Except here you get internal positioning so you could tell apart one table from another in a cafeteria, or one bookshelf from another in a library.
As Wi-Fi singleboard computers get smaller and smartphones become more ubiquitous there will be more and more opportunities to harness WiFi signals into something useful for other applications.
The basis of this system is to catalog all the fingerprints about the Wifi routers in the area (MAC addresses and signal values) and then classify them according to their location. Take a look at a typical set of fingerprints (taken from the library at Duke University):
The distributions in Wifi RSSI signal as interpreted by an Android device is shown for each router. Each router is differentiated by color. Different locations give different distributions of router signals, whether these locations differ by a several meters or the same location between floors.
FIND works by taking these differences between the WiFi data from different places to classify a location. Positioning is accomplished by first learning the distributions of WiFi signals for a given location and then classifying it during tracking. Learning only takes ~10 minutes and will last almost indefinitely. The WiFi fingerprints are also the same across all devices so that learning using one device is guaranteed to work across all devices.
No. One important benefit of using WiFi-based technologies as they are relatively cheap sensors in the smartphone/computer. They are cheap in a monetary sense, as well as a power supply sense. Normally, a GPS sensor that is probed every 2 seconds will quickly drain your battery. Probing the WiFi every 2 seconds will take hours to drain your battery and is less taxing than many apps.
Yes...probably. Replacing motion sensors with FIND has the added benefit of automatically providing user information as well as the position/time information. The main disadvantage is that there is time delay of 1-5 seconds to register, so timing applications are not as good. It is possible to increase the scan speed to accomplish better timing applications but it will drain the life of the battery faster.
Does it use a Wi-Fi location database?
No. There is no dependency on external resources like Wi-Fi location databases. However, these type of databases can add additional information that might be worthwhile to explore to also integrate into FIND.
Yes, unless you have a data connection. You also need to have Wifi enabled, otherwise you have no way of scanning wifi!
Yes. You can setup your own server to host locally. Setting up your server can be done by building the program yourself or simply downloading the latest prebuilt version for you OS.
Not yet. This is something we would like to implement and we are working on. There is more information about our longterm roadmap here.
Yes. All Android devices are supported. You can download the app from Google Play or use the source code to build the app yourself.
It depends. This system harnesses the available WiFi routers. If you have very few WiFi routers in the vicinity (i.e. <3 in 50 meters) then your resolution will suffer. Otherwise, you can typically get less than 10 square feet in location resolution.
Yes. Its been tested and runs great on a Raspberry Pi model B+, and model 3. Also, all the releases include a ARM release for running on a Raspberry pi.
Yes. Yes it will pick up floors no problem. Floors tend to attenuate the signal, so there is a noticeable difference when you are in the same position, but on different floors. For example, check this out this graphic. Location x54 and location x49 are exactly the same place, but different floors, in a library. The blue signals are much more attenuated in x49 than x54 and thus are distinguished.
2 to 5 minutes. Optimally you want to send ~100 pieces of information to the server. It transmits about 20 per minute, so you should give it some time to train well.
Yes! We host our code on Github and will accept Pull requests and Feature requests.
Does it work with home-assistant.io?
Yes. See here for the discussion on how to use it with home-assistant.io.