This post is also available in: Nederlands (Dutch)
A popular channel in the Olisto app is the Location channel. This is a pretty powerful channel with which we can run triggs based on the location of your phone. Such as operating your lighting or your thermostat. For this powerful channel we depend on the information we receive from your phone. Because of the increasing security in smartphones and the way apps get permission to can and may do something with the data of your phone, we must constantly make sure that this channel keeps functioning well.
We notice that the Location channel does not work always well for our users. In this article we explain how the Location channels works and on what our service bases the decision on to perform a trigg.
We depend on the location we get from your phone. To create a location you have to do as follows:
- If you create a location in Olisto on your phone, you have to choose a specific area with a radius of at least 190 meters;.
- That area will be saved on your phone and not in our app. This creates so to speak a list with areas on your phone.
- You go out with your phone. The location is periodically checked by your phone. This means that the Olisto app does not check the location. The reason for this is that we are not allowed to ask continually for your location from the app itself. These are the restrictions Google as well as Apple set up in their system.
- Your phone receives a location based on GPS, WiFi signals and other features. Then your phone checks: am I somewhere else relative to the last location check and am I inside or outside areas which are on my list.
- If you indeed switched from location (you are inside or outside an area), your phone lets our app know: This phone is still/not anymore in area X.
- Our app sends that information directly to our servers and almost immediately (with a few milliseconds delay) we carry out the corresponding trigg.
Notice that a lot happens out of your sight. The only thing you, as user, see is that you change from area and that a trigg is carried out. However, as you can read in the enumeration above, we have no influence on a few moments. When does your phone picks up a new signal? Is that signal reliable enough? Does the phone make the right decision based on the signal, location and list? Does the phone send at the right time our app a notification something has changed?
New operating systems on your phone (iOS as well as Android) set more and stricter requirements what an app can and can not do. As we use our phone longer and more intensive, the requirements become more strict mostly for battery usage. For example, the power saving mode of Android is quite strict, an app that runs on the background for a longer timeframe, is being deactivated by Android 8 Oreo. As a result de app can not recieve data anymore. Such as location data.
Olisto is exactly such an app that runs on the background for a longer time. If you created triggs, you should be able to trust that the app is working in the background. Unfortunatley, this is not always the case and it may happen that Android or iOS deacivates the app which causes the problem no locationdata is being received.
Our users are right to ask the question, how is it possible that Google Maps or another navigation-apps can detect my location very accurately and Olisto does not? First of all, we do not know exactly how the navigation-apps work. We do not know precisely where and how Google Maps obtains its data. However, these apps do have an other moment of use. Your navigation app is generally only active when you go from A to B. The app does not need to run continually on the background and receive your location. You might have noticed that with longer use of for example Google Maps, your battery drains faster. This is the balance we are working with. We constantly want to do our job in the background and if needed receive your location in order to carry out triggs. But we want to do this in the most efficient way. Moreover, iOS and Android are forcing us to be as efficient as possible. We understand that iOS as well as Android do a lot of work to ensure you you can use your phone battery as long as possible.
An additional complication in the Olisto app is the use of multiple devices in a household. A frequently used trigg is one such as “WHEN nobody is home THEN may the lights turn off and the thermostat be lowered”. This trigg is popular in families with multiple phones in the house. We make it possible to activate the trigg only when all the phones have left the house. Now you know that determining the location on one phone is hard and sometimes gives less reliable information, you can imagine how it will be with multiple devices. The reliability will diminish and the trigg can be carried out at unexpected moments or not.
Nevertheless, we still offer this option and work in the meantime on a good solution.
Now we gave you some more background information about how our Location channel works, how do we work on solutions? And are there any alternative solutions?
We look into the options how we still can receive the locations with the restrictions of the operating system. We are doing research if there are other ways to receive your location in a reliable way. Besides, we think in other ways about the principle of this Location channel. Is it about that you have to be able to configure every location in the world via Olisto? Or are only a few specific locations important (home, work, school, hobby) at which we are important and where possible other devices and signals are which give together an indicaton about your location?
The growth of Smart Home products is in full swing and there are products which provide more reliable coverage within buildings. Crownstone is for example an interesting product. This smart power plug can determine your place in the house, provided that you have your phone with you. You can understand that we look at these solutions with interest and how we can use this in Olisto to give you, as user, a better result.