What's wrong with this picture?

Why aren’t the conditions being evaluated as true when the schedules are met and why are they being evaluated as true when schedules aren’t being met? It was working for a while.

Triggers Name Description State Last True Last False Colin_Near Colin Far Away is turned off true 2014-01-31 12:47:45.628 2014-01-31 07:13:02.227 Deb_Home Deb Phone Sensor armed is tripped true 2014-02-25 16:55:45.347 2014-02-25 07:52:39.267 Aurora_Home Aurora Cell Phone Sensor armed is tripped false 2014-02-05 16:26:04.255 2014-02-22 19:26:43.570 Schedules Name Type Time Days Random On Delay Off After Type Off Time Off Days Random Off Delay State Last On Last Off Morning_Temp_Weekday Weekly 05:30:00 1,2,3,4,5 None None None false 2014-02-25 05:30:00.102 0 Daytime_Temp Weekly 08:20:00 1,2,3,4,5 None None None false 2014-02-25 08:20:00.100 0 Evening_Temp Weekly 16:00:00 1,2,3,4,7 None None None false 2014-02-25 16:00:00.100 0 Nighttime_Temp Weekly 21:00:00 1,2,3,4,5,7 None None None false 2014-02-24 21:00:00.100 0 Weekend_Morning Weekly 07:00:00 6,7 None None None false 2014-02-23 07:00:00.100 0 Weekend_Evening Weekly 21:00:00 5,6 None None None false 2014-02-22 21:00:00.100 0 Conditions Name Expression State Last True Last False Weekday_Morning Morning_Temp_Weekday true 2014-01-23 05:30:00.120 0 Weekday_Day Daytime_Temp and (NOT Deb_Home) false 2014-02-25 08:20:00.106 2014-02-25 16:55:45.350 Evening_Temp1 Evening_Temp true 2014-01-23 16:00:00.104 0 Nighttime_Temp1 Nighttime_Temp true 2014-01-22 21:00:00.106 0 Weekend_Morning_Temp Weekend_Morning true 2014-01-25 07:00:00.105 0 Weekend_Evening_Temp Weekend_Evening true 2014-01-24 21:00:00.120 0

It’s a work in progress.

The way you are using conditions and timers with NO off time … the conditions will only evaluate to true.

So you need to do one of two things.

  1. Specify an OFF time for your timers.
  2. Rename your conditions to include an underscore as the first character.
    This will change with the next release … There will be a check box to indicate that you want actions to fire every time a condition evaluates to true.

Well. Yep. That was it. Obviously I’m really having a hard time wrapping my head around the _.

Thanks RTS. Again.

Hi

I think I have a similar issue (not sure) but I’ve just transferred my scenes over to PLEG and the conditions with schedules (e.g. EveryDay7AM) are all not firing?

[b]Triggers[/b]

Name Description
KitchenTrip Kitchen - Motion Sensor is tripped
Night Day or Night indicates Night time.
KitchenUntrip Kitchen - Motion Sensor is not tripped

Schedules

Name Type Time Days Random On Delay Off After Type Off Time Off Days Random Off Delay
EveryDay6AM Weekly 06:00:00 1,2,3,4,5,6,7 None None None
EveryDay7AM Weekly 07:00:00 1,2,3,4,5,6,7 None None None
EveryDay12AM Weekly 00:00:00 1,2,3,4,5,6,7 None None None
EveryDay1201AM Weekly 00:01:00 1,2,3,4,5,6,7 None None None

Device Properties

Name Device Name Device Variable
t1 Front Room - Motion Sensor LastTrip
t2 Kitchen - Motion Sensor LastTrip
p1 Conservatory Thermostat CurrentSetpoint

Conditions

Name Expression
KitchenLightOn Night and KitchenTrip
KitchenNightOff Night and KitchenUntrip
TempSetCon EveryDay6AM
PowerUp EveryDay7AM
PowerDown EveryDay12AM
SecurityArm EveryDay1201AM
SecurityDisarm EveryDay7AM

Also if I click the Status button, it opens a page in Safari (iOS) called “about:blank” with nothing on it.?

yeah, you should add an end time to the schedules or change the names like this:

_PowerUp
_PowerDown
_SecurityArm

etc

because of my particular OCD, I really don’t like the underscore prefix so I’ll put an end time to the schedules consistently 5min after the start time, this resets the condition and makes it ready for the next day.

I use Safari on my mac iOS mavericks and don’t have that problem with the status report.

Thanks for the clarity @Bulldoglowell

Everyone, please have patience with he here. I know many here have a background in computer science but I have nothing of the sort. The terminology used to describe the functionality of the PL plguins is foreign to me. To me a ! is simply a symbol appended to a sentence to indicate that the author intends the statement to carry some kind of enthusiasm. Placing one before a statement confuses the hell out of me.
I simply can’t seem to wrap my head around this. I understand that the schedule, having no specified end time, will remain true once it occurs until… well I don’t know when, and this is why my scenes were messed up. I still don’t properly understand HOW they were messed up though. Why would they not fire? The schedule was true right?

Here’s an other example of how I’m screwing this up: I have a scene which fires when I enter my PIN at a lock but only if the Mrs. isn’t home as shown by a ping sensor for her phone. Something like:

my_PIN_entered and (NOT Mrs_Home)

So I come home, enter my PIN at the door and nothing happens because she’s there. Then hours later her phone disconnects from the network for a brief moment because she roams from one WiFi AP to another and the scene runs. Check boxes? Underscores? I’m completely lost. And I’m under fire! She hates the TTS!

With the PIN used to unlock, once that happens, the lock will remain in that state. So if you have a condition that puts that with another action like

DoorUnlockedWithPin AND WiveLeftHouse

that DoorUnlockedWithPin is sitting there ready for that to happen.

So, try to make sure that the DoorUnlockedWithPin just happened.

DoorUnlockedWithPin and (DoorUnlockedWithPin,Now<30)

This leaves DoorUnlockedWithPin valid for 30 seconds after the door was unlocked with the PIN

and then couple that with your wife being away:

WiveLeftHouse AND DoorUnlockedWithPin and (DoorUnlockedWithPin,Now<30)

!Something is exactly the same as NOT Something or the state of Something equals FALSE

@S-F
First off I would not experiment with your Wife’s phone or TTS in public areas … Test in your man cave … and when thing work … then expand

You can learn how to use the tools available to you (LUA and/or PLEG) or you can copy past solutions from others.
In the latter case you are applying a solution to a potential different set of requirements.
If you customize the solution, without totally understanding how it works … you might break the solution.

So my suggestion is test first.
People here are happy to help with a solution. Make sure you provide complete details. When something does not work
Explain in detail what you have and what is not working … i.e. what you did and what happened and what you expected.

The ! character means NOT, != means not equal.

Ahh I see what you’ve done there Bulldoglowell. I wouldn’t have thought of that.

But… if I put a _ before the condition name (or now uncheck the box?) it will only be true the first time the PIN is entered and then reverts… ?

I don’t believe that is the way it works. The underscore prefix is for a Schedule function.

If you create a Condition with the “_” prefix in its name, that condition will fire every time vera crosses that schedule start time, even if there was no end time specified in the Schedule.

edited to say Fire instead of return true

Building on Richard’s advice, you may also want to switch your method for determining if Wifey is home. I futzed with your problem for a while and instead did the following:

Created a Virtual Switch to toggle when Wife is away.

Use my Ping Sensor to determine if Wife is present

Added a timer in PLEG to make sure that away is really away rather than a momentary bad reading

Trigger

WifeOnNetwork Ping Sensor indicates device present

Condition

WifeAway = !WifeOnNetwork AND (!WifeOnNetwork,Now>12:00)
WifeHome = WifeOnNetwork

Actions

WifeAway Turn off Wife’s Virtual Switch
WifeHome Turn on Wife’s Virtual Switch

FYI !WifeOnNetwork AND (!WifeOnNetwork,Now>12:00) says my wife’s phone is currently not connected to the network and it has not been connected to the network for greater than 12 minutes

She has an iPhone and it seems only to connect to the wireless every 6 or 8 minutes. You may have to play with that number. It took me a while to get it just right.

[quote=“Bulldoglowell, post:11, topic:179776”]I don’t believe that is the way it works. The underscore prefix is for a Schedule function.

If you create a Condition with the “_” prefix in its name, that condition will fire every time vera crosses that schedule start time, even if there was no end time specified in the Schedule.

edited to say Fire instead of return true[/quote]

Are you sure it only deals with schedules?

From:

Becket, R. (2014). PLEG Basics - An Introduction to the Program Logic Event Generator V5.9.
Retrieved February 28, 2014, from http://forum.micasaverde.com/index.php?action=dlattach;topic=21603.0;attach=15233

If the name of the Condition starts with an underscore, e.g. _NEName, it will fire every time the value of its expression changes and is not zero. Its timestamp will be the time when this last happened.

This is what lead me to my previous statement of:

so I may be wrong, it happens, that is why I used the expression “I don’t believe”.

it may work that way, I just don’t know.

Personally, I have never seen the underscore recommended to be used for conditions that did not include a Schedule.

Naming a condition which relies only on inputs Properties and/or Triggers do not need the underscore because they are either returning a value or true/not true respectively. The condition only changes state when the combined Properties and/or Triggers result in a change of state.

Schedules only change their state at the moment of their beginning or at the moment of their end.

Another example of needing the underscore (pre 6.0) or the Repeat checkbox post 6.0 is for keypad codes.

If the same person enters a keypad code on a lock … you want the actions to fire. Otherwise it would only fire when a different keypad entry is selected.

You can decide if you need them by looking at the status report … When something did not work as expected. If the the actions did not fire and the conditions are true … and it was true before the event you expected it to fire … than you need the underscore (pre 6.0) or the Repeat checkbox post 6.0.

You probably do NOT want it if you are using NOW in an expression … as it might fire the actions every minute.

cannot wait to try the new version. a lot of new features.

@ All,

Thanks for the patience and help. So PIN codes and schedules (that don’t have a specified OFF time) need the check box checked. I think I’ve processed the how and why of this.

@ Bulldoglowell,

I hope I didn’t come across as rude or ungrateful. I’m just trying to understand what’s happening here.

On a slightly related note, regarding the setting of a virtual switch mentioned earlier, I’m trying to get this working but for multiple ping sensors.

Here’s what I’ve got so far that isn’t working:

!Daughter_Home or !Wife_Home and ((!Daughter_Home) or (!Wife_Home); NOW > 12:00:00)

12 hours. Sets the house to bachelor mode. Why isn’t this working? I’ve tried all different combinations of parentheses to no avail.

I am not certain but I don’t think you can mix conditional logic with sequences

Try

Condition

EitherNotHome = !WifeHome OR !DaughterHome

And

EitherNotHome AND (EitherNotHome; NOW>12:00:00)

Or

!WifeHome AND !DaughterHome AND (EitherNotHome;NOW>12:00:00)

says Wife not at home and daughter not and home and neither have been home for more than half a day.

instead of

!Daughter_Home or !Wife_Home and ((!Daughter_Home) or (!Wife_Home); NOW > 12:00:00)

And you didn’t come off rude. We are all learning. Helping out lets me practice.

So this is two conditions? I wasn’t aware that a condition could be used in another condition. Am I correct in that this is what you’re saying?

Yeah I know. 12 hours. the point is that if they’re gone for some period of hours I know they’re going to be out for a while and I do things that would offend their delicate sensibilities. Doesn’t matter if my boys are here or not. Nothing bothers them.

EDIT:

Yep. Two conditions. Seems to be working. Never knew that. What else!? Can inputs be shared between PLEG instances?

[quote=“S-F, post:19, topic:179776”]So this is two conditions? I wasn’t aware that a condition could be used in another condition. Am I correct in that this is what you’re saying?

Yeah I know. 12 hours. the point is that if they’re gone for some period of hours I know they’re going to be out for a while and I do things that would offend their delicate sensibilities. Doesn’t matter if my boys are here or not. Nothing bothers them.

EDIT:

Yep. Two conditions. Seems to be working. Never knew that. What else!? Can inputs be shared between PLEG instances?[/quote]

“I just dropped by to see what condition my condition was in” Kenny Rogers

yeah, it is cool. Plus, you can use inputs from other PLEG devices. I noticed that with name conflicts and didn’t realize it worked that way until I saw Richard’s recent remarks.