ebaauw / homebridge-hue

Homebridge plugin for Philips Hue
Apache License 2.0
898 stars 91 forks source link

ZigBee 3 Socket showing up as Type: Light and unable to be changed to Fan or Outlet #361

Closed jaydisc closed 6 years ago

jaydisc commented 6 years ago

I've added this ZigBee socket to my Hue app, and subsequently configured homebridge-hue to show it:

    {
        "platform": "Hue",
        "users": {
            "xxx": "xxxx"
        },
        "lights": true,
        "linkButton": false,
        "resource": false,
        "rules": false,
        "schedules": false,
        "heartrate": 2
    }

It shows up in HomeKit, but as a Light, and its Type is not editable:

img_042f5d1c4746-1

Is there any way to get HomeKit to see it correctly, and/or let me modify the Type in HomeKit?

(removed first debug logs)

jaydisc commented 6 years ago

I redid the debug logs as the device was accidentally unplugged during the first run

homebridge-hue.json.gz homebridge.log.gz

ebaauw commented 6 years ago
{
          "state": {
            "on": true,
            "alert": "none",
            "mode": "homeautomation",
            "reachable": true
          },
          "swupdate": {
            "state": "notupdatable",
            "lastinstall": null
          },
          "type": "On/Off light",
          "name": "Power 1",
          "modelid": "FNB56-SKT1EHG1.2",
          "manufacturername": "FeiBit",
          "productname": "On/Off light",
          "capabilities": {
            "certified": false,
            "control": {},
            "streaming": {
              "renderer": false,
              "proxy": false
            }
          },
          "config": {
            "archetype": "classicbulb",
            "function": "functional",
            "direction": "omnidirectional"
          },
          "uniqueid": "00:15:8d:00:01:dd:82:9f-0b",
          "swversion": "1000-0001"
        }

The Hue bridge reports the plug's type as On/Off Light, instead of On/Off plug-in unit so homebridge-hue exposes it as a light. This could be a bug in the Hue bridge firmware (misinterpreting the device type), or in the plug firmware (exposing the wrong device type). I will need to whitelist the plug in homebridge-hue to expose the plug as Outlet nonetheless. Does your other plug have the same modelid?

jaydisc commented 6 years ago

I can't get the Hue Bridge to recognise the other plug. Is there a different way to determine its modelid? Does it matter if it's not compatible?

ebaauw commented 6 years ago

Should be fixed in v0.9.9.

jaydisc commented 6 years ago

Beautiful. Works perfectly. I can now choose between Light, Outlet and Fan. Thank you.

barberio commented 5 years ago

The Hue Bridge no longer puts the third party ID into the config json, which breaks the current whitelisting identification. It now reports third party identifiers as part of the name.


homebridge_1    | [3/27/2019, 6:18:49 PM] [Hue] Philips hue: XXXXXXXXXXXXXXXX: FeiBit FNB56-SKT1EHG1.2 "Fan"
homebridge_1    | [3/27/2019, 6:18:49 PM] [Hue] Philips hue: /lights/3: On/Off light "Fan"
homebridge_1    | [3/27/2019, 6:18:49 PM] [Hue] Philips hue: /lights/3: config: {"on":true,"bri":false,"ct":false,"xy":false,"waitTimeUpdate":20,"unknown":false}
ebaauw commented 5 years ago

I'm sorry, I have no idea what you're trying to say. What is "HomeHub"? What do you mean by "third party ID"? How is that used in config.json? "no longer", "now": since when; what has changed?

barberio commented 5 years ago

(Mistyped when I meant to type Hue Bridge.)

barberio commented 5 years ago

The format that the Hue Bridge reports for third party Zigbee devices has changed in the latest firmware. It now only presents an ID for the device in the name of the device, and just uses generic properties in the config json for that device. This breaks the current function of white listing FNB56-SKT1EHG1.2 devices (and presumably others) as power points.

ebaauw commented 5 years ago

Could you please attach the debug dump file, see https://github.com/ebaauw/homebridge-hue#debug-dump-file.

barberio commented 5 years ago

homebridge-hue.json.gz

ebaauw commented 5 years ago

The lights look normal, but the outlet resourcelink is missing. You should be able to re-create it using ph outlet. Did you reset or cleanup the bridge?

barberio commented 5 years ago

It still doesn't appear to recognise it as an outlet.

$ ph outlet -v ph outlet: /resourcelinks/53891: 0 outlets

barberio commented 5 years ago

Manually linking it on the hub with ph put works, but this is really poorly documented and I had a difficult time working out how to do it.

Is it really wise to put this configuration onto the hub, where a firmware update might wipe it or make it useless? After all, the only thing that looks at this configuration is the Homebridge plug in, so doesn't it make more sense to put this in the Homebridge config?

bubffm commented 5 years ago

Unfortunatly I am also having issues re-classifying my innr Zigbee outlet from light to outlet. I have read thru the various threads here on this topic. I am using deconz Zigbee with latest software 2.05.64.

using command sudo ph -H 192.168.2.41 -u zGgfQFgiFRO-5A06xxxxxx outlet -v with 5A06xxxxxx being my user-ID form config.Json for the deconz bridge returns: ph outlet: error: 1 unauthorized user

trying via ph command:

ph post /resourcelinks '{ "name": "homebridge-hue", "description": „outlet“, "classid": 1, "links": [ "/lights/3“ ] }'

returns: ph post: error: Unexpected token „ in JSON at position 47

Any pointer as to how I can change the type of /lights/3 successfully to outlet?

Thanks

ebaauw commented 5 years ago

Don’t sudo ph; it will try and use the .ph in root’s home directory.

ph outlet only works when the outlet reports the correct device type.

The ph post command is correct, but be sure to enter it through a text editor (not through a document editor). It looks like the quotation marks have been beautified, resulting in invalid json.

bubffm commented 5 years ago

Thanks for coming back so swiftly. I copied and pasted from Textwrangler for Mac. which seemed to have resulted in the 'beautification' (love it!). I have now typed the command into terminal directly and it changed the ID to "2". My innr smartplug is now showing as an outlet in homekit :-)

Many thanks again.

bubffm commented 5 years ago

Sorry for coming back:

Since I changed the innr plug to "outlet", my Hue Light is behaving a bit strangely. Every half hour or so it says it cant be reached. In log I see it has stopped with following message:

[5/15/2019, 9:16:16 PM] [Hue] RaspBee: gateway request 282: put /lights/1/state {"xy":[0.17,0.7]} [5/15/2019, 9:16:16 PM] [Hue] RaspBee: gateway error 3: resource, /lights/1, not available

If I restart homebridge, the light comes back, just to disappear again a couple minutes later with the same message.

Any idea what might have happened?

ebaauw commented 5 years ago

That's an issue with the ZigBee communication between the deCONZ gateway and the Hue light - nothing to do with homebridge-hue. Restarting homebridge won't do anything here, but you might want to power-cycle the light, before resorting to restarting deCONZ.

Hue lights usually are very reliable with deCONZ, so most likely it's an issue with the radio signal. Try/check the following:

bubffm commented 5 years ago

Thanks Eric, I'll cycle through these options and see that I get this fixed.

retrography commented 3 years ago

I am currently having this exact same issue with SONOFF ZBMini (Model: 01MINIZB): It is displayed as a lamp, with no possibility of changing the type. I saw the FeiBit patch above and tried to replicate it for SONOFF but it didn't work. Am I missing something?