async def _async_service_put_link_paramset(hass: HomeAssistant, service: ServiceCall) -> None:
    """Service to call the putParamset method for link manipulation on a Homematic(IP) Local connection."""
    sender_channel_address = service.data[CONF_SENDER_CHANNEL_ADDRESS]
    receiver_channel_address = service.data[CONF_RECEIVER_CHANNEL_ADDRESS]
    # When passing in the paramset from a YAML file we get an OrderedDict
    # here instead of a dict, so add this explicit cast.
    # The service schema makes sure that this cast works.
    values = dict(service.data[CONF_PARAMSET])
    rx_mode = service.data.get(CONF_RX_MODE)

    if hm_device := _async_get_hm_device_by_service_data(hass=hass, service=service):
        try:
            await hm_device.client.put_paramset(
                channel_address=receiver_channel_address,
                paramset_key_or_link_address=sender_channel_address,
                values=values,
                rx_mode=rx_mode,
                check_against_pd=True,
            )
        except BaseHomematicException as ex:
            raise HomeAssistantError(ex) from ex
Service to call the putParamset method for link manipulation on a Homematic(IP) Local connection.
custom_components/homematicip_local/services.py