The ideal physics for your lamps is probably rigid body physics. It is possible to combine these with soft body/cloth physics, but the philosophies and techniques are different.
In order to anchor these lights as rigid bodies to the line, you'll first have to make an "anchor" body to hold them there. Create a cube (or any solid mesh, doesn't matter) at the point where they hang from the line, give it rigid body physics, and then check the "animated" trait in properties/physics/rigid body/settings. "Animated" means it's under your control, so, you'll need to do something to make it move with the cloth physics mesh. One way to do this is via vertex parenting (I parented it vertex triangle to three points in a cloth strip), but if you'd rather, your technique of copying location from vertex groups is fine as well.
Disable rendering on these anchor bodies. I set mine to display as only wireframe as well.
Next, you can give the lamps themselves rigid body physics. Default settings are fine, although you'll want to make sure that the origins of the objects lie somewhere near the middle of their volume (the origin is the center of mass.) Remove any constraints or parenting from these objects if you have any.
Next, you'll need constraints so that your lamps stay attached to the anchors. For each anchor body, create an empty at its location, then give the empty Rigid Body Constraint physics. Set these to "point" type instead of the default "fixed". Then, in the Objects subsection, specify your anchor object as the first body and your lamp object as the second body. These empties should remain unparented and unconstrained; their positions won't make any sense during your animation, because it's their relative orientation at your first physics frame that determines how they work. (As point constraints, they're going to try to keep your lamps on a spherical shell around the anchor, and exert physics forces as needed to do that.)
Here's it after a few frames, with some pinned windows to demonstrate physics settings:

Note: what's happening here is that Blender is running your cloth physics, and only afterwards, running your rigid body physics using the positions provided from the cloth physics. Don't imagine that the hanging lamps will exert force back on the cloth; it doesn't work that way.