[ { "id": "b477ab1fe349a4b1", "type": "function", "z": "eb7fbe4f772ca819", "name": "Allumage Lumiere", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\n\nvar veilleuse = global.get('mqtt.'+piece+'.veilleuse.etat');\nvar lumiere = global.get('mqtt.'+piece+'.lumiere.etat');\nvar mouvement_porte = global.get('mqtt.'+piece+'.mouvement.porte');\nvar presence = global.get('mqtt.'+piece+'.presence.virtuel');\nvar presence_virtuelle = global.get('mqtt.'+piece+'.presence_virtuelle.etat');\nvar volet = global.get('mqtt.'+piece+'.volet.etat');\nvar luminosite = global.get('mqtt.'+piece+'.luminosite.etat');\nvar sommeil = global.get('mqtt.'+piece+'.sommeil.etat');\nvar reveil = global.get('mqtt.'+piece+'.reveil.etat');\n\nvar option_porte = global.get('mqtt.'+piece+'.lumiere.option_mouvement_porte');\nvar option_presence = global.get('mqtt.'+piece+'.lumiere.option_presence');\nvar option_soleil = global.get('mqtt.'+piece+'.lumiere.option_soleil');\nvar option_volet = global.get('mqtt.'+piece+'.lumiere.option_volet');\nvar option_luminosite = global.get('mqtt.'+piece+'.lumiere.option_luminosite');\nvar option_sommeil = global.get('mqtt.'+piece+'.lumiere.option_sommeil');\nvar option_reveil = global.get('mqtt.'+piece+'.lumiere.option_reveil');\n\nvar soleil;\n\nif (piece === \"entree\" || piece === \"jardin\") {\n // on tient compte du soleil Jardin pour les lumieres extérieures\n soleil = global.get('mqtt.jardin.soleil.etat');\n if (presence_virtuelle === true || presence_virtuelle === false) {\n if (piece === \"entree\") {\n presence = presence || presence_virtuelle;\n } else {\n presence = presence_virtuelle;\n }\n }\n} else {\n // on tient compte du soleil Maison pour les lumieres intérieures\n soleil = global.get('mqtt.maison.soleil.etat');\n}\n\nif (piece === \"couloir_etage\") { //if (piece === \"escalier\" || piece === \"couloir_etage\") {\n // on tient compte du soleil Jardin pour les lumieres extérieures\n presence = global.get('mqtt.escalier.presence.virtuel') || global.get('mqtt.couloir_etage.presence.virtuel');\n}\n\n\n\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"veilleuse\":veilleuse,\n \"lumiere\":lumiere,\n \"mouvement_porte\":mouvement_porte,\n \"presence\":presence,\n \"soleil\":soleil,\n \"volet\":volet,\n \"luminosite\":luminosite,\n \"sommeil\":sommeil,\n \"reveil\":reveil,\n \"option_porte\":option_porte,\n \"option_presence\":option_presence,\n \"option_soleil\":option_soleil,\n \"option_volet\":option_volet,\n \"option_luminosite\":option_luminosite,\n \"option_sommeil\":option_sommeil,\n \"option_reveil\":option_reveil\n};\n\n\n/*\nif (lumiere !== true) {\n lumiere = false;\n}*/\nif (mouvement_porte !== true) {\n mouvement_porte = false;\n}\nif (presence !== true) {\n presence = false;\n}\nif (soleil !== true) {\n soleil = false;\n}\nif (volet !== true) {\n volet = false; // volet considere ferme par defaut\n}\nif (luminosite !== true) {\n luminosite = false;\n}\nif (sommeil !== true) {\n sommeil = false;\n}\nif (reveil !== true) {\n reveil = false;\n}\n\n\nif (option_porte !== true) {\n option_porte = false;\n}\nif (option_presence !== true) {\n option_presence = false;\n}\nif (option_volet !== true) {\n option_volet = false;\n}\nif (option_soleil !== true) {\n option_soleil = false;\n}\nif (option_luminosite !== true) {\n option_luminosite = false;\n}\nif (option_sommeil !== true) {\n option_sommeil = false;\n}\nif (option_reveil !== true) {\n option_reveil = false;\n}\n\n\nmsg.payload = false;\n\n\n//On allume la lumiere à condition qu'on ne dorme pas, lorsqu'il y ait un mouvement de porte ou lorsqu'on est present et \n//(si les volets sont fermes ou si les volets sont ouverts et) s'il fait nuit ou (si les volets sont ouverts,) s'il fait jour mais sombre\n\n/*\n// code de reference\n// pas de prise compte du volet (scenario Jeedom)\nif (lumiere !== true) {\n if (option_sommeil === false || sommeil === false) {\n if ((option_porte === true && mouvement_porte === true) || (option_presence === true && presence === true)) {\n if (option_soleil === false || (option_soleil === true && soleil === false) || (option_soleil === true && soleil === true && option_luminosite === true && luminosite === false)) {\n return [msg, null, debug]; // lumiere principale sur la sortie 1 et debug sur la sortie 3\n }\n }\n }\n}\n*/\n\n// code valide\nif (lumiere !== true) {\n if ((option_porte === true && mouvement_porte === true) || (option_presence === true && presence === true)) {\n if (option_soleil === false || (option_soleil === true && soleil === false) || (option_soleil === true && soleil === true && option_luminosite === true && luminosite === false)) {\n msg.payload = true;\n }\n }\n}\n\n\n/*\n// code a tester\nif (lumiere !== true) {\n if ((option_porte === true && mouvement_porte === true) || (option_presence === true && presence === true)) {\n if (option_soleil === false && option_luminosite === false) {\n msg.payload = true;\n }\n if (option_soleil === false && option_luminosite === true && luminosite === false) {\n msg.payload = true;\n }\n if (option_soleil === true && soleil === false) {\n msg.payload = true;\n }\n if (option_soleil === true && soleil === true && option_volet === true && volet === false) {\n msg.payload = true;\n }\n if (option_soleil === true && soleil === true && option_volet === true && volet === true && option_luminosite === true && luminosite === false) {\n msg.payload = true;\n }\n if (option_soleil === true && soleil === true && option_volet === false && option_luminosite === true && luminosite === false) {\n msg.payload = true;\n }\n }\n}\n*/\n\n\n// retourner le message en cas d'allumage\nif (msg.payload === true) {// && piece !== \"jardin\") { // Soleil Jardin ne declenche pas l'allumage des lumieres exterieures côté terrasse\n //if (option_sommeil === false || (option_sommeil === true && sommeil === false)\n // ce qui revient a si on ne tient pas compte du sommeil ou on ne dort pas\n if (option_sommeil === false || sommeil === false) {\n debug.payload.sortie_lumiere = msg.payload;\n debug.payload.sortie_veilleuse = null;\n return [msg, null, debug]; // allumage de la lumiere principale sur la sortie 1 et debug sur la sortie 3\n } else {\n debug.payload.sortie_lumiere = null;\n debug.payload.sortie_veilleuse = msg.payload;\n return [null, msg, debug]; // allumage de la veilleuse sur la sortie 2 et debug sur la sortie 3\n }\n}\n\ndebug.payload.sortie_lumiere = null; // pour indiquer la non mise a jour de la sortie 1\ndebug.payload.sortie_veilleuse = null; // pour indiquer la non mise a jour de la sortie 2\nreturn [null, null, debug]; // sortie debug dans tous les cas\n", "outputs": 3, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2050, "y": 1280, "wires": [ [ "98b9f89fe5cc6691" ], [ "74c034f65fbf1808" ], [ "748b240857074e13" ] ] }, { "id": "0b9ac96cf3f90239", "type": "function", "z": "eb7fbe4f772ca819", "name": "Extinction Lumiere", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\n\nvar veilleuse = global.get('mqtt.'+piece+'.veilleuse.etat');\nvar lumiere = global.get('mqtt.'+piece+'.lumiere.etat');\nvar mouvement_porte = global.get('mqtt.'+piece+'.mouvement.porte');\nvar presence = global.get('mqtt.'+piece+'.presence.virtuel');\nvar presence_virtuelle = global.get('mqtt.'+piece+'.presence_virtuelle.etat');\nvar volet = global.get('mqtt.'+piece+'.volet.etat');\nvar luminosite = global.get('mqtt.'+piece+'.luminosite.etat');\nvar sommeil = global.get('mqtt.'+piece+'.sommeil.etat');\nvar reveil = global.get('mqtt.'+piece+'.reveil.etat');\n\nvar option_porte = global.get('mqtt.'+piece+'.lumiere.option_mouvement_porte');\nvar option_presence = global.get('mqtt.'+piece+'.lumiere.option_presence');\nvar option_soleil = global.get('mqtt.'+piece+'.lumiere.option_soleil');\nvar option_volet = global.get('mqtt.'+piece+'.lumiere.option_volet');\nvar option_luminosite = global.get('mqtt.'+piece+'.lumiere.option_luminosite');\nvar option_sommeil = global.get('mqtt.'+piece+'.lumiere.option_sommeil');\nvar option_reveil = global.get('mqtt.'+piece+'.lumiere.option_reveil');\n\nvar soleil;\n\nif (piece === \"entree\" || piece === \"jardin\") {\n // on tient compte du soleil Jardin pour les lumieres extérieures\n soleil = global.get('mqtt.jardin.soleil.etat');\n if (presence_virtuelle === true || presence_virtuelle === false) {\n if (piece === \"entree\") {\n presence = presence || presence_virtuelle;\n } else {\n presence = presence_virtuelle;\n }\n }\n} else {\n // on tient compte du soleil Maison pour les lumieres intérieures\n soleil = global.get('mqtt.maison.soleil.etat');\n}\n\nif (piece === \"couloir_etage\") { //if (piece === \"escalier\" || piece === \"couloir_etage\") {\n // on tient compte du soleil Jardin pour les lumieres extérieures\n presence = global.get('mqtt.escalier.presence.virtuel') || global.get('mqtt.couloir_etage.presence.virtuel');\n}\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"veilleuse\":veilleuse,\n \"lumiere\":lumiere,\n \"mouvement_porte\":mouvement_porte,\n \"presence\":presence,\n \"soleil\":soleil,\n \"volet\":volet,\n \"luminosite\":luminosite,\n \"sommeil\":sommeil,\n \"reveil\":reveil,\n \"option_porte\":option_porte,\n \"option_presence\":option_presence,\n \"option_soleil\":option_soleil,\n \"option_volet\":option_volet,\n \"option_luminosite\":option_luminosite,\n \"option_sommeil\":option_sommeil,\n \"option_reveil\":option_reveil//,\n};\n\n/*\nif (lumiere !== true) {\n lumiere = false;\n}*/\nif (mouvement_porte !== true) {\n mouvement_porte = false;\n}\nif (presence !== true) {\n presence = false;\n}\nif (soleil !== true) {\n soleil = false;\n}\nif (volet !== true) {\n volet = false; // volet considere ferme par defaut\n}\nif (luminosite !== true) {\n luminosite = false;\n}\nif (sommeil !== true) {\n sommeil = false;\n}\nif (reveil !== true) {\n reveil = false;\n}\n\n\nif (option_porte !== true) {\n option_porte = false;\n}\nif (option_presence !== true) {\n option_presence = false;\n}\nif (option_volet !== true) {\n option_volet = false;\n}\nif (option_soleil !== true) {\n option_soleil = false;\n}\nif (option_luminosite !== true) {\n option_luminosite = false;\n}\nif (option_sommeil !== true) {\n option_sommeil = false;\n}\nif (option_reveil !== true) {\n option_reveil = false;\n}\n\n\nmsg.payload = true;\n\n// On eteint la lumiere s'il n'y a pas de mouvement/presence ou si la luminosite est elevee ou, pour les lumieres du jardin, s'il fait jour seulement\n// attention : ne pas utiliser le soleil comme declancheur pour les lumieres intérieures (ce n'est pas parce qu'il fait jour dehors qu'il fait jour dedans) si on ne pas pas compte du volet\n\n/*\n// code de reference : bug avec (option_soleil === true && soleil === true) pour les lumieres ?\n// pas de prise compte du volet (scenario Jeedom)\nif (lumiere !== false) {\n if ((option_porte === true && mouvement_porte === false && option_presence === false) || (option_porte === false && option_presence === true && presence === false) || (option_porte === true && mouvement_porte === false && option_presence === true && presence === false) || (option_soleil === true && soleil === true) || (option_luminosite === true && luminosite === true)) {\n return [msg, null, debug];\n }\n}\n*/\n\nif (lumiere !== false || veilleuse !== false) {\n if (option_porte === true && mouvement_porte === false && option_presence === false) {\n msg.payload = false;\n }\n if (option_porte === false && option_presence === true && presence === false) {\n msg.payload = false;\n }\n if (option_porte === true && mouvement_porte === false && option_presence === true && presence === false) {\n msg.payload = false;\n }\n // extinction si c'est lumineux\n //if (option_luminosite === true && luminosite === true) {\n //msg.payload = false;\n //}\n // extinction s'il fait jour\n if (option_soleil === true && soleil === true) {\n if (piece === \"entree\" || piece === \"jardin\") { // s'il fait jour dehors\n // extinction systematique de la lumiere exterieure\n msg.payload = false;\n } else { // s'il fait jour dedans\n // extinction de la lumiere interieure si c'est lumineux\n if (option_volet === false && option_luminosite === true && luminosite === true) {\n msg.payload = false;\n }\n // extinction de la lumiere interieure si le volet est ouvert et si c'est lumineux\n if (option_volet === true && volet === true && option_luminosite === true && luminosite === true) {\n msg.payload = false;\n }\n // extinction de la lumiere interieures si le volet est ouvert même si c'est sombre en réalité\n if (option_volet === true && volet === true && option_luminosite === false) {\n msg.payload = false;\n }\n }\n }\n}\n\n\n\n\n// retourner le message en cas d'extinction\nif (msg.payload === false) {\n \n // si la lumiere n'est pas eteinte, alors on eteint la lumiere de la piece\n if (lumiere !== false && veilleuse === false) {\n debug.payload.sortie_lumiere = msg.payload;\n debug.payload.sortie_veilleuse = null\n return [msg, null, debug]; // extinction de la lumiere principale sur la sortie 1 et debug sur la sortie 3\n } // si la veilleuse n'est pas eteinte, alors on eteint la veilleuse de la piece\n if (lumiere === false && veilleuse !== false) {\n debug.payload.sortie_lumiere = null;\n debug.payload.sortie_veilleuse = msg.payload;\n return [null, msg, debug]; // extinction de la veilleuse sur la sortie 2 et debug sur la sortie 3\n }\n if (lumiere !== false && veilleuse !== false) {\n debug.payload.sortie_lumiere = msg.payload;\n debug.payload.sortie_veilleuse = msg.payload;\n return [msg, msg, debug]; // extinction de la lumiere principale sur la sortie 1 et extinction de la veilleuse sur la sortie 2 et debug sur la sortie 3\n }\n}\n\ndebug.payload.sortie_lumiere = null; // pour indiquer la non mise a jour de la sortie 1\ndebug.payload.sortie_veilleuse = null; // pour indiquer la non mise a jour de la sortie 2\nreturn [null, null, debug]; // sortie debug dans tous les cas\n", "outputs": 3, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2050, "y": 1400, "wires": [ [ "98b9f89fe5cc6691" ], [ "74c034f65fbf1808" ], [ "93a67532d26bc123" ] ] }, { "id": "ad9a4bb4814bbfa8", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Jardin ou Maison ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "jardin", "vt": "str" }, { "t": "eq", "v": "maison", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 970, "y": 1480, "wires": [ [ "b14160682304c7d2", "806cf9b7082e4979" ], [ "261d0f9dc1a4f76e" ] ] }, { "id": "51176d44f43782f4", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Soleil Maison ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1700, "y": 1500, "wires": [ [ "0b9ac96cf3f90239" ], [ "b477ab1fe349a4b1" ] ] }, { "id": "df3737602d645b8c", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Soleil Jardin ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1700, "y": 1460, "wires": [ [ "0b9ac96cf3f90239" ], [] ] }, { "id": "46e59b52de322b93", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Luminosite ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1710, "y": 1420, "wires": [ [ "0b9ac96cf3f90239" ], [ "b477ab1fe349a4b1" ] ] }, { "id": "9ceb8612ea678682", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Presence ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1710, "y": 1260, "wires": [ [ "b477ab1fe349a4b1" ], [ "0b9ac96cf3f90239" ] ] }, { "id": "24f835664c87fa82", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Mouvement Porte ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1690, "y": 1220, "wires": [ [ "b477ab1fe349a4b1" ], [ "0b9ac96cf3f90239" ] ] }, { "id": "7a06a6dc82e0087e", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Porte ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_mouvement_porte';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n//msg.payload = option;\n//return msg\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_porte\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1400, "y": 1220, "wires": [ [ "24f835664c87fa82" ], [ "5e7def4116172c86" ] ] }, { "id": "8055e4070c9254a1", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Le message est transmis que si l'option est activée", "info": "", "x": 1510, "y": 1180, "wires": [] }, { "id": "eab6e64bf33a5871", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Presence ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_presence';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_presence\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1410, "y": 1260, "wires": [ [ "9ceb8612ea678682" ], [ "5e7def4116172c86" ] ] }, { "id": "76a1c99894038d8e", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Luminosite ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_luminosite';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_luminosite\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1420, "y": 1420, "wires": [ [ "46e59b52de322b93" ], [ "5e7def4116172c86" ] ] }, { "id": "4c99e0945c54a57b", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Volet ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_volet';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_volet\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1400, "y": 1380, "wires": [ [ "e32b8eb29bab0ff4" ], [ "5e7def4116172c86" ] ] }, { "id": "e32b8eb29bab0ff4", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Volet ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1730, "y": 1380, "wires": [ [ "0b9ac96cf3f90239" ], [ "b477ab1fe349a4b1" ] ] }, { "id": "22b7af675a0d3495", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Soleil ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_soleil';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_soleil\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1400, "y": 1460, "wires": [ [ "df3737602d645b8c" ], [ "5e7def4116172c86" ] ] }, { "id": "748b240857074e13", "type": "debug", "z": "eb7fbe4f772ca819", "name": "Allumage Lumiere", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2050, "y": 1340, "wires": [] }, { "id": "249429cfb83832f5", "type": "change", "z": "eb7fbe4f772ca819", "name": "Bureau", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "bureau", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1200, "y": 1660, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "74739b4e483ec279", "type": "change", "z": "eb7fbe4f772ca819", "name": "SDB", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "sdb", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1700, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "54ad75f107cf8140", "type": "change", "z": "eb7fbe4f772ca819", "name": "Chambre 2", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "chambre2", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 1620, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "256cf1be2203ab86", "type": "change", "z": "eb7fbe4f772ca819", "name": "Chambre 1", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "chambre1", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 1580, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "3a064845a65b01db", "type": "change", "z": "eb7fbe4f772ca819", "name": "Salle", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "salle", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1780, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "d2fa4f946b0fba21", "type": "change", "z": "eb7fbe4f772ca819", "name": "Couloir Etage", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "couloir_etage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1220, "y": 1740, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "261d0f9dc1a4f76e", "type": "function", "z": "eb7fbe4f772ca819", "name": "", "func": "\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 980, "y": 1740, "wires": [ [ "256cf1be2203ab86", "54ad75f107cf8140", "249429cfb83832f5", "74739b4e483ec279", "d2fa4f946b0fba21", "3a064845a65b01db", "9fec325b0f6801b6", "d078d8f1055623aa", "ca97a48e9e48de8f", "5be1de6a9b0d7a9c", "f210d031270ff474" ] ] }, { "id": "4693a865aa970a22", "type": "function", "z": "eb7fbe4f772ca819", "name": "", "func": "\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1460, "y": 1740, "wires": [ [ "bb4abfa649ded259" ] ] }, { "id": "bb4abfa649ded259", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Soleil ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_soleil';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_soleil\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1400, "y": 1500, "wires": [ [ "51176d44f43782f4" ], [ "5e7def4116172c86" ] ] }, { "id": "b14160682304c7d2", "type": "change", "z": "eb7fbe4f772ca819", "name": "Entree", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "entree", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1500, "wires": [ [ "22b7af675a0d3495" ] ] }, { "id": "806cf9b7082e4979", "type": "change", "z": "eb7fbe4f772ca819", "name": "Jardin", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "jardin", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1460, "wires": [ [ "22b7af675a0d3495" ] ] }, { "id": "93a67532d26bc123", "type": "debug", "z": "eb7fbe4f772ca819", "name": "Extinction Lumiere", "active": true, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2050, "y": 1460, "wires": [] }, { "id": "8251b9280a9a1a11", "type": "function", "z": "eb7fbe4f772ca819", "name": "/etat/set", "func": "\nmsg.topic = msg.topic+'/etat/set';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 3320, "y": 1280, "wires": [ [ "c0780580560abe75", "267cf7a4d67ffd4f" ] ] }, { "id": "c0780580560abe75", "type": "debug", "z": "eb7fbe4f772ca819", "name": "Lumiere", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 3680, "y": 1380, "wires": [] }, { "id": "267cf7a4d67ffd4f", "type": "link out", "z": "eb7fbe4f772ca819", "name": "domotique/nodered/", "links": [ "197f8649991c6ad3" ], "x": 3720, "y": 1340, "wires": [], "l": true }, { "id": "528dde4d676dcc75", "type": "function", "z": "eb7fbe4f772ca819", "name": "/lumiere", "func": "\nmsg.topic = msg.topic+'/lumiere';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2860, "y": 1280, "wires": [ [ "8251b9280a9a1a11" ] ] }, { "id": "989ab78e2f9d6e99", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1220, "wires": [ [ "3bf9caab52c9853d" ] ] }, { "id": "2c2413d516fb3283", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1300, "wires": [ [ "e6fb22d937b5388f" ] ] }, { "id": "010d23404be1b5d0", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1380, "wires": [ [ "4c99e0945c54a57b" ] ] }, { "id": "1a54a9cfc5aa5674", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1420, "wires": [ [ "76a1c99894038d8e" ] ] }, { "id": "64ae5246362f3aec", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1480, "wires": [ [ "ad9a4bb4814bbfa8" ] ] }, { "id": "07138a849e30170f", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1260, "wires": [ [ "eab6e64bf33a5871" ] ] }, { "id": "64d0e31f7d0d6680", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Le Soleil Jardin (qui se couche) ne déclenche pas l'allumage des lumières extérieures", "info": "", "x": 1840, "y": 1540, "wires": [] }, { "id": "d1f359a14a71acce", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1180, "wires": [ [] ] }, { "id": "5e7def4116172c86", "type": "debug", "z": "eb7fbe4f772ca819", "name": "Option Lumiere", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 1700, "y": 1320, "wires": [] }, { "id": "1e0f66989cab8bed", "type": "function", "z": "eb7fbe4f772ca819", "name": "/veilleuse", "func": "\nmsg.topic = msg.topic+'/veilleuse';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2860, "y": 1400, "wires": [ [ "8251b9280a9a1a11" ] ] }, { "id": "95e64930c6334a07", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Extinction de la veilleuse sur fin de mouvement pour les pièces où on dort (Chambre / Salon / Bureau ?))", "info": "", "x": 1790, "y": 1060, "wires": [] }, { "id": "74c034f65fbf1808", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Pieces ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "chambre1", "vt": "str" }, { "t": "eq", "v": "salon", "vt": "str" }, { "t": "eq", "v": "sdb", "vt": "str" }, { "t": "eq", "v": "cuisine", "vt": "str" }, { "t": "eq", "v": "bureau", "vt": "str" }, { "t": "eq", "v": "couloir_etage", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 6, "x": 2320, "y": 1400, "wires": [ [ "7bbe0a9030b03f8a" ], [ "7bbe0a9030b03f8a" ], [ "1e0f66989cab8bed" ], [ "1e0f66989cab8bed" ], [ "1e0f66989cab8bed" ], [ "1e0f66989cab8bed" ] ] }, { "id": "98b9f89fe5cc6691", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Pieces ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "salon", "vt": "str" }, { "t": "eq", "v": "salle", "vt": "str" }, { "t": "eq", "v": "couloir_rdc", "vt": "str" }, { "t": "eq", "v": "cuisine", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 5, "x": 2320, "y": 1280, "wires": [ [ "2bc79b741786bed8" ], [ "2bc79b741786bed8" ], [ "90d026460cf1e708" ], [ "8ed355540311e223" ], [ "528dde4d676dcc75" ] ] }, { "id": "d44744686539ab52", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Pas d'allumage ni d'extinction auto lorsque le HC est allumé", "info": "", "x": 2420, "y": 1180, "wires": [] }, { "id": "7bbe0a9030b03f8a", "type": "switch", "z": "eb7fbe4f772ca819", "name": "ON ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2550, "y": 1360, "wires": [ [ "1e0f66989cab8bed" ] ] }, { "id": "c1110b698671268e", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Bug avec l'escalier ?", "info": "", "x": 1390, "y": 1320, "wires": [] }, { "id": "184e062f3f3f8160", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 790, "y": 1100, "wires": [ [ "ae77f0459bfb3fc8" ] ] }, { "id": "f1f5162fd589477f", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Escalier / Chambre 1 / Salon ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "escalier", "vt": "str" }, { "t": "eq", "v": "couloir_etage", "vt": "str" }, { "t": "eq", "v": "chambre1", "vt": "str" }, { "t": "eq", "v": "salon", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 4, "x": 2290, "y": 1100, "wires": [ [ "84cb2292c4c90712" ], [ "ca1383599c4df53c" ], [ "827380d83119cc9c" ], [ "827380d83119cc9c" ] ] }, { "id": "827380d83119cc9c", "type": "switch", "z": "eb7fbe4f772ca819", "name": "OFF ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 2570, "y": 1120, "wires": [ [ "1e0f66989cab8bed" ] ] }, { "id": "9774761ec81f3af9", "type": "change", "z": "eb7fbe4f772ca819", "name": "Couloir Etage", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "couloir_etage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1160, "y": 1320, "wires": [ [ "eab6e64bf33a5871" ] ] }, { "id": "e6fb22d937b5388f", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Escalier ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "escalier", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 940, "y": 1300, "wires": [ [ "9774761ec81f3af9" ], [ "eab6e64bf33a5871" ] ] }, { "id": "2fa4f23bd5feb797", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Lumiere", "links": [ "339bb49e3c2a6cfe", "49f16d77b985b17d" ], "x": 1700, "y": 1640, "wires": [ [ "39755fae7972617b" ] ], "l": true }, { "id": "39755fae7972617b", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1850, "y": 1640, "wires": [ [ "abb30d497ecb369c" ] ] }, { "id": "abb30d497ecb369c", "type": "switch", "z": "eb7fbe4f772ca819", "name": "SET / GET ?", "property": "payload.action", "propertyType": "msg", "rules": [ { "t": "eq", "v": "set", "vt": "str" }, { "t": "eq", "v": "get", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 2010, "y": 1640, "wires": [ [], [], [ "81caa15aa3a56f92" ] ] }, { "id": "fd7bf4c8c9060fb2", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Mise a jour si besoin du bouton de l'actionneur avec le retour d'état", "info": "", "x": 1880, "y": 1760, "wires": [] }, { "id": "cae94d6c5418a021", "type": "function", "z": "eb7fbe4f772ca819", "name": "Mise à jour de SET Lumiere", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar lumiere_etat = msg.payload;\nvar lumiere_etat_SET = global.get('mqtt.'+piece+'.lumiere.etat_SET');\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"lumiere_etat\":lumiere_etat,\n \"lumiere_etat_SET\":lumiere_etat_SET\n};\n\n\n// mise a jour de lumiere/etat/set si lumiere/etat !== lumiere/etat/set\nif (lumiere_etat !== lumiere_etat_SET) {\n //msg.payload = lumiere_etat;\n debug.payload.sortie = msg.payload;\n return [msg, debug];\n}\n\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug]; // sortie debug dans tous les cas\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2800, "y": 1640, "wires": [ [ "528dde4d676dcc75" ], [ "ddf99f463e2f67f9" ] ] }, { "id": "81caa15aa3a56f92", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2190, "y": 1640, "wires": [ [ "16e87b61f7744568" ] ] }, { "id": "c5122accc84b9b80", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Faire très attention à la boucle", "info": "", "x": 2780, "y": 1760, "wires": [] }, { "id": "ddf99f463e2f67f9", "type": "debug", "z": "eb7fbe4f772ca819", "name": "SET Etat Lumiere", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 3110, "y": 1640, "wires": [] }, { "id": "2bc79b741786bed8", "type": "switch", "z": "eb7fbe4f772ca819", "name": "ON / OFF ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 2510, "y": 1220, "wires": [ [ "7e5cbb10d5e23044" ], [ "7e5cbb10d5e23044" ] ] }, { "id": "7e5cbb10d5e23044", "type": "function", "z": "eb7fbe4f772ca819", "name": "Home Cinema ON ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\n\nvar home_cinema = global.get('mqtt.salon.home_cinema.etat');\nvar lampadaire = global.get('mqtt.salle.lampe_colonne.etat');\n\n//msg.payload = option;\n//return msg\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"home_cinema\" : home_cinema,\n \"lampe_colonne\" : lampe_colonne\n}\n\nif (home_cinema !== true) {\n home_cinema = false;\n}\n\nif (lampe_colonne !== true) {\n lampe_colonne = false;\n}\n\n// si le home cinema et la lampe_colonne sont eteints\nif (home_cinema === false && lampe_colonne === false) {\n //debug.payload.sortie = home_cinema === false && lampe_colonne === false;\n debug.payload.sortie = msg.payload;\n // alors on peut allumer les lumieres salon/salle/couloir_rdc automatiquement\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2740, "y": 1220, "wires": [ [ "528dde4d676dcc75" ], [ "e563b4db6c6d1be8" ] ] }, { "id": "3bf9caab52c9853d", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Entree / Jardin ?", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "entree", "vt": "str" }, { "t": "eq", "v": "jardin", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 960, "y": 1220, "wires": [ [ "502e96c3f56f75f8" ], [ "502e96c3f56f75f8" ], [ "7a06a6dc82e0087e" ] ] }, { "id": "9f881376f3512bc2", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Pas de début de Mouvement Porte comme déclencheur si Option Presence", "info": "", "x": 740, "y": 1140, "wires": [] }, { "id": "502e96c3f56f75f8", "type": "switch", "z": "eb7fbe4f772ca819", "name": "True / False ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 1180, "y": 1200, "wires": [ [ "3caee2293b931415" ], [ "7a06a6dc82e0087e" ] ] }, { "id": "3caee2293b931415", "type": "function", "z": "eb7fbe4f772ca819", "name": " Pas Option Presence ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_presence';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_presence\" : option,\n}\n\nif (option !== false) {\n option = true;\n}\n\n// si pas d'option presence, alors on autorise le mouvement Porte === true comme declencheur.\nif (option === false) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1170, "y": 1140, "wires": [ [ "7a06a6dc82e0087e" ], [] ] }, { "id": "6d0c8a22060b106b", "type": "change", "z": "eb7fbe4f772ca819", "name": "Piece", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "payload.object", "tot": "msg" }, { "t": "set", "p": "payload", "pt": "msg", "to": "payload.value", "tot": "msg" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2190, "y": 1700, "wires": [ [ "4df975d743cd3cb3" ] ] }, { "id": "a2645de1c84ee703", "type": "debug", "z": "eb7fbe4f772ca819", "name": "SET Etat Veilleuse", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 3110, "y": 1700, "wires": [] }, { "id": "6d9a80ab546316e4", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 1850, "y": 1700, "wires": [ [ "c4695d1749aa706d" ] ] }, { "id": "df5b73bea99ac733", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Veilleuse", "links": [ "d506952e8186d84f", "851799bdad78c3f1" ], "x": 1700, "y": 1700, "wires": [ [ "6d9a80ab546316e4" ] ], "l": true }, { "id": "c4695d1749aa706d", "type": "switch", "z": "eb7fbe4f772ca819", "name": "SET / GET ?", "property": "payload.action", "propertyType": "msg", "rules": [ { "t": "eq", "v": "set", "vt": "str" }, { "t": "eq", "v": "get", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 2010, "y": 1700, "wires": [ [], [], [ "6d0c8a22060b106b" ] ] }, { "id": "4df975d743cd3cb3", "type": "function", "z": "eb7fbe4f772ca819", "name": "Mise à jour de SET Veilleuse", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar veilleuse_etat = msg.payload;\nvar veilleuse_etat_SET = global.get('mqtt.'+piece+'.veilleuse.etat_SET');\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"veilleuse_etat\" : veilleuse_etat,\n \"veilleuse_etat_SET\" : veilleuse_etat_SET\n};\n\n\n// mise a jour de veilleuse/etat/set si veilleuse/etat !== veilleuse/etat/set\nif (veilleuse_etat !== veilleuse_etat_SET) {\n //msg.payload = veilleuse_etat;\n debug.payload.sortie = msg.payload;\n return [msg, debug];\n}\n\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug]; // sortie debug dans tous les cas\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2800, "y": 1700, "wires": [ [ "1e0f66989cab8bed" ], [ "a2645de1c84ee703" ] ] }, { "id": "90d026460cf1e708", "type": "switch", "z": "eb7fbe4f772ca819", "name": "ON / OFF ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 2510, "y": 1260, "wires": [ [ "528dde4d676dcc75" ], [ "528dde4d676dcc75" ] ] }, { "id": "e563b4db6c6d1be8", "type": "debug", "z": "eb7fbe4f772ca819", "name": "HC ON ?", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2840, "y": 1160, "wires": [] }, { "id": "84cb2292c4c90712", "type": "function", "z": "eb7fbe4f772ca819", "name": "/guirlande", "func": "\nmsg.topic = msg.topic+'/guirlande';\n\nreturn msg;", "outputs": 1, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2820, "y": 1080, "wires": [ [ "8251b9280a9a1a11" ] ] }, { "id": "ca1383599c4df53c", "type": "change", "z": "eb7fbe4f772ca819", "name": "escalier", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "escalier", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 2580, "y": 1060, "wires": [ [ "84cb2292c4c90712" ] ] }, { "id": "ae77f0459bfb3fc8", "type": "function", "z": "eb7fbe4f772ca819", "name": "Option Presence ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\nvar nom = 'option_presence';\n\nvar option = global.get('mqtt.'+piece+'.lumiere.'+nom);\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"option_presence\" : option,\n}\n\nif (option !== true) {\n option = false;\n}\n\nif (option === true) {\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 1410, "y": 1100, "wires": [ [ "f1f5162fd589477f" ], [] ] }, { "id": "16e87b61f7744568", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Sauf variateur", "property": "topic", "propertyType": "msg", "rules": [ { "t": "eq", "v": "chambre1", "vt": "str" }, { "t": "eq", "v": "chambre2", "vt": "str" }, { "t": "else" } ], "checkall": "true", "repair": false, "outputs": 3, "x": 2360, "y": 1640, "wires": [ [], [], [ "cae94d6c5418a021" ] ] }, { "id": "296644b529c678f0", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Gestion des variateurs avec intensite au lieu de etat : mais eta/set n'est plus synchro ! a revoir", "info": "", "x": 2360, "y": 1580, "wires": [] }, { "id": "b087784c50e6d8d3", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Pas d'allumage auto lorsque la veilleuse (dalles) de la cuisine est allumée", "info": "", "x": 3200, "y": 1200, "wires": [] }, { "id": "8ed355540311e223", "type": "switch", "z": "eb7fbe4f772ca819", "name": "ON / OFF ?", "property": "payload", "propertyType": "msg", "rules": [ { "t": "true" }, { "t": "false" } ], "checkall": "true", "repair": false, "outputs": 2, "x": 2570, "y": 1320, "wires": [ [ "3077eaaac25fabc3" ], [ "528dde4d676dcc75" ] ] }, { "id": "3077eaaac25fabc3", "type": "function", "z": "eb7fbe4f772ca819", "name": "Dalles ON ?", "func": "\n//var piece = msg.payload.object;\nvar piece = msg.topic;\n\nvar dalle_evier = global.get('mqtt.cuisine.dalle_evier.etat');\nvar dalle_table = global.get('mqtt.cuisine.dalle_table.etat');\n\n//msg.payload = option;\n//return msg\n\nvar debug = {};\n\ndebug.topic = msg.topic;\ndebug.payload = {\n \"dalle_evier\" : dalle_evier,\n \"dalle_table\" : dalle_table\n}\n\nif (dalle_evier !== true) {\n dalle_evier = false;\n}\n\nif (dalle_table !== true) {\n dalle_table = false;\n}\n\n// si les 2 dalles IKEA sont eteintess\nif (dalle_evier === false && dalle_table === false) {\n debug.payload.sortie = msg.payload;\n // alors on peut allumer la lumiere de la cuisine automatiquement\n return [msg, debug];\n}\ndebug.payload.sortie = null; // pour indiquer la non mise a jour de la sortie 1\nreturn [null, debug];\n", "outputs": 2, "noerr": 0, "initialize": "", "finalize": "", "libs": [], "x": 2770, "y": 1340, "wires": [ [ "528dde4d676dcc75" ], [ "2b043c3dc8584654" ] ] }, { "id": "2b043c3dc8584654", "type": "debug", "z": "eb7fbe4f772ca819", "name": "Dalles ON ?", "active": false, "tosidebar": true, "console": false, "tostatus": false, "complete": "payload", "targetType": "msg", "statusVal": "", "statusType": "auto", "x": 2970, "y": 1340, "wires": [] }, { "id": "340e78961c00ab4b", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Virtuel ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "virtuel", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 640, "y": 1300, "wires": [ [ "2c2413d516fb3283" ] ] }, { "id": "1524f1f9da8b2d79", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Presence", "links": [ "8352826fd56ea7d6", "96638ce3e92b3b10" ], "x": 420, "y": 1300, "wires": [ [ "340e78961c00ab4b" ] ], "l": true }, { "id": "0f6a1695e8d3fe0a", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Soleil", "links": [ "2bad9b5059f76497", "a64bbe6fdaeca174" ], "x": 410, "y": 1480, "wires": [ [ "606199a2d4ab15d5" ] ], "l": true }, { "id": "1e928273e9de43f1", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Luminosite", "links": [ "3e369565305d60c6", "37356f338204f0fa" ], "x": 420, "y": 1420, "wires": [ [ "f291db64078eb2b6" ] ], "l": true }, { "id": "6bf673077e06376b", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Volet", "links": [ "530be378c1096958", "75c412473a674a95" ], "x": 410, "y": 1380, "wires": [ [ "e07e978128ee24b7" ] ], "l": true }, { "id": "606199a2d4ab15d5", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 630, "y": 1480, "wires": [ [ "64ae5246362f3aec" ] ] }, { "id": "e07e978128ee24b7", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 630, "y": 1380, "wires": [ [ "010d23404be1b5d0" ] ] }, { "id": "f291db64078eb2b6", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 630, "y": 1420, "wires": [ [ "1a54a9cfc5aa5674" ] ] }, { "id": "9fec325b0f6801b6", "type": "change", "z": "eb7fbe4f772ca819", "name": "Salon", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "salon", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1820, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "d078d8f1055623aa", "type": "change", "z": "eb7fbe4f772ca819", "name": "Cuisine", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "cuisine", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1200, "y": 1860, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "5be1de6a9b0d7a9c", "type": "change", "z": "eb7fbe4f772ca819", "name": "WC", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "wc", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1190, "y": 1940, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "f210d031270ff474", "type": "change", "z": "eb7fbe4f772ca819", "name": "Garage", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "garage", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1200, "y": 1980, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "ca97a48e9e48de8f", "type": "change", "z": "eb7fbe4f772ca819", "name": "Couloir RDC", "rules": [ { "t": "set", "p": "topic", "pt": "msg", "to": "couloir_rdc", "tot": "str" } ], "action": "", "property": "", "from": "", "to": "", "reg": false, "x": 1210, "y": 1900, "wires": [ [ "4693a865aa970a22" ] ] }, { "id": "4580ee188cf8417a", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Le Soleil Maison déclenche l'allumage de toutes les lumières intérieures", "info": "", "x": 1190, "y": 2020, "wires": [] }, { "id": "c99ea298adc1d1cb", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Mouvement", "links": [ "07ec8ec4d3bec557", "bc1da06ab5422a9d" ], "x": 430, "y": 1220, "wires": [ [ "5e0967cd2d2545bd" ] ], "l": true }, { "id": "5e0967cd2d2545bd", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Porte ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "porte", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 640, "y": 1220, "wires": [ [ "989ab78e2f9d6e99" ] ] }, { "id": "4621ef299a51c8b9", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Reveil", "links": [ "65c95fa68dd5fcbb", "9814b5dd3b1dbd8d" ], "x": 410, "y": 1180, "wires": [ [ "9c35d1dc13de18f0" ] ], "l": true }, { "id": "dc96582a0ad547c0", "type": "comment", "z": "eb7fbe4f772ca819", "name": "Lumieres", "info": "", "x": 420, "y": 1020, "wires": [] }, { "id": "987b6e7b25c1fa0b", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Presence Virtuelle", "links": [ "50a20cca26d0ee23", "2bdcce3c1aebe969" ], "x": 450, "y": 1260, "wires": [ [ "1529b0d20c74d184" ] ], "l": true }, { "id": "1529b0d20c74d184", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "cont", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 630, "y": 1260, "wires": [ [ "07138a849e30170f" ] ] }, { "id": "9c35d1dc13de18f0", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Etat ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "etat", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 630, "y": 1180, "wires": [ [ "d1f359a14a71acce" ] ] }, { "id": "496a8c75fc1d92f3", "type": "link in", "z": "eb7fbe4f772ca819", "name": "Mouvement", "links": [ "07ec8ec4d3bec557", "bc1da06ab5422a9d" ], "x": 430, "y": 1100, "wires": [ [ "efea25c9e17e4007" ] ], "l": true }, { "id": "efea25c9e17e4007", "type": "switch", "z": "eb7fbe4f772ca819", "name": "Virtuel ?", "property": "payload.command", "propertyType": "msg", "rules": [ { "t": "eq", "v": "virtuel", "vt": "str" } ], "checkall": "true", "repair": false, "outputs": 1, "x": 640, "y": 1100, "wires": [ [ "184e062f3f3f8160" ] ] }, { "id": "c2220ec2a630dc95", "type": "comment", "z": "eb7fbe4f772ca819", "name": "OU entre escalier et couloir_etage à revoir", "info": "", "x": 2540, "y": 980, "wires": [] } ]