Condition not evaluating correctly

Hi Rigpapa,
i have been following the “Thermostat Programming” thread closely so i can recreate all my Lua logic in a reactor. while i was doing that, i noticed that one of the conditions evaluates to true, but does not show triggered as true (i.e. shows an X in the summary). perhaps i’m doing something wrong, but thought i’d check with you.

EDIT: finally figured out how to add the image…

As always… logic summary… :slight_smile:

oops, sorry, i had hit send too soon before adding both the image and summary. here it is:

*************************************************** REACTOR LOGIC SUMMARY REPORT ***************************************************
   Version: 3.4 config 19226 cdata 19082 ui 19237 pluginDevice 224
    System: Vera version 1.7.4453 on Sercomm G450; loadtime 1578235729; systemReady 1578235787; Lua 5.1; JSON dkjson 1.2
Local time: 2020-01-05T10:39:10-0500; DST=0; Nags Head, North Carolina United States
House mode: plugin 1; system 1; tracking on
  Sun data: { "stamp": 2020005, "civdawn": 1578224699, "nautdawn": 1578222786, "sunset": 1578261700, "nautdusk": 1578265314, "latitude": 35.9574, "astrodusk": 1578267179, "longitude": -75.6241, "civdusk": 1578263401, "astrodawn": 1578220921, "sunrise": 1578226400 }
  Geofence: not running
====================================================================================================================================
DN Therm Reactor (#315)
    Version 19082.55 01/05/20 09:18:39
    Message/status: Disabled
    Variable/expressions
       0: heat_set_point            [last "55"(string)]
       1: cool_set_point            [last "85"(string)]
       2: heat_limit               max(winter_Home ,heat_set_point) [last 71(number)]
       3: cool_limit               min(summer_Home,cool_set_point) [last 73(number)]
       4: summer_Home              73 [last 73(number)]
       5: summer_Night             75 [last 75(number)]
       6: summer_Away              78 [last 78(number)]
       7: summer_Vacation          85 [last 85(number)]
       8: winter_Home              71 [last 71(number)]
       9: winter_Night             68 [last 68(number)]
      10: winter_Away              65 [last 65(number)]
      11: winter_Vacation          55 [last 55(number)]
    Condition group "Demo Sensor" (NUL)  false as of n/a <root>
      Z-F-group "Call Cooling" (AND)  false as of 23:20:08 <grpmf080s7>
      |     &-T-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:HVAC_UserOperatingMode1/ModeTarget <> CoolOn [heaton at 23:20:08; T/T as of 23:20:08/23:20:08] <condmf09uyv>
      |     &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:TemperatureSensor1/CurrentTemperature >= {cool_limit} for ge 600s [66.50 at 23:20:08; F/F as of 23:20:08/23:20:08] <condmf0azq3>
      Z-F-group "Call Heating" (AND)  false as of 23:20:08 <grpmf085kh>
      |     &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:HVAC_UserOperatingMode1/ModeTarget <> HeatOn [heaton at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgk87tg>
      |     &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:TemperatureSensor1/CurrentTemperature <= {heat_limit} for ge 600s [66.50 at 23:20:08; T/F as of 23:20:09/23:20:08] <condmgk88na>
      Z-F-group "Daytime Home" (AND)  false as of 23:20:08 <grpmgnxatu>
      |     &-F-housemode in 1 [4 at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgnz7f9>
      Z-F-group "Nighttime Home" (AND)  false as of 23:20:08 <grpmgnyamq>
      |     &-F-housemode in 3 [4 at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgnzs6c>
      Z-F-group "Away" (AND)  false as of 23:20:08 <grpmgnypqn>
      |     &-F-housemode in 2 [4 at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgnzyta>
      Z-T-group "Vacation" (AND)  TRUE as of 23:20:08 <grpmgnyyh3>
      |     &-T-housemode in 4 [4 at 23:20:08; T/T as of 23:20:08/23:20:08] <condmgo06sv>
      Z-F-group "Restore Default Temperatures" (NOT OR)  false as of 23:20:08 <grpmgoawxc>
      |     |-F-grpstate (self) (-1) Daytime Home (grpmgnxatu) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgob7u3>
      |     |-F-grpstate (self) (-1) Nighttime Home (grpmgnyamq) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgob8iw>
      |     |-F-grpstate (self) (-1) Away (grpmgnypqn) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08] <condmgob94j>
      |     |-T-grpstate (self) (-1) Vacation (grpmgnyyh3) istrue [true at 23:20:08; T/T as of 23:20:08/23:20:08] <condmgob9pf>
    Activity grpmgnxatu.true
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="heat_set_point", NewValue="{winter_Home}" )
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="cool_set_point", NewValue="{summer_Home}" )
    Activity grpmgnyamq.true
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="heat_set_point", NewValue="{winter_Night}" )
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="cool_set_point", NewValue="{summer_Night}" )
    Activity grpmgnyyh3.true
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="heat_set_point", NewValue="{winter_Vacation}" )
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="cool_set_point", NewValue="{summer_Vacation}" )
    Activity grpmgoawxc.true
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="heat_set_point", NewValue="{winter_Vacation}" )
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="cool_set_point", NewValue="{summer_Home}" )
    Activity grpmgnypqn.true
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="heat_set_point", NewValue="{winter_Away}" )
        Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName="cool_set_point", NewValue="{summer_Away}" )
    Activity grpmf085kh.true
        Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:HVAC_UserOperatingMode1/SetModeTarget( NewModeTarget="HeatOn", NewHeatSetpoint="{heat_limit}", NewCoolSetpoint="{cool_limit}" )
        Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:TemperatureSetpoint1_Heat/SetCurrentSetpoint( NewCurrentSetpoint="{heat_limit}" )
    Activity grpmf080s7.true
        Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:HVAC_UserOperatingMode1/SetModeTarget( NewModeTarget="CoolOn", NewHeatSetpoint="{heat_limit}", NewCoolSetpoint="{cool_limit}" )
        Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:TemperatureSetpoint1_Cool/SetCurrentSetpoint( NewCurrentSetpoint="{cool_limit}" )
    Events
        01/05/20 09:49:02 reload: notice=Luup reload
        01/05/20 09:49:02 disabled at start-up: 
    Devices
        ZWave (1) urn:schemas-micasaverde-com:device:ZWaveNetwork:1 (19/0); parent 0; plugin -
        DOWNSTAIRS_THERM (52) urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1 (5/1); parent 1; plugin -
```

The ReactorSensor will not evaluate conditions when it’s disabled.

sorry, had it disabled for another test. here it is with the reactor enabled and a new logic summary.

logic summary:
*************************************************** REACTOR LOGIC SUMMARY REPORT ***************************************************
Version: 3.4 config 19226 cdata 19082 ui 19237 pluginDevice 224
System: Vera version 1.7.4453 on Sercomm G450; loadtime 1578235729; systemReady 1578235787; Lua 5.1; JSON dkjson 1.2
Local time: 2020-01-05T10:39:10-0500; DST=0; Nags Head, North Carolina United States
House mode: plugin 1; system 1; tracking on
Sun data: { “stamp”: 2020005, “civdawn”: 1578224699, “nautdawn”: 1578222786, “sunset”: 1578261700, “nautdusk”: 1578265314, “latitude”: 35.9574, “astrodusk”: 1578267179, “longitude”: -75.6241, “civdusk”: 1578263401, “astrodawn”: 1578220921, “sunrise”: 1578226400 }
Geofence: not running
====================================================================================================================================
DN Therm Reactor (#315)
Version 19082.55 01/05/20 09:18:39
Message/status: Disabled
Variable/expressions
0: heat_set_point [last “55”(string)]
1: cool_set_point [last “85”(string)]
2: heat_limit max(winter_Home ,heat_set_point) [last 71(number)]
3: cool_limit min(summer_Home,cool_set_point) [last 73(number)]
4: summer_Home 73 [last 73(number)]
5: summer_Night 75 [last 75(number)]
6: summer_Away 78 [last 78(number)]
7: summer_Vacation 85 [last 85(number)]
8: winter_Home 71 [last 71(number)]
9: winter_Night 68 [last 68(number)]
10: winter_Away 65 [last 65(number)]
11: winter_Vacation 55 [last 55(number)]
Condition group “Demo Sensor” (NUL) false as of n/a
Z-F-group “Call Cooling” (AND) false as of 23:20:08
| &-T-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:HVAC_UserOperatingMode1/ModeTarget <> CoolOn [heaton at 23:20:08; T/T as of 23:20:08/23:20:08]
| &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:TemperatureSensor1/CurrentTemperature >= {cool_limit} for ge 600s [66.50 at 23:20:08; F/F as of 23:20:08/23:20:08]
Z-F-group “Call Heating” (AND) false as of 23:20:08
| &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:HVAC_UserOperatingMode1/ModeTarget <> HeatOn [heaton at 23:20:08; F/F as of 23:20:08/23:20:08]
| &-F-service DOWNSTAIRS_THERM (52) urn:upnp-org:serviceId:TemperatureSensor1/CurrentTemperature <= {heat_limit} for ge 600s [66.50 at 23:20:08; T/F as of 23:20:09/23:20:08]
Z-F-group “Daytime Home” (AND) false as of 23:20:08
| &-F-housemode in 1 [4 at 23:20:08; F/F as of 23:20:08/23:20:08]
Z-F-group “Nighttime Home” (AND) false as of 23:20:08
| &-F-housemode in 3 [4 at 23:20:08; F/F as of 23:20:08/23:20:08]
Z-F-group “Away” (AND) false as of 23:20:08
| &-F-housemode in 2 [4 at 23:20:08; F/F as of 23:20:08/23:20:08]
Z-T-group “Vacation” (AND) TRUE as of 23:20:08
| &-T-housemode in 4 [4 at 23:20:08; T/T as of 23:20:08/23:20:08]
Z-F-group “Restore Default Temperatures” (NOT OR) false as of 23:20:08
| |-F-grpstate (self) (-1) Daytime Home (grpmgnxatu) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08]
| |-F-grpstate (self) (-1) Nighttime Home (grpmgnyamq) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08]
| |-F-grpstate (self) (-1) Away (grpmgnypqn) istrue [false at 23:20:08; F/F as of 23:20:08/23:20:08]
| |-T-grpstate (self) (-1) Vacation (grpmgnyyh3) istrue [true at 23:20:08; T/T as of 23:20:08/23:20:08]
Activity grpmgnxatu.true
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“heat_set_point”, NewValue=“{winter_Home}” )
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“cool_set_point”, NewValue=“{summer_Home}” )
Activity grpmgnyamq.true
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“heat_set_point”, NewValue=“{winter_Night}” )
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“cool_set_point”, NewValue=“{summer_Night}” )
Activity grpmgnyyh3.true
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“heat_set_point”, NewValue=“{winter_Vacation}” )
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“cool_set_point”, NewValue=“{summer_Vacation}” )
Activity grpmgoawxc.true
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“heat_set_point”, NewValue=“{winter_Vacation}” )
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“cool_set_point”, NewValue=“{summer_Home}” )
Activity grpmgnypqn.true
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“heat_set_point”, NewValue=“{winter_Away}” )
Device (self) action urn:toggledbits-com:serviceId:ReactorSensor/SetVariable( VariableName=“cool_set_point”, NewValue=“{summer_Away}” )
Activity grpmf085kh.true
Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:HVAC_UserOperatingMode1/SetModeTarget( NewModeTarget=“HeatOn”, NewHeatSetpoint=“{heat_limit}”, NewCoolSetpoint=“{cool_limit}” )
Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:TemperatureSetpoint1_Heat/SetCurrentSetpoint( NewCurrentSetpoint=“{heat_limit}” )
Activity grpmf080s7.true
Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:HVAC_UserOperatingMode1/SetModeTarget( NewModeTarget=“CoolOn”, NewHeatSetpoint=“{heat_limit}”, NewCoolSetpoint=“{cool_limit}” )
Device DOWNSTAIRS_THERM (52) action urn:upnp-org:serviceId:TemperatureSetpoint1_Cool/SetCurrentSetpoint( NewCurrentSetpoint=“{cool_limit}” )
Events
01/05/20 09:49:02 reload: notice=Luup reload
01/05/20 09:49:02 disabled at start-up:
Devices
ZWave (1) urn:schemas-micasaverde-com:device:ZWaveNetwork:1 (19/0); parent 0; plugin -
DOWNSTAIRS_THERM (52) urn:schemas-upnp-org:device:HVAC_ZoneThermostat:1 (5/1); parent 1; plugin -
```

OK, now notice there’s a rolling counter next to it in the Status view. When the timer expires, the state will change. You have a “sustained for” option there.

Not really, that’s why i opened the topic. i hit restart when i enabled it just in case, but it’s been running since that last screenshot.

If you keep restarting it, the timer restarts, too…

d’oh. i thought i had set it to a 5 minute timer… so i kept restarting the reactor whenever it would not evaluate to true… my bad!

All cool! The timer displays were added to 3.4 specifically to help in these situations–imagine before you had no way of knowing how long the timer had run or had to go. But it is pretty subtle, still… maybe I should make use of another color for those rows, or some additional animation…