RM 5.1 Help with rule structure "WHILE"

I have Y Racine's MyEcobeeInit installed in my HE. I'm trying to write a 5.1 rule to do this:

At 5:30 AM, set a hold on my Ecobee thermostat at 77F
WHILE bathroom thermometer is < 80F
Once bathroom reaches 80F or Ecobee climate changes to "telework" END hold/resume program.

I'm having a tough time figuring out how to do it. I'm not looking for someone to write it for me, but maybe some pointers? I'm getting better at simple rules, but so far this exceeds my skill set.

Use 'Wait for rule', not While.

The Wait rule would be bathroom thermometer is < 80F OR Ecobee climate changes to "telework". After that would be the End Hold, etc.

So I thought I had this figured out, but somehow the Ecobee doesn't resume program once the climate changes to "telework". Here's what I have:

I've tweaked it some from my original question. Basically, at 5:30 AM I set the heat to 79 so that the furnace comes on. Once the bathroom reaches 80, it reduces the hold temp to 73. Then once the climate changes to Telework, it should resume program.

Is it "telework" or "Telework"?

It's "Telework", sorry I was sloppy.

I don't see where you ever set 'climateName' to an attribute from Ecobee. Is that in some other rule?

Oh, is that itself an attribute? If so, show the Events log from the Ecobee device page Events button.

Today it looks like the rule ran to the point of resuming program, but it didn't resume. I'll have to watch it again tomorrow. Earlier this week, I wasn't seeing the "resumeprogram" at all.

app:2692021-10-28 08:02:42.025 am infoAction: END-IF

app:2692021-10-28 08:02:39.936 am infoAction: resumeProgram() on My ecobee Main Floor

app:2692021-10-28 08:02:39.880 am infoWait over: My ecobee Main Floor climateName Telework

app:2692021-10-28 08:02:39.848 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: My ecobee Main Floor climateName Telework

app:2692021-10-28 08:00:01.896 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Predicate Rule now false

app:2692021-10-28 07:03:56.808 am infoAction: Wait for event: My ecobee Main Floor is climateName(Sleep) contains Telework

app:2692021-10-28 07:03:55.935 am infoAction: setHeatingSetpoint(73) on My ecobee Main Floor

app:2692021-10-28 07:03:55.842 am infoWait over: Main Floor:Master Bath thermo temperature 81.2

app:2692021-10-28 07:03:55.645 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 81.2

app:2692021-10-28 06:53:56.017 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 79.5

app:2692021-10-28 06:48:55.484 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 77.8

app:2692021-10-28 06:38:56.105 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 76.9

app:2692021-10-28 06:28:55.959 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 75.8

app:2692021-10-28 06:25:23.535 am infoAction: Wait for event: Main Floor:Master Bath thermo is temperature(73.6) > 80.0

app:2692021-10-28 06:25:22.685 am infoAction: setHeatingSetpoint(79) on My ecobee Main Floor

app:2692021-10-28 06:25:22.679 am infoAction: IF (Main Floor:Master Bath thermo temperature(73.6) <= 80.0(T) [TRUE]) THEN

app:2692021-10-28 06:23:56.336 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 73.6

app:2692021-10-28 06:18:58.034 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Main Floor:Master Bath thermo temperature 74.5

app:2692021-10-28 05:45:13.863 am infoAction: Wait for event: Main Floor:Master Bath thermo is temperature(74.1) > 80.0

app:2692021-10-28 05:45:10.547 am infoAction: setHeatingSetpoint(79) on My ecobee Main Floor

app:2692021-10-28 05:45:10.541 am infoAction: IF (Main Floor:Master Bath thermo temperature(74.1) <= 80.0(T) [TRUE]) THEN

app:2692021-10-28 05:30:18.748 am infoAction: Wait for event: Main Floor:Master Bath thermo is temperature(74.1) > 80.0

app:2692021-10-28 05:30:00.474 am infoAction: setHeatingSetpoint(79) on My ecobee Main Floor

app:2692021-10-28 05:30:00.451 am infoAction: IF (Main Floor:Master Bath thermo temperature(74.1) <= 80.0(T) [TRUE]) THEN

app:2692021-10-28 05:30:00.307 am infoAdjust Ecobee - Getting Dressed (Heat Mode) Triggered

app:2692021-10-28 05:30:00.297 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Triggered at Certain Time

app:2692021-10-28 05:00:00.828 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Predicate Rule now true

app:2692021-10-28 05:00:00.827 am infoAdjust Ecobee - Getting Dressed (Heat Mode): Predicate Rule now true

app:2692021-10-28 05:00:00.613 am infoAdjust Ecobee - Getting Dressed (Heat Mode) event: Predicate Rule now true

app:2692021-10-28 05:00:00.611 am infoAdjust Ecobee - Getting Dressed (Heat Mode): Predicate Rule now true

If you want my help, you have to use screenshots of logs, not copy/paste. I cannot read those.

Got it, sorry. I'll post back tomorrow now that the rule seems to be actually trying to resumeprogram. Thanks.

So everything seemed to be running along fine until 8:02 am. Then the rule just seems to stop executing. I tried to manually run the actions at 8:24 am. At 8:43 am there's a wait starting, but then no more entries.

It appears the the 'contains' Telework Wait is never satisfied. Perhaps you could isolate this for testing purposes. For instance, create a Condition in the Manage Conditions section that is Custom Attribute climate name contains Telework, and see if that is ever true. I can't tell what's going on from what you've shown, other than that wait is still pending, ergo the test must not be yielding true (for reasons I can't tell).