123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- <?php
- include_once '../auth.php';
- ?>
- <html>
- <meta name="apple-mobile-web-app-capable" content="yes" />
- <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"/>
- <html>
- <head>
- <script type='text/javascript' charset='utf-8'>
- // Hides mobile browser's address bar when page is done loading.
- window.addEventListener('load', function(e) {
- setTimeout(function() { window.scrollTo(0, 1); }, 1);
- }, false);
- </script>
- <title>Home Dynamic</title>
- <link rel="stylesheet" href="script/tocas/tocas.css">
- <script src="script/tocas/tocas.js"></script>
- <script src="script/jquery.min.js"></script>
- <?php
- $ao = "false";
- if (file_exists("../script/ao_module.js")){
- //This is the API support for ArOZ Online System
- echo '<script src="../script/ao_module.js"></script>';
- $ao = "true";
- }
- ?>
- <style>
- .devices{
- height:200px;
- max-width: 140px;
- border: 1px solid #706b6b;
- padding: 0px !important;
- margin: 3px;
- background-color:#b3b3b3;
- }
- body{
- background-color:#1a1a1a;
- overflow: hidden;
- }
- .controller{
- overflow:hidden;
- width:100%;
- border: 0px;
- padding: 0px solid transparent;
- }
- .topmenu{
- background-color: #0d0d0d;
- width:100%;
- padding:10px;
- }
- .link{
- color:white;
- font-size:120%;
- padding-right:8px;
- padding-left:2px;
- cursor: pointer;
- }
- #mainmenu{
- padding-left:10px;
- padding-right:10px;
- }
- </style>
- </head>
- <body>
- <div class="topmenu">
- <a href="" class="link">💡 Home Dynamic</a>//
- <a href="hds_scan.php" class="link">Scan</a>/
- <a class="link">Controls</a>/
- <a class="link">Nickname List</a>
- </div>
- <br>
- <div>
- <div id="mainmenu" class="ts grid"></div>
- </div>
- <div id="additionalDev" style="display:none;"><?php
- if (file_exists("additional.txt")){
- echo json_encode(explode("\n",file_get_contents("additional.txt")));
- }
- ?></div>
- <script>
- var aom = <?php echo $ao;?>; //ArOZ Online Mode
- var ipTable = "<?php if(file_exists("iptable.txt")){echo file_get_contents("iptable.txt");}?>";
- var deviceIPs = ipTable.slice(0, -1).split(",");
- var template = '<div id="%ID%" class="four wide column devices"></div>';
- var additionalBoard = "";
- if ($("#additionalDev").text().trim().length > 0){
- additionalBoard = JSON.parse($("#additionalDev").text().trim());
- }
- if (aom){
- ao_module_setWindowSize(600,505);
- ao_module_setWindowTitle("Home Dynamic");
- ao_module_setWindowIcon("lightbulb");
- }
- initInterface();
- initExtraDev();
- function initInterface(){
- for (var i =0; i < deviceIPs.length; i++){
- $("#mainmenu").append(template.replace("%ID%","panel_" + i));
- }
- GetAllInfo();
- }
- function initExtraDev(){
- if (additionalBoard != ""){
- for (var i =0; i < additionalBoard.length; i++){
- var data = additionalBoard[i].split(",");
- $("#mainmenu").append(template.replace("%ID%","panel_" + data[i].split(".").join("-")));
- $("#panel_" + data[i].split(".").join("-")).html('<iframe class="controller" src="' + "drivers/" + data[1] + ".php?ip=" + data[0] + '"></iframe>');
- }
- }
- }
- function openFullscreen() {
- elem.requestFullscreen();
- elem.mozRequestFullScreen();
- elem.webkitRequestFullscreen();
- elem.msRequestFullscreen();
- webkitRequestFullscreen();
- }
- function GetAllInfo(){
- var i=0;
- for (i = 0; i < deviceIPs.length;i++){
- GetDeviceInfo(deviceIPs[i],i);
- }
- }
- function GetDeviceInfo(ip,id){
- var thisIP = ip;
- var thisNumber = id;
- $.ajax({
- url: "http://" + thisIP + "/uuid",
- async: "false",
- timeout: 10000,
- error: function(){
- $('#panel_' + thisNumber ).attr("uuid","Unreachable");
- },
- success: function(result){
- $('#panel_' + thisNumber ).attr("uuid",result);
- }});
- $.ajax({
- url: "http://" + thisIP + "/info",
- async: "false",
- timeout: 10000,
- error: function(){
- $('#panel_' + thisNumber ).html("This device has been offline or its IP has been changed.");
- $('#panel_' + thisNumber ).append("<br>Please click <a href='hds_scan.php'>here</a> to update the IP table by performing an IP scan.");
- },
- success: function(result){
- $('#panel_' + thisNumber ).html(" " + result);
- $('#panel_' + thisNumber ).append("<br>IP -> " + thisIP);
- FindDriver(result,id,thisIP);
- logMapper(result,thisIP);
- $('#panel_' + thisNumber ).attr("ip",thisIP);
- }
- });
-
- }
- function logMapper(infoResult, ipaddr){
- var driverID = infoResult.split("_").pop();
- $.ajax({
- url: "http://" + ipaddr + "/uuid",
- error: function(){
- //Ignore this record
- },
- success: function(data){
- var devMapper = data + "_" + driverID + "_" + ipaddr;
- $.ajax("recordType.php?type=" + devMapper).done(function(data){
- if (data.includes("ERROR")){
- console.log(data);
- }
-
- });
- },
- timeout: 3000 // sets timeout to 3 seconds
- });
-
-
-
-
- }
- function FindDriver(result,id,ip){
- if (result.includes("_") == false){
- //Invalid HDS protocol or device name
- return;
- }
- var deviceType = result.split("_")[1];
- $.ajax({
- url: "driverLoader.php?driverName=" + deviceType,
- success: function(result){
- if (result == "true"){
- $('#panel_' + id ).append("<br><br>Driver found! Initializing control interface...");
- $("#panel_" + id).html('<iframe class="controller" src="' + "drivers/" + deviceType + ".php?ip=" + ip + '"></iframe>');
- adjustIframeHeight();
- }else{
- $('#panel_' + id ).append("<br><br>ERROR. Missing drivers.");
- }
- }
- });
- }
- function adjustIframeHeight(){
- $("iframe").each(function(){
- $(this).attr("height",$(this).parent().height() + "px");
- });
- }
- setTimeout(function(){ location.reload(); }, 3600000);
- </script>
- </body>
- </html>
|