New Gree Air Conditioner Binding

Hi Mihai,

If you find anything please let me know and I’ll try to fix it ASAP.

Again,

Thanks

So… I started testing with openHAB 2.2, release version, and latest binding:

251 │ Active   │  80 │ 2.2.0.201802011757     │ org.openhab.binding.greeair

Same issues… The binding is not updating the channels (and items).

First, this test instance is running only greeair and http binding, no other items defined except the ones for the AC and no rules whatsoever.

ac.items:

Group AC_Livingroom "AC Livingroom"

Switch AC_Livingroom_Power "Power [%s]" <ac> (AC_Livingroom) {channel="greeair:greeairthing:47597159:powerchannel"}
Number AC_Livingroom_Mode "Mode []" <acmode> (AC_Livingroom) {channel="greeair:greeairthing:47597159:modechannel"}
Switch AC_Livingroom_Turbo "Turbo" <fan> (AC_Livingroom) {channel="greeair:greeairthing:47597159:turbochannel"}
Switch AC_Livingroom_Light "Display" <light> (AC_Livingroom) {channel="greeair:greeairthing:47597159:lightchannel"}
Number AC_Livingroom_Temp "Temperature [%.1f °C]" <temperature> (AC_Livingroom) {channel="greeair:greeairthing:47597159:tempchannel"}
Number AC_Livingroom_TempSet "Set temperature" <temperature> (AC_Livingroom) {channel="greeair:greeairthing:47597159:tempchannel"}
Number AC_Livingroom_SwingVertical "Direction []" <swing> (AC_Livingroom) {channel="greeair:greeairthing:47597159:swingverticalchannel"}
Number AC_Livingroom_FanSpeed "Fan speed []" <fan> (AC_Livingroom) {channel="greeair:greeairthing:47597159:windspeedchannel"}
//Switch AC_Livingroom_Air "Air" <flow>  (AC_Livingroom) {channel="greeair:greeairthing:47597159:airchannel"}
//Switch AC_Livingroom_Dry "Dry" <rain> (AC_Livingroom) {channel="greeair:greeairthing:47597159:drychannel"}
Switch AC_Livingroom_Health "Cold plasma" <coldplasma> (AC_Livingroom) {channel="greeair:greeairthing:47597159:healthchannel"}
Switch AC_Livingroom_PowerSaving "Power Saving" <poweroutlet> (AC_Livingroom) {channel="greeair:greeairthing:47597159:pwrsavchannel"}

And here is the TRACE log. One more thing: the log is from openhab console so any ItemStateChangedEvent should appear.

09:14:36.077 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:14:36.084 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:14:36.091 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:14:36.109 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:36.115 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:14:41.123 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:14:41.129 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:14:41.137 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:14:41.154 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:41.159 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:14:46.167 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:14:46.173 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:14:46.180 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:14:46.197 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:46.203 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:14:46.209 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
09:14:46.214 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
09:14:51.227 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:14:51.231 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:14:51.235 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:14:51.252 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:51.256 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:14:56.262 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:14:56.266 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:14:56.272 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:14:56.290 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:56.295 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:01.300 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:01.304 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:01.309 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:01.327 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:01.331 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:06.336 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:06.339 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:06.344 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:06.361 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:06.365 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:11.370 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:11.376 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:11.381 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:11.402 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:11.407 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:11.412 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
09:15:11.416 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
09:15:16.422 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:16.428 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:16.433 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:16.450 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:16.455 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:21.461 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:21.469 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:21.476 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:21.493 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:21.498 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:26.505 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
09:15:26.509 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
09:15:26.515 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
09:15:26.532 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:26.537 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}

Around 09:14:40 I started the AC with the Android app and the binding correctly detects that it was turned ON. However, even if it says that is updating the channel nothing happens:

09:14:46.197 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:14:46.203 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:14:46.209 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
09:14:46.214 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
09:14:51.227 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values

Same thing around 09:15:11 when the Ac was turned OFF:

09:15:11.402 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
09:15:11.407 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
09:15:11.412 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
09:15:11.416 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
09:15:16.422 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values

Again, I’m not talking about seeing item changing in or other UI, any ItemStateChangedEvent should be displayed in the log.
The thing was created through PaperUI and it’s definition from REST interface:

[
  {
    "statusInfo": {
      "status": "ONLINE",
      "statusDetail": "NONE"
    },
    "editable": true,
    "label": "Gree AirConditioner",
    "configuration": {
      "ipAddress": "192.168.200.63",
      "refresh": 5,
      "broadcastAddress": "255.255.255.255"
    },
    "properties": {},
    "UID": "greeair:greeairthing:47597159",
    "thingTypeUID": "greeair:greeairthing",
    "channels": [
      {
        "linkedItems": [
          "AC_Livingroom_Power"
        ],
        "uid": "greeair:greeairthing:47597159:powerchannel",
        "id": "powerchannel",
        "channelTypeUID": "greeair:power-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Power",
        "description": "Power channel for GreeAir Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_Mode"
        ],
        "uid": "greeair:greeairthing:47597159:modechannel",
        "id": "modechannel",
        "channelTypeUID": "greeair:mode-channel",
        "itemType": "Number",
        "kind": "STATE",
        "label": "Mode",
        "description": "Mode Channel for Gree Air Binding. Mode: Auto: 0, Cool: 1, Dry: 2, Fan: 3, Heat: 4",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_Turbo"
        ],
        "uid": "greeair:greeairthing:47597159:turbochannel",
        "id": "turbochannel",
        "channelTypeUID": "greeair:turbo-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Turbo",
        "description": "Turbo Fan Channel for Gree Air Ninding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_Light"
        ],
        "uid": "greeair:greeairthing:47597159:lightchannel",
        "id": "lightchannel",
        "channelTypeUID": "greeair:light-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Light",
        "description": "Light Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_Temp",
          "AC_Livingroom_TempSet"
        ],
        "uid": "greeair:greeairthing:47597159:tempchannel",
        "id": "tempchannel",
        "channelTypeUID": "greeair:temp-channel",
        "itemType": "Number",
        "kind": "STATE",
        "label": "Temperature",
        "description": "Temperature Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_SwingVertical"
        ],
        "uid": "greeair:greeairthing:47597159:swingverticalchannel",
        "id": "swingverticalchannel",
        "channelTypeUID": "greeair:swingvertical-channel",
        "itemType": "Number",
        "kind": "STATE",
        "label": "Vertical Swing",
        "description": "Vertical Swing Channel for Gree Air Binding. Swing: Full: 1, Up: 2, MidUp: 3, Mid: 4, Mid Down: 5, Down : 6",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_FanSpeed"
        ],
        "uid": "greeair:greeairthing:47597159:windspeedchannel",
        "id": "windspeedchannel",
        "channelTypeUID": "greeair:windspeed-channel",
        "itemType": "Number",
        "kind": "STATE",
        "label": "Fan Speed",
        "description": "Fan Speed Channel for Gree Air binding. Auto:0, Low:1, Midlow:2, Mid:3, MidHigh:4, High:5",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [],
        "uid": "greeair:greeairthing:47597159:airchannel",
        "id": "airchannel",
        "channelTypeUID": "greeair:air-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Air",
        "description": "Air Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [],
        "uid": "greeair:greeairthing:47597159:drychannel",
        "id": "drychannel",
        "channelTypeUID": "greeair:dry-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Dry",
        "description": "Dry Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_Health"
        ],
        "uid": "greeair:greeairthing:47597159:healthchannel",
        "id": "healthchannel",
        "channelTypeUID": "greeair:health-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Health",
        "description": "Health Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      },
      {
        "linkedItems": [
          "AC_Livingroom_PowerSaving"
        ],
        "uid": "greeair:greeairthing:47597159:pwrsavchannel",
        "id": "pwrsavchannel",
        "channelTypeUID": "greeair:pwrsav-channel",
        "itemType": "Switch",
        "kind": "STATE",
        "label": "Power Saving",
        "description": "Pwer Saving Channel for Gree Air Binding",
        "defaultTags": [],
        "properties": {},
        "configuration": {}
      }
    ]
  }
]

A things list in openhab console shows:

openhab> things list
greeair:greeairthing:47597159 (Type=Thing, Status=ONLINE, Label=Gree AirConditioner, Bridge=null)
openhab>

So… what am I doing wrong?
I’m absolutely puzzled…

P.S. Sorry for the length of the post… I tried to cover most questions about things/items/logs.
P.P.S. No more NoRouteToHostException. Not even in SNAPSHOT - maybe was some other thing, that’s the risk with SNAPSHOT :smile:

Made some progress!!!
It looks like I can’t see the binding updating switch-type channel, but I can see updating number-type channels.
I started the AC through the Android app, changed the temperature and turned OFF the unit.
The temperature channel received the new value!!!

10:38:08.044 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:08.052 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:08.060 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:08.092 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:08.100 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:13.109 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:13.118 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:13.127 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:13.146 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:13.155 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:13.164 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
10:38:13.171 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
10:38:18.189 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:18.193 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:18.200 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:18.219 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:18.224 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:23.230 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:23.234 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:23.240 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:23.261 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:23.267 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}

^C~
openhab> items list AC_Livingroom_Power
AC_Livingroom_Power (Type=SwitchItem, State=NULL, Label=Power, Category=ac, Groups=[AC_Livingroom])
openhab> log:tail
10:37:52.912 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:37:52.928 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:37:52.936 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:37:57.946 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:37:57.953 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:37:57.961 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:37:57.978 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:37:57.985 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:02.994 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:03.001 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:03.009 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:03.028 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:03.035 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:08.044 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:08.052 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:08.060 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:08.092 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:08.100 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:13.109 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:13.118 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:13.127 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:13.146 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:13.155 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:13.164 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
10:38:13.171 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
10:38:18.189 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:18.193 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:18.200 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:18.219 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:18.224 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:23.230 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:23.234 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:23.240 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:23.261 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:23.267 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:28.273 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:28.275 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:28.279 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:28.295 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:28.298 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:33.302 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:33.303 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:33.307 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:33.327 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:33.330 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:38.334 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:38.335 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:38.338 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:38.360 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:38.363 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:43.367 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:43.372 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:43.378 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:43.399 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:43.404 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,20,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:48.410 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:48.417 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:48.424 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:48.440 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:48.447 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:48.455 [TRACE] [inding.greeair.handler.GreeAirHandler] - SetTem value has changed!
10:38:48.459 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID tempchannel :
10:38:48.503 [INFO ] [smarthome.event.ItemStateChangedEvent] - AC_Livingroom_Temp changed from 20 to 21
10:38:48.517 [INFO ] [smarthome.event.ItemStateChangedEvent] - AC_Livingroom_TempSet changed from 20 to 21
10:38:53.468 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:53.472 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:53.479 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:53.496 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:53.502 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:38:58.509 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:38:58.514 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:38:58.521 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:38:58.543 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:38:58.550 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:39:03.557 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:39:03.562 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:39:03.570 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:39:03.588 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:39:03.596 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:39:08.606 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:39:08.611 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:39:08.618 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:39:08.667 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:39:08.673 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[1,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:39:13.681 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:39:13.687 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:39:13.695 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:39:13.712 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:39:13.718 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}
10:39:13.725 [TRACE] [inding.greeair.handler.GreeAirHandler] - Pow value has changed!
10:39:13.729 [TRACE] [inding.greeair.handler.GreeAirHandler] - Updating channel state for ChannelID powerchannel :
10:39:18.740 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Greeair executing automatic update of values
10:39:18.745 [DEBUG] [inding.greeair.handler.GreeAirHandler] - Fetching status values from device.
10:39:18.751 [TRACE] [inding.greeair.handler.GreeAirHandler] - Sending Status request packet to device
10:39:18.794 [TRACE] [inding.greeair.handler.GreeAirHandler] - Status request packet received from device
10:39:18.799 [TRACE] [inding.greeair.handler.GreeAirHandler] - Response from device: {"t":"dat","mac":"XXXXXXXXXXXX","r":200,"cols":["Pow","Mod","SetTem","WdSpd","Air","Blo","Health","SwhSlp","Lig","SwingLfRig","SwUpDn","Quiet","Tur","StHt","TemUn","HeatCoolType","TemRec","SvSt","NoiseSet"],"dat":[0,1,21,5,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0]}

^C~
openhab> items list AC_Livingroom_Power
AC_Livingroom_Power (Type=SwitchItem, State=NULL, Label=Power, Category=ac, Groups=[AC_Livingroom])
openhab>

As you can see, the switch didn’t get updated, but the temperature did!!!

So, I started looking through the code… I’m in no way a programmer, but I can “read” :smile:
And I wonder if you are willing to try to change something in GreeAirHandler.java:

               case POWER_CHANNEL:
                    if (thisDevice.HasStatusValChanged("Pow")) {
                        logger.trace("Pow value has changed!");
                        statusChanged = true;
                        stateValue = thisDevice.GetIntStatusVal("Pow");
                        if (stateValue.intValue() != 1) {
                            state = new StringType("OFF");
                        } else {
                            state = new StringType("ON");
                        }
                    }

and instead of state = new StringType("OFF"); to use something like state = OnOffType.OFF; - and, of course, the same for OFF and for all switch-type channels…
I found that example on the SamsungTV binding where they have updateState(POWER, OnOffType.ON); - see https://github.com/openhab/openhab2-addons/blob/042baf285038e323b416f93aa64b1cc5e988bbbb/addons/binding/org.openhab.binding.samsungtv/src/main/java/org/openhab/binding/samsungtv/handler/SamsungTvHandler.java#L273

EDIT: I even made a PULL request on GitHub! My first one! :laughing:

I’ll have another look at the point in the code that updates the channel to see if theres anything strange there…

I will let you know

J.

Im having trouble building the binding… for some reason it’s trying to build against OH2.3 and not running under my 2.2 installation

Can this be used in Samsung Smarthings? I have two of these Airmax (Gree) ACs and a Smarthings controller.

This works with Openhab and from what I read Openhab can work with Smartthings

John

@JCunha

Hi John,

I sent you a private message a few days ago, but I guess you didn’t notice.
Would you mind taking a look there?
Thanks!

Really sorry for the late reply…

Free time is scarce and Im trying to keep up.

Will look at it as soon as I have a free moment.

J.

Hi,

The binding has been build against Openhab2.3 with the switch channel improvements as suggested by Mihai Badea

The release can be found here:

Many thanks for all your help (and especially for you patience)

John

Hi John,

This is awesome! It has taken 1 day to be able to register the A/C in the official app and setup it in my network but after that only 10 minutes to get the binding working(20 with Alexa setup :D). And it works perfectly! If you need me for any testing in the future just let me know!

Thanks, Adam

(Imo it totally worst to be added to the marketplace)

@JCunha
So, I guess it’s time to consider adding the binding to official repository :smile:

… and I have no idea how to do that :slight_smile:

Well, as @kubawolanin said in his post it’s all about a pull request… :laughing: :+1:

@JCunha
Trying to compile against 2.4 I noticed that a file on git was modified by mistake - I guess because of the modifications I made for 2.3 :blush:
It’s about org.openhab.binding.greeair/ESH-INF/thing/thing-types.xml which now is a sample file.
I managed to compile in 2.4 by reverting this file to the previous version, the one which included the parameter for network broadcast.
Sorry about that! :angel:

By the way - it works perfect in 2.4 and, to compile it, you only need to update pom.xml and MANIFEST.MF to reflect version 2.4.
Here’s a link to org.openhab.binding.greeair-2.4.0-SNAPSHOT.jar

1 Like

HI, what type if Gree AC does it work with? I have Gree Gree Match 2 multi split and I can’t see any interface there.

Well, I guess it should work with any Gree unit that has WiFi and it’s controllable with the Gree app from the phone.

I agree with Mihai…

Help me pls!
I am kind new here and trying to add my new Gree Amber. The .jar is at the right place, in paperui I see it and trying to add. There is no place where i can add the ip address of the AC. I have a thing ID, location and sample parameter field, and that is all. Aftert that it says unutilized. I do not understand what is going on.
Sorry and thank you!
Attila

Update:
when I create manually the thing I see this.
018-06-17 14:15:46.375 [hingStatusInfoChangedEvent] - ‘greeair:greeairthing:b2d08bb1’ changed from UNINITIALIZED to INITIALIZING

2018-06-17 14:15:46.387 [hingStatusInfoChangedEvent] - ‘greeair:greeairthing:b2d08bb1’ changed from INITIALIZING to OFFLINE (CONFIGURATION_ERROR): Invalid GreeAircon config. Check configuration.

I think you are using a damaged version of the binding.
Try with v2.4 posted by me a couple of posts back…