CoRE - Get peer assistance here with setting up Pistons

OK, here it is again, no luck with Kitchen Light



Rick

Your first piston will immediately lock the door when it is closed. Delete the using location wait 5 seconds actions. Under the side door lock action use the wait command there. Then add the lock command

using side door…
wait 5 seconds
lock

On your second piston use a trigger. Time happens at 15 min before/after sunrise.

Your or-if doesn’t have anything to tell it not to fire outside any range. You just have it set to whenever skybell hd goes inactive. So add a condition in there to restrict when it goes off.

Try…

IF
Patio Door stays open for X minutes...
Then
Using Thermostat...
  > Turn off

Thanks! I missed the stays open condition.

Then if I want the heat to turn back on when the door closes?

In that situation, I will have to use a variable to keep track that the thermostat was turned off by automation so that someone just closing the door for normal use will not turn the thermostat on, that would not be good lol. I think this will work, not tested :slight_smile:

IF
Patio Door stays open for X minutes...
Then
Using Thermostat...
  > Turn off
  > Set boolean variable autoThermostat true

BUT-IF
Patio Door changes to closed
AND
Boolean variable autoThermostat is true
Then
Using Thermostart...
  > Turn on
  > Set boolean variable autoThermostat false

Thanks @c1arkbar! So I fixed the Auto Door Lock as you mentioned:

However, I’m unsure if the Outside Night Light automation is correct:

Change from latching to or-if. Should allow you to choose the same trigger as in the original if

Perfect, thanks so much!

How do I do a BUT-IF?

Latching piston type.

:slight_smile: thanks!!!

@ady624, So where do I go from here?

Rick

Throw your kitchen light away!

Better yet, throw out the kitchen… LOL

@ady624. The Piston fired again just now at 7:20 as scheduled, no light. Here are the IDE logs


Piston

Thanks, Rick

@Toy4Rick On the second action, set TOS to None. Then your light will work. Second action is overriding actions on the first one, basically cancelling them.

Thanks @ady624, the light works now :slight_smile:

What’s interesting is the first action is running to some degree as I see the mode change from Night to Home every morning when the Piston does run.

Anyway, thanks very much
Rick

location tasks are not overridden but the kitchen lights are, because the very next action includes kitchen lights again.

After much googling I don’t think this is possible, but I can’t find it definitively either way

I am trying to use a virtual dimmer to control another dimmer BUT I can’t use things like Dim with Me because I have a sequence of things that need to happen when I turn the virtual dimmer on (its for garden lights, and they have to turn on then off then on to latch the PIR to stay on). Also, setting a level also turns a dimmable switch on, which I dont want to happen due to the need for that latching sequence when turning on

As such, I need two pistons that do

if virtual_dimmer changes to on
then
…turn dimmable_switch on
…wait 1s
…turn dimmable_switch off
…wait 1s
…turn dimmable_switch on
…set dimmable_switch.level = virtual_dimmer.level
end

if
…AND (
…virtual_dimmer.level changes
…virtual.dimmer is on
…dimmable_switch is on
…)
then
…dimmable_switch.level = virtual_switch.level
end

However I can’t find a way to match levels, either by way of variables or functions?

Thanks,

Chris

You can accomplish everything you posted using a single or-if piston. You had everything basically the way it should have been in a piston written out. Probably just didn’t know about the saving and loading attribute part.

The only thing this won’t do is turn off, ever. You did not have that listed so I didn’t incorporate it. Assuming it will be something you need it to do the easy way will be to set a timer on this. In the main IF block actions. Just add a wait xx min/hours/etc and then a turn off.

if for whatever reason you can not see an action listed above in your selection, enable expert mode under general CoRE settings

Yeah the bit I’m missing is the saving/loading attributes. You know when you look at something and wonder how you never saw the option ‘save attribute to variable’.

What I was doing was thinking of it another way, rather than ‘with device x save attribute to variable y’ I was thinking I was looking for an action to set y= x.attribute.

Well thats solved, thanks!