[Beta] - Lync 12, [Alpha] - Lync 6 HTD Lync Whole House Audio Driver

Hey guys, I have writhed a d river for the HTD Lync whole house audio ( tested with Lync 12 and it should work for Lync 6 but I have no way of knowing other then guessing) .
[Alpha] Lync 6
[Beta] Lync 12
I will add more futures to it later but for now I just want to get it out for other people to enjoy it.

Driver can be downloaded here:


If stuff isn't working, let me know.

This is my firs time working with groovy, so be nice :rofl:


Looks really promising. I will have to give this a try this weekend and report back. Thank you for your effort.

Do you have Lync 6 or 12?

I have a Lync 6. I may have to alter the driver to make it work.

It should detect 6 zones and it will create 6 zones automaticly.
It should work just fine. The only issue (if any) would be with queryAll function as controller sends all of the statuses in 5 large messages (Lync 12 sends 3x 1000 bytes, 1x 1024 bytes and 1x 500 bytes). I attempted to guess the values but I have no way of knowing for sure. This just effect initial status detection. If queryAll fails, it will just sync all of the zone statuses with usage (on/off, source changed, etc..).

I installed the parent and zone device drivers and then added them as a virtual device and was able to query all but I cannot get it to create the child zones. Any thoughts?

Under the parent, does it shows firmware , sources , systemId and zones? zones should be created automatically and you don't need to create them manually.

What's in the logs when you firs add virtual device?

Screenshot from 2022-11-12 16-06-05

No it doesn't. Only shows firmware and Lync 6.

OK, looks like your Lync has a space in system ID can you change parent driver processIdMsg method, flowing lines and click save preferences under parent device?

if(systemId == "Lync12") {
        zoneNumber = 12
        inputNumber = 18
    } else if(systemId == "Lync6") {
        zoneNumber = 6
        inputNumber = 12
    } else {
        zoneNumber = 0
        inputNumber = 0


if(systemId == "Lync12") {
        zoneNumber = 12
        inputNumber = 18
    } else(systemId == "Lync6") {
        zoneNumber = 6
        inputNumber = 12

The changes to the code did not seem to work but what did seem to work was just adding a space in between Lync 6 and 12. It at least made the zones and I will do some testing tomorrow.

Cool, let me know if there is anything else that's not working. I have it working well on Lync 12 but Lync 6, I did a lot of assumptions and guessing.
BTW, systemId for Lync12, doesn't have a space, at least my controller didn't reply with one.

@breindl2005 , how's everything working for you? Any more issues with the driver?

1 Like

Awesome, I've been hoping someone else with an HTD Lync system* would develop an integration with Hubitat for a while now.

I will definitely check this out as soon as I can.

*No offense to @thebearmay :wink:

1 Like

So far so good. I have not had the chance to extensively test it but I think that it looks very promising. Thank you for developing this for the community.

Same here. Child zones were created without issue and populated with the appropriate state data. And some brief testing indicates the zone devices are doing what they should.

Thanks @igorkuz!

Are you using Lync 12 or 6?
I'm not sure if you guys have the doorbell, but I've noticed that the state shows a wrong value sometimes. I'm investigating it.

Lync 12 here, no doorbell.

Just curious, does anyone uses mp3 function of the Lync, just don't know if it worth spending time and adding it to the driver.

Not really.

But if you're looking for feature requests :grin::

Maybe add the ability to control groups? Or trigger presets?

Group control is already on my list :wink:

I'm not sure about presets, Are you talking about Party Mode? if yes, then that's on my list as well

Download the Hubitat app