Didier Windey
Published © CC BY-NC

Zigbee climate controlled fermentation box for beer brewing

Transform your spare fridge into a custom climate controlled fermentation box with just four components

IntermediateFull instructions provided1 hour213
Zigbee climate controlled fermentation box for beer brewing

Things used in this project

Hardware components

Zigbee smartplug
×2
classic 50-100W bulb
×1
socket for lamp
×1
plug
×1
electrical wire, 1 meter
×1
spare fridge
×1

Software apps and online services

Node-RED
Node-RED
Zigbee2mqtt

Story

Read more

Schematics

Node Red flow

Code

Node-RED flow SensiBrewFridge

JSON
A temperature sensor input needs to be stored in variable 'frigo_ferment_vat'.
Adjust MQTT topic and SQL statements to your environment.
Past the below code in Node-RED as a flow.
[
    {
        "id": "ad7a6251289ab8de",
        "type": "tab",
        "label": "sensibrew frigo",
        "disabled": false,
        "info": "",
        "env": []
    },
    {
        "id": "aff77ff8c09b12af",
        "type": "group",
        "z": "ad7a6251289ab8de",
        "name": "sliders",
        "style": {
            "label": true
        },
        "nodes": [
            "d624e88a448ed3a8",
            "c3e15463d30de163",
            "c46154a834701088",
            "7e3ae0846c9d406c",
            "af385b0133c05d3d",
            "c4bd81d975f6dc9e",
            "19eb435bd1095164",
            "6cd942e3d7d1fbb8",
            "a59dc6bf7da69ed7",
            "d8a3f683f762e15a",
            "a2b011a916adf849",
            "132e9a911c83a54a",
            "e4e9c5ff2593c91d",
            "9e5745286f112ad1"
        ],
        "x": 74,
        "y": 279,
        "w": 1152,
        "h": 222
    },
    {
        "id": "0d8462514f658104",
        "type": "group",
        "z": "ad7a6251289ab8de",
        "name": "controls",
        "style": {
            "label": true
        },
        "nodes": [
            "51cf4e394f2072e8",
            "5e6966e87ad5be1c",
            "6047f767c957c559",
            "320fce6a01a9ce0f",
            "46128974df2925f0",
            "ce107242e9c84b05",
            "c1ed3ddbf784ed92",
            "e5eab0079bba0679",
            "bcbf20a4491ddd09",
            "d0997b83a4de4732",
            "29bd707f01821137"
        ],
        "x": 74,
        "y": 79,
        "w": 1392,
        "h": 162
    },
    {
        "id": "cc2504afcfb921ec",
        "type": "group",
        "z": "ad7a6251289ab8de",
        "name": "allow cooling or heating",
        "style": {
            "label": true
        },
        "nodes": [
            "3fd9fd4298f06b53",
            "2f056722fc7e42c1",
            "fda957b78c1e8d82",
            "7ce15c41ce087706",
            "c0a53322eee9e960",
            "10520bb8ff53a047"
        ],
        "x": 74,
        "y": 779,
        "w": 692,
        "h": 122
    },
    {
        "id": "e93edcb05d63ed7d",
        "type": "group",
        "z": "ad7a6251289ab8de",
        "name": "settings",
        "style": {
            "label": true
        },
        "nodes": [
            "6591730abb9a618e",
            "025ec7107a2e1cfc",
            "4ba144a9ed07ff82",
            "4f356a714d254e33",
            "f812afdd22269d75",
            "24f92d8433e0a05b",
            "a9435c9f215ef7a5",
            "8891bc5ddf624ddc",
            "c09d990a023b8f2e",
            "b7ed9d9c78673b2d",
            "6014139a5bcf56ff",
            "4997aeb9da9caf02",
            "6fa479fc3b95b70e",
            "65bd07ccd0689003",
            "e310b6e4c58765c9",
            "2bdb065ed37c1200"
        ],
        "x": 74,
        "y": 519,
        "w": 1092,
        "h": 242
    },
    {
        "id": "d624e88a448ed3a8",
        "type": "mqtt in",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "topic": "zigbee2mqtt/lidl_smartplug_1",
        "qos": "2",
        "datatype": "json",
        "broker": "a476b97.9de4d48",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 220,
        "y": 420,
        "wires": [
            [
                "c46154a834701088"
            ]
        ]
    },
    {
        "id": "c3e15463d30de163",
        "type": "ui_switch",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "label": "koeling",
        "tooltip": "",
        "group": "868ea87d6cd5a071",
        "order": 2,
        "width": "4",
        "height": "1",
        "passthru": false,
        "decouple": "true",
        "topic": "",
        "topicType": "str",
        "style": "",
        "onvalue": "{\"state\" : \"ON\"}",
        "onvalueType": "json",
        "onicon": "",
        "oncolor": "",
        "offvalue": "{\"state\" : \"OFF\"}",
        "offvalueType": "json",
        "officon": "",
        "offcolor": "",
        "animate": false,
        "x": 800,
        "y": 420,
        "wires": [
            [
                "af385b0133c05d3d"
            ]
        ]
    },
    {
        "id": "c46154a834701088",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "func": "var x = msg.payload.state;\nglobal.set(\"frigo_ferment_koel_state\", msg.payload);\nif (x == \"ON\"){\n    msg.payload = '{\"state\" : \"ON\"}';\n}\nelse if (x ==\"OFF\"){\n    msg.payload = '{\"state\" : \"OFF\"}';\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 420,
        "wires": [
            [
                "7e3ae0846c9d406c"
            ]
        ]
    },
    {
        "id": "7e3ae0846c9d406c",
        "type": "json",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 610,
        "y": 420,
        "wires": [
            [
                "c3e15463d30de163",
                "9e5745286f112ad1"
            ]
        ]
    },
    {
        "id": "af385b0133c05d3d",
        "type": "mqtt out",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "topic": "zigbee2mqtt/lidl_smartplug_1/set",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "a476b97.9de4d48",
        "x": 1060,
        "y": 420,
        "wires": []
    },
    {
        "id": "c4bd81d975f6dc9e",
        "type": "mqtt out",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "topic": "zigbee2mqtt/lidl_smartplug_2/set",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "a476b97.9de4d48",
        "x": 1060,
        "y": 360,
        "wires": []
    },
    {
        "id": "19eb435bd1095164",
        "type": "ui_switch",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "label": "verwarming",
        "tooltip": "",
        "group": "868ea87d6cd5a071",
        "order": 3,
        "width": "4",
        "height": "1",
        "passthru": false,
        "decouple": "true",
        "topic": "",
        "topicType": "str",
        "style": "",
        "onvalue": "{\"state\" : \"ON\"}",
        "onvalueType": "json",
        "onicon": "",
        "oncolor": "",
        "offvalue": "{\"state\" : \"OFF\"}",
        "offvalueType": "json",
        "officon": "",
        "offcolor": "",
        "animate": false,
        "x": 810,
        "y": 360,
        "wires": [
            [
                "c4bd81d975f6dc9e"
            ]
        ]
    },
    {
        "id": "6cd942e3d7d1fbb8",
        "type": "json",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "property": "payload",
        "action": "",
        "pretty": false,
        "x": 610,
        "y": 360,
        "wires": [
            [
                "19eb435bd1095164",
                "e4e9c5ff2593c91d"
            ]
        ]
    },
    {
        "id": "a59dc6bf7da69ed7",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "func": "var x = msg.payload.state;\nglobal.set(\"frigo_ferment_warm_state\", msg.payload);\nif (x == \"ON\"){\n    msg.payload = '{\"state\" : \"ON\"}';\n}\nelse if (x ==\"OFF\"){\n    msg.payload = '{\"state\" : \"OFF\"}';\n}\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 440,
        "y": 360,
        "wires": [
            [
                "6cd942e3d7d1fbb8"
            ]
        ]
    },
    {
        "id": "d8a3f683f762e15a",
        "type": "mqtt in",
        "z": "ad7a6251289ab8de",
        "g": "aff77ff8c09b12af",
        "name": "",
        "topic": "zigbee2mqtt/lidl_smartplug_2",
        "qos": "2",
        "datatype": "json",
        "broker": "a476b97.9de4d48",
        "nl": false,
        "rap": false,
        "inputs": 0,
        "x": 220,
        "y": 360,
        "wires": [
            [
                "a59dc6bf7da69ed7"
            ]
        ]
    },
    {
        "id": "f812afdd22269d75",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 73",
        "func": "global.set(\"frigo_ferment_hyst_boven_koel\", msg.payload);\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1070,
        "y": 560,
        "wires": [
            []
        ]
    },
    {
        "id": "4f356a714d254e33",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 74",
        "func": "global.set(\"frigo_ferment_hyst_onder_koel\", msg.payload);\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1070,
        "y": 600,
        "wires": [
            []
        ]
    },
    {
        "id": "4ba144a9ed07ff82",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 75",
        "func": "global.set(\"frigo_ferment_setpunt\", msg.payload);\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1070,
        "y": 640,
        "wires": [
            []
        ]
    },
    {
        "id": "bcbf20a4491ddd09",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "cool or heat ? ",
        "func": "global.set(\"frigo_ferment_vat\", msg.payload);\nvar vat = msg.payload;\nvar setpunt = global.get(\"frigo_ferment_setpunt\");\nvar boven_koel = global.get(\"frigo_ferment_hyst_boven_koel\");\nvar onder_koel = global.get(\"frigo_ferment_hyst_onder_koel\");\nvar boven_warm = global.get(\"frigo_ferment_hyst_boven_warm\");\nvar onder_warm = global.get(\"frigo_ferment_hyst_onder_warm\");\nvar koel = global.get(\"frigo_ferment_koel_state\");\nvar warm = global.get(\"frigo_ferment_warm_state\");\nvar kamer = global.get(\"frigo_ferment_kamer\");\nvar status = global.get(\"frigo_ferment_status\")\n\nmsg.payload = \"niets...\";\n\n//start koelen\nif (status == \"uit\" && vat >= setpunt + boven_koel ){\n    global.set(\"frigo_ferment_status\", \"koelen\");\n    msg.frigo = { \"state\": \"ON\" };\n    msg.verwarming = { \"state\": \"OFF\" };\n    msg.payload = 1;\n}\n//blijf koelen\nelse if (status == \"koelen\" && vat > setpunt - onder_koel){\n    global.set(\"frigo_ferment_status\", \"koelen\");\n    msg.frigo = { \"state\": \"ON\" };\n    msg.verwarming = { \"state\": \"OFF\" };\n    msg.payload = 2\n}\n//stop koelen\nelse if (status == \"koelen\" && vat <= setpunt - onder_koel) {\n    global.set(\"frigo_ferment_status\", \"uit\");\n    msg.frigo = { \"state\": \"OFF\" };\n    msg.verwarming = { \"state\": \"OFF\" };\n    msg.payload = 3;\n}\n// start warmen\nelse if (status == \"uit\" && vat <= setpunt - onder_warm) {\n    global.set(\"frigo_ferment_status\", \"verwarmen\");\n    msg.frigo = { \"state\": \"OFF\" };\n    msg.verwarming = { \"state\": \"ON\" };\n    msg.payload = 4;\n}\n//blijf verwarmen\nelse if (status == \"verwarmen\" && vat < setpunt + boven_warm) {\n    global.set(\"frigo_ferment_status\", \"verwarmen\");\n    msg.frigo = { \"state\": \"OFF\" };\n    msg.verwarming = { \"state\": \"ON\" };\n    msg.payload = 5;\n}\n//stop warmen \nelse if (status == \"verwarmen\" && vat >= setpunt + boven_warm) {\n    global.set(\"frigo_ferment_status\", \"uit\");\n    msg.frigo = { \"state\": \"OFF\" };\n    msg.verwarming = { \"state\": \"OFF\" };\n    msg.payload = 6;\n}\nelse {\n    global.set(\"frigo_ferment_status\", \"uit\");\n    msg.frigo = { \"state\": \"OFF\" };\n    msg.verwarming = { \"state\": \"OFF\" };\n    msg.payload = 7;\n}\n\n\n\n\nmsg.topic = \"INSERT INTO frigoferment(vat, warm, koel) VALUES(\"+vat+\",'\"+ warm.state +\"', '\"+koel.state+\"')\";\nmsg.temp = Math.round(vat*10)/10;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 700,
        "y": 160,
        "wires": [
            [
                "6047f767c957c559",
                "5e6966e87ad5be1c",
                "51cf4e394f2072e8"
            ]
        ]
    },
    {
        "id": "025ec7107a2e1cfc",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 78",
        "func": "global.set(\"frigo_ferment_hyst_boven_warm\", msg.payload);\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1070,
        "y": 680,
        "wires": [
            []
        ]
    },
    {
        "id": "6591730abb9a618e",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 79",
        "func": "global.set(\"frigo_ferment_hyst_onder_warm\", msg.payload);\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1070,
        "y": 720,
        "wires": [
            []
        ]
    },
    {
        "id": "6047f767c957c559",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "function 80",
        "func": "msg.payload = msg.frigo;\nmsg.state = msg.frigo.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 970,
        "y": 120,
        "wires": [
            [
                "320fce6a01a9ce0f"
            ]
        ]
    },
    {
        "id": "e5eab0079bba0679",
        "type": "mqtt out",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "",
        "topic": "cooling",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "a476b97.9de4d48",
        "x": 1360,
        "y": 120,
        "wires": []
    },
    {
        "id": "5e6966e87ad5be1c",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "function 81",
        "func": "msg.payload = msg.verwarming;\nmsg.state = msg.payload.state;\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 970,
        "y": 160,
        "wires": [
            [
                "46128974df2925f0"
            ]
        ]
    },
    {
        "id": "c1ed3ddbf784ed92",
        "type": "mqtt out",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "",
        "topic": "heating",
        "qos": "",
        "retain": "",
        "respTopic": "",
        "contentType": "",
        "userProps": "",
        "correl": "",
        "expiry": "",
        "broker": "a476b97.9de4d48",
        "x": 1360,
        "y": 160,
        "wires": []
    },
    {
        "id": "ce107242e9c84b05",
        "type": "mysql",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "mydb": "cb7380f5.93081",
        "name": "",
        "x": 1370,
        "y": 200,
        "wires": [
            []
        ]
    },
    {
        "id": "24f92d8433e0a05b",
        "type": "ui_text_input",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "",
        "label": "koelen start (hyst)",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": false,
        "mode": "number",
        "delay": 300,
        "topic": "topic",
        "topicType": "msg",
        "x": 830,
        "y": 560,
        "wires": [
            [
                "f812afdd22269d75"
            ]
        ]
    },
    {
        "id": "a9435c9f215ef7a5",
        "type": "ui_text_input",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "",
        "label": "koelen stop (hys)",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": false,
        "mode": "number",
        "delay": 300,
        "topic": "topic",
        "topicType": "msg",
        "x": 830,
        "y": 600,
        "wires": [
            [
                "4f356a714d254e33"
            ]
        ]
    },
    {
        "id": "8891bc5ddf624ddc",
        "type": "ui_text_input",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "",
        "label": "setpunt",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": true,
        "mode": "number",
        "delay": 300,
        "topic": "topic",
        "topicType": "msg",
        "x": 800,
        "y": 640,
        "wires": [
            [
                "4ba144a9ed07ff82"
            ]
        ]
    },
    {
        "id": "c09d990a023b8f2e",
        "type": "ui_text_input",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "",
        "label": "verwarmen stop (hys)",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": true,
        "mode": "number",
        "delay": 300,
        "topic": "topic",
        "topicType": "msg",
        "x": 840,
        "y": 680,
        "wires": [
            [
                "025ec7107a2e1cfc"
            ]
        ]
    },
    {
        "id": "b7ed9d9c78673b2d",
        "type": "ui_text_input",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "",
        "label": "verwarmen start (hys)",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": true,
        "mode": "number",
        "delay": 300,
        "topic": "topic",
        "topicType": "msg",
        "x": 840,
        "y": 720,
        "wires": [
            [
                "6591730abb9a618e"
            ]
        ]
    },
    {
        "id": "e310b6e4c58765c9",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 83",
        "func": "msg.payload = global.get(\"frigo_ferment_hyst_boven_koel\");\nreturn msg;\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 610,
        "y": 560,
        "wires": [
            [
                "24f92d8433e0a05b"
            ]
        ]
    },
    {
        "id": "65bd07ccd0689003",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 84",
        "func": "msg.payload = global.get(\"frigo_ferment_hyst_onder_koel\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 610,
        "y": 600,
        "wires": [
            [
                "a9435c9f215ef7a5"
            ]
        ]
    },
    {
        "id": "6fa479fc3b95b70e",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 85",
        "func": "msg.payload = global.get(\"frigo_ferment_setpunt\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 610,
        "y": 640,
        "wires": [
            [
                "8891bc5ddf624ddc"
            ]
        ]
    },
    {
        "id": "4997aeb9da9caf02",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 86",
        "func": "msg.payload = global.get(\"frigo_ferment_hyst_boven_warm\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 610,
        "y": 680,
        "wires": [
            [
                "c09d990a023b8f2e"
            ]
        ]
    },
    {
        "id": "6014139a5bcf56ff",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "function 87",
        "func": "msg.payload = global.get(\"frigo_ferment_hyst_onder_warm\");\nreturn msg;",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 610,
        "y": 720,
        "wires": [
            [
                "b7ed9d9c78673b2d"
            ]
        ]
    },
    {
        "id": "2bdb065ed37c1200",
        "type": "inject",
        "z": "ad7a6251289ab8de",
        "g": "e93edcb05d63ed7d",
        "name": "startup",
        "props": [
            {
                "p": "payload"
            },
            {
                "p": "topic",
                "vt": "str"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "",
        "payloadType": "date",
        "x": 180,
        "y": 640,
        "wires": [
            [
                "e310b6e4c58765c9",
                "65bd07ccd0689003",
                "6fa479fc3b95b70e",
                "4997aeb9da9caf02",
                "6014139a5bcf56ff"
            ]
        ]
    },
    {
        "id": "51cf4e394f2072e8",
        "type": "delay",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "",
        "pauseType": "rate",
        "timeout": "5",
        "timeoutUnits": "seconds",
        "rate": "1",
        "nbRateUnits": "15",
        "rateUnits": "minute",
        "randomFirst": "1",
        "randomLast": "5",
        "randomUnits": "seconds",
        "drop": true,
        "allowrate": false,
        "outputs": 1,
        "x": 980,
        "y": 200,
        "wires": [
            [
                "ce107242e9c84b05"
            ]
        ]
    },
    {
        "id": "3fd9fd4298f06b53",
        "type": "ui_switch",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "",
        "label": "koeling ",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": true,
        "decouple": "false",
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "animate": false,
        "x": 480,
        "y": 820,
        "wires": [
            [
                "2f056722fc7e42c1"
            ]
        ]
    },
    {
        "id": "2f056722fc7e42c1",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "function 104",
        "func": "if (msg.payload == true){\n    global.set(\"frigo_ferment_koeling\", msg.payload)\n}\nelse{\n    global.set(\"frigo_ferment_koeling\", false)\n}\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 670,
        "y": 820,
        "wires": [
            []
        ]
    },
    {
        "id": "fda957b78c1e8d82",
        "type": "inject",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "frigo_ferment_koeling",
        "payloadType": "global",
        "x": 240,
        "y": 820,
        "wires": [
            [
                "3fd9fd4298f06b53"
            ]
        ]
    },
    {
        "id": "7ce15c41ce087706",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "function 105",
        "func": "if (msg.payload == true){\n    global.set(\"frigo_ferment_verwarming\", msg.payload)\n}\nelse{\n    global.set(\"frigo_ferment_verwarming\", false)\n}\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 670,
        "y": 860,
        "wires": [
            []
        ]
    },
    {
        "id": "c0a53322eee9e960",
        "type": "ui_switch",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "",
        "label": "verwarming",
        "tooltip": "",
        "group": "ccb84829b92a2ca1",
        "order": 14,
        "width": 0,
        "height": 0,
        "passthru": true,
        "decouple": "false",
        "topic": "topic",
        "topicType": "msg",
        "style": "",
        "onvalue": "true",
        "onvalueType": "bool",
        "onicon": "",
        "oncolor": "",
        "offvalue": "false",
        "offvalueType": "bool",
        "officon": "",
        "offcolor": "",
        "animate": false,
        "x": 490,
        "y": 860,
        "wires": [
            [
                "7ce15c41ce087706"
            ]
        ]
    },
    {
        "id": "10520bb8ff53a047",
        "type": "inject",
        "z": "ad7a6251289ab8de",
        "g": "cc2504afcfb921ec",
        "name": "",
        "props": [
            {
                "p": "payload"
            }
        ],
        "repeat": "",
        "crontab": "",
        "once": true,
        "onceDelay": 0.1,
        "topic": "",
        "payload": "frigo_ferment_verwarming",
        "payloadType": "global",
        "x": 260,
        "y": 860,
        "wires": [
            [
                "c0a53322eee9e960"
            ]
        ]
    },
    {
        "id": "46128974df2925f0",
        "type": "function",
        "z": "ad7a6251289ab8de",
        "g": "0d8462514f658104",
        "name": "heating is allowed ? ",
        "func": "var x = global.get(\"frigo_ferment_verwarming\");\n\nif (x == true){\n    return msg;\n}\n",
        "outputs": 1,
        "noerr": 0,
        "initialize": "",
        "finalize": "",
        "libs": [],
        "x": 1170,
        "y": 160,
        "wires": [
            [
...

This file has been truncated, please download it to see its full contents.

Credits

Didier Windey
2 projects • 1 follower
Passionate problem solver, embracing complexity and continuous learning. Thinkerer by hobby and profession, seeking solutions with joy.
Contact

Comments

Please log in or sign up to comment.