diff --git a/apiserver/cmd_functions.php b/apiserver/cmd_functions.php
index 41e6885..a6052fa 100644
--- a/apiserver/cmd_functions.php
+++ b/apiserver/cmd_functions.php
@@ -485,7 +485,7 @@ function PropertiesDashboard($argList)
logger(INFO, _("propertiesDashboard function"), __FILE__ . ":" . __LINE__);
$response = insertJavascript();
$property = $argList["property"];
- print_r($indexProperties[$property]);
+ //print_r($indexProperties[$property]);
foreach($indexProperties as $propertyName => $index)
{
if (str_contains($propertyName, $property ))
diff --git a/config/liste_telephones.php b/config/liste_telephones.php
index e6fe708..07eb8ee 100644
--- a/config/liste_telephones.php
+++ b/config/liste_telephones.php
@@ -1,7 +1,9 @@
"84:CF:BF:8E:E6:A6"
+"Daniel" => "E8:78:29:C2:79:22",
+"Maryclaire" => "D0:9C:7A:DA:8E:D8",
+"Terence" => "26:4D:40:5F:1E:10"
);
?>
diff --git a/daemons/presenceDaemon.php b/daemons/presenceDaemon.php
index d4dabd3..1049e4c 100755
--- a/daemons/presenceDaemon.php
+++ b/daemons/presenceDaemon.php
@@ -14,56 +14,54 @@ $result = array();
$presence = array();
$curlErr = 0;
$command = "sudo nmap -n -sP 192.168.1.*"; //need to configure /etc/sudo/sudoers to permit execution of nmap as superuser
+
echo "presenceDaemon is starting\n";
+// init du tableau des présences à -1
+foreach($macAddresses as $nom => $mac)
+{
+ $presence[$nom] = -1;
+}
while (1)
{
- //echo "presenceDaemon is testing\n";
- $msg = "";
+ $presenceTemp = array();
exec($command, $result);
- foreach ($macAddresses as $name =>$value)
+ foreach ($result as $value)
{
- if (!array_key_exists($name, $presence))
+ //echo $value;
+ if (str_contains($value, "MAC Address:"))
{
- $presence[] = $name;
- $presence[$name] = false;
- }
- $r = search($value, $result);
-
- if ($r === true)
- {
- echo "présent\n";
- if ($presence[$name] === false)
- {
- $presence[$name] = true;
- $msg .= "nom=" . $name . _("&presence=true");
- send($msg);
- echo $name . " est mis présent dans tableau\n";
- }
- }elseif ($presence[$name] === true)
- {
- $presence[$name] = false;
- echo $name . " est mis absent dans tableau\n";
- $msg .= "nom=" . $name . _("&presence=false");
- send($msg);
+ //echo " contient une adresse MAC" . EOL;
+ search($value);
+ }
+ }
+ foreach($presenceTemp as $nom => $status)
+ {
+ $msg = "";
+ if ($presence[$nom] != (int)$status)
+ {
+ $msg .= "nom=" . $nom . "&presence=" . $status;
+ send($msg);
+ echo $nom . " est modifié dans tableau\n";
}
}
-
sleep(1);
}
-function search($needle, $array)
+function search($string)
{
- foreach ($array as $string)
+ global $macAddresses, $presenceTemp;
+ //echo "searching in " . $string . EOL;
+ foreach ($macAddresses as $nom => $needle)
{
+ //echo $nom ." => " . $needle . EOL;
if (str_contains($string, $needle))
{
- echo "found\n";
- return true;
+ echo "found " . $needle . EOL;
+ $presenceTemp[$nom] = true;
}
}
- return false;
}
function send($msg)
@@ -78,11 +76,10 @@ function send($msg)
// return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// $result contains the output string
- echo _("Curl sending message -") . __FILE__ . ":" . __LINE__ . EOL;
+ echo _("Curl sending message -") . $msg . __FILE__ . ":" . __LINE__ . EOL;
if ($curlErr <= 5)
{
- echo $msg . EOL;
curl_exec($ch);
if (curl_errno($ch) != 0)
{
diff --git a/moha.php b/moha.php
index 3bde973..3bda603 100644
--- a/moha.php
+++ b/moha.php
@@ -35,7 +35,7 @@ $included = false; // flag indicate scripts are loaded
$nSubscribed = 0; // Number of topics subsribed
$logFh = null; // filehandle of log file
$curlErr = 0; // Number of errors returned by curl
-$configDir = "./config"; // default config dir (production value is /etc/moha/)
+//$configDir = "./config"; // default config dir (production value is /etc/moha/)
$hooksInitialized = 0; // are all hooks initialized ? false/true
$flagHooks = false;
$devicesRequest = false; // set to true when publishing device request to zigbee2mqtt
@@ -59,11 +59,12 @@ if ($testMode)
$httpServerIp = "127.0.0.1";
}
-require "/etc/moha/liste_telephones.php";
+
+
if (!init()) exit(1);
// (re)démarre le démon de présence
-system("systemctl restart presenceD");
+system("sudo /usr/bin/systemctl restart presenceD.service");
// gettext
bindtextdomain("moha", "./locale");
@@ -122,10 +123,6 @@ function init()
echo _("error opening log file in ") . getcwd();
return false;
}
- foreach($macAddresses as $key => $value)
- {
- $presence[$key] = false;
- }
return true;
}
@@ -224,6 +221,9 @@ require "config/liste_telephones.php";
require "presence.php";
require "apiserver/apiserver.php";
require "configWatch.php";
+require $configDir . "/liste_telephones.php";
+
+
logger(DEBUG, _("Loading stored events datas from ") . $dataPath . "events.db", __FILE__ . ":" . __LINE__);
if (file_exists($dataPath . "events.db"))
@@ -390,9 +390,9 @@ while (true)
{
foreach ($input as $event)
{
- logger(DEBUG, _("configWatch : inclus ") . $configDir . "/" . $event["name"], __FILE__ . ":" . __LINE__);
if (pathinfo($event["name"], PATHINFO_EXTENSION) == "php")
{
+ logger(DEBUG, _("configWatch : inclus ") . $configDir . "/" . $event["name"], __FILE__ . ":" . __LINE__);
include $configDir . "/" . $event["name"];
}else
{
diff --git a/presence.php b/presence.php
index 6ac62ee..25d5a0b 100644
--- a/presence.php
+++ b/presence.php
@@ -1,5 +1,10 @@
$mac)
+{
+ $presence[$nom] = false;
+}
+
function presence($argList)
{
global $presence;
@@ -18,20 +23,22 @@ function presence($argList)
{
return _("Le paramètre 'presence' est obligatoire
present&nom=&presence=") . EOLH;
}
+ var_dump($presence);
if (!array_key_exists($name, $presence))
{
return sprintf(_("Ce nom (%s) n'existe pas dans la base."), $name) . EOLH;
}
-
- if ($key == "true")
+ $key = strval($key);
+ if ($key == 1)
{
+ echo "passed";
if ($presence[$name] == false)
{
logger(ALERT, $name . _(" est présent"), __FILE__ . ":" . __LINE__);
//echo $name . " est présent";
$presence[$name] = true;
}
- }elseif ($presence[$name] == true)
+ }elseif ($presence[$name] == true and $key == "0")
{
$presence[$name] = false;
logger(ALERT, $name . _(" est présent"), __FILE__ . ":" . __LINE__);
diff --git a/utils.php b/utils.php
index be998a5..7956786 100644
--- a/utils.php
+++ b/utils.php
@@ -208,6 +208,22 @@ function setValue($fn, $property, $value)
$indexDevices[$ieeeAddress]->properties[$property]["value"] = $value;
}
+function aliases($fn, $property)
+{
+ global $aliases;
+ logger(DEBUG, "Function aliases " . $fn . "/" . $property, __FILE__ . ":" . __LINE__);
+ if (array_key_exists($fn . "/" . $property, $aliases))
+ {
+ logger(DEBUG, "exists " . $fn . "/" . $property, __FILE__ . ":" . __LINE__);
+ return "/" . $aliases[$fn . "/" . $property];
+ }else
+ {
+ return "/" . _($property);
+ }
+
+
+}
+
//logger(DEBUG, _("signal handling"), __FILE__ . ":" . __LINE__, false);
//signal handling
function signalHandler($signal)