Skip to main content

Core LIFX Emulator library for testing LIFX LAN protocol libraries

Project description

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())

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

Related Packages

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

License

UPL-1.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lifx_emulator_core-3.6.3.tar.gz (141.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

lifx_emulator_core-3.6.3-py3-none-any.whl (104.2 kB view details)

Uploaded Python 3

File details

Details for the file lifx_emulator_core-3.6.3.tar.gz.

File metadata

  • Download URL: lifx_emulator_core-3.6.3.tar.gz
  • Upload date:
  • Size: 141.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for lifx_emulator_core-3.6.3.tar.gz
Algorithm Hash digest
SHA256 720ace2d8da94aa4803c908be26544fea2ede5394bb1ff82aa180b788d82f6af
MD5 d116e9aed495813f71867d3bb85deb31
BLAKE2b-256 15a11f5e3c92b163df7f13f5c756f7eef8d1d9f98c332dea2efd7d5afb86e695

See more details on using hashes here.

Provenance

The following attestation bundles were made for lifx_emulator_core-3.6.3.tar.gz:

Publisher: ci.yml on Djelibeybi/lifx-emulator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file lifx_emulator_core-3.6.3-py3-none-any.whl.

File metadata

File hashes

Hashes for lifx_emulator_core-3.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 06a83926610c6057dfe336f708f6594a454136b469a14240d0e7d345ca66a529
MD5 aee8d05984db933ee7a471b1b94f31c0
BLAKE2b-256 3a76c13a970115c437a7ac9dcb4aa067df802c0808a5e4d09c01b5abf5239d54

See more details on using hashes here.

Provenance

The following attestation bundles were made for lifx_emulator_core-3.6.3-py3-none-any.whl:

Publisher: ci.yml on Djelibeybi/lifx-emulator

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page