AFAIK the whole point of a VLAN is that the rest of the network outside your own VLAN is invisible. The only place where other traffic is visible is on the router itself.
homelab
Right. Most of my VLANs are set up that way; they're silos. The VLAN that this is running on is the "management" VLAN that can see the other ones
Most vlans have different network address ranges. So broadcast and discovery packets on one range won't go over to the other. Well you can connect to them directly with IP addresses, whatever discovery mechanism they're using isn't going across the network boundary.
I didn't have to read far into the documentation of pi alert to find your issue. Scans and detection is done using ARP scans. ARP or address resolution protocol operates on layer 2. VLANs span layer 3 boundaries, so: layer 2 traffic does not traverse VLANs.
Additional scanning (by pi alert) is complimentary to the ARP scan. Which to me reads like ARP scans always need to work.
The easy solution is to use a trunk port into the system, and set up multiple VLAN sub interfaces on the NIC in the OS to handle each VLAN. Alternatively, give the VM multiple NICs, one for each VLAN you wish to scan.
The bottom line is that the pi alert system needs to have a direct network link into each network that it is trying to monitor.
Was going to suggest opening an issue on the project page, but there's this, was that you?