Hi guys, I'm not sure if this is the place to post this question because the thread is pretty lengthy and has a number of strands going on. Anyways, that said. I used to be able to manually overide my Xioami door contacts within this app to appear open or close. Now the app doesn't allow the facility and gives me the options of the attached image. However these options no longer overide and basically do nothing. I'm a bit of an amateur with Hubitat and know I'm missing a trick somewhat. Please help
This is the right place!
I used to be able to manually overide my Xioami door contacts within this app to appear open or close
I'm not sure I follow what you mean by override? Changing the on/off icons? The app will default a contact sensor to use the 'door' device type if it has the word "door" in the label and a window if the word "window" is in it. Otherwise, you can manually change the device type by long-pressing the device -> edit -> device type
Let me know if that's not what you're asking
I checked this and if you set the cloud mode to 'cloud only' the app should always use the hubitat cloud endpoints. The only way it wouldn't is if the cloud token isn't set. Do you see the cloud token set in the nav -> more settings -> cloud mode dialog?
Hi Sorry, I probably wasn't particularly clear. Under the details section, it used to offer the command to set contact sendor to open or closed. Now the little lightening icon displays and the options to change open/close no longer work

Side question... Could your dashboard be submitted to Android auto? That's probably a dumb question but I have no clue. I'd love too have your dashboard in my car!
I stumbled across this article.. I don't have Android Auto to test with but it looks interesting: https://www.xda-developers.com/install-unapproved-apps-for-android-auto/
It seems like it only supports a few select apps but I could reach out and see if it could add this app to the list

Now the little lightening icon displays and the options to change open/close no longer work
I see.. you click on "resetToOpen" and it used to just do it and now it prompts for an optional argument.. is that right?
You can just leave the "" option selected and hit OK and that should do it.
At some point I added this prompt because not all commands work on their own.. some commands require an argument and I wanted some way to allow users to enter it.
That's sorted it. Not sure how I missed that but awesome cheers
App very slow to respond....anyone else?
if that app still workz I would think screen mirror might do the trick
I was considering leaving a cheap phone permanently connectwd to the car and hot spotting data to it.

I checked this and if you set the cloud mode to 'cloud only' the app should always use the hubitat cloud endpoints. The only way it wouldn't is if the cloud token isn't set. Do you see the cloud token set in the nav -> more settings -> cloud mode dialog?
The cloud token was set, the SSID was blank. It did not work using cloud only until I entered an SSID. I went to go remove my SSID entry to test again, but it won't let me remove it - only change it (won't accept a blank entry).

That said, if you save the dashboard config to the hub and restore it on another device - the custom icons should all be there
This is one question I have been wanting to ask you....
IF I setup a tablet the way I like, then save (backup) to the hub, will restoring the backup on the hub to another tablet/phone/device work?
I was wondering if the token would be effected on other devices...
Thanks for a great looking dashboard! I really like it and use it alot!
version 1.0.1477 (beta)
- fix turning screen off fully when screensaver isn't enabled
- add new Radar device
- Android TV fix: allow navigation to 'add device' when in edit mode
2 of these changes are bug fixes.. notably allowing the screen to fully turn off now when no screensaver timeout is set (and you have the device 'on' between certain hours such as 7 AM to 10 PM)
I also tried to add a new radar device tile.. it's not perfect but I'm going to be using it and making changes as I notice things that could be better. Basically, it lets you enter GPS coordinates and will try fetching the current radar from weather.com
. From my testing, if there's any kind of weather changes in the area (ie: storms), weather.com
will return a series of images which the app will animate similar to what you'd see if you go here. If you just get a static weather image, that's because weather.com
didn't have any actual weather changes for the near future.
Here's what it looks like:
side-note - I've previously been using an animated satellite image from NOAA which is more detailed so I want to compare the 2 versions to see which one I like better.. For anyone who's interested in adding a radar tile I created this page with some extra details to get started

My hub is setup to use SSL with my personal Certificate Authority which is trusted on my devices however while I'm able to get to the hubitat dashboards, etc. just fine (on ip and dns name), the app prompts with the following:
I didn't mention it but the latest version has the code changes from that post which hopefully will work in your case

I'm sorry to say that it still goes to screensaver with version 1.0.1447 (beta)
This should be fixed now.. to make sure the screen turns off fully just ensure that "Screensaver" option is "Off" in this dialog (I play to simplify how this looks in the future...)

IF I setup a tablet the way I like, then save (backup) to the hub, will restoring the backup on the hub to another tablet/phone/device work?
I was wondering if the token would be effected on other devices...
Yes, that's how it should work - MakerAPI just has a single access token and a single cloud token that multiple devices can use at the same time.
I just tried out the new radar tile, setup is a snap. Is there any way that the tile could be made scrollable when clicked on in the magnified view? That is the behavior of the weather radar current tile. Right now on my phone when clicking on the new radar tile I just get a non scrollable portrait magnified view.

The cloud token was set, the SSID was blank. It did not work using cloud only until I entered an SSID. I went to go remove my SSID entry to test again, but it won't let me remove it - only change it (won't accept a blank entry).
This is another one of those overly complicated dialogs which I should try to simplify. Right, I see you can't clear out the WiFi access point and I can change that although the way the logic works you just need to enter in anything other than your actual local network SSID to use cloud mode.
I did test putting the app in "cloud only" mode and that worked for me. All you need in that case is the cloud token to be set. The SSID field is hidden in that case and you don't need to give the app location permission.
If you want the app to automatically switch between local and cloud modes (Auto mode), that's what the SSID is used for.
Basically, I want the app to use the local IP address whenever possible and only use the cloud mode endpoints when you're not on your local network. That's why I compare what you have in the SSID field to the actual connected SSID (when on WIFI).. if they match I'll use the local IP address to connect to the hub.. otherwise I'll use the cloud endpoints. This check is super fast and was the best logic I could think of.
-- because of Android security, an app can't get the connected SSID unless the app has location permission.. if you remove location permission for the app at some point I'm defaulting back to just using the local IP again
hopefully that helps explain things a little..

I just tried out the new radar tile, setup is a snap. Is there any way that the tile could be made scrollable when clicked on in the magnified view? That is the behavior of the weather radar current tile. Right now on my phone when clicking on the new radar tile I just get a non scrollable portrait magnified view.
wow that was fast! I haven't even loaded it on my tablets yet
I was also wondering if/how I could zoom/pan on the magnified view too.. My first attempt at this failed because it's not a single image but several images that are animated together. But, I'm sure there's still some way to figure it out. Maybe if you zoom/pan the animation would pause for a bit and then you can zoom in on that particular frame
Thank you! I just tried it and no joy logs below:
--------- beginning of system
05-05 10:49:57.409 3429 3429 W ViewRootImpl[MainActivity]: Dropping event due to root view being removed: KeyEvent { action=ACTION_UP, keyCode=KEYCODE_5, scanCode=0, metaState=0, flags=0x6, repeatCount=0, eventTime=138041044, downTime=138041044, deviceId=-1, source=0x101, displayId=-1 }
--------- beginning of main
05-05 10:57:03.833 6306 6306 E age4500.hubita: Not starting debugger since process cannot load the jdwp agent.
05-05 10:57:03.838 6306 6306 D ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
05-05 10:57:03.854 6306 6306 D CompatibilityChangeReporter: Compat change id reported: 171979766; UID 10478; state: ENABLED
05-05 10:57:03.917 6306 6306 V GraphicsEnvironment: ANGLE Developer option for 'com.jpage4500.hubitat' set to: 'default'
05-05 10:57:03.918 6306 6306 V GraphicsEnvironment: ANGLE GameManagerService for com.jpage4500.hubitat: false
05-05 10:57:03.918 6306 6306 V GraphicsEnvironment: Neither updatable production driver nor prerelease driver is supported.
05-05 10:57:03.919 6306 6306 D NetworkSecurityConfig: No Network Security Config specified, using platform default
05-05 10:57:03.919 6306 6306 D NetworkSecurityConfig: No Network Security Config specified, using platform default
05-05 10:57:03.921 6306 6306 I MultiDex: VM with version 2.1.0 has multidex support
05-05 10:57:03.921 6306 6306 I MultiDex: Installing application
05-05 10:57:03.921 6306 6306 I MultiDex: VM has multidex support, MultiDex support library is disabled.
05-05 10:57:03.932 6306 6306 I FirebaseApp: Device unlocked: initializing all Firebase APIs for app [DEFAULT]
05-05 10:57:03.937 6306 6306 I FirebaseCrashlytics: Initializing Firebase Crashlytics 18.2.6 for com.jpage4500.hubitat
05-05 10:57:03.958 6306 6306 I FirebaseInitProvider: FirebaseApp initialization successful
05-05 10:57:03.973 6306 6306 I HD_MainApplication: APP START: 1.0.1400 (1400)
05-05 10:57:04.040 6306 6306 D CompatibilityChangeReporter: Compat change id reported: 171228096; UID 10478; state: ENABLED
05-05 10:57:04.052 6306 6306 W ActionBarDrawerToggle: DrawerToggle may not show up because NavigationIcon is not visible. You may need to call actionbar.setDisplayHomeAsUpEnabled(true);
05-05 10:57:04.057 6306 6306 I ContentCaptureHelper: Setting logging level to OFF
05-05 10:57:04.061 6306 6349 E HD_HubitatManager: createNetworkEndpoints: no app ID or access token set!
05-05 10:57:04.063 6306 6349 I HD_EventLogger: EVENT LOG VERSION: 0 -> 2, deleted: false
05-05 10:57:04.145 6306 6306 I HD_MainReceiver: handleConnectivityAction: isOnline:true, network:[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: , failover: false, available: true, roaming: false], android.net.conn.CONNECTIVITY_CHANGE, extras[networkInfo=(NetworkInfo), networkType=1 (Integer), inetCondition=100 (Integer), extraInfo=""]
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: QUALCOMM build : 781e7d0, I46ff5fc46f
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Build Date : 12/01/20
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: OpenGL ES Shader Compiler Version: EV031.31.04.01
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Local Branch : QPR1
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Remote Branch :
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Remote Branch :
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Reconstruct Branch :
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Build Config : C P 11.0.1 AArch64
05-05 10:57:04.173 6306 6344 I AdrenoGLES-0: Driver Path : /vendor/lib64/egl/libGLESv2_adreno.so
05-05 10:57:04.177 6306 6344 I AdrenoGLES-0: PFP: 0x016ee190, ME: 0x00000000
05-05 10:57:04.180 6306 6344 W AdrenoUtils: <ReadGpuID_from_sysfs:197>: Failed to open /sys/class/kgsl/kgsl-3d0/gpu_model
05-05 10:57:04.180 6306 6344 W AdrenoUtils: <ReadGpuID:221>: Failed to read chip ID from gpu_model. Fallback to use the GSL path
05-05 10:57:04.187 6306 6344 D hw-ProcessState: Binder ioctl to enable oneway spam detection failed: Invalid argument
05-05 10:57:04.207 6306 6351 I Gralloc4: mapper 4.x is not supported
05-05 10:57:04.208 6306 6351 W Gralloc3: mapper 3.x is not supported
05-05 10:57:04.210 6306 6351 W Gralloc4: allocator 4.x is not supported
05-05 10:57:04.211 6306 6351 W Gralloc3: allocator 3.x is not supported
05-05 10:57:05.742 6306 6306 D CompatibilityChangeReporter: Compat change id reported: 163400105; UID 10478; state: DISABLED
05-05 10:57:06.805 6306 6306 D InputMethodManager: showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{244ede5 VFED..CL. .F.P.... 155,67-705,152 #7f080228 app:id/serverEdit aid=1073741824} flags=0 reason=SHOW_SOFT_INPUT
05-05 10:57:07.015 6306 6306 D InsetsController: show(ime(), fromIme=true)
05-05 10:57:13.469 6306 6421 E HD_CustomInterceptor: HTTP_ERROR: IOException: 1) 674ms, http://HUB.IP.ADDRESS/installedapp/list, java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
05-05 10:57:13.469 6306 6421 E HD_NetworkUtils: downloadUrlToString: onFailure: java.security.cert.CertPathValidatorException: Trust anchor for certification path not found., url:http://HUB.IP.ADDRESS/installedapp/list
05-05 10:57:13.470 6306 6306 E HD_LoginFragment: fetchMakerAppId: 'Maker API' not found: null
05-05 10:57:13.471 6306 6306 W HD_LoginFragment: handleLoginResult: Maker API not found!
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: Settings request failed.
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: java.net.SocketTimeoutException: failed to connect to firebase-settings.crashlytics.com/10.10.10.1 (port 443) from /PHONE.IP.ADDRESS (port 48774) after 10000ms
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at libcore.io.IoBridge.connectErrno(IoBridge.java:236)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at libcore.io.IoBridge.connect(IoBridge.java:180)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:142)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:390)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:436)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.net.Socket.connect(Socket.java:621)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.Platform.connectSocket(Platform.java:182)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:145)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.connect(DelegatingHttpsURLConnection.java:90)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:30)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.network.HttpGetRequest.execute(HttpGetRequest.java:76)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.settings.network.DefaultSettingsSpiCall.invoke(DefaultSettingsSpiCall.java:113)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:201)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.settings.SettingsController$1.then(SettingsController.java:194)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.android.gms.tasks.zzp.run(Unknown Source:2)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.ExecutorUtils$1$1.onRun(ExecutorUtils.java:64)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at com.google.firebase.crashlytics.internal.common.BackgroundPriorityRunnable.run(BackgroundPriorityRunnable.java:27)
05-05 10:57:14.020 6306 6330 E FirebaseCrashlytics: at java.lang.Thread.run(Thread.java:920)
05-05 10:57:15.619 6306 6306 D InputMethodManager: showSoftInput() view=androidx.appcompat.widget.AppCompatEditText{8e28b3 VFED..CL. .F.P..ID 292,108-567,193 #7f080055 app:id/appIdEdit aid=1073741825} flags=0 reason=SHOW_SOFT_INPUT
05-05 10:57:15.637 6306 6306 D InsetsController: show(ime(), fromIme=true)
05-05 10:57:20.773 6306 6344 D OpenGLRenderer: endAllActiveAnimators on 0x7d920d2960 (RippleDrawable) with handle 0x7ca20fd760
05-05 10:57:23.950 6306 6306 I HD_HubitatManager: login: IP:HUB.IP.ADDRESS, appId:4, Access Token:************************************, Cloud Token:
05-05 10:57:24.061 6306 6306 E RecyclerView: No adapter attached; skipping layout
05-05 10:57:24.671 6306 6451 E HD_CustomInterceptor: HTTP_ERROR: IOException: 2) 703ms, http://HUB.IP.ADDRESS/apps/api/4/devices, java.security.cert.CertPathValidatorException: Trust anchor for certification path not found.
05-05 10:57:28.836 6306 6306 I HD_DebugHelper: MODEL:Pixel 3a, OS:12, SDK:32
05-05 10:57:28.836 6306 6306 I HD_DebugHelper: IP:HUB.IP.ADDRESS, APP_ID:4, HAS_TOKEN:true
05-05 10:57:28.836 6306 6306 I HD_DebugHelper: DEVICES: 0,

Thank you! I just tried it and no joy
logs below:
If you have time and are willing to explain what you did, I can try to replicate it locally.. that's usually the best way for me to fix things