Firmware update?
Hi!
I recently bought a starter set and I'm trying to get it to work with open source, but I'm facing real challenges. For some reason, it seems that the hub does support the very basic commands as documented by in the open parts of Philips' documentation, but anything beyond that and what I found in OpenHue just doesn't seem to work. I tried the Docker version of openhue-cli today and I can run setup if I provide the IP address of the hub, but that's it. A handful of operations work, but anything with ../clip/ fails.
So much for an intro, but here's one possibly important point: I have never (by intention) installed the smartphone app and I don't think that the hub ever had any firmware update. Running curl http://philips-hue/api/$TOKEN/config | jq . gives me the following:
{
"name": "Philips hue",
"zigbeechannel": 11,
"bridgeid": "ECB5FAFFFEA2C3F6",
"mac": "ec:b5:fa:a2:c3:f6",
"dhcp": true,
"ipaddress": "192.168.1.134",
"netmask": "255.255.255.0",
"gateway": "192.168.1.1",
"proxyaddress": "none",
"proxyport": 0,
"UTC": "2025-09-22T19:21:11",
"localtime": "none",
"timezone": "none",
"modelid": "BSB002",
"datastoreversion": "94",
"swversion": "1940042020",
"apiversion": "1.40.0",
"swupdate": {
"updatestate": 0,
"checkforupdate": false,
"devicetypes": {
"bridge": false,
"lights": [],
"sensors": []
},
"url": "",
"text": "",
"notify": false
},
"swupdate2": {
"checkforupdate": false,
"lastchange": "2021-12-07T10:38:42",
"bridge": {
"state": "noupdates",
"lastinstall": null
},
"state": "unknown",
"autoinstall": {
"updatetime": "T14:00:00",
"on": false
}
},
"linkbutton": false,
"portalservices": false,
"portalconnection": "disconnected",
"portalstate": {
"signedon": false,
"incoming": false,
"outgoing": false,
"communication": "disconnected"
},
"internetservices": {
"internet": "connected",
"remoteaccess": "disconnected",
"time": "connected",
"swupdate": "disconnected"
},
"factorynew": false,
"replacesbridgeid": null,
"backup": {
"status": "idle",
"errorcode": 0
},
"starterkitid": "",
"whitelist": {
"<REDACTED>"
}
}
Looking at swversion="1940042020" and the two checkforupdate=false flags looks like it was never updated.
Some question before I install that smartphone app I don't want:
- Do you think I guessed right that the firmware needs updating?
- Would that be something
openhue-clicould check for and alert the user? - Can you trigger this via
openhue-clisomehow?
Thank you for your time!
Uli
Hi @UlrichEckhardt !
That's an interesting one. I just checked the Hue CLIP API v2 and found out that there is indeed an API endpoint that could trigger a software update:
We would first need to add this endpoint in the OpenHue Open API Spec before supporting it here in the CLI.
Quick question: did you simply try to call any of those endpoints using a regular HTTP Client (e.g. Postman, for instance)?
I've been trying to access the CLIP API using curl on the commandline.
curl --header "hue-application-key: <REDACTED>" --header "Accept: application/json" http://philips-hue/clip/v2/resource
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>hue personal wireless lighting</title>
<link rel="stylesheet" type="text/css" href="/index.css">
</head>
<body>
<div class="philips-header">
<img src="/philips-blue.png" class="philips-logo" alt="Philips" />
</div>
<div class="header">
<img class="header-logo" src="/hue-logo.png" alt="hue personal wireless lighting" />
<img src="/hue-color-line.png" class="colorline" />
</div>
<div class="error">Oops, there appears to be no lighting here</div>
</body>
</html>
I've toyed around with this and never received any different result from /clip/* endpoints. I can use some API parts using other /api/* endpoints:
curl http://philips-hue/api/
[{"error":{"type":4,"address":"/","description":"method, GET, not available for resource, /"}}]
curl -X PUT --data '{"bri": 10}' http://philips-hue/api/<REDACTED>/lights/1/state
[{"success":{"/lights/1/state/bri":10}}]
curl http://philips-hue/api/<REDACTED>/config
{"name":"Philips hue","zigbeechannel":11,"bridgeid":"ECB5FAFFFEA2C3F6","mac":"ec:b5:fa:a2:c3:f6","dhcp":true,"ipaddress":"192.168.1.134", ...}
The API host is not https://philips-hue.com but the local IP of your bridge.
Please follow https://www.openhue.io/cli/setup#the-config-command to find it out.
The full hostname of the bridge is configured as philips-hue (without the .com) in my local DNS setup, so that isn't the problem:
> host philips-hue
philips-hue.localdomain has address 192.168.1.134
philips-hue.localdomain has IPv6 address 2a02:3100:84c1:7f00:eeb5:faff:fea2:c3f6
I'm unsure if I did that myself or whether it happened automagically via mDNS.
Also, I'm not using HTTPS, since the bridge's cert is self-signed. I can use curl --insecure .. https://philips-hue/.. .. instead, but haven't noticed any difference to what I described above.