which UI are you using?
Check what PaperUI displays
It looks like the issue has solved itself
I will keep testing.
Thanks @markus7017
Autodiscovery works. Windspeed is recognized as a string automated:
It requests value in Paper UI, do not bring up a list. So it can be preconfigured in sitemap.
ok, found the problem. I mixed item-type for windspeed and quiet, this should be fixed
However, I implemented the last open change from the review, which might break the device control
Please try the new build (keep the working jar)
Basic UI, Paper UI and Android APK. It’s the same on everyone.
try the build, I also reworked the option lists
I did another test:
- delete
things
anditems
files - delete jar file from addons folder
- restart
openhab
- copy latest jar file (
Active | 80 | 2.5.6.202006082242 | org.openhab.binding.gree
) to addon folder - autodiscovery AC thing
- create
items
file and enable items one by one
Seems everything works fine in Paper UI and Iphone app
ok, I added the values referencing the language properties
did you also complete a functional test
the PR review brought up more changes, all nothing special, but also a chance to break something
thanks for supporting testing
yes,
I tested almost all options on Paper UI and compared with switches/buttons in Gree app. Afer that I did opposite thing - changes in Gree app and checking in PaperUI. Everything woks fine so far.
I didn’t test Quite mod
e and Horizontal swing mode
as both are not available in my AC.
@orzechszek Please verify channels quiet and swingleftright with the latest build
could you please test again, another round of review changes
Active | 80 | 2.5.6.202006092031 | org.openhab.binding.gree
Something went wrong
Auto discovery doesn’t work:
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 381 path $
at com.google.gson.Gson.assertFullConsumption(Gson.java:864) ~[?:?]
Same error with manual things
and items
files creation:
2020-06-10 09:01:37.339 [INFO ] [el.core.internal.ModelRepositoryImpl] - Refreshing model 'gree.things'
2020-06-10 09:01:37.395 [DEBUG] [ng.gree.internal.handler.GreeHandler] - Thing gree:airconditioner:f4911ec4bc25 is disposing
2020-06-10 09:01:37.398 [DEBUG] [ng.gree.internal.handler.GreeHandler] - Config for gree:airconditioner:f4911ec4bc25 is Config: ipAddress=192.168.1.120, broadcastAddress=192.168.1.255, refresh=10
2020-06-10 09:01:37.402 [hingStatusInfoChangedEvent] - 'gree:airconditioner:f4911ec4bc25' changed from OFFLINE to UNKNOWN
2020-06-10 09:01:37.407 [me.event.ThingUpdatedEvent] - Thing 'gree:airconditioner:f4911ec4bc25' has been updated.
2020-06-10 09:01:37.417 [WARN ] [ng.gree.internal.handler.GreeHandler] - Initialization failed
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 381 path $
at com.google.gson.Gson.assertFullConsumption(Gson.java:864) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:854) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:802) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:774) ~[?:?]
at org.openhab.binding.gree.internal.discovery.GreeDeviceFinder.scan(GreeDeviceFinder.java:93) ~[?:?]
at org.openhab.binding.gree.internal.discovery.GreeDiscoveryService.startScan(GreeDiscoveryService.java:100) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_252]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_252]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_252]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_252]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 381 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568) ~[?:?]
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409) ~[?:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:542) ~[?:?]
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425) ~[?:?]
at com.google.gson.Gson.assertFullConsumption(Gson.java:860) ~[?:?]
... 12 more
that’s excactly one change the review brought in and obviously it doesn’t work.
I will send you a PM
Hi, I tested you binding too. I set refresh time to 2 sec and binding log next error:
2020-06-10 20:17:34.291 [WARN ] [ng.gree.internal.handler.GreeHandler] - Unable to perform auto-update
java.lang.NullPointerException: null
at org.openhab.binding.gree.internal.gson.GreeStatusResponsePackDTO.<init>(GreeStatusResponsePackDTO.java:26) ~[?:?]
at org.openhab.binding.gree.internal.handler.GreeAirDevice.getDeviceStatus(GreeAirDevice.java:669) ~[?:?]
at org.openhab.binding.gree.internal.handler.GreeHandler.lambda$1(GreeHandler.java:344) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
I’m pretty sure you are not using the latest build “10 Jun 16:46”, the line numbers are not matching the current code.
Why did you set a refresh time of 2sec? This creates unnecessary overhead for your OH system
works with Cooper&Hunter ?
Yes, I use prelast build, because last not working. My OH is not heavily loaded system, I want quick response in OH Android app after use remote controller.
Hi, I have next error in the last build
2020-06-11 12:21:28.306 [WARN ] [ernal.discovery.GreeDiscoveryService] - Discovery failed
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 369 path $
at com.google.gson.Gson.assertFullConsumption(Gson.java:864) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:854) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:802) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:774) ~[?:?]
at org.openhab.binding.gree.internal.discovery.GreeDeviceFinder.scan(GreeDeviceFinder.java:93) ~[?:?]
at org.openhab.binding.gree.internal.discovery.GreeDiscoveryService.startScan(GreeDiscoveryService.java:100) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 369 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568) ~[?:?]
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409) ~[?:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:542) ~[?:?]
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425) ~[?:?]
at com.google.gson.Gson.assertFullConsumption(Gson.java:860) ~[?:?]
... 12 more
2020-06-11 12:30:34.944 [WARN ] [ernal.discovery.GreeDiscoveryService] - Discovery failed
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 349 path $
at com.google.gson.Gson.assertFullConsumption(Gson.java:864) ~[bundleFile:?]
at com.google.gson.Gson.fromJson(Gson.java:854) ~[bundleFile:?]
at com.google.gson.Gson.fromJson(Gson.java:802) ~[bundleFile:?]
at com.google.gson.Gson.fromJson(Gson.java:774) ~[bundleFile:?]
at org.openhab.binding.gree.internal.discovery.GreeDeviceFinder.scan(GreeDeviceFinder.java:93) ~[bundleFile:?]
at org.openhab.binding.gree.internal.discovery.GreeDiscoveryService.startScan(GreeDiscoveryService.java:100) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.AbstractDiscoveryService.startScan(AbstractDiscoveryService.java:209) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:382) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScans(DiscoveryServiceRegistryImpl.java:367) [bundleFile:?]
at org.eclipse.smarthome.config.discovery.internal.DiscoveryServiceRegistryImpl.startScan(DiscoveryServiceRegistryImpl.java:216) [bundleFile:?]
at org.eclipse.smarthome.io.rest.core.internal.discovery.DiscoveryResource.scan(DiscoveryResource.java:97) [bundleFile:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_242]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_242]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_242]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_242]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) [bundleFile:?]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) [bundleFile:?]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) [bundleFile:?]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [bundleFile:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [bundleFile:?]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [bundleFile:?]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [bundleFile:?]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [bundleFile:?]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [bundleFile:?]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [bundleFile:?]
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [bundleFile:?]
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [bundleFile:?]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [bundleFile:?]
at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [bundleFile:?]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [bundleFile:?]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 349 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568) ~[bundleFile:?]
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409) ~[bundleFile:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:542) ~[bundleFile:?]
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425) ~[bundleFile:?]
at com.google.gson.Gson.assertFullConsumption(Gson.java:860) ~[bundleFile:?]
... 70 more
2020-06-11 12:31:34.260 [WARN ] [ng.gree.internal.handler.GreeHandler] - Initialization failed
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 349 path $
at com.google.gson.Gson.assertFullConsumption(Gson.java:864) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:854) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:802) ~[?:?]
at com.google.gson.Gson.fromJson(Gson.java:774) ~[?:?]
at org.openhab.binding.gree.internal.discovery.GreeDeviceFinder.scan(GreeDeviceFinder.java:93) ~[?:?]
at org.openhab.binding.gree.internal.handler.GreeHandler.initializeThing(GreeHandler.java:99) ~[?:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_242]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_242]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_242]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_242]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed JSON at line 1 column 349 path $
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568) ~[?:?]
at com.google.gson.stream.JsonReader.checkLenient(JsonReader.java:1409) ~[?:?]
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:542) ~[?:?]
at com.google.gson.stream.JsonReader.peek(JsonReader.java:425) ~[?:?]
at com.google.gson.Gson.assertFullConsumption(Gson.java:860) ~[?:?]
... 12 more
please test the updated build, I did a re-build of the code, because this one should already be fixed
fyi: I think this is the last stable build if you are looking for something that just runs and not interested in testing (which is required to get through the review process): https://github.com/markus7017/myfiles/blob/e4bd63c85a8b14c378d3f7da5b1e427500636d97/gree/org.openhab.binding.gree-2.5.6-SNAPSHOT.jar?raw=true