Skip to content

Latest LIFX Smart Downlight (AU store, SKU: MTDCWAU) not discoverable on local network #193

@thatandrewguy

Description

@thatandrewguy

LIFX has refreshed their downlights on the AU store. The SKU for these new models are 'MTDCWAU', they boast a CRI of 90 and are being marketed as 'Super Colour'. These new model lights are not found by the lifxlan library.

I have six of the previous models and these are all discoverable by lifxlan.

Last week I bought two of the latest Smart Downlight model from Clever House and installed them as Wifi lights. These two new downlights are not discoverable by lifxlan so therefore they are not able to be controlled via lifxlan.

Running the below python code does not return the two new model downlights that are installed.

# Import the necessary modules from lifxlan
from lifxlan import LifxLAN
import ipaddress
import json
from datetime import datetime
import time

# Initialize the LifxLAN object to interact with LIFX lights
lan = LifxLAN()

# Discover all LIFX lights on the network with a delay to ensure all lights are found
print("Discovering LIFX lights. Please wait...")
time.sleep(10)  # Wait for 10 seconds to ensure all lights are discovered
lights = lan.get_lights()

# Prepare a list to hold light information
lights_info = []

# Loop through each light and gather detailed information
for light in lights:
    # Get the IP address, label, MAC address, and product name of the light
    ip_address = light.get_ip_addr()
    label = light.get_label()
    mac_address = light.get_mac_addr()
    product_name = light.get_product_name()
    
    # Convert the IP address to an ipaddress object for sorting
    ip_obj = ipaddress.ip_address(ip_address)
    
    # Append the light information to the list
    lights_info.append({"IP Address": str(ip_obj), "Label": label, "MAC Address": mac_address, "Light Name": product_name})

# Sort the lights by IP address in ascending order
lights_info.sort(key=lambda x: ipaddress.ip_address(x["IP Address"]))

# If no lights are found, inform the user
if not lights:
    print("No LIFX lights found on the network.")
else:
    # Generate the filename with current date and time
    now = datetime.now()
    filename = now.strftime("lifx_lights_%Y%m%d_%H%M%S.json")
    
    # Write the sorted data to a JSON file with pretty printing
    with open(filename, 'w') as file:
        json.dump(lights_info, file, indent=4)
    
    print(f"Data has been saved to {filename}")

# Print the sorted list of lights to console for immediate viewing
print("LIFX Lights Information (Sorted by IP Address):")
for light in lights_info:
    print(f"- Label: {light['Label']}, MAC Address: {light['MAC Address']}, IP Address: {light['IP Address']}, Light Name: {light['Light Name']}")

The two new models are discoverable and found when using the HTTP API.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions