Help With Flow to Control Mini split Via ecobee

Hello everyone. this is my first attempt in using node red.
i wanted to control my delia mini split via tuya local with an ecobee (Homekit)
i found a guild online and it works. but the flows (on/off) seems to run every few min at random with out any input from the ecobee. does anyone know or can let me know what I should be looking for to stop this?

[{"id":"9b960ba6ec8b5d78","type":"server-state-changed","z":"eba2a402a50acaee","name":"Downstairs Thermostat","server":"3e79702c.f50e1","version":5,"outputs":1,"exposeAsEntityConfig":"","entityId":"climate.theater","entityIdType":"exact","outputInitially":false,"stateType":"str","ifState":"","ifStateType":"str","ifStateOperator":"is","outputOnlyOnStateChange":false,"for":"0","forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"outputProperties":[{"property":"payload","propertyType":"msg","value":"","valueType":"entityState"},{"property":"data","propertyType":"msg","value":"","valueType":"eventData"},{"property":"temp_set","propertyType":"msg","value":"msg.data.new_state.attributes.temperature","valueType":"jsonata"},{"property":"temp_cur","propertyType":"msg","value":"msg.data.new_state.attributes.current_temperature","valueType":"jsonata"}],"x":120,"y":160,"wires":[["3605e2c60afa31f5"]]},{"id":"e9bc9856ac9ecdc6","type":"api-call-service","z":"eba2a402a50acaee","name":"Turn On AC","server":"59fabb23ba3f0b28","version":5,"debugenabled":false,"domain":"climate","service":"turn_on","areaId":[],"deviceId":[],"entityId":["climate.della_air_conditioner"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":790,"y":80,"wires":[["fd54d63a20b373ea"]]},{"id":"c0e9884093a4a8ee","type":"api-call-service","z":"eba2a402a50acaee","name":"Turn Off AC","server":"59fabb23ba3f0b28","version":5,"debugenabled":false,"domain":"climate","service":"turn_off","areaId":[],"deviceId":[],"entityId":["climate.della_air_conditioner"],"data":"","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":790,"y":180,"wires":[[]]},{"id":"fd54d63a20b373ea","type":"api-call-service","z":"eba2a402a50acaee","name":"Set Temp","server":"59fabb23ba3f0b28","version":5,"debugenabled":false,"domain":"climate","service":"set_temperature","areaId":[],"deviceId":[],"entityId":["climate.della_air_conditioner"],"data":"{\t   \"temperature\": msg.data.new_state.attributes.temperature,\t   \"hvac_mode\": msg.payload\t}","dataType":"jsonata","mergeContext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":960,"y":60,"wires":[[]]},{"id":"3605e2c60afa31f5","type":"switch","z":"eba2a402a50acaee","name":"Cooling?","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"cool","vt":"str"},{"t":"neq","v":"cool","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":300,"y":160,"wires":[["2eb851fcacb03542"],["c0e9884093a4a8ee"]]},{"id":"2eb851fcacb03542","type":"switch","z":"eba2a402a50acaee","name":"Different Temps","property":"temp_set","propertyType":"msg","rules":[{"t":"neq","v":"temp_cur","vt":"msg"},{"t":"eq","v":"temp_cur","vt":"msg"}],"checkall":"true","repair":false,"outputs":2,"x":460,"y":120,"wires":[["ea80ba2a35cff149"],["c0e9884093a4a8ee"]]},{"id":"ea80ba2a35cff149","type":"switch","z":"eba2a402a50acaee","name":"Cool or Off","property":"temp_set","propertyType":"msg","rules":[{"t":"lt","v":"temp_cur","vt":"msg"},{"t":"gte","v":"temp_cur","vt":"msg"}],"checkall":"true","repair":false,"outputs":2,"x":630,"y":100,"wires":[["e9bc9856ac9ecdc6"],["c0e9884093a4a8ee"]]},{"id":"3e79702c.f50e1","type":"server","name":"Home Assistant","addon":true},{"id":"59fabb23ba3f0b28","type":"server","name":"Home Assistant","version":2,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true,"heartbeat":false,"heartbeatInterval":30}]```

After the first node add the following node before cooling. This will stop it from triggering on all updates. It will trigger only when there is a change.

[{"id":"2b7007c656903a0e","type":"switch","z":"ec78a76b.a0a4d","name":"","property":"data.new_state.attributes.hvac_action","propertyType":"msg","rules":[{"t":"neq","v":"data.old_state.attributes.hvac_action","vt":"str"}],"checkall":"true","repair":false,"outputs":1,"x":415,"y":900,"wires":[["0b2d8f61e0612d12"]],"l":false}]

thank you for the response. adding did not seem to change the behavior.

Could you attach a debug node after the small node I supplied. Post a message that gets through the filter, one that should be blocked.

Specificly the old_state vs new_state of hvac_action. They should have different values in order to pass the small node.

image
image

I attached the debug node. it is sending the cool payload

You need to double click on the debug node and set the drop down to complete message obj. The payload message cool it’s the mode the thermostat is in. It could be cool heat auto and off.

When it is set in heat, cool, or auto it is comparing it’s set temp to the room temp. When the room temp crosses the set point threshold, the attribute, hvac_action will change from idle to either heating or cooling.

Once the debug is set to complete msg obj you will have an output like I posted above. Placing the debug after the small node I supplied compare the old and new state of hvac_action.