Are you sure it wasn't due to the crazy clumsy hands you Lego people have? ![]()

Are you sure it wasn't due to the crazy clumsy hands you Lego people have? ![]()

The Lego President will make Hubitat Great Again! (or just greater).
I am posting this just to be funny, not to start the political debate. Please don't turn it into one.
Code 18...

Here we go again... Do the new terms and conditions need with our Owntracks toy?
- Monthly credit changes: We are modifying the current USD $200 monthly recurring credit by offering a free* monthly usage threshold for each Core Services SKU based on its category (Essentials, Pro, and Enterprise).
*Free usage refers to monthly billable events available at no cost.
Essentials: Lets you integrate the best of Google Maps into your applications with 10,000 free monthly billable events2 for most Essentials Core Services SKUs. Ready-to-integrate APIs & SDKs help you quickly get started with essential capabilities for key use cases and scale easily, backed by our global infrastructure
Seems like we'll be ok (i.e., free).
It's a reminder of what they sent out in late last year. OwnTracks app 1.8.7 or newer drops the limits to match their new free terms.
We should be all good! ![]()
Ah, they fooled me, thought it was another change on top of the previous one.
Thank goodness we have you in our corner... ![]()
Anyone else having problems with the google play store version 2.5.3? I recently decided to try the official version versus the custom apk, but now I am not able to connect. It keeps on saying Expected URL scheme 'http' or 'https' but no scheme was found and it seems to be wiping out the http url whenever I try syncing the remote config.
Http mode, url, device id, tracker id, and remote configuration are the only options that need to be adjusted right?
2025-02-09 12:02:41.769 D [DefaultDispatcher-worker-4] HttpMessageProcessorEndpoint: HTTP response body: [
{
"_type": "cmd",
"action": "clearWaypoints"
},
{
"_type": "cmd",
"action": "setConfiguration",
"configuration": {
"_type": "configuration",
"url": ""
}
}
]
2025-02-09 12:02:41.774 D [DefaultDispatcher-worker-4] MessageProcessor: Message sent successfully: [MessageLocation id=6b359494 ts=2025-02-09T20:02:40Z,lat=33.4229415,long=-117.6137558,created_at=2025-02-09T20:02:40.941Z,trigger=USER]
2025-02-09 12:02:41.775 I [DefaultDispatcher-worker-5] MessageProcessor: Received incoming message: MessageCmd on NOKEY with id=edff0d20
2025-02-09 12:02:41.775 I [DefaultDispatcher-worker-5] MessageProcessor: Received incoming message: MessageCmd on NOKEY with id=65496746
2025-02-09 12:02:41.776 D [DefaultDispatcher-worker-5] Preferences: Importing configuration key url ->
2025-02-09 12:02:41.778 D [DefaultDispatcher-worker-5] PreferencesStore: Setting preference url to (coerced to )
That's an issue on what you entered in the URL. It's not valid, so it won't save it.
Hmm, I am copying and pasting from the app page on hubitat. The debug logs show the url set, then does a bit of configuration, then gets a http response with a set url to nothing seemingly.
2025-02-10 15:31:18.008 D [main] PreferencesStore: Setting preference url to https://cloud.hubitat.com/api/redacted/apps/2767/webhook?access_token=redacted (coerced to https://cloud.hubitat.com/api/redacted/apps/2767/webhook?access_token=redacted)
2025-02-10 15:31:18.010 I [main] MessageProcessor: Clearing outgoing message queue length=100
2025-02-10 15:31:18.010 D [main] MessageProcessor: Reloading outgoing message processor
2025-02-10 15:31:18.011 D [main] MessageProcessor: Destroying previous endpoint
2025-02-10 15:31:18.012 I [main] MemoryContactsRepo: Clearing all contacts. Waiting for lock
2025-02-10 15:31:18.013 D [main] MemoryContactsRepo: Cleared all contacts in 267.944us
2025-02-10 15:31:18.278 D [DefaultDispatcher-worker-3] MessageProcessor: Outbound message loop already running. Skipping.
2025-02-10 15:31:18.383 D [DefaultDispatcher-worker-3] MessageProcessor: Retry wait finished after 1.002909506s. Cancelled=false}
2025-02-10 15:31:36.651 D [main] MapFragmentFactory: Instantiating Fragment for org.owntracks.android.ui.map.MapFragment
2025-02-10 15:31:36.651 D [main] MapActivity: Got a rotation vector sensor
2025-02-10 15:31:36.661 D [main] MapViewModel: setting view mode: VIEW_DEVICE
2025-02-10 15:31:36.684 D [main] MapActivity: Checking and requesting notification permissions
2025-02-10 15:31:36.685 D [main] MapActivity: Checking and requesting location permissions
2025-02-10 15:31:36.685 D [main] MapActivity: Checking and requesting background location permissions
2025-02-10 15:31:36.685 D [main] PreferencesStore: Setting preference userDeclinedEnableBackgroundLocationPermissions to true (coerced to true)
2025-02-10 15:31:36.685 D [main] MapActivity: Check and request location services
2025-02-10 15:31:36.685 D [main] MapActivity: Location services enabled
2025-02-10 15:31:36.697 D [main] LocationLiveData: Removing previous locationupdate task complete. Success=true Cancelled=false
2025-02-10 15:31:36.697 D [main] MapActivity$serviceConnection: MapActivity connected to service
2025-02-10 15:31:36.697 D [main] GoogleMapFragment: Maps SDK initialized with renderer: LATEST
2025-02-10 15:31:36.697 D [main] GoogleMapFragment: GoogleMapFragment initMap hasLocationCapability=true
2025-02-10 15:31:36.715 D [main] LocationLiveData: LocationLiveData location update request completed: Success=true Cancelled=false
2025-02-10 15:31:36.780 D [main] LocationLiveData: Removing previous locationupdate task complete. Success=true Cancelled=false
2025-02-10 15:31:36.800 D [main] LocationLiveData: LocationLiveData location update request completed: Success=true Cancelled=false
2025-02-10 15:31:36.813 D [main] LocationLiveData$Callback: LocationLiveData location availability: LocationAvailability[false]
2025-02-10 15:31:37.560 D [main] LocationLiveData$Callback: LocationLiveData location availability: LocationAvailability[true]
2025-02-10 15:31:38.263 D [main] MapViewModel$sendLocation: Sending current location from user request: Location[fused 33,-117 hAcc=11.476 et=+1d3h49m31s680ms alt=19.700000762939453 vAcc=0.94637424]
2025-02-10 15:31:38.266 D [main] LocationProcessor: publishLocationMessage for Location[fused 33,-117 hAcc=11.476 et=+1d3h49m31s680ms alt=19.700000762939453 vAcc=0.94637424] triggered by USER
2025-02-10 15:31:38.268 D [main] MessageProcessor: Queueing message=[MessageLocation id=9f903a00 ts=2025-02-10T23:31:37Z,lat=33,long=-117,created_at=2025-02-10T23:31:38.267Z,trigger=USER], current queueLength:0
2025-02-10 15:31:38.271 D [DefaultDispatcher-worker-3] MessageProcessor: Taken message off queue: [MessageLocation id=9f903a00 ts=2025-02-10T23:31:37Z,lat=33,long=-117,created_at=2025-02-10T23:31:38.267Z,trigger=USER]
2025-02-10 15:31:38.274 D [DefaultDispatcher-worker-3] HttpMessageProcessorEndpoint: Publishing Message JSON {"_type":"location","BSSID":"5a:fe:ce:84:10:99","SSID":"The Beach","_id":"9f903a00","acc":11,"alt":20,"batt":61,"bs":1,"cog":0,"conn":"w","created_at":1739230298,"lat":33,"lon":-117,"m":1,"t":"u","tid":"ck","topic":"owntracks/user/Pixel6a","tst":1739230297,"vac":0,"vel":0}
2025-02-10 15:31:38.275 D [main] MessageProcessor: Queueing message=[MessageStatus android=org.owntracks.android.model.messages.AddMessageStatus@44d3b4a], current queueLength:0
2025-02-10 15:31:39.038 D [DefaultDispatcher-worker-3] HttpMessageProcessorEndpoint: HTTP response received: Response{protocol=http/1.1, code=200, message=OK, url=https://cloud.hubitat.com/api/redacted}
2025-02-10 15:31:39.038 D [DefaultDispatcher-worker-3] HttpMessageProcessorEndpoint: HTTP response body: [
{
"_type": "cmd",
"action": "clearWaypoints"
},
{
"_type": "cmd",
"action": "setConfiguration",
"configuration": {
"_type": "configuration",
"url": ""
}
}
]
2025-02-10 15:31:39.041 D [DefaultDispatcher-worker-3] MessageProcessor: Message sent successfully: [MessageLocation id=9f903a00 ts=2025-02-10T23:31:37Z,lat=33,long=-117,created_at=2025-02-10T23:31:38.267Z,trigger=USER]
2025-02-10 15:31:39.042 D [DefaultDispatcher-worker-3] MessageProcessor: Taken message off queue: [MessageStatus android=org.owntracks.android.model.messages.AddMessageStatus@44d3b4a]
2025-02-10 15:31:39.042 I [DefaultDispatcher-worker-1] MessageProcessor: Received incoming message: MessageCmd on NOKEY with id=14b7f6fe
2025-02-10 15:31:39.042 I [DefaultDispatcher-worker-1] MessageProcessor: Received incoming message: MessageCmd on NOKEY with id=0cac32f6
2025-02-10 15:31:39.043 D [DefaultDispatcher-worker-1] Preferences: Importing configuration key url ->
2025-02-10 15:31:39.043 D [DefaultDispatcher-worker-3] HttpMessageProcessorEndpoint: Publishing Message JSON {"_type":"status","_id":"432bf10e","android":{"hib":1,"bo":0,"loc":0,"ps":0,"wifi":1},"topic":"owntracks/user/Pixel6a/status"}
2025-02-10 15:31:39.044 D [DefaultDispatcher-worker-1] PreferencesStore: Setting preference url to (coerced to )
2025-02-10 15:31:39.046 D [DefaultDispatcher-worker-1] PreferencesStore$Transaction: Committing preferences transaction for [var org.owntracks.android.preferences.Preferences.url: kotlin.String]
2025-02-10 15:31:39.047 I [DefaultDispatcher-worker-1] MessageProcessor: Clearing outgoing message queue length=0
2025-02-10 15:31:39.047 D [DefaultDispatcher-worker-1] MessageProcessor: Reloading outgoing message processor
2025-02-10 15:31:39.047 D [DefaultDispatcher-worker-1] MessageProcessor: Destroying previous endpoint
2025-02-10 15:31:39.048 I [DefaultDispatcher-worker-7] BackgroundService$setupGeofences: Setting up geofences for 0 waypoints
2025-02-10 15:31:39.048 I [main] MemoryContactsRepo: Clearing all contacts. Waiting for lock
2025-02-10 15:31:39.048 D [DefaultDispatcher-worker-1] MessageProcessor$processIncomingMessage: No remote waypoints provided
2025-02-10 15:31:39.049 D [main] MemoryContactsRepo: Cleared all contacts in 127.605us
2025-02-10 15:31:39.049 W [DefaultDispatcher-worker-5] HttpMessageProcessorEndpoint: org.owntracks.android.support.interfaces.ConfigurationIncompleteException: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for
at org.owntracks.android.net.http.HttpConfiguration.validate(SourceFile:25)
at org.owntracks.android.net.http.HttpMessageProcessorEndpoint.getEndpointConfiguration(SourceFile:5)
at org.owntracks.android.net.http.HttpMessageProcessorEndpoint.setClientAndConfiguration(SourceFile:11)
at org.owntracks.android.net.http.HttpMessageProcessorEndpoint.activate(SourceFile:20)
at org.owntracks.android.services.MessageProcessor$loadOutgoingMessageProcessor$3.invokeSuspend(SourceFile:33)
at kotlin.coroutines.jvm.internal.ContinuationImpl.resumeWith(SourceFile:9)
at kotlinx.coroutines.DispatchedTask.run(SourceFile:109)
at androidx.work.Worker$2.run(SourceFile:148)
at kotlinx.coroutines.scheduling.TaskImpl.run(SourceFile:3)
at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(SourceFile:93)
Caused by: java.lang.IllegalArgumentException: Expected URL scheme 'http' or 'https' but no scheme was found for
at okhttp3.HttpUrl$Builder.parse$okhttp(SourceFile:1003)
at org.owntracks.android.net.http.HttpConfiguration.validate(SourceFile:15)
... 9 more
Found the issue, the new app needs DeviceID, TrackerID under Identification AND Username under Credentials, but Password seems optional. Debug logs on hubitat app helped illuminate the problem.
Right! In the sideload, I auto-populate that for you.
Another reason the sideload is my choice.
Helps minimize my (frequent) operator errors. ![]()
@lpakula Today I noticed that one of my Android phones monitoring mode is set to "Move" instead of "Sifnificant" as all the others are set.
Since the button is disabled in V 2.5.6 (see shot below) I don't neither know how this setting was set to move nor am I sure what's the difference between "Move" and "Significant".
Is there a way to switch to "Significant" even if the button is disabled?

If you are using my forked version, I disable it on the map view. But you could still do it through the notification banner if you have left that active. I disable the OwnTracks "ongoing notification" so that it doesn't display in the banner.
In move mode, the app will just call home on a periodic interval, regardless of movement. It just consumes unnecessary data, so that is why significant mode is recommended. That mode only reports a location update if you moved a distance in a period of time.
Thanks for the explanation and the hint with the notification banner. I was able to change it.
I wasn't sure if I could disable the notifications entirely without any impact on the reliability of the monitoring. Currently I only silenced and minimized the Owntracks notification.
If you disable "Ongoing" notifications, it just impacts it showing in the banner, with no other location effects:
I have 2 Pixel 6A phones with Owntracks installed and configured the same, using the default settings. One is fairly responsive to location changes. But the other one is not. For example, after being home for a while, the phone reported leaving in a reasonable amount of time. However, after returning, it took 6 hours to report that it had returned home. I know this as I have a rule that turns on lights when someone returns home after sunset. My lights went on at about 2 AM, six hours after the phone was back home. The phone was about 1 mile away from our home. Any help is appreciated.
I have 3 phones configured the same and see this type of issue as well. I sometimes even get the arrived message before the departed the last location message.
For overall better rule actions, I am using Combined Presence - @joelwetzel and iPhone WiFi Presence Sensor - @joelwetzel in addition to OwnTracks.
Can you tell me what Combined Presence is? Is it a phone app or something installed on Habitat?
It's an app that allows using multiple devices or other indicators to determine your presence, rather than relying on a single presence device\app.