# Homey SHS - Trigger WebHooks locally?

**URL:** <https://community.homey.app/t/homey-shs-trigger-webhooks-locally/147816>\
**Category:** Homey Self-Hosted Server\
**Tags:** flow, webhook\
**Created:** [December 25, 2025, 12:37pm UTC](https://community.homey.app/t/homey-shs-trigger-webhooks-locally/147816 "2025-12-25T12:37:52Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Rrrr](https://sea1.discourse-cdn.com/flex025/user_avatar/community.homey.app/rrrr/32/629_2.png) [@Rrrr](https://community.homey.app/u/Rrrr)\
**Post date:** [January 14, 2026, 12:37pm UTC](https://community.homey.app/t/homey-shs-trigger-webhooks-locally/147816/5 "2026-01-14T12:37:38Z")

</div>

Just note that the GET webhook cannot pass #, end of lines and icons like 🔥 in the text.

MQTT would do it, but I do not have the memory to install it 🙂

Solved with a Gemini HomeyScript **encode** URL as per below (there is no need to decode on the receiving side).

```auto
// EncodeURL
// Script Version: 2.0
// Purpose: URL Encode text and return as a LOCAL tag

// 1. Get the argument (safely handle empty input)
let inputString = args[0];
if (inputString == null) {
    inputString = "";
}

// 2. Encode the string (newlines -> %0A, spaces -> %20)
let encodedString = encodeURIComponent(inputString);

// 3. RETURN the string
// This places the value into the local "Result" tag of the flow card.
// We explicitly wrap it in String() to ensure the type is correct.
return String(encodedString);

```

 ![image](https://us1.discourse-cdn.com/flex025/uploads/athom/original/3X/f/f/ffe7c434a9a9d72c921add0bc5d81dacb19fcc87.png)

---

_[View the full topic](https://community.homey.app/t/homey-shs-trigger-webhooks-locally/147816)._
