I’m not familar with shelly, but they don’t use MQTT autodiscovery? If they use it you should have a corresponding HA entity or device of each switch. Then you can use built in tools or templates in automations, and don’t directly mess with MQTT. That’s much easier and stable.
If they don’t use autodiscovery you can create HA entites via configuration.yaml manually
That video is till up: https://www.youtube.com/watch?v=Vj04MKykmnQ
She went there, because in the support forum the manufacturer replied that they can only give the source code in person.
Actually that’s acceptable, and does not violate GPL, they just expected that noone will show up in their sweatshop. GPL does not define how you should make the source available.