diff --git a/node-red/flows.json b/node-red/flows.json
new file mode 100644
index 0000000..0df9fc7
--- /dev/null
+++ b/node-red/flows.json
@@ -0,0 +1,512 @@
+[
+ {
+ "id": "b6a554cb58b20b89",
+ "type": "tab",
+ "label": "Поток 1",
+ "disabled": false,
+ "info": "",
+ "env": []
+ },
+ {
+ "id": "e2dbb550ecc754bb",
+ "type": "mqtt in",
+ "z": "b6a554cb58b20b89",
+ "name": "",
+ "topic": "Bird",
+ "qos": "2",
+ "datatype": "auto-detect",
+ "broker": "77647757300a0f3b",
+ "nl": false,
+ "rap": true,
+ "rh": 0,
+ "inputs": 0,
+ "x": 230,
+ "y": 300,
+ "wires": [
+ [
+ "2362125992f2f15a",
+ "853c51250983534e"
+ ]
+ ]
+ },
+ {
+ "id": "2362125992f2f15a",
+ "type": "debug",
+ "z": "b6a554cb58b20b89",
+ "name": "debug 1",
+ "active": true,
+ "tosidebar": false,
+ "console": false,
+ "tostatus": false,
+ "complete": "payload",
+ "targetType": "msg",
+ "statusVal": "",
+ "statusType": "auto",
+ "x": 440,
+ "y": 240,
+ "wires": []
+ },
+ {
+ "id": "853c51250983534e",
+ "type": "ui_template",
+ "z": "b6a554cb58b20b89",
+ "group": "de858d4f14ceb677",
+ "name": "",
+ "order": 0,
+ "width": 0,
+ "height": 0,
+ "format": "
\n

\n
\n\n",
+ "storeOutMessages": true,
+ "fwdInMessages": true,
+ "resendOnRefresh": true,
+ "templateScope": "local",
+ "className": "",
+ "x": 440,
+ "y": 300,
+ "wires": [
+ []
+ ]
+ },
+ {
+ "id": "f43e5b2d6e86f54d",
+ "type": "mqtt in",
+ "z": "b6a554cb58b20b89",
+ "name": "light",
+ "topic": "esp32/sensors/light",
+ "qos": "2",
+ "datatype": "auto-detect",
+ "broker": "77647757300a0f3b",
+ "nl": false,
+ "rap": true,
+ "rh": 0,
+ "inputs": 0,
+ "x": 230,
+ "y": 400,
+ "wires": [
+ [
+ "5f6b7a790ede5d26",
+ "744d0ca72a8e8df6"
+ ]
+ ]
+ },
+ {
+ "id": "347db67a62c25780",
+ "type": "mqtt in",
+ "z": "b6a554cb58b20b89",
+ "name": "temp",
+ "topic": "esp32/sensors/temp",
+ "qos": "2",
+ "datatype": "auto-detect",
+ "broker": "77647757300a0f3b",
+ "nl": false,
+ "rap": true,
+ "rh": 0,
+ "inputs": 0,
+ "x": 230,
+ "y": 520,
+ "wires": [
+ [
+ "1abf7819982867cb",
+ "bade5e5c2073894d"
+ ]
+ ]
+ },
+ {
+ "id": "edacc7ae819555c1",
+ "type": "mqtt in",
+ "z": "b6a554cb58b20b89",
+ "name": "humidity",
+ "topic": "esp32/sensors/humidity",
+ "qos": "2",
+ "datatype": "auto-detect",
+ "broker": "77647757300a0f3b",
+ "nl": false,
+ "rap": true,
+ "rh": 0,
+ "inputs": 0,
+ "x": 240,
+ "y": 660,
+ "wires": [
+ [
+ "56ccdbc50d6e0d65",
+ "dc38d7ae67c9b0fa"
+ ]
+ ]
+ },
+ {
+ "id": "5f6b7a790ede5d26",
+ "type": "debug",
+ "z": "b6a554cb58b20b89",
+ "name": "debug 2",
+ "active": true,
+ "tosidebar": true,
+ "console": false,
+ "tostatus": false,
+ "complete": "payload",
+ "targetType": "msg",
+ "statusVal": "",
+ "statusType": "auto",
+ "x": 440,
+ "y": 400,
+ "wires": []
+ },
+ {
+ "id": "1abf7819982867cb",
+ "type": "debug",
+ "z": "b6a554cb58b20b89",
+ "name": "debug 3",
+ "active": true,
+ "tosidebar": true,
+ "console": false,
+ "tostatus": false,
+ "complete": "false",
+ "statusVal": "",
+ "statusType": "auto",
+ "x": 440,
+ "y": 520,
+ "wires": []
+ },
+ {
+ "id": "56ccdbc50d6e0d65",
+ "type": "debug",
+ "z": "b6a554cb58b20b89",
+ "name": "debug 4",
+ "active": true,
+ "tosidebar": true,
+ "console": false,
+ "tostatus": false,
+ "complete": "false",
+ "statusVal": "",
+ "statusType": "auto",
+ "x": 440,
+ "y": 660,
+ "wires": []
+ },
+ {
+ "id": "744d0ca72a8e8df6",
+ "type": "ui_text",
+ "z": "b6a554cb58b20b89",
+ "group": "de858d4f14ceb677",
+ "order": 1,
+ "width": 0,
+ "height": 0,
+ "name": "",
+ "label": "Освещённость",
+ "format": "{{msg.payload}}",
+ "layout": "row-left",
+ "className": "",
+ "style": false,
+ "font": "",
+ "fontSize": 16,
+ "color": "#000000",
+ "x": 460,
+ "y": 360,
+ "wires": []
+ },
+ {
+ "id": "bade5e5c2073894d",
+ "type": "ui_text",
+ "z": "b6a554cb58b20b89",
+ "group": "de858d4f14ceb677",
+ "order": 2,
+ "width": 0,
+ "height": 0,
+ "name": "",
+ "label": "Температура",
+ "format": "{{msg.payload}}",
+ "layout": "row-left",
+ "className": "",
+ "style": false,
+ "font": "",
+ "fontSize": 16,
+ "color": "#000000",
+ "x": 460,
+ "y": 480,
+ "wires": []
+ },
+ {
+ "id": "dc38d7ae67c9b0fa",
+ "type": "ui_text",
+ "z": "b6a554cb58b20b89",
+ "group": "de858d4f14ceb677",
+ "order": 3,
+ "width": 0,
+ "height": 0,
+ "name": "",
+ "label": "Влажность",
+ "format": "{{msg.payload}}",
+ "layout": "row-left",
+ "className": "",
+ "style": false,
+ "font": "",
+ "fontSize": 16,
+ "color": "#000000",
+ "x": 450,
+ "y": 620,
+ "wires": []
+ },
+ {
+ "id": "0eacb49f1c0dd21a",
+ "type": "mqtt out",
+ "z": "b6a554cb58b20b89",
+ "name": "",
+ "topic": "esp32/led",
+ "qos": "",
+ "retain": "",
+ "respTopic": "",
+ "contentType": "",
+ "userProps": "",
+ "correl": "",
+ "expiry": "",
+ "broker": "77647757300a0f3b",
+ "x": 620,
+ "y": 780,
+ "wires": []
+ },
+ {
+ "id": "dff600700ba8712a",
+ "type": "ui_colour_picker",
+ "z": "b6a554cb58b20b89",
+ "name": "color_led",
+ "label": "Настроить освещение",
+ "group": "de858d4f14ceb677",
+ "format": "hex",
+ "outformat": "string",
+ "showSwatch": true,
+ "showPicker": false,
+ "showValue": false,
+ "showHue": false,
+ "showAlpha": false,
+ "showLightness": true,
+ "square": "false",
+ "dynOutput": "false",
+ "order": 5,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "topic": "topic",
+ "topicType": "msg",
+ "className": "",
+ "x": 200,
+ "y": 840,
+ "wires": [
+ [
+ "2095de04955e307f"
+ ]
+ ]
+ },
+ {
+ "id": "2095de04955e307f",
+ "type": "function",
+ "z": "b6a554cb58b20b89",
+ "name": "function 1",
+ "func": "let hex = msg.payload;\n\nhex = hex.replace(\"#\", \"\");\n\nlet r = parseInt(hex.substring(0, 2), 16);\nlet g = parseInt(hex.substring(2, 4), 16);\nlet b = parseInt(hex.substring(4, 6), 16);\n\nmsg.payload = `${r},${g},${b}`;\n\nreturn msg;",
+ "outputs": 1,
+ "timeout": 0,
+ "noerr": 0,
+ "initialize": "",
+ "finalize": "",
+ "libs": [],
+ "x": 400,
+ "y": 840,
+ "wires": [
+ [
+ "0eacb49f1c0dd21a"
+ ]
+ ]
+ },
+ {
+ "id": "38796c6012673ea3",
+ "type": "ui_switch",
+ "z": "b6a554cb58b20b89",
+ "name": "led",
+ "label": "Выкл./Вкл. освещение",
+ "tooltip": "",
+ "group": "de858d4f14ceb677",
+ "order": 5,
+ "width": 0,
+ "height": 0,
+ "passthru": true,
+ "decouple": "false",
+ "topic": "esp32/led",
+ "topicType": "msg",
+ "style": "",
+ "onvalue": "255,255,255",
+ "onvalueType": "str",
+ "onicon": "",
+ "oncolor": "",
+ "offvalue": "OFF",
+ "offvalueType": "str",
+ "officon": "",
+ "offcolor": "",
+ "animate": false,
+ "className": "",
+ "x": 390,
+ "y": 780,
+ "wires": [
+ [
+ "0eacb49f1c0dd21a"
+ ]
+ ]
+ },
+ {
+ "id": "56c329c92a8daa3a",
+ "type": "ui_button",
+ "z": "b6a554cb58b20b89",
+ "name": "day",
+ "group": "de858d4f14ceb677",
+ "order": 6,
+ "width": 0,
+ "height": 0,
+ "passthru": false,
+ "label": "День",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "className": "",
+ "icon": "",
+ "payload": "DAY",
+ "payloadType": "str",
+ "topic": "esp32/servo",
+ "topicType": "msg",
+ "x": 390,
+ "y": 920,
+ "wires": [
+ [
+ "cb039d5711277422"
+ ]
+ ]
+ },
+ {
+ "id": "136ce072862c41f7",
+ "type": "ui_button",
+ "z": "b6a554cb58b20b89",
+ "name": "night",
+ "group": "de858d4f14ceb677",
+ "order": 8,
+ "width": 0,
+ "height": 0,
+ "passthru": false,
+ "label": "Ночь",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "className": "",
+ "icon": "",
+ "payload": "NIGHT",
+ "payloadType": "str",
+ "topic": "esp32/servo",
+ "topicType": "msg",
+ "x": 390,
+ "y": 1000,
+ "wires": [
+ [
+ "cb039d5711277422"
+ ]
+ ]
+ },
+ {
+ "id": "39d131b72bf61cc5",
+ "type": "ui_button",
+ "z": "b6a554cb58b20b89",
+ "name": "mid",
+ "group": "de858d4f14ceb677",
+ "order": 7,
+ "width": 0,
+ "height": 0,
+ "passthru": false,
+ "label": "Полдень",
+ "tooltip": "",
+ "color": "",
+ "bgcolor": "",
+ "className": "",
+ "icon": "",
+ "payload": "MID",
+ "payloadType": "str",
+ "topic": "esp32/servo",
+ "topicType": "msg",
+ "x": 390,
+ "y": 960,
+ "wires": [
+ [
+ "cb039d5711277422"
+ ]
+ ]
+ },
+ {
+ "id": "cb039d5711277422",
+ "type": "mqtt out",
+ "z": "b6a554cb58b20b89",
+ "name": "",
+ "topic": "esp32/servo",
+ "qos": "",
+ "retain": "",
+ "respTopic": "",
+ "contentType": "",
+ "userProps": "",
+ "correl": "",
+ "expiry": "",
+ "broker": "77647757300a0f3b",
+ "x": 610,
+ "y": 980,
+ "wires": []
+ },
+ {
+ "id": "77647757300a0f3b",
+ "type": "mqtt-broker",
+ "name": "Mosquitto",
+ "broker": "192.168.31.78",
+ "port": 1883,
+ "clientid": "",
+ "autoConnect": true,
+ "usetls": false,
+ "protocolVersion": 4,
+ "keepalive": 60,
+ "cleansession": true,
+ "autoUnsubscribe": true,
+ "birthTopic": "",
+ "birthQos": "0",
+ "birthRetain": "false",
+ "birthPayload": "",
+ "birthMsg": {},
+ "closeTopic": "",
+ "closeQos": "0",
+ "closeRetain": "false",
+ "closePayload": "",
+ "closeMsg": {},
+ "willTopic": "",
+ "willQos": "0",
+ "willRetain": "false",
+ "willPayload": "",
+ "willMsg": {},
+ "userProps": "",
+ "sessionExpiry": ""
+ },
+ {
+ "id": "de858d4f14ceb677",
+ "type": "ui_group",
+ "name": "Default",
+ "tab": "8e35d7697e7af77c",
+ "order": 1,
+ "disp": true,
+ "width": "24",
+ "collapse": false,
+ "className": ""
+ },
+ {
+ "id": "8e35d7697e7af77c",
+ "type": "ui_tab",
+ "name": "Home",
+ "icon": "dashboard",
+ "disabled": false,
+ "hidden": false
+ },
+ {
+ "id": "cfd15ff24e6ffc58",
+ "type": "global-config",
+ "env": [],
+ "modules": {
+ "node-red-dashboard": "3.6.6"
+ }
+ }
+]
\ No newline at end of file