Flow Eclairage avec capteur de mouvement

Bonsoir à tous
Je continue mon chemin de Jeedom à HA avec l’usage de NR pas simple pas les mêmes approches mais ça avance quand même.
Je suis dans la réécriture de mes scénario de lumière !
Un élément WAF important car si ça passe pas on le sait de suite et la double peine c’est que l’on passe encore plus de temps à corriger :woozy_face:

J’essaie de retranscrire un scénario pour ma Salle de Bain que je peux décrire comme ceci :

Lorsque j’ouvre la porte de la salle de bain le capteur de porte allume la lumière
En fermant la porte aucun action particulière de la lumière
A l’intérieur de la salle de bain, 2 capteurs de mouvement un au niveau de la vasque et
l’autre pour la douche car la paroi vitré fait barrière au premier capteur de mouvement.
occupancy_timeout réglé à 30 sur les deux capteurs.
Tant qu’il y a des mouvement dans la SdB RdC (Vasque ou Douche) alors la lumière doit rester
allumée.
Sinon quand plus de mouvement alors on éteint tout

Avec le flow associé

Résumé
[
    {
        "id": "fad89a46abd93292",
        "type": "group",
        "z": "810f9aa14dfd0c5e",
        "style": {
            "stroke": "#2e333a",
            "stroke-opacity": "1",
            "fill": "#383c45",
            "fill-opacity": "0.5",
            "label": true,
            "label-position": "nw",
            "color": "#dddddd"
        },
        "nodes": [
            "3a0451aaf639cf2e",
            "182130f9e849beb8",
            "29ce1987223d26c8",
            "e4ff025fa0ed8b07",
            "ac4e365cbb0efb0c",
            "044dfdf88452c758",
            "69daef4542e10389",
            "95dda2bb7b57d729",
            "a1c83ce4b07ebc19",
            "4045aa5f97951dbd",
            "330119d20d8bdc7b",
            "fe9651f940d431af",
            "fc56dbdc785927e9"
        ],
        "x": 274,
        "y": 279,
        "w": 932,
        "h": 282
    },
    {
        "id": "3a0451aaf639cf2e",
        "type": "trigger",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "",
        "op1": "1",
        "op2": "0",
        "op1type": "str",
        "op2type": "str",
        "duration": "90",
        "extend": true,
        "overrideDelay": false,
        "units": "s",
        "reset": "",
        "bytopic": "all",
        "topic": "topic",
        "outputs": 1,
        "x": 770,
        "y": 400,
        "wires": [
            [
                "e4ff025fa0ed8b07",
                "fe9651f940d431af"
            ]
        ]
    },
    {
        "id": "182130f9e849beb8",
        "type": "api-call-service",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "",
        "server": "e4803443912781dd",
        "version": 5,
        "debugenabled": false,
        "domain": "light",
        "service": "turn_on",
        "areaId": [
            "sdb_rdc"
        ],
        "deviceId": [
            "902afa6a94967c23b0c8ffc9b02301c2"
        ],
        "entityId": [
            "light.ecl_sdb_rdc"
        ],
        "data": "",
        "dataType": "jsonata",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "x": 570,
        "y": 400,
        "wires": [
            [
                "3a0451aaf639cf2e"
            ]
        ]
    },
    {
        "id": "29ce1987223d26c8",
        "type": "api-call-service",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "",
        "server": "e4803443912781dd",
        "version": 5,
        "debugenabled": false,
        "domain": "light",
        "service": "turn_off",
        "areaId": [
            "sdb_rdc"
        ],
        "deviceId": [
            "902afa6a94967c23b0c8ffc9b02301c2"
        ],
        "entityId": [
            "light.ecl_sdb_rdc"
        ],
        "data": "",
        "dataType": "jsonata",
        "mergeContext": "",
        "mustacheAltTags": false,
        "outputProperties": [],
        "queue": "none",
        "x": 1110,
        "y": 400,
        "wires": [
            []
        ]
    },
    {
        "id": "e4ff025fa0ed8b07",
        "type": "debug",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "debug 93",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 760,
        "y": 360,
        "wires": []
    },
    {
        "id": "ac4e365cbb0efb0c",
        "type": "poll-state",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "MVT SdB RdC Entrée ?",
        "server": "e4803443912781dd",
        "version": 2,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "updateinterval": "20",
        "updateIntervalType": "num",
        "updateIntervalUnits": "seconds",
        "outputinitially": false,
        "outputonchanged": false,
        "entity_id": "binary_sensor.mvt_sdb_rdc_entree_occupancy",
        "state_type": "str",
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "x": 560,
        "y": 460,
        "wires": [
            [
                "3a0451aaf639cf2e",
                "95dda2bb7b57d729"
            ],
            []
        ]
    },
    {
        "id": "044dfdf88452c758",
        "type": "poll-state",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "MVT SdB RdC Douche ?",
        "server": "e4803443912781dd",
        "version": 2,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "updateinterval": "20",
        "updateIntervalType": "num",
        "updateIntervalUnits": "seconds",
        "outputinitially": false,
        "outputonchanged": false,
        "entity_id": "binary_sensor.mvt_sdb_rdc_douche_occupancy",
        "state_type": "str",
        "halt_if": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "x": 550,
        "y": 520,
        "wires": [
            [
                "3a0451aaf639cf2e",
                "a1c83ce4b07ebc19"
            ],
            []
        ]
    },
    {
        "id": "69daef4542e10389",
        "type": "debug",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "debug 94",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 940,
        "y": 360,
        "wires": []
    },
    {
        "id": "95dda2bb7b57d729",
        "type": "debug",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "debug 95",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 760,
        "y": 460,
        "wires": []
    },
    {
        "id": "a1c83ce4b07ebc19",
        "type": "debug",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "debug 96",
        "active": true,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 760,
        "y": 520,
        "wires": []
    },
    {
        "id": "4045aa5f97951dbd",
        "type": "server-state-changed",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "PTE SdB RdC",
        "server": "e4803443912781dd",
        "version": 4,
        "exposeToHomeAssistant": false,
        "haConfig": [
            {
                "property": "name",
                "value": ""
            },
            {
                "property": "icon",
                "value": ""
            }
        ],
        "entityidfilter": "binary_sensor.pte_sdb_rdc_contact",
        "entityidfiltertype": "exact",
        "outputinitially": false,
        "state_type": "str",
        "haltifstate": "on",
        "halt_if_type": "str",
        "halt_if_compare": "is",
        "outputs": 2,
        "output_only_on_state_change": true,
        "for": "",
        "forType": "num",
        "forUnits": "minutes",
        "ignorePrevStateNull": false,
        "ignorePrevStateUnknown": false,
        "ignorePrevStateUnavailable": false,
        "ignoreCurrentStateUnknown": false,
        "ignoreCurrentStateUnavailable": false,
        "outputProperties": [
            {
                "property": "payload",
                "propertyType": "msg",
                "value": "",
                "valueType": "entityState"
            },
            {
                "property": "data",
                "propertyType": "msg",
                "value": "",
                "valueType": "eventData"
            },
            {
                "property": "topic",
                "propertyType": "msg",
                "value": "",
                "valueType": "triggerId"
            }
        ],
        "x": 370,
        "y": 400,
        "wires": [
            [
                "330119d20d8bdc7b",
                "182130f9e849beb8"
            ],
            []
        ]
    },
    {
        "id": "330119d20d8bdc7b",
        "type": "debug",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "debug 97",
        "active": false,
        "tosidebar": true,
        "console": false,
        "tostatus": false,
        "complete": "true",
        "targetType": "full",
        "statusVal": "",
        "statusType": "auto",
        "x": 360,
        "y": 360,
        "wires": []
    },
    {
        "id": "fe9651f940d431af",
        "type": "switch",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "",
        "property": "payload",
        "propertyType": "msg",
        "rules": [
            {
                "t": "eq",
                "v": "0",
                "vt": "str"
            }
        ],
        "checkall": "true",
        "repair": false,
        "outputs": 1,
        "x": 930,
        "y": 400,
        "wires": [
            [
                "29ce1987223d26c8",
                "69daef4542e10389"
            ]
        ]
    },
    {
        "id": "fc56dbdc785927e9",
        "type": "comment",
        "z": "810f9aa14dfd0c5e",
        "g": "fad89a46abd93292",
        "name": "ECL SdB RdC",
        "info": "Lorsque j'ouvre la porte de la salle de bain le capteur de porte allume la lumière \nEn fermant la porte aucun action particulière de la lumière\nA l'intérieur de la salle de bain, 2 capteurs de mouvement un au niveau de la vasque et \nl'autre pour la douche car la paroi vitré fait barrière au premier capteur de mouvement\nTant qu'il y a des mouvement dans la SdB RdC (Vasque ou Douche) alors la lumière doit rester \nallumée.\nSinon quand plus de mouvement alors on éteint tout",
        "x": 370,
        "y": 320,
        "wires": []
    },
    {
        "id": "e4803443912781dd",
        "type": "server",
        "name": "HA domojeca",
        "version": 5,
        "addon": false,
        "rejectUnauthorizedCerts": true,
        "ha_boolean": "y|yes|true|on|home|open",
        "connectionDelay": true,
        "cacheJson": true,
        "heartbeat": false,
        "heartbeatInterval": "30",
        "areaSelector": "friendlyName",
        "deviceSelector": "friendlyName",
        "entitySelector": "friendlyName",
        "statusSeparator": "at: ",
        "statusYear": "hidden",
        "statusMonth": "short",
        "statusDay": "numeric",
        "statusHourCycle": "h23",
        "statusTimeFormat": "h:m",
        "enableGlobalContextStore": true
    }
]

Je vous le mets dans le mille avec ceci on est dans le noir et j’ai pas prévu de relancer la lumière dans ce cas en plus :frowning:

Mes questions :
Est ce que sur le principe l’écriture est dans l’esprit ou pas du tout ?
Si oui où est que cela peut pêcher ? dans le réglage des timing, trigger sur tous les nodes ?
Si c’est pas du tout l’esprit avez des exemples perso ou non se rapprochant de ceci pour que je puisse m’inspirer SVP ?
Il faut que j’arrive à bien comprendre la dessus car ensuite je vais avoir d’autres pièces dans le même état de figure
J’ai même mon garage où cela va être plus chaud encore car j’entre par une porte et sort par une autre et vis et versa. Je peux stationner dedans, fermer une porte voir même les deux pour bricoler au chaud etc… bref c’est pas fini :slight_smile:

Merci de votre aide

Salut,

le flow partagé n’est pas le bon, là c’est une notif liée à l’état d’un disque dur que tu as mis :wink:

Mais de façon générale, il faudrait savoir ce que t’as mis dans tes détections mouvement, si tu fait bien un reset du trigger. Comment tu gère le trigger et son délai. Puis ce que tu fait dans le switch…

Perso j’utilise ça en Appdaemon et c’est je trouve bien plus simple :

Bonjour

Désolé pour mon retard de réponse :frowning:

Je viens de modifier mon flow et je pense que cela va répondre à tes questions complémentaires.
Sur mes deux capteurs de mouvement j’ai de base 90s avant une redétection (aqara) néanmoins j’ai mis sur zigbee2mqtt un retour à 0 au bout de 30s.
Sur le poll State je lance un contrôle toutes les 20s
image

coté trigger j’ai rien mis de particulier je pense ! Je relance le delay sur un nouveau message

Bonjour @mycanaletto

Je vais lire ce que tu me proposes mais j’ai peur que pour niveau de codeur fou c’est un peu beaucoup quand je vois une ampoule et un logo python en titre :slight_smile: