@Oitzu nice work. have not tried it (i will certainly) but it looks very promising!
you should add the above howto to the readme on your git repository
-
Plugin pimatic-location - Rules based on location
pimatic v0.9 has been released!
Support Pimatic and get some free stickers
Like us on Facebookmake it so !
-
Seem very promising, Unfortunately my phone died today I won’t be able to try for another day or so (my wife won’t let me touch hers she always thinks I am up to rooting).
Pimatic, smart home made by smart folks, for the rest of us!
-
So I installed the apk, I added 3 variables to pimatic, $distance $longitute and $latitude (I set them all to 0)
Then I set the app on the phone and here’s my finding:- I am unable to use SSL (my instance runs on port 444 and I have no problem while using the browser, the cert is signed by a valid CA)
- When I use non SSL I was able to save the settings and the $distance updated on pimatic.
- Both $longitude and $latitude remained unchanged.
So couple questions, am I supposed to set $longitude and $latitude in pimatic to my home position?
Is it possible to have an SSL connection between the app an pimatic?Pimatic, smart home made by smart folks, for the rest of us!
-
I’ll answer one of my questions, indeed I had to set the longitude and latitude in pimatic with the value of my home. Then it reported the distance, I am just missing https now
One more thing, if I set the IP in the android app then it’s working, when I use the FQDN it doesn’t, any idea why @Oitzu ?
Pimatic, smart home made by smart folks, for the rest of us!
-
Correct you need to set this currently yourself. I have planned to integrate a ‘set current position to home’-option in the future.
Yeah, https is still missing, i’m looking into this.
Hm… strange, what is happening if you use the FQDN @sebastienvg? -
Interesting, first test works very well
Two things to mention : the value in distance is in meters, and don’t get confused when the number is less then expected. The distance is calculated as a straight line … not as a route from point a to b.
Now install the app secretly on my wife’s phone …
edit : Feature request
I use several ping plugins to determine if at least 1 person is at home. This var is called $AnybodyHome.
How about telling the App to look at a variable before quering current GPS coordinates? If you make the variable name AND the required value confiurable in the App, you can do the following:var name = $phone1.presence
var value = trueIf this var has that specific value, you know you are at home and you don’t have to wake the GPS.
var name = $AnybodyHome
var value = 1If this var has that specific value, you know you are at home and you don’t have to wake the GPS.
Like my projects and help? Consider donating electroneum etnjwAKGPqF6omQWRmpp9u2BPyVDG9VuyRQjNJ1S8yfBdfR9qeUQ46kRy8KS2CNqbpNLRrsgmNW6F2TMzxmZgPrh6KctrkrYbm
-
@koffienl said:
Two things to mention : the value in distance is in meters, and don’t get confused when the number is less then expected. The distance is calculated as a straight line … not as a route from point a to b.
It would be possible to calculate as Route with the help of the google direction api. Maybe i will include this later. If some user show interest in this.
@koffienl said:
Now install the app secretly on my wife’s phone …
Thats the reason why i decided against sending coordinates to pimatic it just feels to much like a observation of the individual. Sending only the distance gives some sort of fuzzines on the current position of the user.
@koffienl said:
How about telling the App to look at a variable before quering current GPS coordinates?
Does the app wakes up your GPS? The code should normally take your last known position provided by the android location provider. This should normally not request a GPS wakeup on your phone. The last known position should normally be provided by cell tower and wlans arround you. This isn’t as exact as quering the GPS but should be exact enough for our use case and saves energy.
-
Aha … I was in the assumption it was using GPS. My bad
Like my projects and help? Consider donating electroneum etnjwAKGPqF6omQWRmpp9u2BPyVDG9VuyRQjNJ1S8yfBdfR9qeUQ46kRy8KS2CNqbpNLRrsgmNW6F2TMzxmZgPrh6KctrkrYbm
-
@sebastienvg I pushed a new Version to https://github.com/Oitzu/pimatic-location with https and Custom-Port functionality. Could you probably test this? I got no Pimatic running with https.
-
@Oitzu setting this up as we speak. Then I’ll go home for lunch and see if the rule triggers.
Pimatic, smart home made by smart folks, for the rest of us!
-
let me know if it works.
-
@Oitzu it does work very nicely. Now I’d like to change dynamically the “refresh” value depending on situation. I don’t need you to change anything to pimatic-location it very nice and simple, I need to know how to change the “5 minutes” to say "1 or anything else from Tasker that allows you to send arbitraty intents and this allows you to provoke behaviour in other apps, when you know the particular form of intent they are designed to respond to. I am asking this because I’d like to have a more frequent refresh when I drive and not so frequent when I am far away or at work.
Pimatic, smart home made by smart folks, for the rest of us!
-
@sebastienvg thanks for testing! Do you used https and a custom port, too?
Well, the service that updates the location is called by a service intent “de.blackoise.pimaticlocation.PLService” sent by the AlarmManager. I don’t know if Tasker can invoke these, too. It’s defined in the AndroidManifest here: https://github.com/Oitzu/pimatic-location/blob/master/Android/PimaticLocation/app/src/main/AndroidManifest.xmlI also plan to implement a “update on location change” functionality provided by google play services. This should update the location more dynamicly.
-
Yes, I use https and custom port as well I didn’t try with self-signed though.
I like the idea of using google play services, maybe we could then get driving distance and time ETA for more flexibility?Thank for the details, I’ll try to make sense out of that, meanwhile if you’d like to take at look I am no android dev so I wonder how tough it would be to have Tasker integration in your app, I’ll be the first to buy it
Pimatic, smart home made by smart folks, for the rest of us!
-
Self-signed should be allowed.
Yeah, time ETA and driving distance should be in the possibilties.Doesn’t look that hard to get Tasker talking with the app. If i understand the documentation correctly Tasker needs a Broadcast listener to talk to.
But it needs a few days because i’m not at home over the weekend.
Again: Thanks for testing and providing ideas to improve.
-
Thank you @Oitzu for bringing it to life!
Pimatic, smart home made by smart folks, for the rest of us!
-
I created a dev-branch and pushed a change that should only update on LocationChange.
The interval, in this version, is the time in ms Android tries to get the location by GPS. Setting a lower interval will probably result in lower battery-live.
The URL to the dev-branch is: https://github.com/Oitzu/pimatic-location/tree/dev
I would be happy if someone could test this in reallife. -
I am your guy @Oitzu, I’ll test it. But please can you help me change the refresh time by sending a command instead of doing it manually. I really want to be able to change refresh to say 1 minute when I get in the car and lower it to anything else to save battery when I am not in the car.
Pimatic, smart home made by smart folks, for the rest of us!
-
I just installed the DEV version and set it up no issue but one question. If the interval is the time in ms that android tries to get GPS location, where do I set the refresh time (like how often I want to post to pimatic)?
Pimatic, smart home made by smart folks, for the rest of us!
-
Don’t worry its the next thing on my list.
In the meantime you could disable GPS at the moment you get out of your car. If GPS is disabled the service only gets updates based on the network location, the network location don’t updates that often.The service updates the location as soon it gets a new location update by the Android system.
The interval defines how much time min. since the last location update needs to be passed.So the update interval is in this version no longer a fixed value but the minimum time interval between location updates.
This means if you configure 500ms i doesn’t necesearry update your location every 500ms but the soonest moment it updates your location is 500ms after the last update. But if your location don’t change it won’t update after 500ms.
I hope you understand what i mean.
Edit: Maybe i should implement something like a logfile to get a better feeling about how often and at which situation the service receives location updates.