DS18B20 Temperature Driving Wemo Switch

#21

add some debug nodes, configure them to write to the console and look at the logs

If it’s not turning off, check that you can turn off when using an inject node

#22

It worked!

Thanks for all your help guys!!! Test last night was a success turning on and off.

Does anyone know of a good node to use to pass my temperature payload and time data from each of my probs to a CSV file?

#23

take a look at the csv node and the file node

#24

Yep, tried that and got no where… Searched Google and YouTube with no joy of finding anything useful to help me. Does anyone know of any good tutorials.

I’m taking the sensor data in from three sensors.

Didn’t even have any joy of the file being saved.

#25

Saying that you tried it without any other details doesn’t make it easy to suggest where it went wrong, or to help you to get it to work.

If you want some help please place a debug node after the csv node and paste some examples of the output here

#26

Here you go

#27

Here is the info for my file output node. Just trying to get this all completed before the weekend.

Someone please help me :slight_smile:

#28

If you read the Info panel for the node, you will see that it will only accept payload as an input. So if you delete the "Msg.payload : " part and just have
number in there you will find that it works.

But I’m guessing as you said you had 3 sensors, you will also need someway of telling them apart? Also you haven’t included the date/time that you also said you wanted.

If these are all part of the msg.payload. You can change them to a csv string by having a comma separated list where you will put “number”
so for example, if you also have msg.payload.sensor
you could put sensor,number

#29

Thanks, just tried that and still have an error

#30

OK You stated you wanted to take “my temperature payload and time data from each of my probs to a CSV file”

The error would appear to be being caused by the csv node receiving a message where msg.payload is “on” . As this isn’t a temperature payload I am assuming you don’t want this saved to a file, so I would put a change node infant of the CSV node where you filter these messages out.

But without seeing your flow I am guessing.

#31

Yes, I want to take time,date,temp data from three separate sensors and export this to CSV. Here is my current flow:

[{"id":"c6152ae6.b7bc68","type":"inject","z":"ad9530b7.2644b","name":"","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":true,"x":1068.9617767333984,"y":461.1344327926636,"wires":[["b780027e.ded9e","de03dd9f.618ec","41b6cbd.fc86834"]]},{"id":"f9931046.9eeab","type":"debug","z":"ad9530b7.2644b","name":"Head Temperature","active":true,"console":"false","complete":"payload","x":1515.798828125,"y":204.9913969039917,"wires":[]},{"id":"8f88a0b5.46c5a","type":"debug","z":"ad9530b7.2644b","name":"Condenser Temperature","active":true,"console":"false","complete":"payload","x":1559.655532836914,"y":408.92243099212646,"wires":[]},{"id":"88eaee5f.a3cff","type":"debug","z":"ad9530b7.2644b","name":"Parrot Temperature","active":true,"console":"false","complete":"payload","x":1551.3547897338867,"y":594.6658802032471,"wires":[]},{"id":"b780027e.ded9e","type":"sensor-ds18b20","z":"ad9530b7.2644b","name":"Head Temperature","sensorid":"28-0417032fa4ff","timer":"5","repeat":false,"x":1240.300765991211,"y":280.1467618942261,"wires":[["f9931046.9eeab","64ab0d77.db6714","46d43e29.82e45","509a5d87.a6bd44","66e2bf7.210eb4"]]},{"id":"de03dd9f.618ec","type":"sensor-ds18b20","z":"ad9530b7.2644b","name":"Condenser Temperature","sensorid":"28-0517025602ff","timer":"5","repeat":false,"x":1303.9064636230469,"y":462.2554054260254,"wires":[["8f88a0b5.46c5a","32f17165.e7684e","10298d71.730523"]]},{"id":"41b6cbd.fc86834","type":"sensor-ds18b20","z":"ad9530b7.2644b","name":"Parrot Temperature","sensorid":"28-0517020dd1ff","timer":"5","repeat":false,"x":1288.1991424560547,"y":650.7627639770508,"wires":[["88eaee5f.a3cff","b258cc89.25eb5","1e330bc.fd6e1f4"]]},{"id":"64ab0d77.db6714","type":"ui_chart","z":"ad9530b7.2644b","name":"Head Temperature","group":"4d53767c.4861b8","order":2,"width":0,"height":0,"label":"Head Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":1517.5575103759766,"y":308.5735969543457,"wires":[[],[]]},{"id":"32f17165.e7684e","type":"ui_gauge","z":"ad9530b7.2644b","name":"Condenser Temperature","group":"9921a143.fbd54","order":0,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"30","colors":["#00ffff","#ffff00","#ff0000"],"seg1":"10","seg2":"20","x":1561.6592712402344,"y":462.35462188720703,"wires":[]},{"id":"10298d71.730523","type":"ui_chart","z":"ad9530b7.2644b","name":"Condenser Temperature","group":"9921a143.fbd54","order":0,"width":0,"height":0,"label":"Condenser Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":1561.9374084472656,"y":513.275390625,"wires":[[],[]]},{"id":"b258cc89.25eb5","type":"ui_gauge","z":"ad9530b7.2644b","name":"Parrot Temperature","group":"6f230a4d.73e214","order":0,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"30","colors":["#00ffff","#00ff00","#ff0000"],"seg1":"10","seg2":"20","x":1552.1823654174805,"y":649.7119808197021,"wires":[]},{"id":"1e330bc.fd6e1f4","type":"ui_chart","z":"ad9530b7.2644b","name":"Parrot Temperature","group":"6f230a4d.73e214","order":0,"width":0,"height":0,"label":"Parrot Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":1550.1822967529297,"y":700.4714641571045,"wires":[[],[]]},{"id":"46d43e29.82e45","type":"ui_gauge","z":"ad9530b7.2644b","name":"Head Temperature","group":"4d53767c.4861b8","order":1,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"100","colors":["#00ffff","#00ff00","#ff0000"],"seg1":"88","seg2":"92","x":1530.0066375732422,"y":251.9294309616089,"wires":[]},{"id":"509a5d87.a6bd44","type":"function","z":"ad9530b7.2644b","name":"Temp Switch","func":"if (msg.payload < 25) {\n    msg.payload = \"on\";\n}  else if (msg.payload > 25) {\n    msg.payload = \"off\";\n}   \nreturn msg;","outputs":"1","noerr":0,"x":1500.526725769043,"y":356.6842956542969,"wires":[["daa5736d.e736"]]},{"id":"daa5736d.e736","type":"debug","z":"ad9530b7.2644b","name":"Plug Status","active":true,"console":"false","complete":"payload","x":2084.9617767333984,"y":306.9913969039917,"wires":[]},{"id":"66e2bf7.210eb4","type":"csv","z":"ad9530b7.2644b","name":"Head Temperature CSV","sep":",","hdrin":true,"hdrout":true,"multi":"one","ret":"\\r\\n","temp":"number","x":1533.4617767333984,"y":126.9913969039917,"wires":[["e8b0f7c3.081688","50b8815f.6ca03"]],"inputLabels":["msg : string"],"outputLabels":["msg : number"]},{"id":"e8b0f7c3.081688","type":"file","z":"ad9530b7.2644b","name":"C:/New folder/logs.csv","filename":"C:/New folder/logs.csv","appendNewline":true,"createDir":true,"overwriteFile":"false","x":1788.7330322265625,"y":127.18176174163818,"wires":[]},{"id":"50b8815f.6ca03","type":"debug","z":"ad9530b7.2644b","name":"CSV Debug","active":true,"console":"false","complete":"payload","x":1732.4617767333984,"y":71.9913969039917,"wires":[]},{"id":"4d53767c.4861b8","type":"ui_group","z":"","name":"Head Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"9921a143.fbd54","type":"ui_group","z":"","name":"Condenser Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"6f230a4d.73e214","type":"ui_group","z":"","name":"Parrot Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"337f460d.8fa05a","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]
#32

Hi - here is a standalone example similar to what you want - I don’t have the sensors so have some inputs creating random data… they then get the topic added - a different one for each sensor (the sensor may already do this… ) - then I join them into a single object so all the data is in one message - using the topics as keys to each reading… - then add a timestamp - then feed into the csv node - the column names are set to match the sensor topics… then send to the file. (I had to use a different location to test). Hope this is close to what you need.

[{"id":"9f1313f3.e2696","type":"inject","z":"a3ad1f25.b7363","name":"T1","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":620,"wires":[["e83245a3.43fd58"]]},{"id":"e83245a3.43fd58","type":"random","z":"a3ad1f25.b7363","name":"","low":"1","high":"10","inte":"true","x":240,"y":620,"wires":[["71dd008c.79bce"]]},{"id":"71dd008c.79bce","type":"change","z":"a3ad1f25.b7363","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"T1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":620,"wires":[["181bdf65.cf85f1"]]},{"id":"181bdf65.cf85f1","type":"join","z":"a3ad1f25.b7363","name":"","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":true,"timeout":"","count":"3","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":320,"y":780,"wires":[["af336c.bde79c98"]]},{"id":"5ebc3254.aad11c","type":"change","z":"a3ad1f25.b7363","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"T3","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":700,"wires":[["181bdf65.cf85f1"]]},{"id":"6b9c152f.a14c4c","type":"change","z":"a3ad1f25.b7363","name":"","rules":[{"t":"set","p":"topic","pt":"msg","to":"T2","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":400,"y":660,"wires":[["181bdf65.cf85f1"]]},{"id":"af336c.bde79c98","type":"change","z":"a3ad1f25.b7363","name":"","rules":[{"t":"set","p":"payload.time","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":840,"wires":[["863b585a.f02398"]]},{"id":"eda2bee5.8e77c","type":"random","z":"a3ad1f25.b7363","name":"","low":"1","high":"10","inte":"true","x":240,"y":700,"wires":[["5ebc3254.aad11c"]]},{"id":"e2391ca0.d5afa","type":"random","z":"a3ad1f25.b7363","name":"","low":"1","high":"10","inte":"true","x":240,"y":660,"wires":[["6b9c152f.a14c4c"]]},{"id":"863b585a.f02398","type":"csv","z":"a3ad1f25.b7363","name":"Head Temperature CSV","sep":",","hdrin":true,"hdrout":false,"multi":"one","ret":"\\r\\n","temp":"time,T1,T2,T3","skip":0,"x":650,"y":780,"wires":[["5fe87809.84b6f8","7c0acb3c.a3a3c4"]],"inputLabels":["msg : string"],"outputLabels":["msg : number"]},{"id":"c811eb86.5e7d38","type":"inject","z":"a3ad1f25.b7363","name":"T2","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":700,"wires":[["eda2bee5.8e77c"]]},{"id":"9c97cfc6.97d5a","type":"inject","z":"a3ad1f25.b7363","name":"T2","topic":"","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":660,"wires":[["e2391ca0.d5afa"]]},{"id":"5fe87809.84b6f8","type":"file","z":"a3ad1f25.b7363","name":"log","filename":"/tmp/logs.csv","appendNewline":true,"createDir":true,"overwriteFile":"false","x":775.2712554931641,"y":720.1903648376465,"wires":[]},{"id":"7c0acb3c.a3a3c4","type":"debug","z":"a3ad1f25.b7363","name":"CSV Debug","active":true,"console":"false","complete":"payload","x":769,"y":665,"wires":[]}]

#33

Thanks I’ve copied the nodes in and removed the inject and random generator and I will play around with it now.

Really appreciate the help!

Will keep you posted… Fingers crossed

#34

So I've had part success if I set the combine node to string then I receive all the combined temps separated with a "," however if I set it to key/value object I just receive "message missing key property 'msg.topic' - cannot add object"

Also I'm missing the name of where the temp has come from.

#35

#36

What is msg.number ? I don’t see it anywhere in the debug - you have msg.payload that of a type number. In my example flow I set the msg.topic to a fix string that was (in my case) just T1, T2 or T3 - one for each sensor.

#37

I've now got it too work? Your last message made me realize I had made a silly change :slight_smile:

Now I have a syntax error with the file creation node (see attachment)

#38

turn off “first row contains column names” - (as per my example).

#39

That’s odd, just copied your nodes again and they still have it ticket… Odd

Anyhow turned it off and it still doesn’t work. Do I need to set the ports to something?

#40

Still struggling, what would be the main reason for the Syntax error.

I’ve tried everything and still stuck.

[{"id":"a9042db5.63c75","type":"inject","z":"3e6bee58.6c7192","name":"","topic":"","payload":"","payloadType":"date","repeat":"5","crontab":"","once":true,"x":106.71891021728516,"y":712.9752440452576,"wires":[["ea8bdd13.8b481","f0ceb327.8abde","2e88b9b0.ff94c6"]]},{"id":"ee36b6fd.161ca8","type":"debug","z":"3e6bee58.6c7192","name":"Head Temperature","active":true,"console":"false","complete":"payload","x":521.8370513916016,"y":454.89871883392334,"wires":[]},{"id":"fd994064.26dbc","type":"debug","z":"3e6bee58.6c7192","name":"Condenser Temperature","active":true,"console":"false","complete":"payload","x":565.6937561035156,"y":658.8297529220581,"wires":[]},{"id":"93233ef3.bdc07","type":"debug","z":"3e6bee58.6c7192","name":"Parrot Temperature","active":true,"console":"false","complete":"payload","x":541.7286071777344,"y":848.1891250610352,"wires":[]},{"id":"ea8bdd13.8b481","type":"sensor-ds18b20","z":"3e6bee58.6c7192","name":"Head Temperature","sensorid":"28-0417032fa4ff","timer":"5","repeat":false,"x":246.3389892578125,"y":530.0540838241577,"wires":[["ee36b6fd.161ca8","45fa01f8.3b3c2","5cb0ec0b.4416d4","3df162e8.a42cce","4802acee.4a5694"]]},{"id":"f0ceb327.8abde","type":"sensor-ds18b20","z":"3e6bee58.6c7192","name":"Condenser Temperature","sensorid":"28-0517025602ff","timer":"5","repeat":false,"x":309.94468688964844,"y":712.162727355957,"wires":[["fd994064.26dbc","b0699cb1.96828","41af098d.a58178","b6608481.3ee908"]]},{"id":"2e88b9b0.ff94c6","type":"sensor-ds18b20","z":"3e6bee58.6c7192","name":"Parrot Temperature","sensorid":"28-0517020dd1ff","timer":"5","repeat":false,"x":298.45245361328125,"y":888.0283603668213,"wires":[["93233ef3.bdc07","e029901.c7d687","6c8adf46.d87e8","cc6b6f65.cdc59"]]},{"id":"45fa01f8.3b3c2","type":"ui_chart","z":"3e6bee58.6c7192","name":"Head Temperature","group":"4d53767c.4861b8","order":2,"width":0,"height":0,"label":"Head Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":523.5957336425781,"y":558.4809188842773,"wires":[[],[]]},{"id":"b0699cb1.96828","type":"ui_gauge","z":"3e6bee58.6c7192","name":"Condenser Temperature","group":"9921a143.fbd54","order":0,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"30","colors":["#00ffff","#ffff00","#ff0000"],"seg1":"10","seg2":"20","x":567.6974945068359,"y":712.2619438171387,"wires":[]},{"id":"41af098d.a58178","type":"ui_chart","z":"3e6bee58.6c7192","name":"Condenser Temperature","group":"9921a143.fbd54","order":0,"width":0,"height":0,"label":"Condenser Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":567.9756317138672,"y":763.1827125549316,"wires":[[],[]]},{"id":"e029901.c7d687","type":"ui_gauge","z":"3e6bee58.6c7192","name":"Parrot Temperature","group":"6f230a4d.73e214","order":0,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"30","colors":["#00ffff","#00ff00","#ff0000"],"seg1":"10","seg2":"20","x":546.2290191650391,"y":903.1178932189941,"wires":[]},{"id":"6c8adf46.d87e8","type":"ui_chart","z":"3e6bee58.6c7192","name":"Parrot Temperature","group":"6f230a4d.73e214","order":0,"width":0,"height":0,"label":"Parrot Temperature","chartType":"line","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"","dot":false,"ymin":"","ymax":"","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":false,"colors":["#1f77b4","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"x":556.2205200195312,"y":950.3787860870361,"wires":[[],[]]},{"id":"5cb0ec0b.4416d4","type":"ui_gauge","z":"3e6bee58.6c7192","name":"Head Temperature","group":"4d53767c.4861b8","order":1,"width":0,"height":0,"gtype":"gage","title":"Gauge","label":"units","format":"{{value}}","min":0,"max":"100","colors":["#00ffff","#00ff00","#ff0000"],"seg1":"88","seg2":"92","x":536.0448608398438,"y":501.8367528915405,"wires":[]},{"id":"3df162e8.a42cce","type":"function","z":"3e6bee58.6c7192","name":"Temp Switch","func":"if (msg.payload < 25) {\n    msg.payload = \"on\";\n}  else if (msg.payload > 25) {\n    msg.payload = \"off\";\n}   \nreturn msg;","outputs":"1","noerr":0,"x":506.56494903564453,"y":606.5916175842285,"wires":[[]]},{"id":"4802acee.4a5694","type":"change","z":"3e6bee58.6c7192","name":"Head Temperature","rules":[{"t":"set","p":"topic","pt":"msg","to":"Head Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":532.4851913452148,"y":369.3707513809204,"wires":[["c1821753.35f768"]]},{"id":"c1821753.35f768","type":"join","z":"3e6bee58.6c7192","name":"Temperature Combined Data","mode":"custom","build":"object","property":"payload","propertyType":"msg","key":"topic","joiner":",","joinerType":"str","accumulate":true,"timeout":"","count":"3","x":1220.2577514648438,"y":663.8734741210938,"wires":[["41fa2656.b3dac8"]]},{"id":"b6608481.3ee908","type":"change","z":"3e6bee58.6c7192","name":"Condenser Temperature","rules":[{"t":"set","p":"topic","pt":"msg","to":"Condenser Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":574.9951248168945,"y":804.190357208252,"wires":[["c1821753.35f768"]]},{"id":"cc6b6f65.cdc59","type":"change","z":"3e6bee58.6c7192","name":"Parrott Temperature","rules":[{"t":"set","p":"topic","pt":"msg","to":"Parrott Temperature","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":567.593620300293,"y":1012.8177299499512,"wires":[["c1821753.35f768"]]},{"id":"41fa2656.b3dac8","type":"change","z":"3e6bee58.6c7192","name":"","rules":[{"t":"set","p":"payload.time","pt":"msg","to":"","tot":"date"}],"action":"","property":"","from":"","to":"","reg":false,"x":1446.3705444335938,"y":732.9030857086182,"wires":[["c90a3a3a.de95d8","37504384.1bca9c"]]},{"id":"37504384.1bca9c","type":"csv","z":"3e6bee58.6c7192","name":"Combined CSV","sep":",","hdrin":false,"hdrout":false,"multi":"mult","ret":"\\r\\n","temp":"time,Head Temperature,Condenser Temperature,Parrott Temperature","x":1621.5537872314453,"y":655.8065528869629,"wires":[["c81dc31.10e3e4","695c20eb.ef1fd"]],"inputLabels":["msg : string"],"outputLabels":["msg : number"]},{"id":"c81dc31.10e3e4","type":"file","z":"3e6bee58.6c7192","name":"log","filename":"/tmp/logs.csv","appendNewline":true,"createDir":true,"overwriteFile":"false","x":1819.6768531799316,"y":739.7759761810303,"wires":[]},{"id":"695c20eb.ef1fd","type":"debug","z":"3e6bee58.6c7192","name":"CSV Debug","active":true,"console":"false","complete":"payload","x":1811.900032043457,"y":589.8309860229492,"wires":[]},{"id":"c90a3a3a.de95d8","type":"debug","z":"3e6bee58.6c7192","name":"Time Stamp","active":true,"console":"false","complete":"payload","x":1581.0012741088867,"y":603.9669322967529,"wires":[]},{"id":"4d53767c.4861b8","type":"ui_group","z":"","name":"Head Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"9921a143.fbd54","type":"ui_group","z":"","name":"Condenser Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"6f230a4d.73e214","type":"ui_group","z":"","name":"Parrot Temperature","tab":"337f460d.8fa05a","disp":true,"width":"6"},{"id":"337f460d.8fa05a","type":"ui_tab","z":"","name":"Home","icon":"dashboard"}]

[edited by @knolleary to wrap the flow in a code block]