Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,7 @@ set(ARDUINO_LIBRARY_Matter_SRCS
libraries/Matter/src/MatterEndpoints/MatterPressureSensor.cpp
libraries/Matter/src/MatterEndpoints/MatterOccupancySensor.cpp
libraries/Matter/src/MatterEndpoints/MatterOnOffPlugin.cpp
libraries/Matter/src/MatterEndpoints/MatterDimmablePlugin.cpp
libraries/Matter/src/MatterEndpoints/MatterThermostat.cpp
libraries/Matter/src/Matter.cpp
libraries/Matter/src/MatterEndPoint.cpp)
Expand Down
257 changes: 257 additions & 0 deletions docs/en/matter/ep_dimmable_plugin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
####################
MatterDimmablePlugin
####################

About
-----

The ``MatterDimmablePlugin`` class provides a dimmable plugin unit endpoint for Matter networks. This endpoint implements the Matter dimmable plugin standard for controlling power outlets, relays, and other dimmable devices with power level control.

**Features:**
* On/off control
* Power level control (0-255)
* State persistence support
* Callback support for state and level changes
* Integration with Apple HomeKit, Amazon Alexa, and Google Home
* Matter standard compliance

**Use Cases:**
* Dimmable smart power outlets
* Variable power control
* Smart dimmer plugs
* Level-controlled device control

API Reference
-------------

Constructor
***********

MatterDimmablePlugin
^^^^^^^^^^^^^^^^^^^^

Creates a new Matter dimmable plugin endpoint.

.. code-block:: arduino

MatterDimmablePlugin();

Initialization
**************

begin
^^^^^

Initializes the Matter dimmable plugin endpoint with optional initial state and level.

.. code-block:: arduino

bool begin(bool initialState = false, uint8_t level = 64);

* ``initialState`` - Initial on/off state (``true`` = on, ``false`` = off, default: ``false``)
* ``level`` - Initial power level (0-255, default: 64 = 25%)

This function will return ``true`` if successful, ``false`` otherwise.

end
^^^

Stops processing Matter plugin events.

.. code-block:: arduino

void end();

On/Off Control
**************

setOnOff
^^^^^^^^

Sets the on/off state of the plugin.

.. code-block:: arduino

bool setOnOff(bool newState);

* ``newState`` - New state (``true`` = on, ``false`` = off)

This function will return ``true`` if successful, ``false`` otherwise.

getOnOff
^^^^^^^^

Gets the current on/off state of the plugin.

.. code-block:: arduino

bool getOnOff();

This function will return ``true`` if the plugin is on, ``false`` if off.

toggle
^^^^^^

Toggles the on/off state of the plugin.

.. code-block:: arduino

bool toggle();

This function will return ``true`` if successful, ``false`` otherwise.

Level Control
**************

setLevel
^^^^^^^^

Sets the power level of the plugin.

.. code-block:: arduino

bool setLevel(uint8_t newLevel);

* ``newLevel`` - New power level (0-255, where 0 = off, 255 = maximum level)

This function will return ``true`` if successful, ``false`` otherwise.

getLevel
^^^^^^^^

Gets the current power level of the plugin.

.. code-block:: arduino

uint8_t getLevel();

This function will return the power level (0-255).

Constants
*********

MAX_LEVEL
^^^^^^^^^^

Maximum power level value constant.

.. code-block:: arduino

static const uint8_t MAX_LEVEL = 255;

Operators
*********

bool operator
^^^^^^^^^^^^^

Returns the current on/off state of the plugin.

.. code-block:: arduino

operator bool();

Example:

.. code-block:: arduino

if (myPlugin) {
Serial.println("Plugin is on");
}

Assignment operator
^^^^^^^^^^^^^^^^^^^

Turns the plugin on or off.

.. code-block:: arduino

void operator=(bool state);

Example:

.. code-block:: arduino

myPlugin = true; // Turn plugin on
myPlugin = false; // Turn plugin off

Event Handling
**************

onChange
^^^^^^^^

Sets a callback function to be called when any parameter changes.

.. code-block:: arduino

void onChange(EndPointCB onChangeCB);

* ``onChangeCB`` - Function to call when state changes

The callback signature is:

.. code-block:: arduino

bool onChangeCallback(bool newState, uint8_t newLevel);

* ``newState`` - New on/off state (``true`` = on, ``false`` = off)
* ``newLevel`` - New power level (0-255)

onChangeOnOff
^^^^^^^^^^^^^

Sets a callback function to be called when the on/off state changes.

.. code-block:: arduino

void onChangeOnOff(EndPointOnOffCB onChangeCB);

* ``onChangeCB`` - Function to call when on/off state changes

The callback signature is:

.. code-block:: arduino

bool onChangeCallback(bool newState);

* ``newState`` - New on/off state (``true`` = on, ``false`` = off)

onChangeLevel
^^^^^^^^^^^^^

Sets a callback function to be called when the power level changes.

.. code-block:: arduino

void onChangeLevel(EndPointLevelCB onChangeCB);

* ``onChangeCB`` - Function to call when level changes

The callback signature is:

.. code-block:: arduino

bool onChangeCallback(uint8_t newLevel);

* ``newLevel`` - New power level (0-255)

updateAccessory
^^^^^^^^^^^^^^^

Updates the state of the plugin using the current Matter Plugin internal state.

.. code-block:: arduino

void updateAccessory();

This function will call the registered callback with the current state.

Example
-------

Dimmable Plugin
***************

.. literalinclude:: ../../../libraries/Matter/examples/MatterDimmablePlugin/MatterDimmablePlugin.ino
:language: arduino
1 change: 1 addition & 0 deletions docs/en/matter/matter.rst
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,7 @@ The library provides specialized endpoint classes for different device types. Ea
* ``MatterFan``: Fan with speed and mode control
* ``MatterThermostat``: Thermostat with temperature control and setpoints
* ``MatterOnOffPlugin``: On/off plugin unit (power outlet/relay)
* ``MatterDimmablePlugin``: Dimmable plugin unit (power outlet/relay with brightness control)
* ``MatterGenericSwitch``: Generic switch endpoint (smart button)

.. toctree::
Expand Down
Loading
Loading