# Cloud Webhooks not work on TEST status

**URL:** https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411
**Category:** Apps
**Created:** [May 1, 2026, 10:12am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411 "2026-05-01T10:12:07Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 10:12am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/1 "2026-05-01T10:12:07Z")

</div>

I am developing a Homey app (status : Test)  
that receives real-time sensor data (temperature, humidity, occupancy)  
from an our backend

We have switched from polling to using Homey Cloud Webhooks,  
where our AWS Lambda POSTs data to:

[https://webhooks.athom.com/webhook/{WEBHOOK\_ID}?homey={HOMEY\_ID}](https://webhooks.athom.com/webhook/%7BWEBHOOK_ID%7D?homey=%7BHOMEY_ID%7D)

The Homey app then receives the data and updates device capabilities accordingly.

I have a few questions to confirm we are on the right track:

1. Does Test status affect the functionality of Cloud Webhooks?

2. Should the webhook listener be registered at App level (app.js)  
or Device level (device.js)?

3. Are there any rate limits or payload size limits we should  
be aware of?

Thank you for your time and assistance.

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 10:22am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/2 "2026-05-01T10:22:15Z")

</div>

> [@Tendertec\_Developmen](#):
>
> Does Test status affect the functionality of Cloud Webhooks?

No, cloud webhooks are available for all apps (even apps that aren’t published to the app store).

> [@Tendertec\_Developmen](#):
>
> Should the webhook listener be registered at App level (app.js)  
> or Device level (device.js)?

I would recommend to place it in app.js, as it only has to receive/register once in case of multiple devices.

> [@Tendertec\_Developmen](#):
>
> Are there any rate limits or payload size limits we should  
> be aware of?

As far as I know there are no rate limits, but you can contact Athom to be sure.

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 10:39am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/3 "2026-05-01T10:39:11Z")

</div>

Thanks for support, following code, i was using, it was work on local development environment but not work for **TEST** status, would you pls let me know why ?

app.js

```auto
async onInit() {
    //this.log('MyApp has been initialized');
    const homeyId = await this.homey.cloud.getHomeyId();
    this.log('Homey ID:', homeyId); 

  
    const myWebhook = await this.homey.cloud.createWebhook(
      Homey.env.WEBHOOK_ID,
      Homey.env.WEBHOOK_SECRET,
      {}
    );

    myWebhook.on('message', async ({ body }) => {
      this.log('Webhook received:', body);

      const drivers = this.homey.drivers.getDrivers();
      for (const driver of Object.values(drivers)) {
        for (const device of driver.getDevices()) {
          await device.onWebhookData(body).catch(this.error);
        }
      }
    });

    this.log(`Webhook URL: https://webhooks.athom.com/webhook/${Homey.env.WEBHOOK_ID}?homey=${homeyId}`);
  }

    });

this.log(`Webhook URL: https://webhooks.athom.com/webhook/${Homey.env.WEBHOOK_ID}?homey=${homeyId}`);

  }

};

```

device.js

```auto
  async onWebhookData(data) {
    const { air_temperature, humidity, person_cnt, is_lower_alert, is_higher_alert } = data;

    await this.setCapabilityValue('measure_temperature', air_temperature).catch(this.error);
    await this.setCapabilityValue('measure_humidity', humidity).catch(this.error);
    await this.setCapabilityValue('people_count_capability', person_cnt).catch(this.error);

    // Flow triggers
    if (is_lower_alert) {
      await this.homey.flow.getTriggerCard('room-may-feel-too-cool')
        .trigger().catch(this.error);
    } else if (is_higher_alert) {
      await this.homey.flow.getTriggerCard('room-may-feel-too-warm')
        .trigger().catch(this.error);
    }
  }

```

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:17am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/4 "2026-05-01T11:17:35Z")

</div>

> [@Tendertec\_Developmen](#):
>
> ```auto
> });
> 
> this.log(`Webhook URL: https://webhooks.athom.com/webhook/${Homey.env.WEBHOOK_ID}?homey=${homeyId}`);
> 
> }
> 
> ```

You have this part in the code 2 times, you need to remove this part at the end of the code.

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:18am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/5 "2026-05-01T11:18:52Z")

</div>

> [@Tendertec\_Developmen](#):
>
> `await `

Also, you don’t need to use `await` on getTriggerCard

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 11:19am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/6 "2026-05-01T11:19:17Z")

</div>

Yeah, It is copy and paste error only

```auto
'use strict';

const Homey = require('homey');

module.exports = class MyApp extends Homey.App {

  /**
   * onInit is called when the app is initialized.
   */
  async onInit() {
    //this.log('MyApp has been initialized');
    const homeyId = await this.homey.cloud.getHomeyId();
    this.log('Homey ID:', homeyId);

    const myWebhook = await this.homey.cloud.createWebhook(
      Homey.env.WEBHOOK_ID,
      Homey.env.WEBHOOK_SECRET,
      {}
    );

    myWebhook.on('message', async ({ body }) => {
      this.log('Webhook received:', body);

      const drivers = this.homey.drivers.getDrivers();
      for (const driver of Object.values(drivers)) {
        for (const device of driver.getDevices()) {
          await device.onWebhookData(body).catch(this.error);
        }
      }
    });

    this.log(`Webhook URL: https://webhooks.athom.com/webhook/${Homey.env.WEBHOOK_ID}?homey=${homeyId}`);
  }

};

```

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:20am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/7 "2026-05-01T11:20:03Z")

</div>

Does it work when you remove `await` from `getTriggerCard`?

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:20am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/8 "2026-05-01T11:20:24Z")

</div>

Also, are there any error messages in the logs?

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 11:23am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/9 "2026-05-01T11:23:36Z")

</div>

Thanks for support,.  
I cannot see any _ **log** _ on **TEST** environment, or how can see the cloud log ?

When I using homey app run, and see the local log, it everything is work fine

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:24am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/10 "2026-05-01T11:24:51Z")

</div>

> [@Tendertec\_Developmen](#):
>
> I cannot see any _ **log** _ on **TEST** environment, or how can see the cloud log ?

You can check that by creating a diagnostics report. In the Homey mobile app, go to More-\>Apps-\>[your app]-\>Settings (top right corner)-\>Create diagnostics report. You then receive an email with the log.

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 11:25am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/11 "2026-05-01T11:25:32Z")

</div>

OK. thanks for your information and let me take a look,

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 11:41am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/12 "2026-05-01T11:41:35Z")

</div>

I was base on your step

1. In the Homey mobile app, go to More-\>Apps-\>[your app]-\>Settings (top right corner)-\>Create diagnostics report → and write some like "Not work ? "
2. Received the email
3. and open the log link. and see 1 logs only.

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/6/4/64709a4fb1e55be3103cf97513f247eb43b34ae5.png)

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 11:42am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/13 "2026-05-01T11:42:47Z")

</div>

> [@smarthomesven](#):
>
> Does it work when you remove `await` from `getTriggerCard`?

I also remove the code of `getTriggerCard,` also not work without any log

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 11:51am UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/14 "2026-05-01T11:51:42Z")

</div>

That’s strange, it appears that your app isn’t running at all. Did you receive any notifications in the Timeline about app crashes?

There are no issues with the code itself since it works in development mode.

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 12:19pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/15 "2026-05-01T12:19:24Z")

</div>

> [@Tendertec\_Developmen](#):
>
> [https://webhooks.athom.com/webhook/{WEBHOOK\_ID}?homey={HOMEY\_ID}](https://webhooks.athom.com/webhook/%7BWEBHOOK_ID%7D?homey=%7BHOMEY_ID%7D)

Thanks for support  
finally I checked , i was received data from 👆 endpoint

I have another question is I was post like this

```auto
await fetch('https://webhooks.athom.com/webhook/69f467cd39b65f563ab3071f?homey={HOMEY_ID}', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(
      {
        "air_temperature": 18.5,
        "humidity": 60,
        "person_cnt": 2,
        "is_lower_alert": false,
        "is_higher_alert": false
    }
    ), 
  });

```

And I was received

`{`  
`“humidity”: { “N”: “60” },`  
`“air_temperature”: { “N”: “18.5” },`  
`“is_higher_alert”: { “BOOL”: true },`  
`“person_cnt”: { “N”: “2” },`  
`“is_lower_alert”: { “BOOL”: false }`  
`}`

it is any hint i can receive just normal ?

```auto
{
        "air_temperature": 18.5,
        "humidity": 60,
        "person_cnt": 2,
        "is_lower_alert": false,
        "is_higher_alert": false
    }

```

---

<div class="post-metadata">

### Author: ![smarthomesven](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/smarthomesven/32/79712_2.png) [@smarthomesven](https://community.homey.app/u/smarthomesven)
#### Post date: [May 1, 2026, 12:24pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/16 "2026-05-01T12:24:09Z")

</div>

> [@Tendertec\_Developmen](#):
>
> it is any hint i can receive just normal ?
> 
> ```auto
> 
> ```

I only use webhooks with query parameters (no body) so I don’t know if that is possible.

Also,

> [@Tendertec\_Developmen](#):
>
> `?homey=`

You should remove the Homey CloudID from your reply, since anyone can use it to access your Homey remotely (and push webhooks to it).

---

<div class="post-metadata">

### Author: ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)
#### Post date: [May 1, 2026, 1:03pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/17 "2026-05-01T13:03:49Z")

</div>

> [@Tendertec\_Developmen](#):
>
> And I was received

Doesn’t make sense, the Athom backend should pass the JSON as-is (and it does so for my test app).

Request body (using `POST`):

```auto
{
    "bool": false,
    "num": 123,
    "str": "this is a string"
}

```

And in `on("message")`:

```auto
body: { str: 'this is a string', num: 123, bool: false }

```

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 2:44pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/18 "2026-05-01T14:44:12Z")

</div>

yes. I also find it is not a main issues.

this is my code how to pass value from app.js to device.js

```javascript
const drivers = this.homey.drivers.getDrivers();
        await this.remoteLog('info', 'drivers count', { count: Object.keys(drivers).length });

        for (const driver of Object.values(drivers)) {
          const devices = driver.getDevices();
          await this.remoteLog('info', 'driver devices count', {
            driverId: driver.id,
            deviceCount: devices.length
          });

          ... and pass data to device
        }

```

From the log,  
I can see on my Local environment  
drivers count = 1  
driver devices count = 1

BUT when I doing same thing at TEST environment  
drivers count = 1  
driver devices count = 0

that why cannot showing my data on UI

---

<div class="post-metadata">

### Author: ![robertklep](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/robertklep/32/160628_2.png) [@robertklep](https://community.homey.app/u/robertklep)
#### Post date: [May 1, 2026, 2:52pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/19 "2026-05-01T14:52:07Z")

</div>

> [@Tendertec\_Developmen](#):
>
> BUT when I doing same thing at TEST environment  
> drivers count = 1  
> driver devices count = 0

I’m not sure if devices created by a local version of your app are assigned to a test version of your app (installed from the app store).

---

<div class="post-metadata">

### Author: ![Tendertec\_Developmen](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/tendertec_developmen/32/122028_2.png) [@Tendertec\_Developmen](https://community.homey.app/u/Tendertec_Developmen)
#### Post date: [May 1, 2026, 2:59pm UTC](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411/20 "2026-05-01T14:59:48Z")

</div>

yes, I also tried as following step:

1. Remove device and uninstall the local app

2. Install App from test version, and add the device

It also not work in this case.

[Next page](https://community.homey.app/t/cloud-webhooks-not-work-on-test-status/154411.md?page=2)
