Subversion Repositories HomeAutomation

Rev

Rev 1883 | Blame | Last modification | View Log | SVN | RSS feed

  1. <?php
  2. $aliasesDimmer = array("TakSovrum", "bardisk", "bardisk_tak", "bardisk_tv");
  3. $aliasesPower = array("Power", "PowerBRF");
  4.  
  5. require 'atom_interface.php';
  6. require 'getSetData.php';
  7.  
  8. $response = array();
  9.  
  10. if (isset($_GET["DimmerStrength"]))
  11. {
  12.   if (intval($_GET["strength"]) < 10)
  13.   {
  14.     $_GET["strength"] = 0;
  15.   }
  16.  
  17.   SetDimmerValue($_GET["alias"], $_GET["strength"]);
  18.  
  19.   echo json_encode($response);
  20.   exit(0);
  21. }
  22. else if (isset($_GET["getvalue"]))
  23. {
  24.   foreach ($aliasesDimmer as $alias)
  25.   {
  26.     $response[$alias] = GetLastValue($alias);
  27.   }
  28.  
  29.   echo json_encode($response);
  30.   exit(0);
  31. }
  32. else if (isset($_GET["getdata"]))
  33. {
  34.   foreach ($aliasesDimmer as $alias)
  35.   {
  36.     $response[$alias] = GetLastData($alias);
  37.   }
  38.  
  39.   echo json_encode($response);
  40.   exit(0);
  41. }
  42. ?>
  43.  
  44.  
  45. <!DOCTYPE html>
  46. <html>
  47. <head>
  48.   <meta charset="utf-8">
  49.   <meta name="viewport" content="width=device-width, initial-scale=1">
  50.   <title>Light switch</title>
  51. <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
  52.     <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
  53.     <script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
  54. <?
  55. //  <link rel="stylesheet"  href="jquery.mobile-1.0b1.css" />
  56. //  <script src="jquery-1.6.1.min.js"></script>
  57. //  <script src="jquery.mobile-1.0b1.min.js"></script>
  58. ?>
  59.   <script>
  60.  
  61.     $(document).bind("pagecreate", function(event, ui)
  62.     {
  63.       <?
  64.       foreach ($aliasesDimmer as $alias)
  65.       {
  66.       ?>
  67.         $('#slider<?=$alias?>' ).bind('change', function(event, ui){ makeAjaxChange("<?=$alias?>"); });
  68.       <?
  69.       }
  70.       ?>
  71.       delayed_start_of_poll();
  72.     });
  73.  
  74.     var current_value = {};
  75.     var next_value = {};
  76.    
  77.     <?
  78.     foreach ($aliasesDimmer as $alias)
  79.     {
  80.     ?>
  81.       current_value['<?=$alias?>'] = 0;
  82.       next_value['<?=$alias?>'] = -1;
  83.     <?
  84.     }
  85.     ?>
  86.     var updating_current = false;
  87.     var timer = null;
  88.  
  89.     function checkCurrentValue()
  90.     {
  91.       updating_current = true;
  92.       jQuery.getJSON("?getvalue=1", "", function(data)
  93.       {
  94.        
  95.        
  96.         jQuery.each(data, function(alias, value)
  97.         {
  98.           current_value[alias] = value;
  99.           $('#slider' + alias).val(value).slider("refresh");
  100.         });
  101.        
  102.         updating_current = false;
  103.       });
  104.       timer = setTimeout(checkCurrentValue, 1000);
  105.     }
  106.  
  107.     function makeAjaxChange(alias)
  108.     {
  109.       if (updating_current)
  110.       {
  111.         return;
  112.       }
  113.    
  114.       if ($('#slider' + alias).val() == current_value)
  115.       {
  116.         return;
  117.       }
  118.      
  119.       if (next_value[alias] == -1) // Nothing in progress, do a call
  120.       {
  121.         do_call(alias, $('#slider' + alias).val());
  122.       }
  123.       else
  124.       {
  125.         next_value[alias] = $('#slider' + alias).val();
  126.       }
  127.       // console.log($('#slider').val());
  128.     }
  129.    
  130.     function do_call(alias, strength)
  131.     {
  132.       next_value[alias] = strength;
  133.      
  134.       clearInterval(timer);
  135.       timer = null;
  136.      
  137.       jQuery.get("?alias=" + alias + "&DimmerStrength=" + strength, "", function()
  138.       {
  139.         current_value[alias] = strength;
  140.        
  141.         if (next_value[alias] != current_value[alias])
  142.         {
  143.           do_call(alias, next_value[alias]);
  144.         }
  145.         else
  146.         {
  147.           timer = setTimeout(delayed_start_of_poll, 3000);
  148.           next_value[alias] = -1;
  149.         }
  150.       });
  151.     }
  152.    
  153.     function delayed_start_of_poll()
  154.     {
  155.       timer = setTimeout(checkCurrentValue, 1000);
  156.     }
  157.  
  158.   </script>
  159.  
  160. </head>
  161. <body>
  162.   <div data-role="page" id="jqm-home" class="type-home" data-theme="a">
  163.     <div data-role="header" data-position="inline">
  164.         <a href="index.html" data-icon="delete">Cancel</a>
  165.         <h1>Testar</h1>
  166.         <a href="index.html" data-icon="check">Save</a>
  167.     </div>
  168.     <div data-role="content">
  169.       <div data-role="collapsible-set" data-theme="" data-content-theme="">
  170.     <div data-role="collapsible" data-collapsed="true">
  171.       <h3>
  172.         Dimmers
  173.       </h3>
  174.       <?
  175.       foreach ($aliasesDimmer as $alias)
  176.       {
  177.       ?>
  178.       <div data-role="fieldcontain" id="slider-container">
  179.         <label for="slider<?=$alias?>"><?=ucfirst($alias)?>:</label>
  180.         <input type="range" name="slider<?=$alias?>" id="slider<?=$alias?>" value="<?=intval($level)?>" min="0" max="255"  />
  181.       </div>
  182.  
  183.       <div style="">
  184.  
  185.       </div>
  186.       <?
  187.       }
  188.       ?>
  189.     </div>
  190.       </div>
  191.       <div data-role="collapsible-set" data-theme="" data-content-theme="">
  192.     <div data-role="collapsible" data-collapsed="true">
  193.       <h3>
  194.         Power
  195.       </h3>
  196.       <?
  197.       foreach ($aliasesPower as $alias)
  198.       {
  199.       ?>
  200.       <div data-role="fieldcontain" id="slider-container">
  201.         <label for="slider<?=$alias?>"><?=ucfirst($alias)?>:</label>
  202.       </div>
  203.  
  204.       <div style="">
  205.  
  206.       </div>
  207.       <?
  208.       }
  209.       ?>
  210.     </div>
  211.       </div>
  212.       <div data-role="collapsible-set" data-theme="" data-content-theme="">
  213.     <div data-role="collapsible" data-collapsed="true">
  214.       <h3>
  215.         Ute temperatur
  216.       </h3>
  217. <?
  218. //    <div style="width: 997px; height: 519px; position: relative; background-color: #fbfbfb; border: 1px solid #b8b8b8;">
  219. //      <img style=" top: 50%; left: 50%; " src="http://linuxz-home.mine.nu/CANgraph/outside_day.png" />
  220. //    </div>
  221. ?>
  222.     </div>
  223.       </div>
  224.     </div>
  225.   </div>
  226. </body>
  227. </html>