Skip to main content

HTTP API Guide

The most useful public interface

The public kuandoHUB manual documents both a simple HTTP GET API and a richer HTTP POST API. For most app integrations, POST is the better long-term interface.

1. Requirements​

Before any script works:

  1. Install and run kuandoHUB.
  2. Enable the HTTP interface in Advanced Settings.
  3. Ensure the HTTP priority line is enabled if you want the HTTP source to affect the light.
  4. Use the default local listener unless you explicitly changed it.

The manual states:

  • default listener URL is http://localhost:8989/,
  • local requests do not need a token,
  • a token is only required for remote access from other devices,
  • the listener URL can be configured through settings/registry.

2. Fastest option: HTTP GET​

GET is fine for simple automation and quick tests.

Solid color​

http://localhost:8989?action=light&red=100&green=0&blue=0

Alert with sound​

http://localhost:8989?action=alert&red=100&sound=5&volume=25
http://localhost:8989?action=blink&blue=100&ontime=5&offtime=5

Jingle​

http://localhost:8989?action=jingle&red=100&sound=3&volume=100

Pulse​

http://localhost:8989?action=pulse&red=100&blue=100

Color with flash​

http://localhost:8989?action=colorwithflash&green=100&flashblue=100

Off​

http://localhost:8989?action=off

kuandoTimer​

http://localhost:8989?action=kuandoTimer&command=start

Supported timer commands in the manual:

  • start
  • stop
  • pause
  • mcontinue
  • reset

3. Better option: HTTP POST​

POST accepts JSON and supports the richer SDK-style command model, including custom data source registration and priority setup.

The common JSON fields are:

  • action
  • sender
  • eventtype
  • eventname
  • parameter

parameter is itself an embedded JSON string in the documented examples.

4. Minimal POST light command​

{
"action": "Light",
"sender": "SDK",
"eventtype": "Light",
"eventname": "Color",
"parameter": "{\"RedRgbValue\":0,\"GreenRgbValue\":100,\"BlueRgbValue\":0}"
}

5. Useful POST commands​

CommandUse it for
LightSet a solid color
AlertColor plus sound
BlinkSimple on/off blinking
JingleSound notification with color
PulsePulse sequence
ColorWithFlashSolid base color plus flash color
OffTurn off light
RegisterDataSourceCreate a custom logical source in kuandoHUB
CreateInitialPriorityAdd your source to kuandoHUB priorities

6. Why RegisterDataSource matters​

If you want your app to behave like a first-class source inside kuandoHUB priorities, POST is more than just "set light color."

The manual documents:

  • RegisterDataSource to register your custom source name and event families.
  • CreateInitialPriority to insert your source into the priority configuration.

That means you can integrate your own app into kuandoHUB's built-in source arbitration model instead of only sending ad hoc colors.

7. Sound and volume values​

The public manual lists sound IDs:

  • 0: no sound
  • 1: Fairy Tale
  • 2: Funky
  • 3: Kuando Train
  • 4: Open Office
  • 5: Quiet
  • 6: Telephone Nordic
  • 7: Telephone Original
  • 8: Telephone Pick Me Up

Documented volume values:

  • 100
  • 75
  • 50
  • 25
  • 0

8. GET or POST​

Use GET when:

  • you want a quick proof of concept,
  • the command is simple,
  • you are triggering the light from a webhook or URL.

Use POST when:

  • you want structured integration,
  • you want to register a custom data source,
  • you need consistent event naming,
  • you plan to grow beyond a few hardcoded light calls.