How to stop a function after it runs once?

Hello all… I need help with a flow i currently have…

The flow checks current humidity level in the bathroom… after a certain % of humidity, it turns on the extractor fan… However I want to add an alexa TTS announcing it will turn on the fan in a few seconds…
The issue is that it will keep announcing it after every new value the flow receives from the sensor.

How can I get it to just run once before the fan is switched on?

Here is a copy of my flow:

CODE:

[{"id":"671057a46157e955","type":"tab","label":"Kids Bathroom","disabled":false,"info":"","env":[]},{"id":"99a3ea719d15cabe","type":"server-state-changed","z":"671057a46157e955","name":"humudity sensor","server":"f68a11bd.94945","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.kids_bathroom_humidity","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"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":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":90,"wires":[["3c4d71f8893e48a0"]]},{"id":"3c4d71f8893e48a0","type":"switch","z":"671057a46157e955","name":"humidty condition","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"70","vt":"str"},{"t":"lte","v":"60","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":330,"y":90,"wires":[["fbf99f5c10e15a6c","d58aaf9da2f40b63"],["aa01790411d50e35"]]},{"id":"7b306206d802edb7","type":"api-call-service","z":"671057a46157e955","name":"Turn on Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_on","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":685,"y":75,"wires":[[]]},{"id":"aa01790411d50e35","type":"api-call-service","z":"671057a46157e955","name":"Turn off Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":340,"y":165,"wires":[[]]},{"id":"d58aaf9da2f40b63","type":"function","z":"671057a46157e955","name":"","func":"msg.payload =\n\n\"The humidity in the bathroom is\"+\n\"{{states.sensor.kids_bathroom_humidity.state}}\" + \"%\" + \" , \" +\n\n\"I will be turning on the fan shortly\"\n\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":615,"y":150,"wires":[["fabc54b1946e2c86"]]},{"id":"fabc54b1946e2c86","type":"api-call-service","z":"671057a46157e955","name":"Alexa Speak","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"notify","service":"alexa_media_kids_bathroom_echo","entityId":"","data":"{\"message\":\"{{payload}}\",\"data\":{\"type\":\"tts\",\"volume_set\":95}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":700,"y":210,"wires":[[]]},{"id":"fbf99f5c10e15a6c","type":"delay","z":"671057a46157e955","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":525,"y":45,"wires":[["7b306206d802edb7"]]},{"id":"f68a11bd.94945","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"}]

Use a delay node. Set it to rate limit and dump additional messages. Choose a time frame that you know the humidity condition will be cleared.

[{"id":"ae22524311cd4fe4","type":"server-state-changed","z":"671057a46157e955","name":"humudity sensor","server":"f68a11bd.94945","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.kids_bathroom_humidity","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"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":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":240,"y":384,"wires":[["148ec8b146620ca5"]]},{"id":"148ec8b146620ca5","type":"switch","z":"671057a46157e955","name":"humidty condition","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"70","vt":"str"},{"t":"lte","v":"60","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":426,"y":384,"wires":[["8fed97bdf5033ae8","dffe9cd3a4b7d317"],["0516063d141b80dd"]]},{"id":"c3e244e4db3bed94","type":"api-call-service","z":"671057a46157e955","name":"Turn on Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_on","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":822,"y":384,"wires":[[]]},{"id":"0516063d141b80dd","type":"api-call-service","z":"671057a46157e955","name":"Turn off Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":630,"y":432,"wires":[["bef3550815ef6550"]]},{"id":"aaf4dfd22b4813ea","type":"api-call-service","z":"671057a46157e955","name":"Alexa Speak","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"notify","service":"alexa_media_kids_bathroom_echo","entityId":"","data":"{\t   \"message\": \"The humidity in the bathroom is\" & $entities(\"sensor.kids_bathroom_humidity\").state & \"%, I will be turning on the fan shortly\",\t   \"data\":{\"type\":\"tts\",\"volume_set\":95}\t}","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":822,"y":336,"wires":[[]]},{"id":"8fed97bdf5033ae8","type":"delay","z":"671057a46157e955","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":620,"y":384,"wires":[["c3e244e4db3bed94"]]},{"id":"dffe9cd3a4b7d317","type":"trigger","z":"671057a46157e955","name":"","op1":"","op2":"0","op1type":"pay","op2type":"str","duration":"0","extend":false,"overrideDelay":false,"units":"ms","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":640,"y":336,"wires":[["aaf4dfd22b4813ea"]]},{"id":"bef3550815ef6550","type":"change","z":"671057a46157e955","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"true","tot":"bool"}],"action":"","property":"","from":"","to":"","reg":false,"x":832,"y":432,"wires":[["dffe9cd3a4b7d317"]]},{"id":"f68a11bd.94945","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","credentials":{}}]

Thanks!.. looks like that did the trick. :call_me_hand:

[{"id":"99a3ea719d15cabe","type":"server-state-changed","z":"671057a46157e955","name":"humudity sensor","server":"f68a11bd.94945","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.kids_bathroom_humidity","entityidfiltertype":"exact","outputinitially":true,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"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":"topic","propertyType":"msg","value":"","valueType":"triggerId"}],"x":110,"y":90,"wires":[["3c4d71f8893e48a0"]]},{"id":"3c4d71f8893e48a0","type":"switch","z":"671057a46157e955","name":"humidty condition","property":"payload","propertyType":"msg","rules":[{"t":"gte","v":"70","vt":"str"},{"t":"lte","v":"60","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":330,"y":90,"wires":[["fbf99f5c10e15a6c","d58aaf9da2f40b63"],["aa01790411d50e35"]]},{"id":"7b306206d802edb7","type":"api-call-service","z":"671057a46157e955","name":"Turn on Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_on","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":685,"y":75,"wires":[[]]},{"id":"aa01790411d50e35","type":"api-call-service","z":"671057a46157e955","name":"Turn off Fan","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"homeassistant","service":"turn_off","entityId":"switch.kids_bathroom_fan","data":"","dataType":"jsonata","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":340,"y":165,"wires":[[]]},{"id":"d58aaf9da2f40b63","type":"function","z":"671057a46157e955","name":"","func":"msg.payload =\n\n\"The humidity in the bathroom is\"+\n\"{{states.sensor.kids_bathroom_humidity.state}}\" + \"%\" + \" , \" +\n\n\"I will be turning on the fan shortly\"\n\n\nreturn msg","outputs":1,"noerr":0,"initialize":"","finalize":"","x":580,"y":160,"wires":[["28f43afc.e7c666"]]},{"id":"fabc54b1946e2c86","type":"api-call-service","z":"671057a46157e955","name":"Alexa Speak","server":"f68a11bd.94945","version":3,"debugenabled":false,"service_domain":"notify","service":"alexa_media_kids_bathroom_echo","entityId":"","data":"{\"message\":\"{{payload}}\",\"data\":{\"type\":\"tts\",\"volume_set\":95}}","dataType":"json","mergecontext":"","mustacheAltTags":false,"outputProperties":[],"queue":"none","x":1090,"y":160,"wires":[[]]},{"id":"fbf99f5c10e15a6c","type":"delay","z":"671057a46157e955","name":"","pauseType":"delay","timeout":"10","timeoutUnits":"seconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":525,"y":45,"wires":[["7b306206d802edb7"]]},{"id":"e459bb92.4d5818","type":"api-current-state","z":"671057a46157e955","name":"fan off?","server":"9405c3fe.d0a6c","version":3,"outputs":2,"halt_if":"off","halt_if_type":"str","halt_if_compare":"is","entity_id":"switch.kids_bathroom_fan","state_type":"str","blockInputOverrides":true,"outputProperties":[],"for":0,"forType":"num","forUnits":"minutes","override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":920,"y":160,"wires":[["fabc54b1946e2c86"],[]]},{"id":"28f43afc.e7c666","type":"trigger","z":"671057a46157e955","name":"","op1":"","op2":"","op1type":"pay","op2type":"nul","duration":"10","extend":true,"overrideDelay":false,"units":"s","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":750,"y":160,"wires":[["e459bb92.4d5818"]]},{"id":"f68a11bd.94945","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"},{"id":"9405c3fe.d0a6c","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}]
1 Like