CoRE - Get peer assistance here with setting up Pistons

You might have a look at zone motion manager, it’s specifically designed to aggregate multiple motion detectors into one virtual motion sensor in several different ways…

2 Likes

That is great advice. I could use your udth… But my goal is to not use virtual switches unless I have to

I tried to create a piston based on what you posted and this is what I came up with. It’s untested and you’ll see the modes are just placeholders since i don’t have any special modes other than the defaults.

Is there any way to use a variable for the length of the wait time? I vary the amount of time of motion sensors inactivity (based on Mode) required to turn off my lights.

Since I don’t believe that a variable can be used, this is what I’ve done:

  1. I have a Piston (that gets triggered whenever the Mode changes) that sets certain variables. One such variable, @lrOffTime, is the amount of time to wait before turning lights off in Living Room.

  2. I have a Piston that sets (and resets) a time variable, @lrTurnOffAt (triggered whenever motion is detected), equal to $now + @lrOffTime.

  3. Then I have a Piston that turns the Living Room lights off when @lrTurnOffAt happens.

If anyone has a way to simplify this, I’d appreciate it.

I see there is a Wait (variable) task.

1 Like

I updated version and now see that Task. Thanks!

1 Like

Are you still experiencing missed schedules? I seem to be. No comments from others in the thread, so I’m wondering if it’s just me.

You’re not alone!

1 Like

I thought this was interesting and others could use it too…

Using the askAlexa/CoRE integration…

In askAlexa:

  • Create a voice reporting macro. Configure it to report the status of your garage door.
  • open the garage door
    —get a pen and paper and get ready to write. Have Alexa run the macro. Write down exactly what she says-----

In CoRE:
Create a new piston. A simple piston will work.

  • Choose the capability to be “ask Alexa macro”
  • choose your askAlexa macro that you just created.
  • scroll down to “set variable on true” and slide to the right the switch for “import event data on true”
  • first action - using garage door: close
  • scroll down to “action restrictions” and do this:

  • and finally set your piston restrictions like this:

Now, when you say, "Alexa, ask home to run the status of the garage door (or the name of your macro), she will tell you.

And if the door is open and it’s after dark, it will automatically close.

3 Likes

@mkmark
Others are also seeing this and ady624 is aware of it.
I read this in another thread and It is an ST issue.

1 Like

[quote=“mkmark, post:450, topic:50187”]
Are you still experiencing missed schedules? I seem to be
[/quote] Yes. I have the simplest piston ever created - @ady624 sample of an hourly time announcement, and it will only go a couple of times before disappearing into the ether. If I open the piston and “DONE” it, it is scheduled properly for a few cycles.

1 Like

tagging @slagle, @jody.albritton to see if they are aware of ticker issues

1 Like

[quote=“danjp, post:416, topic:50187”]I have a few of thes pistons to control my ceiling fan for different temperatures, is there a way I can make this piston inactive for a period of time if someone manually changes the speed?[/quote]Do you mean monitor the physical press of the switch to override the motion? How about this:

Use a separate piston that does nothing but monitor the physical characteristic of the switch - can be either on, off, or changes - and sets a global variable to true if pressed. It then waits however long you want the override to be in effect, then sets the global variable to false. Your main piston simply makes the false state of the global variable a condition of turning the fans on.

I think one thing that happens is the Ticker pushes events sometimes slightly ahead, one - two seconds early. That would make the piston run too early and there is something there… Working on it

2 Likes

Is there a way to send a push notification sending the string content stored in a local variable?

Edited: Never mind. Figured it out… {TmpVar} does the trick.

2 Likes

Hi all, DISCLAIMER: huge noob here and needing some help.

I figured out the beauty of latching pistons for motion-timed auto/off switches to ‘keep the lights on’ by cancelling “off” actions on piston stage (thanks, @michaelahess) so some of my bathroom lights are working.
Now here are two other scenarios that I can’t quite figure out:

First piston problem

  1. I have a motion sensor at the door to my bedroom. When I walk past it, I want it to trigger the bathroom lights on between 4PM and 11PM.
  2. I also have a motion sensor in my bathroom. When movement there stops, I want the lights to wait three minutes then turn off
  3. I also want the lights to stay on while in the bathroom while there, and only turn off after no motion detected after three.
  4. But, how do I ensure when I walk out of the room past the bedroom sensor (that triggered bathroom lights on) doesn’t re-trigger them (at least, for 3 minutes?)

Here’s what I came up with:

Latching piston
IF
Bedroom Motion Sensor is Active
THEN
Turn on Bathroom Switch
BUT IF
Bathroom Motions Sensor is Not Active
THEN
Using Bathroom Switch, wait three minutes (cancel on piston state change)
Turn off Bathrom Swith

I’m stuck now with how to instruct the bedroom motion sensor not to re-trigger the bathroom lights on when I walk past it out the door. Is there some kind of “ignore” task to add to the bedroom motions sensor is active that’s triggered?

Second piston problem and similar to the first. I want to use the bathroom sensor activation to trigger the closet lights Up 20%. I want the lights to then wait a minute, then turn off. But, I also don’t want any new movement on bathroom sensor to keep the lights on. How do I instruct it to response to the first sensor movement only?

TIA for any and all help!

1 Like

Not sure whether “Load attribute from variable” works. If so, I’m having trouble using it and could use some guidance.

Thanks!

Hey Lisa, you can try with a variable :wink:

Right before the Wait three minutes, you need a task “Set boolean variable {pendingOff} = true”. Right after the wait three minutes, you need “Set boolean variable {pendingOff} = false”.

Then in the first IF, add a second condition:
AND Variable {pendingOff} (as boolean) is false

Let me know how that works :slight_smile:

And welcome to the club :wink:

1 Like

What are you trying to do?

So I still can’t get my CoRe Dashboard to work. Is there anyway I can backup my pistons so I can reinstall my app and import them again?