If the other side of a relay is an MCU, Arduino as an example, it is possible to tell whether a smoke or CO is detected on the interconnect line. When smoke is detected, the line will be pull up to 9V and stay there as long as a smoke is detected.
CO detection may be non standard use of the interconnect line. Basically, the interconnect line is used to send a switching signal. The line will switch between high and low unlike when it detect a fire/smoke a constant high pull. This signal may be intended to be able to send code for different type of faults. The signal is relatively short so that the old continuous pull up the line for the smoke detection does not get mistaken as this newer signal.
Today, the only signal is a CO signal from my personal observation. Therefore the signal is not important. If you sample the interconnect fast enough from the signal transition to high and the last transition to low, the sampling data will tell you whether it is a smoke detected or co detected. When the sampled data is all high, it must be a smoke detected. If the signal has any low value during this sampling period, you know that it is a non smoke detected. Today, this may be assumed a CO detected.
BTW, While studying the signal, I believe that there are CO specific relay. I forget about where I found it. If one have both the smoke and co relay and use 2 different GPIO pin, one can differentiate the CO and Smoke events. This is another alternative.
I make a Zigbee Environment sensor that connect to the interconnect smoke detector a while back. I agree with op that Zigbee smoke detector is kind of rare.
Thanks
Iman