Skip to main content

Using websocket matter server to query/control matter-enabled lights/sensors via a HTTP GET interface.

Project description

Matter Web Controller

This document explains how the local Matter device management system works using a web interface.

System Architecture

The system separates background tasks and simplifies network rules to make it easier to use:

  1. Background Process: The app runs the standard python-matter-server as a separate background task. This keeps the heavy work away from the web server.
  2. WebSockets Connection: The web server keeps a constant connection to the background task. This updates the network data in real time without slowing things down.
  3. HTTP Setup: The web server acts as a middleman. It changes complex WebSocket data into a simple HTTP request (GET/POST). Users only need to communicate via standard web addresses to interact with JSON data.

Requirements

Python 3.12 or newer.

Installation

Create a virtual environment and install the package using your package manager. This will automatically install required tools like aiohttp and home-assistant-chip-core.

How to Run

Start the system by typing the executable command matter-srv. You can use the --port parameter to set the web server port. The default is 8080. The background Matter server will automatically use the next port number.

API Endpoints

Get lighting device status

  • URL: /api/lights
  • Method: GET
  • Description: Gets a list of all devices that have lighting features on the local Matter network. The data includes the Node ID, Endpoint ID, power state, normalized brightness level (0.0 to 1.0), and color temperature (in Kelvin).
  • Example: http://localhost:8080/api/lights

Get sensor device status

  • URL: /api/sensors
  • Method: GET
  • Description: Gets a flattened list of all sensor readings on the local Matter network. Each reading is separated into its own object containing a composite ID (Node, Endpoint, and Sensor Name), the sensor name, and the raw integer value.
  • Example: http://localhost:8080/api/sensors

Commission a new Matter device

  • URL: /api/register
  • Method: GET
  • Description: Initiates the commissioning process for a new device on the local network. Supports both auto-discovery and directed IP-based commissioning. The system automatically extracts the required PIN from the setup payload.
  • Parameters:
    • code (string, required): The Matter setup payload code (e.g., an 11-digit manual pairing code or a QR code payload starting with MT:).
    • ip (string, optional): The IP address of the device for direct network commissioning, bypassing Bluetooth constraints.
  • Example: http://localhost:8080/api/register?code=11223344556&ip=192.168.1.100

Control a lighting device

  • URL: /api/set
  • Method: GET or POST
  • Description: Controls the brightness and color temperature of a specific lighting device. Setting brightness to 0.0 automatically powers off the device.
  • Parameters / JSON Body:
    • id (string, required): The target device identifier (e.g., "Node 1 - EP 8").
    • brightness (float, optional): The desired brightness level from 0.0 to 1.0.
    • temperature (integer, optional): The desired color temperature in Kelvin.
  • Example (GET): http://localhost:8080/api/set?id=Node%201%20-%20EP%208&brightness=0.8&temperature=4000
  • Example (POST): curl -X POST -H "Content-Type: application/json" -d '{"id": "Node 1 - EP 8", "brightness": 0.8, "temperature": 4000}' http://localhost:8080/api/set

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

matter_web_controller-0.4.0.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

matter_web_controller-0.4.0-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file matter_web_controller-0.4.0.tar.gz.

File metadata

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

File hashes

Hashes for matter_web_controller-0.4.0.tar.gz
Algorithm Hash digest
SHA256 6acb6d8e16fc8d7e726c21824f949873e2e84339ec77d0b5a0986a2714f56e08
MD5 73d00502d8ea74b14b7c86eaa752e437
BLAKE2b-256 9fdb58fa7006893079ec4257744505047bacc6f72fde919cd47aa643c131fb5a

See more details on using hashes here.

Provenance

The following attestation bundles were made for matter_web_controller-0.4.0.tar.gz:

Publisher: python-publish.yml on dongnh/matter_webcontrol

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

File details

Details for the file matter_web_controller-0.4.0-py3-none-any.whl.

File metadata

File hashes

Hashes for matter_web_controller-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cd05ff6bf935351610a73ada16b3211becc4bb83837f7485b73d0bd71e50b483
MD5 8315b563c4ef56b9dfe0047598b2798b
BLAKE2b-256 9a86dd6510cdc7f6b3961e55d8d64244bda1eb64543f3ddc3550cd9ee65924a3

See more details on using hashes here.

Provenance

The following attestation bundles were made for matter_web_controller-0.4.0-py3-none-any.whl:

Publisher: python-publish.yml on dongnh/matter_webcontrol

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