Which Piston Ran


This is not a piston design request, but rather a proof of concept. I have several pistons in WebCore. A lot of them I have a way to know when the push notification, Echo Speaks or another execution happens which piston ran but not all (since I have added to my automation over time). Since there is no Find and Replace function in Webcore, I was wondering if it was possible to have a way to track the pistons that ran (by name, not execution).

I want to avoid going into the logs (which is why I am posting this idea) and would like to capture the executed piston to load it to an array (if possible, I don’t use Arrays much) and have it spit out which piston ran (with time stamp) and post to a Google Sheet?


There are execution events in the location logs.


Thanks. As i mentioned though I do not want to have to look at logs. I want to write the executed piston to a spreadsheet (or another option).


@E_Sch’s suggestion works great to see all the action from your hub… Just be aware that it lists every single little tiny action, so the list can get very long in a short period of time

For a single event, you can track to see what piston changed a device by going to:
IDE > My Devices > Device in question > List Events

If you want more of a birds-eye-view (summary), you can add a single command to every piston that writes X to a text file, or spreadsheet etc.

It is a whole lot of work though, just to avoid looking at a log.


A piston can subscribe to the piston execution. However it may run a lot (including logging itself running). You may want to write such app as a groovy app to avoid the ‘infinite loop’


Can this write to the same file like a google sheet? or would it be individual files. I understand the work involved and your warning.


Any piston should be able to write to the same file, if that is your intention.


Google Logger Smartapp with Expressions works perfect for this.


If you are referring to Simple Event Logger, just keep in mind, unless something changed:

  • You can set the run interval to 5 Min, 10 Min, 15 Min, 30 Min, 1 Hour, 3 Hour
  • When it runs, it retrieves up to 50 events for each device since the last time it ran.

This means it is not triggering when events happen. It is only logging events afterwards.
(so recent events will never be seen, until enough time has passed)


I am using this one looks to be a different implementation