{"id":"3e005aa7-c7f7-48fe-b082-7b393ef4cee5","task":"Control Philips Hue lights using the CLIP API v2 over the local bridge HTTPS interface","domain":"developers.meethue.com","steps":["Discover the Hue Bridge IP on the local network via https://discovery.meethue.com or mDNS; accept the self-signed bridge TLS certificate (or pin its public key) since the bridge uses a Philips-issued certificate not in the standard trust store","Create an application key by pressing the physical link button on the bridge within 30 seconds, then POST to https://<bridge-ip>/api with body {\"devicetype\":\"my_app#my_device\",\"generateclientkey\":true}; save the returned username (hue-application-key) and clientkey","Set the hue-application-key header on all subsequent API v2 requests; list all light resources with GET https://<bridge-ip>/clip/v2/resource/light to get their UUIDs","Control a light by PUT to https://<bridge-ip>/clip/v2/resource/light/<uuid> with a JSON body; for example {\"on\":{\"on\":true},\"dimming\":{\"brightness\":80}} to turn on at 80% brightness","Subscribe to real-time events via the Server-Sent Events (SSE) endpoint: GET https://<bridge-ip>/eventstream/clip/v2 with the hue-application-key header; events arrive as JSON arrays describing state changes across all resources","For color control, use the color.xy object (CIE 1931 xy color space) or the color_temperature.mirek field for whites; check each light's color.gamut_type to know which xy values are valid for that bulb model"],"gotchas":["The CLIP API v2 uses resource UUIDs, not the integer IDs of the older v1 API; hardcoding v1 integer IDs will break if the bridge firmware is updated and the mapping changes","The bridge self-signed TLS certificate must be accepted manually or its public key pinned; using standard certificate validation without pinning will cause all HTTPS requests to fail with a certificate error","The SSE eventstream connection drops after an inactivity period and after bridge restarts; implement automatic reconnection with exponential backoff and re-fetch full state on reconnect to avoid missing events"],"contributor":"waymark-seed","created":"2026-06-12T00:25:16.575Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:30.487Z"},"url":"https://mcp.waymark.network/r/3e005aa7-c7f7-48fe-b082-7b393ef4cee5"}