Tempertaure Monitor

I use the flow to monitor the temperature of my freezer. I have an esp8266 flashed with Tasmota. It has a ds18b20 temperature probe attached to it. The flow uses various inputs from Homeassistant to set the alert set point, notification email address, and the ability to turn alerts on/off.

[{"id":"0eabb1c1dd7f41e3","type":"server-state-changed","z":"fa8c792df7381a83","name":"Alert","server":"8cd93e38.ec024","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_number.ds18b20_hi_fault","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","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":"topic","propertyType":"msg","value":"set_point","valueType":"str"}],"x":70,"y":140,"wires":[["e11928be3aab161a"]]},{"id":"714b7238ec28886b","type":"server-state-changed","z":"fa8c792df7381a83","name":"temp","server":"8cd93e38.ec024","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"sensor.basement_freezer_ds18b20_temperature","entityidfiltertype":"exact","outputinitially":true,"state_type":"num","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":"topic","propertyType":"msg","value":"temperature","valueType":"str"}],"x":70,"y":60,"wires":[["e11928be3aab161a"]]},{"id":"e11928be3aab161a","type":"join","z":"fa8c792df7381a83","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":190,"y":100,"wires":[["eb82d65a7322f078"]]},{"id":"eb82d65a7322f078","type":"function","z":"fa8c792df7381a83","name":">=","func":"if (msg.payload.temperature >=  msg.payload.set_point) {\n    msg.topic = \"true\";\n} else {\n    msg.topic = \"false\";\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":310,"y":100,"wires":[["e65b04abeb235e72"]]},{"id":"6a6e31eccff4db8b","type":"trigger","z":"fa8c792df7381a83","name":"Wait","op1":"","op2":"Higher more than 2 hours","op1type":"nul","op2type":"str","duration":"2","extend":false,"overrideDelay":false,"units":"hr","reset":"","bytopic":"all","topic":"topic","outputs":1,"x":590,"y":100,"wires":[["d9f4ed7e3ec7e50a"]]},{"id":"bcc6b747a38650d1","type":"change","z":"fa8c792df7381a83","name":"reset","rules":[{"t":"set","p":"reset","pt":"msg","to":"reset","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":550,"y":160,"wires":[["6a6e31eccff4db8b"]]},{"id":"e65b04abeb235e72","type":"switch","z":"fa8c792df7381a83","name":"","property":"topic","propertyType":"msg","rules":[{"t":"eq","v":"true","vt":"str"},{"t":"eq","v":"false","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":430,"y":100,"wires":[["6a6e31eccff4db8b","af8096d159d968de"],["bcc6b747a38650d1"]]},{"id":"af8096d159d968de","type":"rbe","z":"fa8c792df7381a83","name":"","func":"rbe","gap":"","start":"","inout":"out","septopics":true,"property":"topic","topi":"topic","x":550,"y":40,"wires":[["19c2a9c6644a309f"]]},{"id":"19c2a9c6644a309f","type":"template","z":"fa8c792df7381a83","name":"format","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Chest freezer temperature is {{payload.temperature}} F","output":"str","x":710,"y":80,"wires":[["ce47699c265be143"]]},{"id":"d9f4ed7e3ec7e50a","type":"template","z":"fa8c792df7381a83","name":"format","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Chest freezer has been above {{payload.temperature}} F for 2 hours","output":"str","x":710,"y":120,"wires":[["ce47699c265be143"]]},{"id":"ce47699c265be143","type":"join","z":"fa8c792df7381a83","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"2","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":830,"y":120,"wires":[["6d794f6f78fb9852"]]},{"id":"6d794f6f78fb9852","type":"change","z":"fa8c792df7381a83","name":"","rules":[{"t":"move","p":"payload.email","pt":"msg","to":"to","tot":"msg"},{"t":"set","p":"topic","pt":"msg","to":"ALERT! FREEZER TEMP HIGH!","tot":"str"},{"t":"move","p":"payload.true","pt":"msg","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":980,"y":120,"wires":[["507ab5da76c72a3b"]]},{"id":"5b131d15e4cfd8a0","type":"server-state-changed","z":"fa8c792df7381a83","name":"email to","server":"8cd93e38.ec024","version":3,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_text.email","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":"topic","propertyType":"msg","value":"email","valueType":"str"}],"x":710,"y":160,"wires":[["ce47699c265be143"]]},{"id":"507ab5da76c72a3b","type":"api-current-state","z":"fa8c792df7381a83","name":"email on/off","server":"8cd93e38.ec024","version":2,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","entity_id":"input_boolean.ds18b20_email","state_type":"str","blockInputOverrides":false,"outputProperties":[],"override_topic":false,"state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","x":1150,"y":120,"wires":[["7561add120c9a204"],[]]},{"id":"8cd93e38.ec024","type":"server","name":"Home Assistant","version":1,"addon":true,"rejectUnauthorizedCerts":true,"ha_boolean":"y|yes|true|on|home|open","connectionDelay":true,"cacheJson":true}]

Flow Info

Created 3 years, 9 months ago
Rating: 1 1

Owner

Actions

Rate:

Node Types

Core
  • change (x2)
  • function (x1)
  • join (x2)
  • rbe (x1)
  • switch (x1)
  • template (x2)
  • trigger (x1)
Other

Tags

  • ds18b20
  • Temperature
  • Freezer
Copy this flow JSON to your clipboard and then import into Node-RED using the Import From > Clipboard (Ctrl-I) menu option