$property) { $value = $indexDevices[$ieeeAddress]->properties[$property]["value"]; if ($value === null) { $value ="null"; } logger(DEBUG, _($indexDevices[$ieeeAddress]->friendlyName . " => " . bool2string($value))); $response .= $indexDevices[$ieeeAddress]->friendlyName . " => " . bool2string($value) . "
"; } }else { $response = _("dashboard not found"); } htmlSend($socket, $response); } function webBrowse($socket, $argList) { global $topics, $devices; logger(DEBUG, _("Generic response to choose device and property"), __FILE__ . ":" . __LINE__); //$response = "
" . _("unknown command") . ""; $response = ""; $flag = false; $tab = ""; if (array_key_exists("topic", $argList)) { if (array_key_exists($argList["topic"], $topics)) { logger(DEBUG, _("Topic exists") , __FILE__ . ":" . __LINE__); $topicRef = 'properties as $key => $value) { $response .= $key . "
"; $response .= $tab . "[
"; echo memory_get_usage(); //$response = value($key, $value, $response); iterateProperty($key, $value, $response, $tab); $response .= $tab . "]
"; } /*foreach($device->properties as $key => $value) { $response = value($key, $value, $response); }*/ }else { foreach($device as $key => $value) { $response .= $topicRef . htmlentities("&fn=" . $fn . "/" . $key) . '">' . $key . "

\n"; } } logger(DEBUG, _("response: ") . EOL . $response , __FILE__ . ":" . __LINE__); //htmlSend($socket, $response); }else { foreach($devices[$argList["topic"]] as $key => $value) { print "key = " . print_r($key, true) . " value = " . print_r($value, true) . EOLR; logger(DEBUG, _("devices de topic: ") . $key , __FILE__ . ":" . __LINE__); $response .= $topicRef . htmlentities("&fn=" . $key) . '">' . $key . "
"; logger(DEBUG, _("response: ") . $response , __FILE__ . ":" . __LINE__); } } }else { $response = webListTopics(); } }else { $response = webListTopics(); } htmlSend($socket, $response); } function iterateProperty($property, $value, &$response, $tab="") { $tab .= "     "; if (is_array($value) or is_object($value)) { logger(DEBUG, _("is object or array"), __FILE__ . ":" . __LINE__ ); foreach($value as $key => $value2) { logger(DEBUG, $key, __FILE__ . ":" . __LINE__ ); iterateProperty($key, $value2, $response, $tab); } }else { $response .= $tab . $property . ' = ' . bool2string($value) . "
";//value($property, $value, ""); } } function webListTopics() { global $topics; logger(DEBUG, _("webListTopics function")); $response = ""; foreach ($topics as $name => $topic) { $response .= '' . $name ."
"; } return $response; } function webGet($argList) { if(!array_key_exists("topic", $argList) or !array_key_exists("fn", $argList) or !array_key_exists("property", $argList)) { $response = "GET: " . _("no parameters passed, need topic, fn and property"); }else { if (($device = getDevice($argList["topic"], $argList["fn"])) === false) { $response = sprintf(_('"%s" or "%s" does not exists'), $argList["topic"], $argList["fn"]); }else { $property = $argList["property"]; $response = "GET: " . bool2string($device->$property["value"]); } } return $response; } function webSet($argList) { if(!array_key_exists("topic", $argList) or !array_key_exists("fn", $argList) or !array_key_exists("property", $argList) or !array_key_exists("value", $argList)) { $response = "SET: " . _("no parameters passed, need topic, fn, property and value") . "passed"; }else { $response = "setting property " . $argList["property"] . " of " . $argList["fn"] . " to value: " . $argList["value"]; $payload = array($argList["property"] => $argList["value"]); publish(Z2M . "/" . $argList["fn"], $payload); } return $response; } function webPrint($argList, $command) { global $GLOBALS, $topics; if (array_key_exists($argList["object"], $GLOBALS)) { $var = $GLOBALS[$argList["object"]]; if (isset($argList["topic"])) { $topic = $argList["topic"]; } if (isset($argList["address"])) { $var = $var[$argList["address"]]; }elseif (isset($argList["fn"])) { if(!empty($topic)) { $var = getDevice($topic, $argList["fn"]); }else { $str = _("topic is not defining: add &topic=\nThese topics are availables: "); foreach($topics as $key => $value) { $str .= $key . EOL; } logger(ERROR, $str, __FILE__ . ":" . __LINE__); } } $error = error_get_last(); if($error !== null) { $response = $error["message"] . " file: " . $error["file"] . " line: " . $error["line"]; } if ($command === "print") { $response = "
" . nl2br(print_r($var, true)) . "
";
		}elseif($command === "dump")
		{
			$response = "Dump" . EOL;
			$response .= "
" . nl2br(var_export($var, true)) . "
";
		}
	}else
	{
		$response = _("Object do not exists");
	}
	return $response;
}

function webNotify($argList)
{
	if (!array_key_exists("topic", $argList) or !array_key_exists("fn", $argList) or !array_key_exists("property", $argList) or !array_key_exists("condition", $argList) or !array_key_exists("value", $argList))
	{
		$response = _("Error: With 'notify' command, you need 4 parameters: topic, fn, property, condition, value");
	}else
	{
		$response = _("notify command have been set");
		$monitored[] = new watch($argList["topic"], $argList["fn"], $argList["property"], $argList["condition"], $argList["value"]);
	}
}
?>