brbeaird / SmartThings_MyQ

Integrate SmartThings with MyQ (Obsolete)
https://github.com/brbeaird/SmartThings-MyQ-Edge
Apache License 2.0
410 stars 896 forks source link

Error installing garage doors with sensor #158

Closed TheDanHealy closed 1 year ago

TheDanHealy commented 1 year ago

Version: 3.1.3 HE Version: 2.3.6.136

I've been using MyQ Lite for a short period. When I installed the app, I didn't have contact / tilt sensors for the MyQ garage door openers, so I proceeded to use the no-sensor device. Once I received and added my tilt sensors, I went back to the app to choose the appropriate sensor, and upon proceeding to the next screen after choosing the sensor, I received this message:

Summary
Installation Details:
There was a problem updating devices:
 groovy.lang.MissingPropertyException: No such property: deviceType for class: com.hubitat.app.ChildDeviceWrapper.
Line number: 555
Last successful step: Sensor Indexing

I was unable to have the child devices changed from the no-sensor to sensor device. I had to eventually remove the app and install / setup from scratch, which worked without error.

Here's the logs with debug enabled:

[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.838 PM[debug](http://192.168.1.15/logs#)Error at line number 555: groovy.lang.MissingPropertyException: No such property: deviceType for class: com.hubitat.app.ChildDeviceWrapper
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.797 PM[debug](http://192.168.1.15/logs#)[org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:66), org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setProperty(ScriptBytecodeAdapter.java:499), user_app_brbeaird_MyQ_Lite_365.createChilDevices(user_app_brbeaird_MyQ_Lite_365.groovy:555), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325), org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034), org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68), org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:193), user_app_brbeaird_MyQ_Lite_365$_initialize_closure17.doCall(user_app_brbeaird_MyQ_Lite_365.groovy:389), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325), org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034), groovy.lang.Closure.call(Closure.java:420), groovy.lang.Closure.call(Closure.java:436), org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2125), org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2110), org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2151), org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source), org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274), org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56), org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47), org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116), org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128), user_app_brbeaird_MyQ_Lite_365.initialize(user_app_brbeaird_MyQ_Lite_365.groovy:388), user_app_brbeaird_MyQ_Lite_365.summary(user_app_brbeaird_MyQ_Lite_365.groovy:298), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:815), groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:46), groovy.lang.Script.invokeMethod(Script.java:80), groovy.util.DelegatingScript.invokeMethod(DelegatingScript.java:116), com.hubitat.handler.AppHandler.runAppMethodWithException(AppHandler.groovy:116), com.hubitat.handler.AppHandler.runAppMethodWithException(AppHandler.groovy), com.hubitat.handler.AppHandler$runAppMethodWithException$1.call(Unknown Source), com.hubitat.helper.AppHelper.getDynamicPage(AppHelper.groovy:44), com.hubitat.helper.AppHelper$getDynamicPage$1.callStatic(Unknown Source), com.hubitat.helper.AppHelper.getAppConfigPage(AppHelper.groovy:26), com.hubitat.helper.AppHelper$getAppConfigPage$0.call(Unknown Source), com.hubitat.hub.route.AppRoute.buildConfigPageModel(AppRoute.groovy:1668), com.hubitat.hub.route.AppRoute.buildConfigPageModel(AppRoute.groovy), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite$StaticMetaMethodSiteNoUnwrapNoCoerce.invoke(StaticMetaMethodSite.java:151), org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java:102), org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java:217), com.hubitat.hub.route.AppRoute.updateJsonNext(AppRoute.groovy:1842), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325), org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:352), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034), org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:68), org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177), com.hubitat.hub.route.AppRoute$_configureInstalledAppPages_closure52.doCall(AppRoute.groovy:1064), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method), java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source), java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source), java.base/java.lang.reflect.Method.invoke(Unknown Source), org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98), groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325), org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:264), groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034), groovy.lang.Closure.call(Closure.java:420), org.codehaus.groovy.runtime.ConvertedClosure.invokeCustom(ConvertedClosure.java:54), org.codehaus.groovy.runtime.ConversionHandler.invoke(ConversionHandler.java:124), com.sun.proxy.$Proxy28.handle(Unknown Source), spark.RouteImpl$1.handle(RouteImpl.java:72), spark.http.matching.Routes.execute(Routes.java:61), spark.http.matching.MatcherFilter.doFilter(MatcherFilter.java:134), spark.embeddedserver.jetty.JettyHandler.doHandle(JettyHandler.java:50), org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1598), org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141), org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59), org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127), org.eclipse.jetty.server.Server.handle(Server.java:516), org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487), org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732), org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479), org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277), org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311), org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105), org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104), org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338), org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315), org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173), org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131), org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409), org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883), org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034), java.base/java.lang.Thread.run(Unknown Source)]
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.458 PM[debug](http://192.168.1.15/logs#)Type needs updating to sensor version
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.421 PM[debug](http://192.168.1.15/logs#)Child already exists for Detached Garage Door Left. Sensor name is: Tilt Sensor Detached Garage Door Left on 3543 Salem Bottom Rd - Detached Garage Hub
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.415 PM[debug](http://192.168.1.15/logs#)button devices to delete: []
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.384 PM[debug](http://192.168.1.15/logs#)Child already exists for Attached Garage Door Right (Lee). Sensor name is: Tilt Sensor Attached Garage Right Door
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.366 PM[debug](http://192.168.1.15/logs#)button devices to delete: []
[app:696](http://192.168.1.15/logs#)2023-09-29 07:03:49.323 PM[debug](http://192.168.1.15/logs#)Child already exists for Attached Garage Door Middle. Sensor name is: Tilt Sensor Attached Garage Door Middle
adrian97c commented 1 year ago

Groovy is dead. If you are a computer wizard you might be able how to setup a server & bunch of steps going to use the new Edge MyQlite driver. Sadly it’s just too confusing for me to figure out, so I just gave up. Good luck

TheDanHealy commented 1 year ago

Oh gosh, I’m sorry. I should’ve logged this in the Edge repo. Apologies.