Difficulty with MQTT downlink messages

Hello ChirpStack community,
I am new to ChirpStack and to LoRa networking in general. I am attempting to monitor and control some devices through ChirpStack.
My devices successfully join, and I can see uplink messages and internally generated downlink messages from the ChirpStack gateway in my device monitor, in the ChirpStack Applications//Devices/ “Device Data” tab, and in monitoring using mosquitto_sub:
mosquitto_sub -v -t “application/#”
However, I have not been successful at sending downlink messages to my devices. I have tried, for example:
mosquitto_pub -t “application/1/device/3330313557397b19/tx” -h localhost -p 1883 -m ‘{“confirmed”:false,“fPort”:10,“object”:{“digitalOutput”:{“3”:9}}}’
and
mosquitto_pub -t “application/1/device/3330313557397b19/tx” -h localhost -p 1883 -m ‘{“confirmed”:false,“fPort”:10,“data”:AgEKAwEH}’
I can see these messages in the mosquitto_sub monitor running in a separate window, but they do not appear in the “Device Data” monitoring window as a downlink and no packet is received by my device during the Rx window.
I am certain that I am missing something rather simple, but in several days of probing and studying this problem have not been able to determine what that is.
I suspect that there is an authentication mechanism that may be involved, but in attempting to read the documentation of authentication I just become confused.
Can someone please suggest a resource or guide which will provide a step-by-step tutorial or guide to sending downlink messages? Disconnected fragments such as I have found are of little help because I don’t understand the process end-to-end.
Thank you!

I suspect that my issue is related to the [application_server.integration.mqtt] downlink_topic_template or downlink_topic, but I am not sure how to work with these.