How to enable MAC Address Filter via API

I was able to add a MAC address to "MAC Address Filter" list in /cgi-bin/luci/admin/network/wireless.

Does anyone have an example or hints on how to do this via API/JsonRPC?

Thank you in advance!

Found a solution:

"""
https://github.com/openwrt/luci/blob/master/docs/JsonRpcHowTo.md
opkg update
opkg install luci-mod-rpc luci-lib-ipkg luci-compat
/etc/init.d/uhttpd restart
"""
import httpx


class Router:
    def __init__(self, username, password):
        self.session = httpx.Client(
            base_url="https://192.168.10.1/cgi-bin/luci/rpc/", verify=False
        )
        self.login(username, password)

    def login(self, username, password):
        self.request(
            "auth", {"id": 1, "method": "login", "params": [username, password]}
        )

    def request(self, path: str, payload: dict):
        response = self.session.post(path, json=payload)
        assert response.status_code == 200

    def uci_request(self, payload: dict):
        # UCI (Unified Configuration Interface)
        return self.request("uci", payload)

    def disable_mac_filtering(self):
        # Disable "MAC Address Filter"
        self.uci_request(
            {"method": "delete", "params": ["wireless", "default_radio0", "macfilter"]}
        )

    def enable_mac_filtering(self, mac_addr):
        self.uci_request(
            {
                "method": "set",
                "params": [
                    "wireless",
                    "default_radio0",
                    "macfilter",
                    "deny",  # allow all except
                ],
            }
        )
        self.uci_request(
            {
                "method": "set",
                "params": [
                    "wireless",
                    "default_radio0",
                    "maclist",
                    [mac_addr],
                ],
            },
        )

    def apply_changes(self):
        self.uci_request(
            {
                "method": "apply",
                "params": [False],  # rollback=False
            },
        )


router = Router("root", "*********")
router.enable_mac_filtering("C4:35:D9:9F:74:BF")
# router.disable_mac_filtering()
router.apply_changes()