From 373bb6c22891d0cb0ef69be0530d8ef6893504d5 Mon Sep 17 00:00:00 2001 From: Daniel Tartavel Date: Thu, 1 Sep 2022 17:05:05 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20de=20la=20d=C3=A9tection=20de=20pr?= =?UTF-8?q?=C3=A9sence=20par=20pr=C3=A9sence=20de=20t=C3=A9l=C3=A9phone=20?= =?UTF-8?q?en=20Wifi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/devices_constants.php | 1 + config/liste_telephones.php | 3 +- presence.php | 78 +++++++++++++++++++++++++++++++----- 3 files changed, 72 insertions(+), 10 deletions(-) diff --git a/config/devices_constants.php b/config/devices_constants.php index b099667..f0e3124 100644 --- a/config/devices_constants.php +++ b/config/devices_constants.php @@ -9,6 +9,7 @@ $deviceTable = array( "0x00124b0022ebac5c" => "RDC_SALON_MVMT2", "0x588e81fffe2cf695" => "RDC_SALON_MVMT", + "0xe0798dfffe4ffa2c" => "RDC_SALON_PRESENCE", "0x00124b001f900753" => "RDC_ENTREE_PORTE", "0x00158d0001923c21" => "RDC_CHAMBRE_RADIATEUR", "0x04cf8cdf3c78aff0" => "RDC_SALON_LUMINOSITE", diff --git a/config/liste_telephones.php b/config/liste_telephones.php index 353b36c..e6fe708 100644 --- a/config/liste_telephones.php +++ b/config/liste_telephones.php @@ -1,5 +1,6 @@ "84:CF:BF:8E:E6:A6" ); diff --git a/presence.php b/presence.php index fdd00cf..4069af3 100644 --- a/presence.php +++ b/presence.php @@ -1,18 +1,78 @@ -$value) + if(array_key_exists("nom", $argList)) { - $key = array_search($value, $result); + $name = $argList["nom"]; + }else + { + return "Le paramètre 'nom' est obligatoire\npresent&nom=&presence=" . EOLH; + } + if(array_key_exists("presence", $argList)) + { + $key= $argList["presence"]; + }else + { + return "Le paramètre 'presence' est obligatoire\npresent&nom=&presence=" . EOLH; + } + $key = $argList["presence"]; + if (!array_key_exists($name, $presence)) + { + $presence[] = $name; + $presence[$name] = false; + } + if ($key === true) + { + if ($presence[$name] === false) + { + logger(ALERT, $name . _(" est présent"), null, $device); + //echo $name . " est présent"; + $presence[$name] = true; + } + }elseif ($presence[$name] === true) + { + $presence[$name] = false; + logger(ALERT, $name . _(" est présent"), null, $device); } } -presence(); + +function isPresent($name = false, $returnNames = false) +{ + global $presence; + + $r = false; + $list = ""; + + if ($name === false) + { + foreach($presence as $name => $value) + { + if ($value === true) + { + $r &= true; + $liste .= $name . EOLH; + } + } + }elseif (array_key_exists($name, $presence)) + { + $r = $presence[$name]; + }else + { + return -1; + } + + if ($returnNames and !empty($liste)) + { + return $liste; + }else + { + return $r; + } + +} ?>