Ground truth for Shelly Duo GU10 RGBW smart bulb (Gen1): LAN HTTP REST contract, mDNS discovery (with the non-loopback-IPv4-bind gotcha), color/temp endpoints, off semantics, latency expectations. Language-agnostic facts; Kotlin/Ktor reference example.
88
86%
Does it follow best practices?
Impact
100%
1.28xAverage score across 3 eval scenarios
Passed
No known issues
Kotlin Ktor LAN HTTP client implementation
Ktor CIO engine
100%
100%
Plain HTTP
100%
100%
Color endpoint path
100%
100%
Color query parameters
100%
100%
White endpoint path
0%
100%
White query parameters
100%
100%
Off via turn=off
100%
100%
Status endpoint
100%
100%
Reachability timeout
100%
100%
Shutdown hook
100%
100%
HTTP GET method
100%
100%
mDNS discovery with JmDNS bind gotcha
JmDNS library used
100%
100%
Explicit InetAddress bind
53%
100%
Interface up/physical filter
100%
100%
Utun interface exclusion
0%
100%
IPv4-only address filter
100%
100%
Correct mDNS service type
50%
100%
shellycolorbulb- prefix filter
75%
100%
shellybulbduo- prefix filter
0%
100%
JmDNS dependency version
0%
100%
JmDNS closed after use
100%
100%
Returns IP strings
100%
100%
Rate-limited controller with mode transitions and production IP config
0.2s min-interval
100%
100%
Not 1.2s interval
100%
100%
Mode transition reset
66%
100%
turn=off for shutdown
100%
100%
JVM shutdown hook
100%
100%
SHELLY_BULB_IP env var
0%
100%
Fallback IP
100%
100%
Plain HTTP
100%
100%
Color params in color mode
100%
100%
White params in white mode
100%
100%