New Gree Air Conditioner Binding

2022-07-28 10:39:12.805 [DEBUG] [.internal.discovery.GreeDeviceFinder] - Response received from address 192.168.150.48: {“t”:“dev”,“cid”:“f4911e66d601”,“bc”:“000000000000000000000000000000”,“brand”:“gree”,“catalog”:“gree”,“mac”:“f4911e66d601”,“mid”:“10001”,“model”:“gree”,“name”:“1e66d601”,“series”:“gree”,“vender”:“1”,“ver”:“V1.2.1”,“lock”:0}

Seems is have a different hardware, with version V1.2.1, and it is model GWH09ACC-K6DNA1A/I. Model name is Comfort-X.

I can not change any type. Or I find not the right place.

I see, you probably use UI based config with autodiscovery, i dont have experience with that unfortunately. I am using text based configs, all channels works perfectly on all of my 3 sites.

Just to confirm to those who has the same unit, upgrade to latest firmware works fine, did not brake operation for the gree binding.
My unit: Gree Comfort-X (modells: GWH09ACC-K6DNA1A and GWH12ACC-K6DNA1A)
MID: 10001-v9.6 (from the Gree+ app)
HW versions: v1.2.1 (from OH debug mode)
Newest firmware: v3.72 (on the Gree+ app, region: Europe)
Openhab: V3.2.0 and v3.4.0SNAPSHOT

1 Like

Didn’t get me wiser:

2022-08-01 09:37:03.657 [INFO ] [ng.gree.internal.handler.GreeHandler] - mygreeID001: Thing initialization failed: Decryption of recieved data failed

2022-08-01 09:37:08.658 [DEBUG] [ng.gree.internal.handler.GreeHandler] - mygreeID001: Re-initialize device

2022-08-01 09:37:08.659 [DEBUG] [.internal.discovery.GreeDeviceFinder] - Sending scan packet to 192.168.50.105

2022-08-01 09:37:08.675 [INFO ] [ng.gree.internal.handler.GreeHandler] - mygreeID001: Thing initialization failed: Decryption of recieved data failed

2022-08-01 09:37:13.047 [DEBUG] [openhab.core.io.rest.sse.SseResource] - Run clean SSE subscriptions job

2022-08-01 09:37:13.676 [DEBUG] [ng.gree.internal.handler.GreeHandler] - mygreeID001: Re-initialize device

2022-08-01 09:37:13.677 [DEBUG] [.internal.discovery.GreeDeviceFinder] - Sending scan packet to 192.168.50.105

2022-08-01 09:37:13.693 [INFO ] [ng.gree.internal.handler.GreeHandler] - mygreeID001: Thing initialization failed: Decryption of recieved data failed

You can try to reach your ac with the python cli from this github page. If this works, gree binding should also work. If not, your device may be faulty or maybe you will get more hints what is wrong with your setup.
https://github.com/tomikaa87/gree-remote

Hello!
Has the StHt channel been removed from the 3.x binding? I’m just upgraded from 2.5.12 to 3.3.0 and it isn’t visible in Thing->Channels.

If that is the case, it’s back to 2.5 or HomeAssistant :confused:

Seems that it has been removed / channel doesn’t exist anymore.

If that’s the case, it’s rather annoying

I have seven Gree indoor units, all work fine with this binding. Never used SafetyHeat function, but if i understand correctly, the unit will try to keep minimum 8C degree if enabled. If thats all, you can write your own rule to do the same. You need a virtual switch, and a function which is triggered by the change of the virtual switch and turns the unit into heating mode and set desired temp to 8C. You can save the previous set temp and mode to variables and reset when the swith turns off. Just an idea.

While in normal heat mode, the temperature can’t be set below 16°C. StHt is its own mode.

And if I remember correctly, while in StHt mode the regular mode selection stops working until StHt is set to off.
Also, using OH as a thermostat to maintain some level of temperature (like 8°C) is not an option due to risks related to OH not booting up and pipes freezing - with otherwise functional heating appliance.

Can someone help me with my gree ac
I have model GEH18AA-K6DNA1F/O
GEH18AA-K6DNA1F/I
What I don’t understand I can not see update?? Also modulation it’s 750 newer goes down?

Still no one won’t too saying something about my problem? :see_no_evil:

This is not a Gree+ App support forum mate…

Hello all,

i tried to use this binding to connect to my TOSOT-Aircondition.
With the GREE±App i can control the Aircondition.
Openhab finds the aircondition as thing, but the status of the thing is OFFLINE.
In the logs I found the following:

2024-07-10 17:21:05.433 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - filled 1400 HeapByteBuffer@2834cbd0[p=0,l=1400,c=8192,r=1400]={<<<PUT /rest/things/gree:air...\nPriority: u=1\r\n\r\nfalse>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:05.434 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=START,0 of -1},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} filled 1400 HeapByteBuffer@2834cbd0[p=0,l=1400,c=8192,r=1400]={<<<PUT /rest/things/gree:air...\nPriority: u=1\r\n\r\nfalse>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:05.434 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=START,0 of -1},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=0,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@2834cbd0[p=0,l=1400,c=8192,r=1400]={<<<PUT /rest/things/gree:air...\nPriority: u=1\r\n\r\nfalse>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} null
2024-07-10 17:21:05.435 [DEBUG] [org.eclipse.jetty.http.HttpParser   ] - parseNext s=START HeapByteBuffer@2834cbd0[p=0,l=1400,c=8192,r=1400]={<<<PUT /rest/things/gree:air...\nPriority: u=1\r\n\r\nfalse>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:05.452 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - REQUEST for //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=0}
PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable HTTP/1.1
Referer: http://192.168.0.25:8080/settings/things/gree:airconditioner:c0393705bcf0
2024-07-10 17:21:05.453 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=20/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=CONTENT,0 of 5},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=1} parsed true HttpParser{s=CONTENT,0 of 5}
2024-07-10 17:21:05.454 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - handle //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=2}
2024-07-10 17:21:05.455 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action DISPATCH HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=3}
2024-07-10 17:21:05.456 [DEBUG] [org.eclipse.jetty.server.Server     ] - REQUEST PUT /rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=4}
2024-07-10 17:21:05.457 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@2e1438e6{STARTED,min=1024,inflate=-1} handle Request(PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable)@4b67d010 in null
2024-07-10 17:21:05.458 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@2e1438e6{STARTED,min=1024,inflate=-1} excluded by method Request(PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable)@4b67d010
2024-07-10 17:21:05.459 [DEBUG] [.jetty.server.handler.ContextHandler] - scope null||/rest/things/gree:airconditioner:c0393705bcf0/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@3e532966{/rest,null,AVAILABLE}
2024-07-10 17:21:05.459 [DEBUG] [.jetty.server.handler.ContextHandler] - context=/rest||/things/gree:airconditioner:c0393705bcf0/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@3e532966{/rest,null,AVAILABLE}
2024-07-10 17:21:05.463 [DEBUG] [eclipse.jetty.servlet.ServletHandler] - servlet /rest||/things/gree:airconditioner:c0393705bcf0/enable -> cxf-servlet==javax.servlet.Servlet@e2fb1709{jsp=null,order=-1,inst=true,async=true,src=EMBEDDED:null,STARTED}
2024-07-10 17:21:05.467 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=33/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=CONTENT,0 of 5},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=14} parse HeapByteBuffer@2834cbd0[p=1395,l=1400,c=8192,r=5]={PUT /rest...u=1\r\n\r\n<<<false>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00} null
2024-07-10 17:21:05.470 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContent HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=17} Content@36db1e4a{HeapByteBufferR@72fbb398[p=1395,l=1400,c=8192,r=5]={PUT /rest...u=1\r\n\r\n<<<false>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00}}
2024-07-10 17:21:05.473 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContentComplete HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=21}
2024-07-10 17:21:05.475 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onRequestComplete HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=23}
2024-07-10 17:21:05.478 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=44/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,5 of 5},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=25} parsed false HttpParser{s=END,5 of 5}
2024-07-10 17:21:05.480 [DEBUG] [.eclipse.jetty.server.HttpConnection] - releaseRequestBuffer HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=47/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,5 of 5},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=28}
2024-07-10 17:21:05.501 [INFO ] [ng.gree.internal.handler.GreeHandler] - c0393705bcf0: Initialisierung fehlgeschlagen: Exception on device scan
2024-07-10 17:21:05.524 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@3f883c4d[p=0,l=416,c=8192,r=416]={<<<ration":null}],"statusInfo"...:"gree:airconditioner"}>>>":["South...\x00\x00\x00\x00\x00\x00\x00})
2024-07-10 17:21:05.526 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@68d509e8[p=0,l=5536,c=32768,r=5536]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>\n>\n\tHigh\n..."true"\n}
2024-07-10 17:21:05.527 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@68d509e8[p=0,l=5536,c=32768,r=5536]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>\n>\n\tHigh\n..."true"\n} complete=false committing=true callback=Blocker@20668fcc{null}
2024-07-10 17:21:05.528 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMMIT for /rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=76}
2024-07-10 17:21:05.530 [DEBUG] [org.eclipse.jetty.http.HttpGenerator] - generateHeaders HTTP/1.1{s=200,h=2,cl=-1} last=false content=DirectByteBuffer@68d509e8[p=0,l=5536,c=32768,r=5536]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>\n>\n\tHigh\n..."true"\n}
2024-07-10 17:21:05.533 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 5691 SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=W,to=100/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,5 of 5},g=HttpGenerator@44be13f6{s=COMMITTED}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=81}
2024-07-10 17:21:05.540 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 7 SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=W,to=5/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,5 of 5},g=HttpGenerator@44be13f6{s=COMPLETING}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=1,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=88}
2024-07-10 17:21:05.543 [DEBUG] [org.eclipse.jetty.server.Server     ] - handled=true async=false committed=true on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=1,c=false/true,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=91}
2024-07-10 17:21:05.545 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action COMPLETE HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=COMPLETING os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=false/true,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=93}
2024-07-10 17:21:05.548 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action TERMINATED HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=COMPLETED os=COMPLETED is=READY awp=false se=false i=false al=0},r=1,c=true/true,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=96}
2024-07-10 17:21:05.549 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onCompleted for /rest/things/gree:airconditioner:c0393705bcf0/enable written=5536
2024-07-10 17:21:06.437 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - filled 1399 HeapByteBuffer@33184fc0[p=0,l=1399,c=8192,r=1399]={<<<PUT /rest/things/gree:air...\r\nPriority: u=1\r\n\r\ntrue>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:06.438 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=0/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=START,0 of -1},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=null,age=0} filled 1399 HeapByteBuffer@33184fc0[p=0,l=1399,c=8192,r=1399]={<<<PUT /rest/things/gree:air...\r\nPriority: u=1\r\n\r\ntrue>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:06.439 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=1/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=START,0 of -1},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=1,c=false/false,a=IDLE,uri=null,age=0} parse HeapByteBuffer@33184fc0[p=0,l=1399,c=8192,r=1399]={<<<PUT /rest/things/gree:air...\r\nPriority: u=1\r\n\r\ntrue>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00} null
2024-07-10 17:21:06.439 [DEBUG] [org.eclipse.jetty.http.HttpParser   ] - parseNext s=START HeapByteBuffer@33184fc0[p=0,l=1399,c=8192,r=1399]={<<<PUT /rest/things/gree:air...\r\nPriority: u=1\r\n\r\ntrue>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00}
2024-07-10 17:21:06.481 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - REQUEST for //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=1}
PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable HTTP/1.1
Referer: http://192.168.0.25:8080/settings/things/gree:airconditioner:c0393705bcf0
2024-07-10 17:21:06.482 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=44/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=CONTENT,0 of 4},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=2} parsed true HttpParser{s=CONTENT,0 of 4}
2024-07-10 17:21:06.482 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - handle //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=2}
2024-07-10 17:21:06.484 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action DISPATCH HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=4}
2024-07-10 17:21:06.485 [DEBUG] [org.eclipse.jetty.server.Server     ] - REQUEST PUT /rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=4}
2024-07-10 17:21:06.485 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@2e1438e6{STARTED,min=1024,inflate=-1} handle Request(PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable)@4b67d010 in null
2024-07-10 17:21:06.486 [DEBUG] [etty.server.handler.gzip.GzipHandler] - GzipHandler@2e1438e6{STARTED,min=1024,inflate=-1} excluded by method Request(PUT //192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable)@4b67d010
2024-07-10 17:21:06.487 [DEBUG] [.jetty.server.handler.ContextHandler] - scope null||/rest/things/gree:airconditioner:c0393705bcf0/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@3e532966{/rest,null,AVAILABLE}
2024-07-10 17:21:06.487 [DEBUG] [.jetty.server.handler.ContextHandler] - context=/rest||/things/gree:airconditioner:c0393705bcf0/enable @ o.o.p.w.s.j.i.PaxWebServletContextHandler@3e532966{/rest,null,AVAILABLE}
2024-07-10 17:21:06.490 [DEBUG] [eclipse.jetty.servlet.ServletHandler] - servlet /rest||/things/gree:airconditioner:c0393705bcf0/enable -> cxf-servlet==javax.servlet.Servlet@e2fb1709{jsp=null,order=-1,inst=true,async=true,src=EMBEDDED:null,STARTED}
2024-07-10 17:21:06.495 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=56/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=CONTENT,0 of 4},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=15} parse HeapByteBuffer@33184fc0[p=1395,l=1399,c=8192,r=4]={PUT /rest...u=1\r\n\r\n<<<true>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00} null
2024-07-10 17:21:06.497 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContent HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=17} Content@3ddfa7d3{HeapByteBufferR@39e024b0[p=1395,l=1399,c=8192,r=4]={PUT /rest...u=1\r\n\r\n<<<true>>>\r\n\r\n{"ipA...\x00\x00\x00\x00\x00\x00\x00}}
2024-07-10 17:21:06.505 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onContentComplete HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=25}
2024-07-10 17:21:06.507 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onRequestComplete HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=27}
2024-07-10 17:21:06.509 [DEBUG] [.eclipse.jetty.server.HttpConnection] - HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=71/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,4 of 4},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=29} parsed false HttpParser{s=END,4 of 4}
2024-07-10 17:21:06.512 [DEBUG] [.eclipse.jetty.server.HttpConnection] - releaseRequestBuffer HttpConnection@15ff2ed1::SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=-,to=74/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,4 of 4},g=HttpGenerator@44be13f6{s=START}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=OPEN is=IDLE awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=32}
2024-07-10 17:21:06.561 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array HeapByteBuffer@6d0e991[p=0,l=406,c=8192,r=406]={<<<ration":null}],"statusInfo"...:"gree:airconditioner"}>>>inkedItem...\x00\x00\x00\x00\x00\x00\x00})
2024-07-10 17:21:06.563 [DEBUG] [org.eclipse.jetty.server.HttpOutput ] - write(array) s=OPEN,api=BLOCKING,sc=false,e=null aggregated !flush DirectByteBuffer@52d8d29b[p=0,l=5526,c=32768,r=5526]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>ditioner"...\x1b7n\xDc\xE9,\xF3}
2024-07-10 17:21:06.564 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - sendResponse info=null content=DirectByteBuffer@52d8d29b[p=0,l=5526,c=32768,r=5526]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>ditioner"...\x1b7n\xDc\xE9,\xF3} complete=false committing=true callback=Blocker@20668fcc{null}
2024-07-10 17:21:06.565 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - COMMIT for /rest/things/gree:airconditioner:c0393705bcf0/enable on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=85}
2024-07-10 17:21:06.567 [DEBUG] [org.eclipse.jetty.http.HttpGenerator] - generateHeaders HTTP/1.1{s=200,h=2,cl=-1} last=false content=DirectByteBuffer@52d8d29b[p=0,l=5526,c=32768,r=5526]={<<<{"channels":[{"linkedItem...:"gree:airconditioner"}>>>ditioner"...\x1b7n\xDc\xE9,\xF3}
2024-07-10 17:21:06.571 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 5681 SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=W,to=133/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,4 of 4},g=HttpGenerator@44be13f6{s=COMMITTED}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=91}
2024-07-10 17:21:06.580 [DEBUG] [org.eclipse.jetty.io.ChannelEndPoint] - flushed 7 SocketChannelEndPoint@61936eef{l=/192.168.0.25:8080,r=/192.168.0.108:62111,OPEN,fill=-,flush=W,to=7/30000}{io=0/0,kio=0,kro=1}->HttpConnection@15ff2ed1[p=HttpParser{s=END,4 of 4},g=HttpGenerator@44be13f6{s=COMPLETING}]=>HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMMITTED is=READY awp=false se=false i=true al=0},r=2,c=false/false,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=100}
2024-07-10 17:21:06.584 [DEBUG] [org.eclipse.jetty.server.Server     ] - handled=true async=false committed=true on HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=BLOCKING os=COMPLETED is=READY awp=false se=false i=true al=0},r=2,c=false/true,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=104}
2024-07-10 17:21:06.586 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action COMPLETE HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=HANDLING rs=COMPLETING os=COMPLETED is=READY awp=false se=false i=false al=0},r=2,c=false/true,a=HANDLING,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=106}
2024-07-10 17:21:06.589 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - action TERMINATED HttpChannelOverHttp@2491ecb9{s=HttpChannelState@17655249{s=IDLE rs=COMPLETED os=COMPLETED is=READY awp=false se=false i=false al=0},r=2,c=true/true,a=IDLE,uri=//192.168.0.25:8080/rest/things/gree:airconditioner:c0393705bcf0/enable,age=109}
2024-07-10 17:21:06.589 [DEBUG] [org.eclipse.jetty.server.HttpChannel] - onCompleted for /rest/things/gree:airconditioner:c0393705bcf0/enable written=5526
2024-07-10 17:21:11.530 [INFO ] [ng.gree.internal.handler.GreeHandler] - c0393705bcf0: Status-Update fehlgeschlagen: Device not bound
2024-07-10 17:21:16.530 [INFO ] [ng.gree.internal.handler.GreeHandler] - c0393705bcf0: Status-Update fehlgeschlagen: Device not bound
2024-07-10 17:21:20.552 [INFO ] [ng.gree.internal.handler.GreeHandler] - c0393705bcf0: Initialisierung fehlgeschlagen: Unable to bind to device

But I can’t see a clear error in this logs.
Maybe can somebody help here.

Regards
Practical

Hello,

I have a newer Gree AC which I wasn’t able to connect to the OH due to changes in the encryption of the communication. I’ve made some changes to the Gree AC add on and I would like somebody to test that the binding still works with older AC. You can download .jar file from here

Thank you for your help!

Hi,

I won’t be able to assist with testing for older AC’s… However I also have a problem connecting a newed Gree AC. The device is discovered, but never able to connect. I changed the log level to TRACE for the gree binding and get the following logs:

[DEBUG] [ng.gree.internal.handler.GreeHandler] - 9424b8f55784: Re-initialize device
[DEBUG] [.internal.discovery.GreeDeviceFinder] - Sending scan packet to 192.168.10.120
[.internal.discovery.GreeDeviceFinder] - Response received from address 192.168.10.120: {"t":"dev","cid":"9424b8f55784","bc":"gree","brand":"gree","catalog":"gree","mac":"9424b8f55784","mid":"60","model":"gree","name":"b8f55784","series":"gree","vender":"1","ver":"V1.1.0.0","lock":0,"hid":"362001067012+U-W06AV20.bin","subCnt":3}
[DEBUG] [.internal.discovery.GreeDeviceFinder] - Discovered device at 192.168.10.120:7000

[INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'gree:airconditioner:9424b8f55784' changed from OFFLINE (COMMUNICATION_ERROR): Unable to perform auto-update: I/O exception while updating status (java.lang.NumberFormatException: empty String) to ONLINE

[DEBUG] [.gree.internal.handler.GreeAirDevice] - Response from device: {"t":"dat","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","TemUn","StHt","HeatCoolType","TemRec","SvSt","NoiseSet","TemSen"],"dat":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"",""],"mac":"9424b8f55784"}

[INFO ] [ng.gree.internal.handler.GreeHandler] - 9424b8f55784: Unable to perform auto-update: I/O exception while updating status (java.lang.NumberFormatException: empty String)

[INFO ] [ab.event.ThingStatusInfoChangedEvent] - Thing 'gree:airconditioner:9424b8f55784' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Unable to perform auto-update: I/O exception while updating status (java.lang.NumberFormatException: empty String)

The device is clearly discovered, but the data that is returned is just an empty string of 0’s. THe device then goes from ONLINE to OFFLINE.

I tried using your version of this binding, but that makes no difference for me.
What were the errors that you encountered? Any ideas how my connection issue could be resolved?

Any help is much appreciated!

I tried this python script:

The device is clearly recognized:

python3 gree.py -b 192.168.10.255 search
Searching for devices using broadcast address: 192.168.10.255
Search finished, found 1 device(s)
Binding device: 192.168.10.120 (b8f55784, ID: 9424b8f55784)
Bind to 9424b8f55784 succeeded, key = 5Wx8Za1Cd4Fg7Ij0

However all values are returned as 0, also in this python script.
For example:

 python3 gree.py -c 192.168.10.120 -i 9424b8f55784 -k 5Wx8Za1Cd4Fg7Ij0 get SetTem
Getting parameters: SetTem
SetTem = 0

The issue is probably related to this unit being a VRF unit. It is basically a system with 1 compressor and 3 internal units. You can also see this in the openhab response, where there is an extra field:

"subCnt":3

I found this related GitHub topic: Gree VRF Support · Issue #72 · arthurkrupa/gree-hvac-mqtt-bridge · GitHub, but the issue is still open.

Seems i need to get the MAC adresses from the different subunits and then the get/set commands should be directed to the different sub units

Hello!
Have a new Gree Ac with wifi version 1.23. I tried your binding, but not working, get this error: 9424b8ff6a03: Thing initialization failed: Unable to bind to device

@sceppi I don’t see tag property in your AC responses, so this means that your AC doesn’t use the new way of encrypting data, and if you use the previous version of the binding (before my changes) you experience the same issue, right?
But I thing I can try to help you so you can communicate with your AC and sub units.
Can you run the python script with --verbose for search and get, so I can see with what your device is responding?
And may be send me message, so we don’t float the forum with debugging.

@CsL007 - can you enable TRACE mode for the gree binding and send me the log. Also do you have this problem with the previous version of the binding for the gree devices?

Hi @zhivka.dimova,

I’ll send you a DM with additional info. You are correct that my AC uses the old way of encrypting data. In fact I’ve meanwhile been able to get and send data from/to the air conditioning system using a python script. The only different with the current binding configuration is that the data needs to be slightly differently structured. As there are 3 sub units, each sub unit has an own identifier/MAC adress which needs to be included in the ‘pack’ data.

It should be perfectly feasible to adapt this GREE binding to also accomodate for these VRF units with multiple sub units.

I’ll send you a direct message with additional information. If you would be able to adapt this binding, that would be great.