Intergration Kogan 5-Stage Air Purifier 4S

I only bought a Kogan 5-Stage Air Purifier 4S cheap yeaterday and starting my intergration.
I thought I would blog my progress here if anyone that might find it useful. Particularly if you’re a noob like me.

I know that Kogan badge engineer their smarthome system over Tuya so I didn’t bother connecting to the Kogan Smarthome app and just connected directly to Tuya smart. The same instructions for connecting to Kogan Smarthome apply to connection to Tuya Smart as it basically the same software.

I have then linked my 4S to Tuya IoT Platform so Ican get my local keys and do some investigation to assist in the intergrations.

There are other posts and video tutorials about setting up Tuya Iot and Tuya Local for your Ha so I won’t go into that here but if you’re having trouple I happy to try and help.

Now that I have a device ID, Local Key and the IP (local IP, chech router settings)

I have added device manaually to Tuya local

image

You add the device using CONFIGURE. YOu may need to add manually as I have noticed that it can take some time for a device linked in Tuya IoT to show up in this list.

No I need to work out what all the DPS are for and assign them appropiately
This is what it shows so far. Some are obvious but others I am going to have to work out.

I Will add to this post as I work it out

1 Like

Using Tuya IoT: Cloud - API Expoyer

image

This is where you can use “Get Device Info” to get your Local Ket etc.
I have used “Get Device Specification Attribute” get the following which sets out what information is available to me which helps tremendously and lists what each DP is.

This si a standard set and it should be noted that each device may make alteration to this list and I can see a couple of omitions. For example DPS 101 is not on the list

{
  "result": {
    "category": "kj",
    "functions": [
      {
        "code": "switch",
        "dp_id": 1,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "mode",
        "dp_id": 3,
        "type": "Enum",
        "values": "{\"range\":[\"auto\",\"sleep\"]}"
      },
      {
        "code": "anion",
        "dp_id": 6,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "lock",
        "dp_id": 7,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "filter_reset",
        "dp_id": 11,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "countdown_set",
        "dp_id": 18,
        "type": "Enum",
        "values": "{\"range\":[\"cancel\",\"2h\",\"4h\"]}"
      }
    ],
    "status": [
      {
        "code": "switch",
        "dp_id": 1,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "pm25",
        "dp_id": 2,
        "type": "Integer",
        "values": "{\"min\":0,\"max\":999,\"scale\":0,\"step\":1}"
      },
      {
        "code": "mode",
        "dp_id": 3,
        "type": "Enum",
        "values": "{\"range\":[\"auto\",\"sleep\"]}"
      },
      {
        "code": "filter",
        "dp_id": 5,
        "type": "Integer",
        "values": "{\"unit\":\"%\",\"min\":0,\"max\":100,\"scale\":0,\"step\":1}"
      },
      {
        "code": "anion",
        "dp_id": 6,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "lock",
        "dp_id": 7,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "filter_reset",
        "dp_id": 11,
        "type": "Boolean",
        "values": "{}"
      },
      {
        "code": "countdown_set",
        "dp_id": 18,
        "type": "Enum",
        "values": "{\"range\":[\"cancel\",\"2h\",\"4h\"]}"
      },
      {
        "code": "countdown_left",
        "dp_id": 19,
        "type": "Integer",
        "values": "{\"unit\":\"min\",\"min\":0,\"max\":480,\"scale\":0,\"step\":1}"
      },
      {
        "code": "air_quality",
        "dp_id": 21,
        "type": "Enum",
        "values": "{\"range\":[\"great\",\"mild\",\"good\",\"medium\",\"severe\"]}"
      },
      {
        "code": "fault",
        "dp_id": 22,
        "type": "Bitmap",
        "values": "{\"label\":[\"e1\",\"e2\"]}"
      }
    ]
  },

So I know what possible values there are:

image

And from the specs I was able to list the function/stutus names etc. Once you remove the repeats.

I did note that Mode only listed 2 possibles of Auto & sleep but DPS 3 had a value of M.
The units had 4 modes of Auto,High,Middle,Sleep and was currently in Middle mode which corrosponds to M.

DPS 101 reported value “Standard” that wasn’t in the spec but I note that you are able to control the LED light display. This

I compiled the follwing assimption for the DPS from simple deduction.

image

So I will configure the device on that basis. Create a simple card, fiddle on the puriffy and see what value change.

1 Like