# Install code - still neet to 'Enable Permit Pairing'?

**URL:** <https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205>\
**Category:** General Support\
**Created:** [March 8, 2025, 9:19pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205 "2025-03-08T21:19:48Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![leo798](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/l/e36b37/32.png) [@leo798](https://forum.phoscon.de/u/leo798)\
**Post date:** [March 8, 2025, 9:19pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/1 "2025-03-08T21:19:48Z")

</div>

Hello all,

I’m using the REST api to pair a custom Zigbee device based on an ESP32C6. The ESP32 is configured as HA light & when I use ‘Enable permit join’ (on the control tab) it joins the network as expected.

I’m trying to integrate install codes & have sent the codes to the Conbee II using the REST API, the output as follows:

```auto
API Key: 795C0E1AF5
Sending: http://192.168.178.24:8080/api/795C0E1AF5/devices
Response: OK
["00:21:2e:ff:ff:09:d2:20","00:12:4b:00:2a:56:46:ea","00:12:4b:00:2a:56:ad:cd","bb:bb:bb:bb:aa:aa:aa:aa"]

Sending: http://192.168.178.24:8080/api/795C0E1AF5/devices/BBBBBBBBAAAAAAAA/installcode, payload = {'installcode': '966B9F3EF98AE6059708'}
[{"success":{"installcode":"966B9F3EF98AE6059708","mmohash":"CA48267EF8A76B6B4091044190B4FAF1"}}]

```

My question is that after sending the install code do I still need to ‘Enable permit join’ or should the ESP32, when it’s in pairing mode, join the network without this? After I use I ‘Enable permit join’ this is the status of the ESP32:

```auto
Sending: http://192.168.178.24:8080/api/795C0E1AF5/devices/BB:BB:BB:BB:AA:AA:AA:AA
Response: OK
{"ddf_policy":"latest_prefer_stable","lastannounced":null,"lastseen":"2025-03-08T21:30Z","manufacturername":"ESPRESSIF","modelid":"esp32c6","name":"On/Off light 4","subdevices":[{"state":{"alert":{"lastupdated":null,"value":null},"on":{"lastupdated":null,"value":null},"reachable":{"lastupdated":"2025-03-08T21:30:33Z","value":true}},"type":"On/Off light","uniqueid":"bb:bb:bb:bb:aa:aa:aa:aa-0a"}],"swversion":null,"uniqueid":"bb:bb:bb:bb:aa:aa:aa:aa"}

```

Thanks,

Owen

---

<div class="post-metadata">

**Author:** ![Smanar](https://forum.phoscon.de/user_avatar/forum.phoscon.de/smanar/32/60_2.png) [@Smanar](https://forum.phoscon.de/u/Smanar)\
**Post date:** [March 9, 2025, 9:08am UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/2 "2025-03-09T09:08:57Z")

</div>

For me the device is already included, you don’t see it on “light” section ?

But ATM there is lot of issue about the “install code inclusion” and I have never used this procedure.

Here you have an user with this kind of device [Bosch Room Thermostat II issues](https://forum.phoscon.de/t/bosch-room-thermostat-ii-issues/6115)

On Z2MQTT, you need to enable the “pairing” on the device then make the request with the install code, and you have nothing more to do, the network switch in permit join alone and wait for the device.

---

<div class="post-metadata">

**Author:** ![leo798](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/l/e36b37/32.png) [@leo798](https://forum.phoscon.de/u/leo798)\
**Post date:** [March 9, 2025, 9:40am UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/3 "2025-03-09T09:40:44Z")

</div>

Thanks for the reply. I can see from the ESP32 serial output that it doesn’t join until the Enable permit join is used.

I wonder is a DDF entry required before the install code works? This is a custom device so no DDF entry, although of course I could create one.

---

<div class="post-metadata">

**Author:** ![Smanar](https://forum.phoscon.de/user_avatar/forum.phoscon.de/smanar/32/60_2.png) [@Smanar](https://forum.phoscon.de/u/Smanar)\
**Post date:** [March 9, 2025, 12:32pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/4 "2025-03-09T12:32:49Z")

</div>

> [@leo798](#):
>
> `"type":"On/Off light"`

This device type can be reconised natively, but you will miss some features (for exemple power consumption) as thoses one are definied in a DDF

---

<div class="post-metadata">

**Author:** ![leo798](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/l/e36b37/32.png) [@leo798](https://forum.phoscon.de/u/leo798)\
**Post date:** [March 10, 2025, 8:23pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/5 "2025-03-10T20:23:31Z")

</div>

Thanks. Still no luck with this

---

<div class="post-metadata">

**Author:** ![Haerteleric](https://forum.phoscon.de/user_avatar/forum.phoscon.de/haerteleric/32/3959_2.png) [@Haerteleric](https://forum.phoscon.de/u/Haerteleric)\
**Post date:** [March 11, 2025, 11:29am UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/6 "2025-03-11T11:29:51Z")

</div>

Install-Codes are still ab bit frickly in deCONZ.

can you use legacy join ?  
you can disable the secure TC stuff by calling

```c
esp_zb_secur_link_key_exchange_required_set(false); 

```

before

```c
esp_zb_start(false)

```

&

```c
esp_zb_bdb_start_top_level_commissioning(ESP_ZB_BDB_NETWORK_STEERING)

```

---

<div class="post-metadata">

**Author:** ![leo798](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/l/e36b37/32.png) [@leo798](https://forum.phoscon.de/u/leo798)\
**Post date:** [March 11, 2025, 11:52am UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/7 "2025-03-11T11:52:04Z")

</div>

Thanks for the suggestion but I was hoping to use the Conbee/deCONZ environment to confirm that I’ve got install codes working correctly with the ESP32!

---

<div class="post-metadata">

**Author:** ![McMaster05](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/m/e5b9ba/32.png) [@McMaster05](https://forum.phoscon.de/u/McMaster05)\
**Post date:** [January 4, 2026, 10:04pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/8 "2026-01-04T22:04:46Z")

</div>

Hi, were you successful with this? Can you explain a little bit more in depth where you use those REST Apis? I just flashed my first ESP32C6 with the Zigbee\_Color\_Dimmable\_Light-Example out of ArduinoIDE from Expressif and was hoping to be able to use the PhosconApp via Webbroser to connect it as a new light, but it seems it does not work straight forward.  
Unfortunately I run my phoscon on a headless linux, so I can’t access the app…  
Or do I have to change my whole setup to Zigbee2MQTT?

---

<div class="post-metadata">

**Author:** ![leo798](https://forum.phoscon.de/letter_avatar_proxy/v4/letter/l/e36b37/32.png) [@leo798](https://forum.phoscon.de/u/leo798)\
**Post date:** [January 15, 2026, 8:27pm UTC](https://forum.phoscon.de/t/install-code-still-neet-to-enable-permit-pairing/6205/9 "2026-01-15T20:27:14Z")

</div>

If you’re asking about using the API to access the deCONZ you can find a starting point [here](https://github.com/OOHehir/deconz_api/blob/main/test_api.py).

If its install codes I found they weren’t properly implemented in deCONZ, but could be mistaken
