[CHRISTMAS THEME DISCLAIMER HERE]
SOGL V0.12, 73 71 70 66 bytes
.”L7:±¹‘Ο4↕ooā.⁾ Y*¾(){"}^ņF⁵),WοΓy⅜¬κ8ΕL▓‚7m~Ε⅝Γ‘7n┼F (=f⁄2=+⁽{@┼
Try it Here!
-4 bytes by looping over a string like (YYY)
like the Charcoal answer
63 bytes would work if 2 didn't need to be handled :/
Python 3, 200 195 191 190 186 bytes
d,*l=" _%c_ , [___] , /:' \ ,|:: | ,\::. / , \::./ , '=' ".split(',')
x=int(input())-2
print(' '*3,-~x*'.--.__.--'+'.\n',d%'(',d%'Y'*x,d%')')
for s in l:print(s,s*x,s)
-1 byte from dylnan
-4 bytes from Rod
Takes input on stdin.
Try it online!
Explanation:
d,*l=" _%c_ , [___] , /:' \ ,|:: | ,\::. / , \::./ , '=' ".split(',')
# d is the second row, without the (, Y, or ) to connect the light to the strand
# l is the third through eighth rows in a list
x=int(input())-2
# x is the number of lights in the middle of the strand
print(' '*3,-~x*'.--.__.--'+'.\n',d%'(',d%'Y'*x,d%')')
# print x+1 wire segments and a trailing dot, starting four spaces over
# on the next line, print the connectors, _(_, then _Y_ * x, then _)_
for s in l:print(s,s*x,s)
# on the Nth line, print the Nth light row, a space,
# x * the Nth light row, a space, and the Nth light row
Additional Festive Version!
Pyth, 113 107 bytes
+" ."*=tQ"--.__.--."++" _(_ "j"_Y_"*Q]*6d" _)_"jms[d;jd*Q]*2;;d)c5" /:' \ |:: |\::. / \::./ '=' "
Try it online!
Not exactly the golfiest version...