Skip to main content

lifx-emulator-core

Core Python library for emulating LIFX devices using the LAN protocol.

This package provides the embeddable library for creating virtual LIFX devices in your own projects. It implements the binary UDP protocol from the LIFX LAN Protocol specification.

Installation

pip install lifx-emulator-core

Quick Start

import asyncio
from lifx_emulator import EmulatedLifxServer, DeviceManager
from lifx_emulator.factories import create_color_light
from lifx_emulator.repositories import DeviceRepository

async def main():
    # Create devices
    devices = [
        create_color_light(serial="d073d5000001"),
        create_color_light(serial="d073d5000002"),
    ]

    # Create repository and manager
    repository = DeviceRepository()
    manager = DeviceManager(repository)

    # Start the emulator server
    server = EmulatedLifxServer(
        devices=devices,
        device_manager=manager,
        bind_address="127.0.0.1",
        port=56700,
    )

    await server.start()
    print("LIFX Emulator running on 127.0.0.1:56700")

    # Keep running until interrupted
    try:
        await asyncio.Event().wait()
    finally:
        await server.stop()

asyncio.run(main())

mDNS interface limitation

mDNS is opt-in (mdns_enabled=True). On Linux, zeroconf may receive and answer mDNS queries through an interface other than the selected one when another process has joined the multicast group there. Selecting an interface, including loopback, is not a receive-isolation security boundary; synthetic device records may be visible on that other network. Strict isolation requires an external network boundary such as a dedicated network namespace or firewall policy. The emulator retains the public zeroconf API and does not patch its sockets to enforce receive isolation.

Features

  • Emulate color lights, multizone strips, tiles, infrared, HEV, and switch devices
  • Full LIFX LAN protocol implementation
  • Persistent device state storage
  • Testing scenarios for simulating edge cases
  • Product registry with 137+ official LIFX products

Documentation

Full documentation is available at: https://djelibeybi.github.io/lifx-emulator

  • lifx-emulator: Standalone CLI tool and HTTP management API built on this library

License

UPL-1.0

Metadata

Release files for lifx-emulator-core 3.12.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lifx-emulator-core 3.12.1
File Size Uploaded
lifx_emulator_core-3.12.1.tar.gz 236.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for lifx-emulator-core 3.12.1
File Interpreter ABI Platform
lifx_emulator_core-3.12.1-py3-none-any.whl Python 3 none any Details

Total release size: 376.8 kB

Release files / lifx_emulator_core-3.12.1.tar.gz

Download URL lifx_emulator_core-3.12.1.tar.gz
Size 236.7 kB
Tags Source
SHA-256 checksum
How to use checksums
dba4324cf7182ed93ec8872deb4b7574199176ca53b76c95b240211901df6109
BLAKE2b-256 checksum
How to use checksums
bfc97eb18ca22b29c3c9760bc148adcb561b1f63180eff2d5c4277705778d0c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / lifx_emulator_core-3.12.1-py3-none-any.whl

Download URL lifx_emulator_core-3.12.1-py3-none-any.whl
Size 140.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f90fce22531d882b56616c51f99ee1f60dcfb693d6614816d9b9cd889528290e
BLAKE2b-256 checksum
How to use checksums
f9a5114f769156ff556ef0fcce9aaa2a085eabf31202f766d06a9ba4cc4af667
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

3.15.0

2 release files

3.14.0

2 release files

3.13.0

2 release files

This release

3.12.1 This release

2 release files

3.11.0

2 release files

3.10.0

2 release files

3.9.0

2 release files

3.8.0

2 release files

3.7.1

2 release files

3.7.0

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.3

2 release files

3.0.2

2 release files

3.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page