No way to tell Amazon Echo Skill is source of a trigger

I'm attempting to improve my app. I've run into a race condition that causes me a lot of problems. I have virtual switches going to - from the Amazon Echo Skill app. When I subscribe to the device I call 'Alexa Mode - Home' - there is no way that I can see to tell if it was triggered by a manual switch on a dashboard in my HE, or if the source came from the Alexa side. Checking with ChatGPT and Gemini - they agree:

a log snip - me trying toggling at Alexa, at Dashboard, on device page.

Hubitat's event object does expose type, including "physical" versus "digital", and also has source; however, Hubitat does not appear to expose the originating app/service (such as Amazon Echo Skill) to a subscribed app's event handler in a reliable, supported way. The device Events page can show which app produced a command, but that information isn't generally available to another app processing the resulting event.

I'm adding a virtual device that I can side monitor so as to validate my source, but thats just a kludge. I thought maybe I could watch the API - does anyone have any ideas or is this really just a feature request?

The app won't tell you, but the device that is doing the triggering in the app will show it under the device's Events tab. It will say what caused the event and and what app responded to it.

I'm not really sure what the source property includes as it is not documented.

However, in your app just log the event itself and you will get the string version listing everything in the event that you have access to, assuming you are trying to figure out the source in your app to take actions from.

Edit: This is all I get from a virtual switch event. Produced By is null:

Test App - Event[archivable=true,data=,dataString=,date=Mon Aug 17 14:52:33 EDT 2026,description=,descriptionText=,device=,deviceId=523,displayName=Test Switch,displayed=true,forceAttributeUpdate=false,hubId=,id=157827082,installedAppId=,isStateChange=true,location=,locationId=,name=switch,producedBy=,source=DEVICE,subscriptionData=,translatable=false,triggeredListeners=,type=,unit=,value=on]