isaacrlevin / presencelight

PresenceLight is a solution to broadcast your various statuses to light bulbs.
MIT License
416 stars 75 forks source link

Unable to list lights for LIFX integration #867

Open chrsmrtn- opened 5 months ago

chrsmrtn- commented 5 months ago

Describe the bug When i click on "Find LIFX Lights", no lights are populated in the dropdown

To Reproduce Steps to reproduce the behavior:

  1. LIFX under configure lights
  2. Click on "Get Token"
  3. Login to your LIFX account
  4. Click on "Find LIFX Lights"
  5. Click on the drop down to select a light
  6. Note the dropdown does not list any lights

Expected behavior To list lights i've setup with LIFX

Screenshots Screenshot 2024-02-13 191236

Further details

chrsmrtn- commented 5 months ago

Found this error in the logs

{"Timestamp":"2024-02-14T20:01:41.1406488-07:00","Level":"Information","MessageTemplate":"Get LIFX Lights Initialized","Properties":{"SourceContext":"PresenceLight.Razor.Components.Pages.Lifx","Application":"PresenceLight"}} {"Timestamp":"2024-02-14T20:01:41.5026759-07:00","Level":"Error","MessageTemplate":"Error Occurred Getting LIFX Lights","Exception":"System.NullReferenceException: Object reference not set to an instance of an object.\r\n at PresenceLight.Razor.Components.Pages.Lifx.CheckLIFX(String type)","Properties":{"SourceContext":"PresenceLight.Razor.Components.Pages.Lifx","Application":"PresenceLight"}}

chrsmrtn- commented 5 months ago

Error from nightly build:

{"Timestamp":"2024-02-14T20:38:23.9062263-07:00","Level":"Information","MessageTemplate":"Get LIFX Lights Initialized","Properties":{"SourceContext":"PresenceLight.Razor.Components.Pages.Lifx","Application":"PresenceLight"}} {"Timestamp":"2024-02-14T20:38:24.2627032-07:00","Level":"Error","MessageTemplate":"Error Occurred Getting LIFX Lights","Exception":"System.NullReferenceException: Object reference not set to an instance of an object.\r\n at PresenceLight.Razor.Components.Pages.Lifx.CheckLIFX(String type) in D:\\a\\presencelight\\presencelight\\src\\PresenceLight.Razor\\Components\\Pages\\Lifx.razor:line 204","Properties":{"SourceContext":"PresenceLight.Razor.Components.Pages.Lifx","Application":"PresenceLight"}}

chrsmrtn- commented 5 months ago

My currently selected item id for LIFX

image

chrsmrtn- commented 5 months ago

Workaround to get things working is to use the LIFX api to get the ID of the light you want to use and then manually set the SelectedItemId in the settings to the appropriate encoded value. I don't have a workaround for the listing issue

isaacrlevin commented 4 months ago

@chrsmrtn- what lights do you have? I wonder if certain lights operate on a different protocol than the ones I have tested with.

chrsmrtn- commented 4 months ago

LIFX beam and LIFX striplight (LIFX Z2). Neither of which are listed in the app. Those are the only two lights i own

isaacrlevin commented 4 months ago

So lights or groups don't work?

chrsmrtn- commented 4 months ago

I'm unable to list lights

isaacrlevin commented 4 months ago

@chrsmrtn- Can you do me a favor and return the JSON response you get from the LIFX Api?

chrsmrtn- commented 4 months ago

Sure, here ya go. I masked the IDs. The Guids are still formatted as guid and the other values all have the same number of characters. The original values were all alphanumeric

[
    {
        "id": "d00000000000",
        "uuid": "00000000-0000-0000-0000-000000000001",
        "label": "Office Door",
        "connected": false,
        "power": "off",
        "color": {
            "hue": 0,
            "saturation": 0,
            "kelvin": 3500
        },
        "brightness": 1,
        "effect": "OFF",
        "group": {
            "id": "00000000000000000000000000000001",
            "name": "Upstairs Hallway"
        },
        "location": {
            "id": "00000000000000000000000000000002",
            "name": "Home"
        },
        "product": {
            "name": "LIFX Z 2",
            "identifier": "lifx_z2",
            "company": "LIFX",
            "vendor_id": 1,
            "product_id": 32,
            "capabilities": {
                "has_color": true,
                "has_variable_color_temp": true,
                "has_ir": false,
                "has_hev": false,
                "has_chain": false,
                "has_matrix": false,
                "has_multizone": true,
                "min_kelvin": 2500,
                "max_kelvin": 9000
            }
        },
        "last_seen": "",
        "seconds_since_seen": 0
    },
    {
        "id": "d00000000001",
        "uuid": "00000000-0000-0000-0000-000000000002",
        "label": "Status Light",
        "connected": false,
        "power": "off",
        "color": {
            "hue": 0,
            "saturation": 0,
            "kelvin": 3500
        },
        "brightness": 1,
        "effect": "OFF",
        "group": {
            "id": "00000000000000000000000000000011",
            "name": "Desk"
        },
        "location": {
            "id": "00000000000000000000000000000022",
            "name": "Office"
        },
        "product": {
            "name": "LIFX Beam",
            "identifier": "lifx_beam",
            "company": "LIFX",
            "vendor_id": 1,
            "product_id": 119,
            "capabilities": {
                "has_color": true,
                "has_variable_color_temp": true,
                "has_ir": false,
                "has_hev": false,
                "has_chain": false,
                "has_matrix": false,
                "has_multizone": true,
                "min_kelvin": 1500,
                "max_kelvin": 9000
            }
        },
        "last_seen": "",
        "seconds_since_seen": 0
    }
]
chrsmrtn- commented 4 months ago

I'm also unable to list groups

isaacrlevin commented 4 months ago

I think the issue is with the model of light you have. I have a LIFX Beam, and it shows up in PresenceLight. Here is what that light looks like, only difference I see from yours is the product_id

  {
    "id": "xxxxx",
    "uuid": "xxxx",
    "label": "Isaac Wakeup Light",
    "connected": true,
    "power": "on",
    "color": {
      "hue": 191.94,
      "saturation": 1,
      "kelvin": 3500
    },
    "brightness": 0.1,
    "zones": {
      "count": 21,
      "zones": [
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 0
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 1
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 2
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 3
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 4
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 5
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 6
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 7
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 8
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 9
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 10
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 11
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 12
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 13
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 14
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 15
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 16
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 17
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 18
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 19
        },
        {
          "hue": 191.94,
          "saturation": 1,
          "brightness": 0.1,
          "kelvin": 3500,
          "zone": 20
        }
      ]
    },
    "effect": "OFF",
    "group": {
      "id": "xxxxxx",
      "name": "OK To Wake"
    },
    "location": {
      "id": "xxxxx",
      "name": "Home"
    },
    "product": {
      "name": "LIFX Beam",
      "identifier": "lifx_beam",
      "company": "LIFX",
      "vendor_id": 1,
      "product_id": 38,
      "capabilities": {
        "has_color": true,
        "has_variable_color_temp": true,
        "has_ir": false,
        "has_hev": false,
        "has_chain": false,
        "has_matrix": false,
        "has_multizone": true,
        "min_kelvin": 2500,
        "max_kelvin": 9000
      }
    },
    "last_seen": "2024-03-06T23:35:06Z",
    "seconds_since_seen": 0
  }
chrsmrtn- commented 4 months ago

So my model is causing the issue with being able to list my lights? But the light transitions work just fine if i manually set that light in the configuration

isaacrlevin commented 4 months ago

@chrsmrtn- would you be willing to send me your LIFX token temporarily? I just want to see what that app does when it calls the API