Rule-based ecobee configuration change reverting moments later (not sure the change ever reached the thermostat)

  • Platform information:
    • Hardware: Synology NAS
    • OS: DSM 7.1
    • Java Runtime Environment: Not sure
    • openHAB version: 4.1.1
  • Issue of the topic:

I’m trying to use OpenHab to set the value of ‘Aux Max Outdoor Temp’ on an Ecobee thermostat. The thermostat is currently set to a value of 5 (degrees F) and I want to change it to 20. I have a rule that I think should be effecting this change, and when I run the rule I do see OpenHab change the value, but then a few moments later it reverts back to the prior value.

Here’s what I see in the logs when that happens:

==> /openhab/userdata/logs/events.log <==                                                                                                                                            
2024-01-19 17:57:40.174 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp' changed from 5 °F to 20 °F                           
2024-01-19 17:58:28.172 [INFO ] [openhab.event.ItemStateChangedEvent ] - Item 'Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp' changed from 20 °F to 5 °F

The event monitor shows (in order from bottom to top):

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/statechanged
ItemStateChangedEvent
{"type":"Quantity","value":"5 °F","oldType":"Quantity","oldValue":"20 °F"}

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/stateupdated
ItemStateUpdatedEvent
{"type":"Quantity","value":"5 °F"}

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/state
ItemStateEvent
{"type":"Quantity","value":"5 °F"}

* openhab/things/ecobee:account:3ea3eb9343/status
ThingStatusInfoEvent
{"status":"ONLINE","statusDetail":"NONE"}

* openhab/things/ecobee:account:3ea3eb9343/status
ThingStatusInfoEvent
{"status":"ONLINE","statusDetail":"NONE"}

* openhab/things/ecobee:account:3ea3eb9343/status
ThingStatusInfoEvent
{"status":"ONLINE","statusDetail":"NONE"}

* openhab/things/ecobee:account:3ea3eb9343/status
ThingStatusInfoEvent
{"status":"ONLINE","statusDetail":"NONE"}

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/statechanged
ItemStateChangedEvent
{"type":"Quantity","value":"20 °F","oldType":"Quantity","oldValue":"5 °F"}

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/stateupdated
ItemStateUpdatedEvent
{"type":"Quantity","value":"20 °F"}

* openhab/rules/b8488bc8ec/state
RuleStatusInfoEvent
{"status":"IDLE","statusDetail":"NONE"}

* openhab/items/Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp/state
ItemStateEvent
{"type":"Decimal","value":"20"}

* openhab/rules/b8488bc8ec/state
RuleStatusInfoEvent
{"status":"RUNNING","statusDetail":"NONE"}

I am trying to use the GUI to accomplish this, and unfortunately most of the current knowledge available for OpenHab’s ecobee binding references filesystem code/scripts, so I’m checking in here for pointers to what I might be doing wrong.

Here’s the item setup:

The rule I’m trying to fire looks like this:

and that rule’s code looks like:

configuration: {}
triggers: []
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp
      state: "20"
    type: core.ItemStateUpdateAction

I feel like I’m missing a fundamental concept here, … like maybe I’m setting a parameter value here in OpenHab but maybe I’m not actually sending that to the Ecobee? And when OpenHab checks for the value from the thermostat it just smashes my change?

Or, is there something more strange going on that might explain this unexpected, unwanted, and uncommanded reversion?

-Darren

Review Rules | openHAB

postUpdate(<new_state>) - Change the status of an Item without causing any implicit actions…
sendCommand(<new_state>) - Change the status of an Item and trigger potential further actions, e.g. send a command to the linked device/binding.

Updates do not go to the binding. They remain wholly internal to OH. To cause a change of the setpoint on the actual Ecobee device, you must send a command, not post an update.

What’s probably happening is the rule is updating the state of the Item, the Ecobee binding gets an update and updates the state back to the value on the device.

1 Like

Thank you for your reply, it’s kind of you to take the time.

I struggled with how to fill out the ‘send a command’ part, since the prepopulated values are:

ON
OFF
OPEN
CLOSED
UP
DOWN

But I switched it to ‘send a command’, put 20 in there and sure enough, the thermostat now shows that the value has been updated.

configuration: {}
triggers: []
conditions: []
actions:
  - inputs: {}
    id: "2"
    configuration:
      itemName: Ecobee_Thermostat_Entryway_Aux_Max_Outdoor_Temp
      command: "20"
    type: core.ItemCommandAction

Thank you!!

I would suggest not using your email address for your profile name. You can change that in your preferences.

1 Like