Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for RF and IR remote controler #218

Closed
danielnowak501 opened this issue Jan 22, 2023 · 38 comments · Fixed by #191
Closed

Add support for RF and IR remote controler #218

danielnowak501 opened this issue Jan 22, 2023 · 38 comments · Fixed by #191
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@danielnowak501
Copy link

Hello, I use Tuya RF remote control to operate 433mhz window covers.
These virtual cover devices are visible in Tuya IoT as separate devices (as in the smart Life application). They are visible in HomeKit but as devices not supported.
Is possible to ad it to plugin?
Below is a link to the device I use.
https://expo.tuya.com/mobile/product/906048
I can add details from IoT or Homebridge but tell me wat.

I tried with the homebridge-tuya-ir plugin but the RF devices were not visible at all.

@danielnowak501 danielnowak501 added enhancement New feature or request help wanted Extra attention is needed labels Jan 22, 2023
@madtempest
Copy link

Already a PR for this :) #191

@danielnowak501
Copy link
Author

Thank you, but I only see information about IR devices is there a chance for RF exactly window covers?

@0x5e
Copy link
Owner

0x5e commented Jan 25, 2023

Already a PR for this :) #191

Still in progress, I will continue to develop in February. I'm getting covid this early month and we are spending chinese new year now :)

I don't have RF device to test, I think they are the same for the plugin, when it's complete please have a try.

@danielnowak501
Copy link
Author

Thank You, happy new year and lot of health.
I will check when it will be ready and let you know what about RF devices.

@VinneyUK
Copy link

VinneyUK commented Jan 31, 2023

@0x5e
Copy link
Owner

0x5e commented Feb 6, 2023

Thanks @VinneyUK , I already have the IR remote controller and several IR device to test, no need to buy for me :)
I'm a little busy these days, after IR AC device passed test I will submit a version.

@VinneyUK
Copy link

No problem. Can I ask for a small feature request when you build RF support in please? The RF device I control (LED fire) requires the power button (which is now learnt in the Tuya app) is pressed twice is short succession to power on or off, select LED flame types etc. You able to add a repeat trigger to the switches with a predefined delay, please?

@0x5e 0x5e linked a pull request Feb 14, 2023 that will close this issue
@0x5e
Copy link
Owner

0x5e commented Feb 14, 2023

No problem. Can I ask for a small feature request when you build RF support in please? The RF device I control (LED fire) requires the power button (which is now learnt in the Tuya app) is pressed twice is short succession to power on or off, select LED flame types etc. You able to add a repeat trigger to the switches with a predefined delay, please?

I'm not sure if it's a generic feature. maybe you can use tuya/homekit automation to complete this?

@0x5e 0x5e closed this as completed in #191 Feb 14, 2023
@0x5e
Copy link
Owner

0x5e commented Feb 14, 2023

Added in 1.7.0-beta.26, please have a try.

@danielnowak501
Copy link
Author

There is the same problem wich was before update.
The RF blinds are visible in HomeKit but as devices not supported.
image

@VinneyUK
Copy link

VinneyUK commented Feb 14, 2023

@0x5e I'm having the same issue still with RF device hub. Looking at your release notes, I can't see any reference to RF device?

[2/14/2023, 8:13:30 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf15f0ba40b1d7266fnwzr/specifications data = { "code": 2009, "msg": "not support this device", "success": false, "t": 1676405610658, "tid": "0cb75843aca411ed954a4e3668f00a74" } [2/14/2023, 8:13:30 PM] [TuyaPlatform] [TuyaDeviceManager] Get device specification failed. devId = bf15f0ba40b1d7266fnwzr, code = 2009, msg = not support this device

[2/14/2023, 8:13:31 PM] [TuyaPlatform] Restoring existing accessory from cache: Snowman [2/14/2023, 8:13:31 PM] [TuyaPlatform] Restoring existing accessory from cache: ZC-XZ 红外射频遥控器(新方案) [2/14/2023, 8:13:31 PM] [TuyaPlatform] Restoring existing accessory from cache: DIY [2/14/2023, 8:13:31 PM] [TuyaPlatform] Unsupported device: DIY.

[2/14/2023, 8:20:20 PM] [TuyaPlatform] [TuyaDeviceManager] Get device specification failed. devId = bf15f0ba40b1d7266fnwzr, code = 2009, msg = not support this device [2/14/2023, 8:20:20 PM] [TuyaPlatform] [TuyaDeviceManager] Get device specification failed. devId = bff4488d393b2bfd8bxyvf, code = 2009, msg = not support this device

@0x5e
Copy link
Owner

0x5e commented Feb 15, 2023

Might need to clean accessory cache. 2009 error is okay for IR/RF device I think, they have a new API to fetch data.
If clean accessory cache is not working, can you post the device info json and complete logs? need to enable homebridge debug mode.

@felipehjcosta
Copy link

felipehjcosta commented Feb 15, 2023

Hello,

I have tried with this device and it didn't work.

You can check some logs below:

[2/15/2023, 9:40:46 AM] [TuyaPlatform] [TuyaOpenAPI] Response:
path = /v1.0/devices/ebdd420f9e59fec898uipx/specifications
data = {
  "code": 2009,
  "msg": "not support this device",
  "success": false,
  "t": 1676464846521,
  "tid": "f80c4210ad2d11edbdcb164535257f6b"
}
[2/15/2023, 9:40:42 AM] [TuyaPlatform] [TuyaOpenAPI] Response:
path = /v1.0/homes/90469755/devices

{
      "active_time": 1674995771,
      "biz_type": 0,
      "category": "hwktwkq",
      "create_time": 1672064951,
      "icon": "smart/icon/ay1503986080106Gppjy/6aed44783b5f88c2bacf5f1dbeec8089.png",
      "id": "ebdd420f9e59fec898uipx",
      "ip": "",
      "lat": "",
      "local_key": "",
      "lon": "",
      "model": "NAS-RT01W6",
      "name": "Smart AC Controller",
      "online": true,
      "owner_id": "90469755",
      "product_id": "fnc1jft20tlgnxdj",
      "product_name": "Smart AC Controller",
      "status": [],
      "sub": false,
      "time_zone": "-03:00",
      "uid": "",
      "update_time": 1674995771,
      "uuid": "f03fc9873adea342"
    }
    {
      "active_time": 1674995984,
      "biz_type": 0,
      "category": "infrared_ac",
      "create_time": 1672067533,
      "icon": "smart/icon/001453365846342fhj9e/11c62df7bd89c10f43d3e5ee8d13b4f4.png",
      "id": "eb5636d9505928c769bt1u",
      "ip": "",
      "lat": "",
      "lon": "",
      "model": "",
      "name": "Air",
      "online": true,
      "owner_id": "90469755",
      "product_id": "qzktzhehinzsz2je",
      "product_name": "Air Conditioning",
      "status": [],
      "sub": true,
      "time_zone": "-03:00",
      "uid": "",
      "update_time": 1674995984,
      "uuid": "eb5636d9505928c769bt1u"
    }
[2/15/2023, 9:40:45 AM] [TuyaPlatform] [TuyaOpenAPI] Request:
method = get
endpoint = https://openapi.tuyaus.com
path = /v1.0/devices/ebdd420f9e59fec898uipx/specifications
query = undefined
headers = {
  "t": "1676464845686",
  "client_id": "#####",
  "nonce": "05d15b40-1712-475b-94ce-83ea6af51aa3",
  "Signature-Headers": "client_id",
  "sign": "CD439E1B489A63E4F715C6D8F10C4D6665DE5A92C6FBCDC167AB5AFF72D28B68",
  "sign_method": "HMAC-SHA256",
  "access_token": "####",
  "lang": "en",
  "dev_lang": "javascript",
  "dev_channel": "homebridge",
  "devVersion": "1.7.0-beta.27"
}
body = null

@0x5e
Copy link
Owner

0x5e commented Feb 15, 2023

@felipehjcosta hwktwkq is a uncodumented category, please help me test if this device can use IR-related APIs.
Go to https://iot.tuya.com/cloud/explorer, select "IR Control Hub Open Service" (need subscribe first),

  1. if "Get Remote Control List" works. (infrared_id is your IR device id, ebdd420f9e59fec898uipx)
  2. if "Get Keys of Remote Control" works. (remote_id is your IR sub device id, eb5636d9505928c769bt1u)

And If your hub have temperature or humidity sensors, I still need device info json which includes extra data, see readme troubleshooting section.

@felipehjcosta
Copy link

@0x5e Sure. You can check the responses below:

Get Remote Control List for infrared_id : ebdd420f9e59fec898uipx

{
  "result": [
    {
      "area_id": 0,
      "brand_id": 182,
      "brand_name": "Midea",
      "category_id": 5,
      "operator_id": 0,
      "remote_id": "eb5636d9505928c769bt1u",
      "remote_index": 11272,
      "remote_name": "Air"
    }
  ],
  "success": true,
  "t": 1676469595460,
  "tid": "069cc1b7ad3911ed9ab5825eccb72b3a"
}

Get Keys of Remote Control for infrared_id:ebdd420f9e59fec898uipx and remote_id:eb5636d9505928c769bt1u

{
  "result": {
    "brand_id": 182,
    "category_id": 5,
    "duplicate_power": false,
    "key_list": [
      {
        "key": "F",
        "key_id": 0,
        "key_name": "fan speed",
        "standard_key": true
      },
      {
        "key": "M",
        "key_id": 0,
        "key_name": "mode",
        "standard_key": true
      },
      {
        "key": "PowerOff",
        "key_id": 0,
        "key_name": "power off",
        "standard_key": true
      },
      {
        "key": "PowerOn",
        "key_id": 0,
        "key_name": "power on",
        "standard_key": true
      },
      {
        "key": "T",
        "key_id": 0,
        "key_name": "temperature",
        "standard_key": true
      }
    ],
    "key_range": [
      {
        "mode": 0,
        "mode_name": "mode cool",
        "temp_list": [
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 17,
            "temp_name": "temperture 17"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 18,
            "temp_name": "temperture 18"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 19,
            "temp_name": "temperture 19"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 20,
            "temp_name": "temperture 20"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 21,
            "temp_name": "temperture 21"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 22,
            "temp_name": "temperture 22"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 23,
            "temp_name": "temperture 23"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 24,
            "temp_name": "temperture 24"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 25,
            "temp_name": "temperture 25"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 26,
            "temp_name": "temperture 26"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 27,
            "temp_name": "temperture 27"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 28,
            "temp_name": "temperture 28"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 29,
            "temp_name": "temperture 29"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 30,
            "temp_name": "temperture 30"
          }
        ]
      },
      {
        "mode": 1,
        "mode_name": "mode heat",
        "temp_list": [
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 17,
            "temp_name": "temperture 17"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 18,
            "temp_name": "temperture 18"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 19,
            "temp_name": "temperture 19"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 20,
            "temp_name": "temperture 20"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 21,
            "temp_name": "temperture 21"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 22,
            "temp_name": "temperture 22"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 23,
            "temp_name": "temperture 23"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 24,
            "temp_name": "temperture 24"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 25,
            "temp_name": "temperture 25"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 26,
            "temp_name": "temperture 26"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 27,
            "temp_name": "temperture 27"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 28,
            "temp_name": "temperture 28"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 29,
            "temp_name": "temperture 29"
          },
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp": 30,
            "temp_name": "temperture 30"
          }
        ]
      },
      {
        "mode": 2,
        "mode_name": "mode auto",
        "temp_list": [
          {
            "fan_list": [],
            "temp": 17,
            "temp_name": "temperture 17"
          },
          {
            "fan_list": [],
            "temp": 18,
            "temp_name": "temperture 18"
          },
          {
            "fan_list": [],
            "temp": 19,
            "temp_name": "temperture 19"
          },
          {
            "fan_list": [],
            "temp": 20,
            "temp_name": "temperture 20"
          },
          {
            "fan_list": [],
            "temp": 21,
            "temp_name": "temperture 21"
          },
          {
            "fan_list": [],
            "temp": 22,
            "temp_name": "temperture 22"
          },
          {
            "fan_list": [],
            "temp": 23,
            "temp_name": "temperture 23"
          },
          {
            "fan_list": [],
            "temp": 24,
            "temp_name": "temperture 24"
          },
          {
            "fan_list": [],
            "temp": 25,
            "temp_name": "temperture 25"
          },
          {
            "fan_list": [],
            "temp": 26,
            "temp_name": "temperture 26"
          },
          {
            "fan_list": [],
            "temp": 27,
            "temp_name": "temperture 27"
          },
          {
            "fan_list": [],
            "temp": 28,
            "temp_name": "temperture 28"
          },
          {
            "fan_list": [],
            "temp": 29,
            "temp_name": "temperture 29"
          },
          {
            "fan_list": [],
            "temp": 30,
            "temp_name": "temperture 30"
          }
        ]
      },
      {
        "mode": 3,
        "mode_name": "mode fan",
        "temp_list": [
          {
            "fan_list": [
              {
                "fan": 2,
                "fan_name": "speed middle"
              },
              {
                "fan": 0,
                "fan_name": "speed auto"
              },
              {
                "fan": 1,
                "fan_name": "speed low"
              },
              {
                "fan": 3,
                "fan_name": "speed high"
              }
            ],
            "temp_name": "null"
          }
        ]
      },
      {
        "mode": 4,
        "mode_name": "mode dry",
        "temp_list": [
          {
            "fan_list": [],
            "temp": 17,
            "temp_name": "temperture 17"
          },
          {
            "fan_list": [],
            "temp": 18,
            "temp_name": "temperture 18"
          },
          {
            "fan_list": [],
            "temp": 19,
            "temp_name": "temperture 19"
          },
          {
            "fan_list": [],
            "temp": 20,
            "temp_name": "temperture 20"
          },
          {
            "fan_list": [],
            "temp": 21,
            "temp_name": "temperture 21"
          },
          {
            "fan_list": [],
            "temp": 22,
            "temp_name": "temperture 22"
          },
          {
            "fan_list": [],
            "temp": 23,
            "temp_name": "temperture 23"
          },
          {
            "fan_list": [],
            "temp": 24,
            "temp_name": "temperture 24"
          },
          {
            "fan_list": [],
            "temp": 25,
            "temp_name": "temperture 25"
          },
          {
            "fan_list": [],
            "temp": 26,
            "temp_name": "temperture 26"
          },
          {
            "fan_list": [],
            "temp": 27,
            "temp_name": "temperture 27"
          },
          {
            "fan_list": [],
            "temp": 28,
            "temp_name": "temperture 28"
          },
          {
            "fan_list": [],
            "temp": 29,
            "temp_name": "temperture 29"
          },
          {
            "fan_list": [],
            "temp": 30,
            "temp_name": "temperture 30"
          }
        ]
      }
    ],
    "remote_index": 11272,
    "single_air": false
  },
  "success": true,
  "t": 1676469707907,
  "tid": "49918d6ead3911ed9ab5825eccb72b3a"
}

@0x5e
Copy link
Owner

0x5e commented Feb 15, 2023

@felipehjcosta Looks good, I can treat hwktwkq the same as wnykq (Generic IR Control Hub) in next version. please try use this config temporary:

{
  "options": {
    // ...
    "deviceOverrides": [{
      "id": "ebdd420f9e59fec898uipx",
      "category": "wnykq"
    }]
  }
}

update the config, restart homebridge, then clean accessory cache, (maybe need restart again), and let me know if it's working or not.

@felipehjcosta
Copy link

I updated the config, cleaned accessory cache and restarted Homebridge but It didn't work 😢.

image

Besides, the device has temperature or humidity sensors. As you requested, the device info json:

    "active_time": 1674995984,
    "biz_type": 0,
    "category": "infrared_ac",
    "create_time": 1672067533,
    "icon": "smart/icon/001453365846342fhj9e/11c62df7bd89c10f43d3e5ee8d13b4f4.png",
    "id": "eb5636d9505928c769bt1u",
    "ip": "",
    "lat": "",
    "lon": "",
    "model": "",
    "name": "Air",
    "online": true,
    "owner_id": "90469755",
    "product_id": "qzktzhehinzsz2je",
    "product_name": "Air Conditioning",
    "status": [],
    "sub": true,
    "time_zone": "-03:00",
    "uid": "",
    "update_time": 1674995984,
    "uuid": "eb5636d9505928c769bt1u",
    "schema": [
      {
        "code": "F",
        "mode": "wo",
        "type": "ENUM",
        "property": {
          "min": 0,
          "max": 3,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      },
      {
        "code": "M",
        "mode": "wo",
        "type": "ENUM",
        "property": {
          "min": 0,
          "max": 4,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      },
      {
        "code": "T",
        "mode": "wo",
        "type": "ENUM",
        "property": {
          "min": 16,
          "max": 30,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      },
      {
        "code": "mode",
        "mode": "ro",
        "type": "ENUM",
        "property": {
          "min": 0,
          "max": 4,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      },
      {
        "code": "power",
        "mode": "ro",
        "type": "BOOLEAN",
        "property": {}
      },
      {
        "code": "temp",
        "mode": "ro",
        "type": "ENUM",
        "property": {
          "min": 16,
          "max": 30,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      },
      {
        "code": "wind",
        "mode": "ro",
        "type": "ENUM",
        "property": {
          "min": 0,
          "max": 3,
          "scale": 0,
          "step": 1,
          "type": "Integer"
        }
      }
    ]
  }
{
    "active_time": 1674995771,
    "biz_type": 0,
    "category": "hwktwkq",
    "create_time": 1672064951,
    "icon": "smart/icon/ay1503986080106Gppjy/6aed44783b5f88c2bacf5f1dbeec8089.png",
    "id": "ebdd420f9e59fec898uipx",
    "ip": "",
    "lat": "",
    "local_key": "",
    "lon": "",
    "model": "NAS-RT01W6",
    "name": "Smart AC Controller",
    "online": true,
    "owner_id": "90469755",
    "product_id": "fnc1jft20tlgnxdj",
    "product_name": "Smart AC Controller",
    "status": [],
    "sub": false,
    "time_zone": "-03:00",
    "uid": "",
    "update_time": 1674995771,
    "uuid": "f03fc9873adea342",
    "schema": []
  }

@0x5e
Copy link
Owner

0x5e commented Feb 15, 2023

@felipehjcosta

hub issue:
sensor schema doesn't show up in schema array, need to change device control mode and make sure they are named in va_temperature, va_humidity/humidity_value. If not, rename them use plugin config.

sub device issue:
please try 1.7.0-beta.28.

@felipehjcosta
Copy link

felipehjcosta commented Feb 15, 2023

@0x5e

The device showed up!
image
image

Indeed, the temperatura and humidity sensores aren't been displayed. How can I rename them? They are part of the hub.

@0x5e
Copy link
Owner

0x5e commented Feb 15, 2023

Switch to control mode:
https://github.com/0x5e/homebridge-tuya-platform#can-non-standard-dp-be-supportd-by-this-plugin

And if restart homebridge.
If still not working, get your dp codes from device json's schema array, and rename them to va_temperature, va_humidity like this:
https://github.com/0x5e/homebridge-tuya-platform/blob/develop_1.7.0/ADVANCED_OPTIONS.md#change-dp-code

@felipehjcosta
Copy link

On Tuya website, the product type of the device is: IR Air Thermostat and contains the following DP instructions:

infared_switch
temp_current
target_temp
mode
fan_level
fault
filter_reset
filter_life
upper_temp
lower_temp
temp_unit_convert
humidity_current
work_type
status
first_enter
runtime
internet_disc_switch
runtime_total_reset
child_lock
ir_send
ir_study_code

I'm using this config now:

{
  "id": "ebdd420f9e59fec898uipx",
  "schema": [
      {
          "code": "temp_current",
          "newCode": "va_temperature"
      },
      {
          "code": "humidity_current",
          "newCode": "va_humidity"
      }
  ]
}

The value presented on the accessory is the air conditioner target temperature .

@VinneyUK
Copy link

Might need to clean accessory cache. 2009 error is okay for IR/RF device I think, they have a new API to fetch data.
If clean accessory cache is not working, can you post the device info json and complete logs? need to enable homebridge debug mode.

"lat": "51.5170", "local_key": "65dd217ac7d3f585", "lon": "-3.1347", "model": "SP23/SP27/SU122-Tuya", "name": "Avantones", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart socket", "status": [ { "code": "switch_1", "value": false }, { "code": "countdown_1", "value": 0 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111959, "uuid": "6c438c164f0963d1" }, { "active_time": 1670770675, "biz_type": 18, "category": "cl", "create_time": 1614799634, "icon": "smart/icon/ay1574436922695kyvzz/05e5b04f8dd6fdae4b2b6ee404b9ef70.jpg", "id": "0006317224a160234f1c", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "722b33f3c810826b", "lon": "-3.1347", "model": "Aj_WIFI_Alexa_Blind_Motor", "name": "Office Blinds", "online": true, "owner_id": "25308061", "product_id": "djgodnktzcudfrlb", "product_name": "Ajax Online Smart Motor ", "status": [ { "code": "control", "value": "close" }, { "code": "percent_control", "value": 100 }, { "code": "percent_state", "value": 100 }, { "code": "control_back_mode", "value": false }, { "code": "work_state", "value": "closing" }, { "code": "countdown", "value": "cancel" }, { "code": "countdown_left", "value": 0 }, { "code": "fault", "value": 0 }, { "code": "time_total", "value": 2828 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111959, "uuid": "0006317224a160234f1c" }, { "active_time": 1670770360, "biz_type": 18, "category": "cz", "create_time": 1662743361, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf75f7190a2e5e09b7cklt", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "d7abd0ba9af7962e", "lon": "-3.1347", "model": "SP21/SP22", "name": "Powercore", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "switch_1", "value": false }, { "code": "countdown_1", "value": 0 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111958, "uuid": "7aad43b2ff594215" }, { "active_time": 1670771247, "biz_type": 18, "category": "cz", "create_time": 1662743235, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bfa2c720aa78533c99wrjm", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "03e035a5fdb25cf7", "lon": "-3.1347", "model": "SP21/SP22", "name": "Archie Computer", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "switch_1", "value": true }, { "code": "countdown_1", "value": 0 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111956, "uuid": "41524f63093df521" }, { "active_time": 1670769991, "biz_type": 18, "category": "cz", "create_time": 1662743455, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bfbcf5f25d3534289flwai", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "2ac178e1209e28cd", "lon": "-3.1347", "model": "SP21/SP22", "name": "Computer", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "switch_1", "value": true }, { "code": "countdown_1", "value": 0 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111956, "uuid": "591e0227acb42cf5" }, { "active_time": 1670770840, "biz_type": 18, "category": "cz", "create_time": 1662747657, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf20f1a98a07867758yw1s", "ip": "86.6.218.71", "lat": "51.5171", "local_key": "3e7f5c7f787f2354", "lon": "-3.1347", "model": "SP21/SP22", "name": "Xmas Tree", "online": false, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "switch_1", "value": false }, { "code": "countdown_1", "value": 0 } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1670770840, "uuid": "fd6aa293cbf8e053" } ], "success": true, "t": 1676499884600, "tid": "8c4f9c0cad7f11ed838e2a0aa76353ad" } [2/15/2023, 10:24:44 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf358c4cc8f155599a2mfa/specifications query = undefined headers = { "t": "1676499884842", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "ded413ad-2756-415c-96dc-fa4490778fde", "Signature-Headers": "client_id", "sign": "4EFAF16AF75C49ED03C057CCD7FB413310F3530604832BCA16F75AEC8F203B58", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:44 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf358c4cc8f155599a2mfa/specifications data = { "result": { "category": "dd", "functions": [ { "code": "switch_led", "type": "Boolean", "values": "{}" }, { "code": "work_mode", "type": "Enum", "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}" }, { "code": "colour_data", "type": "Json", "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}" }, { "code": "scene_data", "type": "Json", "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}" }, { "code": "countdown", "type": "Integer", "values": "{\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" }, { "code": "music_data", "type": "Json", "values": "{\"change_mode\":{\"range\":[\"direct\",\"gradient\"]}, \"bright\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"temperature\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}" }, { "code": "control_data", "type": "Json", "values": "{\"change_mode\":{\"range\":[\"direct\",\"gradient\"]}, \"bright\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"temperature\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}, \"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":255,\"step\":1}}" } ], "status": [ { "code": "switch_led", "type": "Boolean", "values": "{}" }, { "code": "work_mode", "type": "Enum", "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}" }, { "code": "colour_data", "type": "Json", "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}" }, { "code": "scene_data", "type": "Json", "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}" }, { "code": "countdown", "type": "Integer", "values": "{\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499884755, "tid": "8c75445bad7f11ed954a4e3668f00a74" } [2/15/2023, 10:24:44 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bfcce86365d5642cdave28/specifications query = undefined headers = { "t": "1676499884971", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "0f34152a-dfea-4440-b905-7c4b6abad496", "Signature-Headers": "client_id", "sign": "4BE79E1A6C923F32D87190AB12B22CB610648ACCCF01072D741E4DF4C11DA931", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bfcce86365d5642cdave28/specifications data = { "result": { "category": "dj", "functions": [ { "code": "switch_led", "type": "Boolean", "values": "{}" }, { "code": "work_mode", "type": "Enum", "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}" }, { "code": "bright_value_v2", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "colour_data_v2", "type": "Json", "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}" }, { "code": "scene_data_v2", "type": "Json", "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_led", "type": "Boolean", "values": "{}" }, { "code": "work_mode", "type": "Enum", "values": "{\"range\":[\"white\",\"colour\",\"scene\",\"music\"]}" }, { "code": "bright_value_v2", "type": "Integer", "values": "{\"min\":10,\"max\":1000,\"scale\":0,\"step\":1}" }, { "code": "colour_data_v2", "type": "Json", "values": "{\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}" }, { "code": "scene_data_v2", "type": "Json", "values": "{\"scene_num\":{\"min\":1,\"scale\":0,\"max\":8,\"step\":1},\"scene_units\": {\"unit_change_mode\":{\"range\":[\"static\",\"jump\",\"gradient\"]},\"unit_switch_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"unit_gradient_duration\":{\"min\":0,\"scale\":0,\"max\":100,\"step\":1},\"bright\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"temperature\":{\"min\":0,\"scale\":0,\"max\":1000,\"step\":1},\"h\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":360,\"step\":1},\"s\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1},\"v\":{\"min\":0,\"scale\":0,\"unit\":\"\",\"max\":1000,\"step\":1}}}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499884856, "tid": "8c854490ad7f11edaee5be2f74bef187" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bff1ba220981fbcdd3fj9b/specifications query = undefined headers = { "t": "1676499885072", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "26f8f799-186a-4617-b08c-db7477990408", "Signature-Headers": "client_id", "sign": "D6B66A8733B69202A318491C17F07F735080D400E120E79067D8FD70AAD5A61C", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bff1ba220981fbcdd3fj9b/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499884952, "tid": "8c93c5adad7f11ed954a4e3668f00a74" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf15f0ba40b1d7266fnwzr/specifications query = undefined headers = { "t": "1676499885167", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "900dd0a3-c0c7-4a60-87a0-4aaf6df30576", "Signature-Headers": "client_id", "sign": "C01CA70E143A6D0AFDE8D0EE4A52CC1DCC4F06200FDCEB6001576B094ECEE5E1", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf15f0ba40b1d7266fnwzr/specifications data = { "code": 2009, "msg": "not support this device", "success": false, "t": 1676499885094, "tid": "8ca898a1ad7f11ed954a4e3668f00a74" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaDeviceManager] Get device specification failed. devId = bf15f0ba40b1d7266fnwzr, code = 2009, msg = not support this device [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bff4488d393b2bfd8bxyvf/specifications query = undefined headers = { "t": "1676499885355", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "32528eaf-9c7e-45c6-a8b8-45fe32d5974d", "Signature-Headers": "client_id", "sign": "CCCF8B1738AEDAE49264D8BAF8792EFD56D9B65804BC4ACB1EBF7A311BABA75C", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bff4488d393b2bfd8bxyvf/specifications data = { "code": 2009, "msg": "not support this device", "success": false, "t": 1676499885314, "tid": "8cca6cb6ad7f11ed8a3392fe1232b0cc" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaDeviceManager] Get device specification failed. devId = bff4488d393b2bfd8bxyvf, code = 2009, msg = not support this device [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf09d2faddba84006arcsu/specifications query = undefined headers = { "t": "1676499885528", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "79c28bcb-556b-4e45-a8a5-261e95139f9f", "Signature-Headers": "client_id", "sign": "35D596472D4E0631EC89339CC8CD898C156B3F16366A7BD9B0037517248E2896", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf09d2faddba84006arcsu/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499885442, "tid": "8cde7352ad7f11edaee5be2f74bef187" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf47954a3b8d79aff1fxrc/specifications query = undefined headers = { "t": "1676499885660", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "5325f6c7-b6cd-4a9a-bbd5-2577ba31c716", "Signature-Headers": "client_id", "sign": "861262D38BDD9B5DC9C94B89608C4773125D313E83D1C0788EBFB50FCD5C131A", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf47954a3b8d79aff1fxrc/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499885565, "tid": "8cf0ab05ad7f11ed8a3392fe1232b0cc" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/0006317224a160234f1c/specifications query = undefined headers = { "t": "1676499885779", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "98fbfe44-6d97-4d3b-9658-d6faecde2d35", "Signature-Headers": "client_id", "sign": "0861A9D165658D8B47301B103A89501D1187A265FFCBB8F6DAFEE56DFFA0D49D", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/0006317224a160234f1c/specifications data = { "result": { "category": "cl", "functions": [ { "code": "control", "type": "Enum", "values": "{\"range\":[\"open\",\"stop\",\"close\"]}" }, { "code": "percent_control", "type": "Integer", "values": "{\"unit\":\"%\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1}" }, { "code": "control_back_mode", "type": "Enum", "values": "{\"range\":[\"forward\",\"back\"]}" }, { "code": "countdown", "type": "Enum", "values": "{\"range\":[\"cancel\",\"1\",\"2\",\"3\",\"4\"]}" } ], "status": [ { "code": "control", "type": "Enum", "values": "{\"range\":[\"open\",\"stop\",\"close\"]}" }, { "code": "percent_control", "type": "Integer", "values": "{\"unit\":\"%\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1}" }, { "code": "percent_state", "type": "Integer", "values": "{\"unit\":\"%\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1}" }, { "code": "control_back_mode", "type": "Enum", "values": "{\"range\":[\"forward\",\"back\"]}" }, { "code": "work_state", "type": "Enum", "values": "{\"range\":[\"opening\",\"closing\"]}" }, { "code": "countdown", "type": "Enum", "values": "{\"range\":[\"cancel\",\"1\",\"2\",\"3\",\"4\"]}" }, { "code": "countdown_left", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" }, { "code": "fault", "type": "Bitmap", "values": "{\"label\":[\"motor_fault\"]}" }, { "code": "time_total", "type": "Integer", "values": "{\"unit\":\"ms\",\"min\":0,\"max\":120000,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499885703, "tid": "8d05981ead7f11ed954a4e3668f00a74" } [2/15/2023, 10:24:45 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf75f7190a2e5e09b7cklt/specifications query = undefined headers = { "t": "1676499885918", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "93c7529e-3762-4b1f-bb3d-6b438612cc1d", "Signature-Headers": "client_id", "sign": "5D3EEDC94682EAC1F6036DAC3F51D3437A892637BE77B5660DE3D83D6F0E6127", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf75f7190a2e5e09b7cklt/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499885823, "tid": "8d196746ad7f11ed8a3392fe1232b0cc" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bfa2c720aa78533c99wrjm/specifications query = undefined headers = { "t": "1676499886040", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "c0a01939-ca9c-40cb-ba4b-0f1e7e976b7b", "Signature-Headers": "client_id", "sign": "90850E6588E1D368AB10C7F803E2ED0B355B17F80B2680834E2DEF54E1472409", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bfa2c720aa78533c99wrjm/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499885957, "tid": "8d2cb144ad7f11ed954a4e3668f00a74" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bfbcf5f25d3534289flwai/specifications query = undefined headers = { "t": "1676499886172", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "524aea53-a183-4123-8d1e-27c71969bdfd", "Signature-Headers": "client_id", "sign": "3D95FB01068E0CF2575412616A6BD685430F1FA402D5D217CE08A5CACA14D6F2", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bfbcf5f25d3534289flwai/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499886047, "tid": "8d3b81e5ad7f11edaee5be2f74bef187" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.0/devices/bf20f1a98a07867758yw1s/specifications query = undefined headers = { "t": "1676499886263", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "8b8d973e-91c9-471d-ba86-487187b94fc1", "Signature-Headers": "client_id", "sign": "D6490E8FA89F73CA86C7B9EF1B7C11C128C4E864DD4DBF333D220F6A3FB2C739", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.0/devices/bf20f1a98a07867758yw1s/specifications data = { "result": { "category": "cz", "functions": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ], "status": [ { "code": "switch_1", "type": "Boolean", "values": "{}" }, { "code": "countdown_1", "type": "Integer", "values": "{\"unit\":\"s\",\"min\":0,\"max\":86400,\"scale\":0,\"step\":1}" } ] }, "success": true, "t": 1676499886149, "tid": "8d4a90f2ad7f11edaee5be2f74bef187" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] Fetching scene list. [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v1.1/homes/25308061/scenes query = undefined headers = { "t": "1676499886366", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "f760ae02-bd69-4d93-96e9-a29b022e4c43", "Signature-Headers": "client_id", "sign": "0C70233044EEC80B06A1B4B721FF0F7C4B496AB5567A705E76119164E9FAF585", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v1.1/homes/25308061/scenes data = { "result": [ { "actions": [], "background": "https://images.tuyaeu.com/smart/rule/cover/house6.png", "enabled": true, "name": "Open the curtains", "scene_id": "SufnnPaknkWBR37i", "status": "2" }, { "actions": [], "background": "https://images.tuyaeu.com/smart/rule/cover/bathroom2.png", "enabled": true, "name": "Close the curtains", "scene_id": "awRhEjIUkcQKQMIT", "status": "2" } ], "success": true, "t": 1676499886285, "tid": "8d5cf8a4ad7f11ed8a3392fe1232b0cc" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Request: method = get endpoint = https://openapi.tuyaeu.com path = /v2.0/infrareds/bf15f0ba40b1d7266fnwzr/remotes query = undefined headers = { "t": "1676499886502", "client_id": "rkwsnttnr8f7scu8g5fw", "nonce": "6bdcabee-4b52-4028-8854-6ce1c6606023", "Signature-Headers": "client_id", "sign": "5D5CFB6462330F4258EA8C0C3CAE0792D604648EB7879FAA94B3A214E60E6C24", "sign_method": "HMAC-SHA256", "access_token": "88c42a5594e65d13ae78e32646e9c60b", "lang": "en", "dev_lang": "javascript", "dev_channel": "homebridge", "devVersion": "1.7.0-beta.28" } body = null [2/15/2023, 10:24:46 PM] [TuyaPlatform] [TuyaOpenAPI] Response: path = /v2.0/infrareds/bf15f0ba40b1d7266fnwzr/remotes data = { "result": [], "success": true, "t": 1676499886388, "tid": "8d6ed07bad7f11ed8a3392fe1232b0cc" } [2/15/2023, 10:24:46 PM] [TuyaPlatform] Got 12 device(s) and scene(s). [2/15/2023, 10:24:46 PM] [TuyaPlatform] Device list saved at /var/lib/homebridge/persist/TuyaDeviceList.eu1612386470886LzfOa.json [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Loft TV LEDs [2/15/2023, 10:24:46 PM] [TuyaPlatform] [Loft TV LEDs] Light type: RGB [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Star Projector [2/15/2023, 10:24:46 PM] [TuyaPlatform] [Star Projector ] Light type: RGBC [2/15/2023, 10:24:46 PM] [TuyaPlatform] [Star Projector ] Set props for ColorTemperature: { minValue: 154, maxValue: 154, minStep: 1 } [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Wardrobe [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: RF Hub [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: DIY [2/15/2023, 10:24:46 PM] [TuyaPlatform] Unsupported device: DIY. [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Genelecs [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Avantones [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Office Blinds [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Powercore [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Archie Computer [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Computer [2/15/2023, 10:24:46 PM] [TuyaPlatform] Restoring existing accessory from cache: Xmas Tree

@VinneyUK
Copy link

[ { "active_time": 1675708261, "biz_type": 18, "category": "dd", "create_time": 1675708261, "icon": "smart/icon/ay15554925906369PM9S/69ec9e1f5214291e72fd5e8c430a3920.png", "id": "bf358c4cc8f155599a2mfa", "ip": "95.149.121.167", "lat": "51.5170", "local_key": "5ab429520de1ad91", "lon": "-3.1347", "model": "", "name": "Loft TV LEDs", "online": true, "owner_id": "25308061", "product_id": "ajqxccmgfnhvtew4", "product_name": "", "status": [ { "code": "colour_data", "value": "{\"h\":234,\"s\":1000,\"v\":1000}" }, { "code": "countdown", "value": 0 }, { "code": "scene_data", "value": "{\"scene_num\":1,\"scene_units\":[{\"bright\":0,\"h\":46,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"static\",\"unit_gradient_duration\":13,\"unit_switch_duration\":14,\"v\":716}]}" }, { "code": "switch_led", "value": true }, { "code": "work_mode", "value": "colour" } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1676121827, "uuid": "726d0776432c93d8", "schema": [ { "code": "colour_data", "mode": "rw", "type": "Json", "property": { "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 } } }, { "code": "control_data", "mode": "wo", "type": "Json", "property": { "change_mode": { "range": [ "direct", "gradient" ] }, "bright": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "temperature": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 255, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 255, "step": 1 } } }, { "code": "countdown", "mode": "rw", "type": "Integer", "property": { "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "music_data", "mode": "wo", "type": "Json", "property": { "change_mode": { "range": [ "direct", "gradient" ] }, "bright": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "temperature": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 255, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 255, "step": 1 } } }, { "code": "scene_data", "mode": "rw", "type": "Json", "property": { "scene_num": { "min": 1, "scale": 0, "max": 8, "step": 1 }, "scene_units": { "unit_change_mode": { "range": [ "static", "jump", "gradient" ] }, "unit_switch_duration": { "min": 0, "scale": 0, "max": 100, "step": 1 }, "unit_gradient_duration": { "min": 0, "scale": 0, "max": 100, "step": 1 }, "bright": { "min": 0, "scale": 0, "max": 1000, "step": 1 }, "temperature": { "min": 0, "scale": 0, "max": 1000, "step": 1 }, "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 } } } }, { "code": "switch_led", "mode": "rw", "type": "Boolean", "property": {} }, { "code": "work_mode", "mode": "rw", "type": "Enum", "property": { "range": [ "white", "colour", "scene", "music" ] } } ] }, { "active_time": 1675196690, "biz_type": 18, "category": "dj", "create_time": 1675196690, "icon": "smart/icon/ay149682747096840kwW/56df5e11d53922816403db387309e9fc.png", "id": "bfcce86365d5642cdave28", "ip": "95.149.121.153", "lat": "51.5170", "local_key": "588f9d94f6070c7a", "lon": "-3.1347", "model": "SK20", "name": "Star Projector ", "online": true, "owner_id": "25308061", "product_id": "cw7kinnselbesfp9", "product_name": "Smart-Star-Projector ", "status": [ { "code": "bright_value_v2", "value": 800 }, { "code": "colour_data_v2", "value": "{\"h\":300,\"s\":0,\"v\":800}" }, { "code": "countdown_1", "value": 0 }, { "code": "scene_data_v2", "value": "{\"scene_num\":8,\"scene_units\":[{\"bright\":0,\"h\":0,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000},{\"bright\":0,\"h\":120,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000},{\"bright\":0,\"h\":240,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000},{\"bright\":0,\"h\":61,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000},{\"bright\":0,\"h\":174,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000},{\"bright\":0,\"h\":275,\"s\":1000,\"temperature\":0,\"unit_change_mode\":\"gradient\",\"unit_gradient_duration\":70,\"unit_switch_duration\":70,\"v\":1000}]}" }, { "code": "switch_led", "value": false }, { "code": "work_mode", "value": "white" } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1675708374, "uuid": "f457bd6070e907fa", "schema": [ { "code": "bright_value_v2", "mode": "rw", "type": "Integer", "property": { "min": 10, "max": 1000, "scale": 0, "step": 1 } }, { "code": "colour_data_v2", "mode": "rw", "type": "Json", "property": { "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 } } }, { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "scene_data_v2", "mode": "rw", "type": "Json", "property": { "scene_num": { "min": 1, "scale": 0, "max": 8, "step": 1 }, "scene_units": { "unit_change_mode": { "range": [ "static", "jump", "gradient" ] }, "unit_switch_duration": { "min": 0, "scale": 0, "max": 100, "step": 1 }, "unit_gradient_duration": { "min": 0, "scale": 0, "max": 100, "step": 1 }, "bright": { "min": 0, "scale": 0, "max": 1000, "step": 1 }, "temperature": { "min": 0, "scale": 0, "max": 1000, "step": 1 }, "h": { "min": 0, "scale": 0, "unit": "", "max": 360, "step": 1 }, "s": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 }, "v": { "min": 0, "scale": 0, "unit": "", "max": 1000, "step": 1 } } } }, { "code": "switch_led", "mode": "rw", "type": "Boolean", "property": {} }, { "code": "work_mode", "mode": "rw", "type": "Enum", "property": { "range": [ "white", "colour", "scene", "music" ] } } ] }, { "active_time": 1670771092, "biz_type": 18, "category": "cz", "create_time": 1662743302, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bff1ba220981fbcdd3fj9b", "ip": "86.6.218.71", "lat": "51.5171", "local_key": "4f1a418e904ecb86", "lon": "-3.1347", "model": "SP21/SP22", "name": "Wardrobe", "online": false, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": false } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1675365493, "uuid": "c365fecfd074f2b0", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1675193431, "biz_type": 18, "category": "wnykq", "create_time": 1675193431, "icon": "smart/icon/ay15327721968035jwx9/1654771213cb80bb8f60e.png", "id": "bf15f0ba40b1d7266fnwzr", "ip": "95.149.121.153", "lat": "51.5170", "local_key": "e42096aa967b19e9", "lon": "-3.1347", "model": "UFO-R2-RF-V2", "name": "RF Hub", "online": false, "owner_id": "25308061", "product_id": "j2n1pttd32fequga", "product_name": "ZC-XZ 红外射频遥控器(新方案)", "status": [], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1675193954, "uuid": "60d40f245e405bf3", "schema": [] }, { "active_time": 1675193827, "biz_type": 18, "category": "rf_diy", "create_time": 1675193827, "icon": "smart/ir/icon/a0mh1obgo5xc.png", "id": "bff4488d393b2bfd8bxyvf", "ip": "", "lat": "51.5170", "lon": "-3.1347", "model": "", "name": "DIY", "online": false, "owner_id": "25308061", "product_id": "0000003o5p", "product_name": "Smart IR", "status": [], "sub": true, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1675193827, "uuid": "bff4488d393b2bfd8bxyvf", "schema": [] }, { "active_time": 1670770088, "biz_type": 18, "category": "cz", "create_time": 1612386968, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf09d2faddba84006arcsu", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "f291de41e9c39786", "lon": "-3.1347", "model": "SP23/SP27/SU122-Tuya", "name": "Genelecs", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart socket", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": false } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111959, "uuid": "d753ae0421ca7de6", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1670770191, "biz_type": 18, "category": "cz", "create_time": 1612387749, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf47954a3b8d79aff1fxrc", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "65dd217ac7d3f585", "lon": "-3.1347", "model": "SP23/SP27/SU122-Tuya", "name": "Avantones", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart socket", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": false } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111959, "uuid": "6c438c164f0963d1", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1670770675, "biz_type": 18, "category": "cl", "create_time": 1614799634, "icon": "smart/icon/ay1574436922695kyvzz/05e5b04f8dd6fdae4b2b6ee404b9ef70.jpg", "id": "0006317224a160234f1c", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "722b33f3c810826b", "lon": "-3.1347", "model": "Aj_WIFI_Alexa_Blind_Motor", "name": "Office Blinds", "online": true, "owner_id": "25308061", "product_id": "djgodnktzcudfrlb", "product_name": "Ajax Online Smart Motor ", "status": [ { "code": "control", "value": "close" }, { "code": "control_back_mode", "value": false }, { "code": "countdown", "value": "cancel" }, { "code": "countdown_left", "value": 0 }, { "code": "fault", "value": 0 }, { "code": "percent_control", "value": 100 }, { "code": "percent_state", "value": 100 }, { "code": "time_total", "value": 2828 }, { "code": "work_state", "value": "closing" } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111959, "uuid": "0006317224a160234f1c", "schema": [ { "code": "control", "mode": "rw", "type": "Enum", "property": { "range": [ "open", "stop", "close" ] } }, { "code": "control_back_mode", "mode": "rw", "type": "Enum", "property": { "range": [ "forward", "back" ] } }, { "code": "countdown", "mode": "rw", "type": "Enum", "property": { "range": [ "cancel", "1", "2", "3", "4" ] } }, { "code": "countdown_left", "mode": "ro", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "fault", "mode": "ro", "type": "Bitmap", "property": { "label": [ "motor_fault" ] } }, { "code": "percent_control", "mode": "rw", "type": "Integer", "property": { "unit": "%", "min": 0, "max": 100, "scale": 0, "step": 1 } }, { "code": "percent_state", "mode": "ro", "type": "Integer", "property": { "unit": "%", "min": 0, "max": 100, "scale": 0, "step": 1 } }, { "code": "time_total", "mode": "ro", "type": "Integer", "property": { "unit": "ms", "min": 0, "max": 120000, "scale": 0, "step": 1 } }, { "code": "work_state", "mode": "ro", "type": "Enum", "property": { "range": [ "opening", "closing" ] } } ] }, { "active_time": 1670770360, "biz_type": 18, "category": "cz", "create_time": 1662743361, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf75f7190a2e5e09b7cklt", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "d7abd0ba9af7962e", "lon": "-3.1347", "model": "SP21/SP22", "name": "Powercore", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": false } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111958, "uuid": "7aad43b2ff594215", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1670771247, "biz_type": 18, "category": "cz", "create_time": 1662743235, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bfa2c720aa78533c99wrjm", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "03e035a5fdb25cf7", "lon": "-3.1347", "model": "SP21/SP22", "name": "Archie Computer", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": true } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111956, "uuid": "41524f63093df521", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1670769991, "biz_type": 18, "category": "cz", "create_time": 1662743455, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bfbcf5f25d3534289flwai", "ip": "86.6.218.71", "lat": "51.5170", "local_key": "2ac178e1209e28cd", "lon": "-3.1347", "model": "SP21/SP22", "name": "Computer", "online": true, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": true } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1673111956, "uuid": "591e0227acb42cf5", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }, { "active_time": 1670770840, "biz_type": 18, "category": "cz", "create_time": 1662747657, "icon": "smart/icon/bay1627982802784Fr03/16547699655650c3a7fb7.png", "id": "bf20f1a98a07867758yw1s", "ip": "86.6.218.71", "lat": "51.5171", "local_key": "3e7f5c7f787f2354", "lon": "-3.1347", "model": "SP21/SP22", "name": "Xmas Tree", "online": false, "owner_id": "25308061", "product_id": "5bvnmoqjth5nd4de", "product_name": "Smart Plug", "status": [ { "code": "countdown_1", "value": 0 }, { "code": "switch_1", "value": false } ], "sub": false, "time_zone": "+00:00", "uid": "eu1612386470886LzfOa", "update_time": 1670770840, "uuid": "fd6aa293cbf8e053", "schema": [ { "code": "countdown_1", "mode": "rw", "type": "Integer", "property": { "unit": "s", "min": 0, "max": 86400, "scale": 0, "step": 1 } }, { "code": "switch_1", "mode": "rw", "type": "Boolean", "property": {} } ] }

@0x5e
Copy link
Owner

0x5e commented Feb 16, 2023

@VinneyUK seems IR API doesn't support RF... please try this and post the result: #218 (comment)

@0x5e
Copy link
Owner

0x5e commented Feb 16, 2023

On Tuya website, the product type of the device is: IR Air Thermostat and contains the following DP instructions:

infared_switch
temp_current
target_temp
mode
fan_level
fault
filter_reset
filter_life
upper_temp
lower_temp
temp_unit_convert
humidity_current
work_type
status
first_enter
runtime
internet_disc_switch
runtime_total_reset
child_lock
ir_send
ir_study_code

I'm using this config now:

{
  "id": "ebdd420f9e59fec898uipx",
  "schema": [
      {
          "code": "temp_current",
          "newCode": "va_temperature"
      },
      {
          "code": "humidity_current",
          "newCode": "va_humidity"
      }
  ]
}

The value presented on the accessory is the air conditioner target temperature .

@felipehjcosta the config seems good. the value presented on the accessory, you mean hub device or sub device?
sub device don't have sensor, but homekit requires the current temperature is a must, so I present the target temperature as current temperature.

@0x5e
Copy link
Owner

0x5e commented Feb 16, 2023

@VinneyUK I've submitted a ticket to tuya, unfortunately the answer is: RF device is not supported by cloud api yet, and no future plan to support at present.

You can create tuya tap-to-run automation to support this, it also have ability to delay execute, so your requirement double-click the button can also be supported.

And actually, whatever IR or RF device (except AC category), they are all stateless, using tap-to-run automation can reach the same goal with the same user experience (which is not so good).

@randymassey
Copy link

randymassey commented Feb 16, 2023 via email

@felipehjcosta
Copy link

@0x5e

I think I found the schema on Device Debugging area for Smart AC Controller:

Standard Instruction Set

Code Type Values
infared_switch Boolean "{true,false}"
target_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
mode Enum { "range": [ "cold", "warm", "auto", "air", "dehumidify" ] }
fan_level Enum { "range": [ "auto", "low", "middle", "high" ] }
filter_reset Boolean "{true,false}"
upper_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
lower_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
temp_unit_convert Enum { "range": [ "c", "f" ] }
work_type Enum { "range": [ "scene_1", "scene_2", "scene_3" ] }
status Enum { "range": [ "done", "run", "idle" ] }
first_enter Boolean "{true,false}"
internet_disc_switch Boolean "{true,false}"
runtime_total_reset Boolean "{true,false}"
child_lock Boolean "{true,false}"
ir_send String { "maxlen": 3072 }

Standard Status Set

Code Type Values
infared_switch Boolean "{true,false}"
temp_current Integer { "unit": "℃", "min": -200, "max": 1000, "scale": 1, "step": 1 }
target_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
mode Enum { "range": [ "cold", "warm", "auto", "air", "dehumidify" ] }
fan_level Enum { "range": [ "auto", "low", "middle", "high" ] }
fault Bitmap { "label": [ "serious_fault", "sensor_fault" ], "maxlen": 2 }
filter_reset Boolean "{true,false}"
filter_life Integer { "unit": "h", "min": 0, "max": 720, "scale": 0, "step": 1 }
upper_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
lower_temp Integer { "unit": "℃", "min": 16, "max": 30, "scale": 0, "step": 1 }
temp_unit_convert Enum { "range": [ "c", "f" ] }
humidity_current Integer { "unit": "%", "min": 0, "max": 100, "scale": 0, "step": 1 }
work_type Enum { "range": [ "scene_1", "scene_2", "scene_3" ] }
status Enum { "range": [ "done", "run", "idle" ] }
first_enter Boolean "{true,false}"
runtime Integer { "unit": "h", "min": 0, "max": 999999, "scale": 0, "step": 1 }
internet_disc_switch Boolean "{true,false}"
runtime_total_reset Boolean "{true,false}"
child_lock Boolean "{true,false}"
ir_send String { "maxlen": 3072 }
ir_study_code Raw {}

============================
This is my Config now:

{
  "id": "ebdd420f9e59fec898uipx",
  "schema": [
      {
          "code": "temp_current",
          "newCode": "va_temperature",
          "mode": "rw",
          "type": "Integer",
          "property": {
              "unit": "℃",
              "min": -200,
              "max": 1000,
              "scale": 1,
              "step": 1
          }
      },
      {
          "code": "humidity_current",
          "newCode": "va_humidity",
          "mode": "rw",
          "type": "Integer",
          "property": {
              "unit": "%",
              "min": 0,
              "max": 100,
              "scale": 0,
              "step": 1
          }
      }
  ]
}

And what's is been displayed on Home app:

Air
image

Smart AC Controller - Temperature and Humidity
image
image

I have another kind of Air controller that shows current temperature on the Cooler/Heater (Air tile) instead of a separate tile. Is possible to do event if the controller and the air have distinct configurations?

@0x5e
Copy link
Owner

0x5e commented Feb 16, 2023

@felipehjcosta It's hard to do so at present. one device only relate to one accessory, AC accessory are not able handle multiple device's event. I will think about it.

@felipehjcosta
Copy link

@0x5e

I have noticed two behaviors so far:

  1. The message "[TuyaDeviceManager] Get device specification failed" for ebdd420f9e59fec898uipx disappeared on the log which it's a good thing.
  2. The smart AC Controller has a touch panel. When I touched, the status doesn't change on Homebridge. Only on Tuya app.

@0x5e
Copy link
Owner

0x5e commented Feb 17, 2023

@felipehjcosta thanks for the feedback. the first issue don't worry about it, it's just a warning, some special product also have this warning. the second one, I will update a version later and please help me have a test.

Update: I'm curious why your sub device eb5636d9505928c769bt1u have schema, mine's don't. can you restart the homebridge and capture all api response with eb5636d9505928c769bt1u in url path?

@VinneyUK
Copy link

VinneyUK commented Feb 17, 2023

@VinneyUK I've submitted a ticket to tuya, unfortunately the answer is: RF device is not supported by cloud api yet, and no future plan to support at present.

You can create tuya tap-to-run automation to support this, it also have ability to delay execute, so your requirement double-click the button can also be supported.

And actually, whatever IR or RF device (except AC category), they are all stateless, using tap-to-run automation can reach the same goal with the same user experience (which is not so good).

Thank you. Ive managed to get Tap to Run working, my only gripe is im left with individual switches for each of the flame and coal colours (each have their own unique RF freq learned in the TUYA app)

Screenshot 2023-02-17 at 19 54 55

Anyone got any suggestions around how I can tidy these up? Something like how the Star Projector has been setup with a grouped accessory: https://github.com/SeydX/homebridge-star-projector#info

@VinneyUK
Copy link

VinneyUK commented Feb 17, 2023

bond bridge.

unfortunately I can't get bond bridge in the UK... I had looked at that previously before getting the TUYA variant. ..

@randymassey
Copy link

randymassey commented Feb 17, 2023 via email

@danielnowak501
Copy link
Author

Have any of you checked sonoff RF bridge?
In bwp91 ewelink verified plugin there is support for this device.

@VinneyUK
Copy link

VinneyUK commented Feb 18, 2023

Have any of you checked sonoff RF bridge?
In bwp91 ewelink verified plugin there is support for this device.

Yes, it’s not compatible with my RF codes. :( got 3 sitting here collecting dust

@felipehjcosta
Copy link

felipehjcosta commented Feb 23, 2023

@0x5e

This is all the api responses with eb5636d9505928c769bt1u:

[TuyaPlatform] [TuyaOpenAPI] Request:
method = get
endpoint = https://openapi.tuyaus.com
path = /v1.0/devices/eb5636d9505928c769bt1u/specifications
query = undefined
headers = {
  "t": "1677115777028",
  "client_id": "mqyc3d4pnsrvxnug3uu7",
  "nonce": "b6cb1360-3075-4ae9-9077-66bbf6a20a96",
  "Signature-Headers": "client_id",
  "sign": "8179890E6AE7D5308A9500D695AB8F0F708EDF2249B0E7A5B16C97B352639DFD",
  "sign_method": "HMAC-SHA256",
  "access_token": "249bc6e7a96f179b617d9d1c6f6e00e5",
  "lang": "en",
  "dev_lang": "javascript",
  "dev_channel": "homebridge",
  "devVersion": "1.7.0-beta.28"
}
body = null
[TuyaPlatform] [TuyaOpenAPI] Response:
path = /v1.0/devices/eb5636d9505928c769bt1u/specifications
data = {
  "result": {
    "category": "infrared_ac",
    "functions": [
      {
        "code": "F",
        "type": "ENUM",
        "values": "{\"min\":0,\"max\":3,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      },
      {
        "code": "M",
        "type": "ENUM",
        "values": "{\"min\":0,\"max\":4,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      },
      {
        "code": "PowerOff",
        "type": "STRING",
        "values": "PowerOff"
      },
      {
        "code": "PowerOn",
        "type": "STRING",
        "values": "PowerOn"
      },
      {
        "code": "T",
        "type": "ENUM",
        "values": "{\"min\":16,\"max\":30,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      }
    ],
    "status": [
      {
        "code": "wind",
        "type": "ENUM",
        "values": "{\"min\":0,\"max\":3,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      },
      {
        "code": "mode",
        "type": "ENUM",
        "values": "{\"min\":0,\"max\":4,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      },
      {
        "code": "power",
        "type": "BOOLEAN",
        "values": "{}"
      },
      {
        "code": "temp",
        "type": "ENUM",
        "values": "{\"min\":16,\"max\":30,\"scale\":0,\"step\":1,\"type\":\"Integer\"}"
      }
    ]
  },
  "success": true,
  "t": 1677115777885,
  "tid": "895ee604b31911edb2d1c2a5aeef7bb2"
}
[TuyaPlatform] [TuyaOpenAPI] Response:
path = /v2.0/infrareds/ebdd420f9e59fec898uipx/remotes
data = {
  "result": [
    {
      "area_id": 0,
      "brand_id": 182,
      "brand_name": "Midea",
      "category_id": 5,
      "operator_id": 0,
      "remote_id": "eb5636d9505928c769bt1u",
      "remote_index": 11272,
      "remote_name": "Air"
    }
  ],
  "success": true,
  "t": 1677115787592,
  "tid": "8f23784eb31911ed83008ee81be32eee"
}
[TuyaPlatform] [TuyaOpenAPI] Request:
method = get
endpoint = https://openapi.tuyaus.com
path = /v2.0/infrareds/ebdd420f9e59fec898uipx/remotes/eb5636d9505928c769bt1u/keys
query = undefined
headers = {
  "t": "1677115787402",
  "client_id": "mqyc3d4pnsrvxnug3uu7",
  "nonce": "92cd4b7b-1bdf-4de9-a413-a5aff4fae44e",
  "Signature-Headers": "client_id",
  "sign": "56E9991D07D16826AEA6278D7EE6087F4037695232AA8BB2E27C137660B7D4B4",
  "sign_method": "HMAC-SHA256",
  "access_token": "249bc6e7a96f179b617d9d1c6f6e00e5",
  "lang": "en",
  "dev_lang": "javascript",
  "dev_channel": "homebridge",
  "devVersion": "1.7.0-beta.28"
}
body = null

@0x5e
Copy link
Owner

0x5e commented Feb 24, 2023

Thanks @felipehjcosta . I will implement IR AC status code maybe later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants