I installed the mac companion app and I see Active Camera, BSSID, SSDI, active microphone etc. in homeassistant BUT they never change for the network and cameras I use or locations I’m at.
My guess for this is listed below plus questions on how to make companion app more useful for me.
A) I’m mainly on ethernet - is there a way to detect I’m connected to ethernet vs just knowing wifi is turned off ?
B) camera in use is always off (unless I use built in camera); but I have a few cameras attached, and some are virtual. Is there a way to configure or even known which cameras the companion app detects ?
C) microphone is always stated as in use - what actually decide when this is off ?
There is no current connectivity information for ethernet status. You can follow along in this issue on GitHub.
All Cameras that show up in System Reporter (Apple Menu > About > Report) under Cameras should work. I am not sure if virtual cameras apply, it’s possible they’re not part of the same Core Media system. Do they show up there?
Mic is on or off based on whether it’s in use, in a similar way to the camera. Which microphone does it say is in use? I have not seen any reports of this being incorrectly on all the time; if you quit all apps, does it still show in-use?
about camera - no, only the built-in facetime HD camera shows up here. conference apps like zoom, bluejeans, google meet etc. sees the virtual ones so there must be some extra layer. Note: some apps don’t see them by default because apple dissallow virtual ones by default if you have a signed app. In that case I either have to remove the signature for the app (i.e. “codesign --remove-signature “/Applications/Skype.app/Contents/Frameworks/Skype Helper (Renderer).app”” ) or the app itself have to explictly recognize the specific virtual cameras ID’s to allow access. Would be awesome to have virtual cameras included in the list if at all possible. Should I open an issue ?
about microphone - you are right; I hadn’t realized me just running ecamm live picked up the default mic as “being on”. Same issue with cameras though - it doesn’t seem to pickup virtual microphones (like krisp.ai).
Thinking about it, due to my use of cameras ( I run ecamm live and/or OBS more or less constantly) I would need some combination of seeing the virtual camera usage activity + virtual microhone + what is the current focused app to detect if i’m on a conf call or not…
Sure, feel free to open a ticket about the virtual cameras and virtual microphones not showing up. It looks like we need to disable library validation using com.apple.security.cs.disable-library-validation which is documented as:
Typically, the Hardened Runtime’s library validation prevents an app from loading frameworks, plug-ins, or libraries unless they’re either signed by Apple or signed with the same team ID as the app.
Stripping code signing also removes entitlements, so that is probably why it ‘fixes’ other apps. I would not recommend running without code signing, though.
It does note that when this problem occurs something is logged to the Console. Can you verify that this is what’s preventing the cameras/microphones from showing up?