reponse à :
Bonjour à tous
Je cherche à peauffiner mon ouverture de portail auto quand j’arrive en voiture.
Cependant quand je pars dans une direction, je sors de la zone et la route fait que je re rentre dans la zone une courte période. Du coup cela est assimilé à un départ de la maison puis une arrivée et un derniuer départ.
99% de sueur la programmation , le reste de génie. sur votre 1ere question, je mets des temps c’est le plus simple. alors sortie de zone… on mets un trigger qui envoie 1 pendant la tempo (ici 10 secondes). si lorsque on signale une rentrée dans la zone avant la fin de zone on bloque le signalement de l’entrée…
une autre solution est de faire une zone de sortie de rayon 1km … si on sort c’est que l’on part. et une zone de rentrée pour dire que l’on arrive et ouvrir le garage. rayon 50m.
j’ai reflechis sur les zones contre les maris violents. interdiction d’etre à moins de 80 kms. pour donner du temps aux victimes de se préparer j’ai la zone de 80 km de rayon … s’il essaie de rentrer dans la zone, y a une zone de 70 km traitée comme une infraction de rentrée à moins de 80 km.
ensuite s’il passe en dessous de 70 km. on avertit qu’il a franchis les 80 km. s’il arrive en dessous de 40 km là le delit est réel. on signale qu’il est à 10 km, et à 20 km il arrive.
lorsque le trigger repasse à 0 l’info de rentrée passe et on declenche
je mettrais deux zones, une courte avant de rentrer dans la zone…
je conseillerais de mettre un node trigger :
lorsque on signale une sortie je declenche un signal à 1 pendant une duree…
si une entrée dans la zone survient pendant la tempo ce signal bloque le signal.
au bout de (ici 10 secondes) le signal de rentrée est realisé.
pour les zones imbriquées. je mettrais une info sur la sortie de zone à 1km et au retour une info de retour à moins de 100m pour ouvrir les portes.
[
{
"id": "e8472b788ef22c96",
"type": "tab",
"label": "test ",
"disabled": false,
"info": "",
"env": []
},
{
"id": "ba809808a909644a",
"type": "inject",
"z": "e8472b788ef22c96",
"name": "sortie de zone",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "sortie",
"payload": "sortie de zone",
"payloadType": "str",
"x": 170,
"y": 200,
"wires": [
[
"c58ddbd3f3110c7b"
]
]
},
{
"id": "ae8c34dfc035ab1b",
"type": "inject",
"z": "e8472b788ef22c96",
"name": "entree de zone",
"props": [
{
"p": "payload"
},
{
"p": "topic",
"vt": "str"
}
],
"repeat": "",
"crontab": "",
"once": false,
"onceDelay": 0.1,
"topic": "entree",
"payload": "entree de zone",
"payloadType": "str",
"x": 180,
"y": 260,
"wires": [
[
"bfa9ed965f9761d3"
]
]
},
{
"id": "c58ddbd3f3110c7b",
"type": "trigger",
"z": "e8472b788ef22c96",
"name": "",
"op1": "1",
"op2": "0",
"op1type": "str",
"op2type": "str",
"duration": "10",
"extend": false,
"overrideDelay": false,
"units": "s",
"reset": "",
"bytopic": "all",
"topic": "topic",
"outputs": 1,
"x": 390,
"y": 200,
"wires": [
[
"94859a9a31b51b67",
"bfa9ed965f9761d3"
]
]
},
{
"id": "94859a9a31b51b67",
"type": "debug",
"z": "e8472b788ef22c96",
"name": "debug 17",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": true,
"complete": "payload",
"targetType": "msg",
"statusVal": "payload",
"statusType": "auto",
"x": 580,
"y": 140,
"wires": []
},
{
"id": "bfa9ed965f9761d3",
"type": "function",
"z": "e8472b788ef22c96",
"name": "function 6",
"func": "if (msg.topic === \"sortie\") {\n context.attente = msg.payload\n} \nif (msg.topic === \"entree\") {\n if (context.attente !== \"1\" ) {\n return msg; \n }\n else {\n msg.payload = \"sortie de zone trop courte\"\n return msg;\n }\n }\n\n\n",
"outputs": 1,
"noerr": 0,
"initialize": "",
"finalize": "",
"libs": [],
"x": 580,
"y": 260,
"wires": [
[
"d4c90165250dbd66"
]
]
},
{
"id": "d4c90165250dbd66",
"type": "debug",
"z": "e8472b788ef22c96",
"name": "debug 18",
"active": true,
"tosidebar": true,
"console": false,
"tostatus": false,
"complete": "false",
"statusVal": "",
"statusType": "auto",
"x": 740,
"y": 260,
"wires": []
}
]