$cid refers to the connection ID of the current script. Connection IDs are unique numbers assigned to every status window (and all the dependend windows like channels).
A timer (if set as default online timer) is associated with a network and a thereby with some connection ID. But the timer is not associated with a specific window (e.g. a channel). Cid's won't help you here.
You inevitably have to tell the command that was triggered by a timer about the channel name on your own. The most easy method is given above: pass the channel name as a parameter.
Other methods may be:
- named timers and you parse the timer name $ctimer, for examplke with token identifiers
- data (like a channel name) is stored separately, e.g. in hash tables or variables (example: %start.channel). BUT: you cannot use a static reference if your script shall work simultaneously for different channels/networks. You'd have to tell the command where to look at in the dataset (example: %start.channel.1 or %start.channel.2 ?), and thus it's inevitable to pass at least an "index number" or so...