Subversion Repositories HomeAutomation

Rev

Rev 1765 | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1.  
  2. Display_ModuleNames    = [ "HD44789" ];
  3. Display_Height         = function() { return [ 0, 1, 2, 3  ]; };
  4. Display_Width          = function() { return [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ]; };
  5. Display_Backlight      = function() { return [ 0, 50, 100, 150, 200, 255 ]; };
  6. Display_Autolight      = function() { return [ "ON", "OFF" ]; };
  7. Display_Aliases        = function() { return Module_GetAliasNames(Display_ModuleNames); };
  8. Display_AvailableIds   = function() { return Module_GetAvailableIds(Display_ModuleNames); };
  9.  
  10. function Display_Clear(alias_name)
  11. {
  12.     if (arguments.length < 1)
  13.     {
  14.         Log("\033[31mNot enough parameters given.\033[0m\n");
  15.         return false;
  16.     }
  17.    
  18.     var aliases_data = Module_ResolveAlias(alias_name, Display_ModuleNames);
  19.     var found = false;
  20.    
  21.     for (var name in aliases_data)
  22.     {
  23.         var variables = {};
  24.            
  25.         if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "LCD_Clear", variables))
  26.         {
  27.             //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
  28.         }
  29.         else
  30.         {
  31.             Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
  32.         }
  33.        
  34.         found = true;
  35.     }
  36.    
  37.     if (!found)
  38.     {
  39.         Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
  40.         return false;
  41.     }
  42.    
  43.     return true;
  44. }
  45. Console_RegisterCommand(Display_Clear, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Display_Aliases()); });
  46.  
  47. function Display_SetBacklight(alias_name, strength)
  48. {
  49.     if (arguments.length < 2)
  50.     {
  51.         Log("\033[31mNot enough parameters given.\033[0m\n");
  52.         return false;
  53.     }
  54.    
  55.     var aliases_data = Module_ResolveAlias(alias_name, Display_ModuleNames);
  56.     var found = false;
  57.    
  58.     for (var name in aliases_data)
  59.     {
  60.         var variables = {
  61.         "Strength" : strength,
  62.         "AutoLight" : "OFF"
  63.         };
  64.        
  65.         if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "LCD_Backlight", variables))
  66.         {
  67.             //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
  68.         }
  69.         else
  70.         {
  71.             Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
  72.         }
  73.        
  74.         found = true;
  75.     }
  76.    
  77.     if (!found)
  78.     {
  79.         Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
  80.         return false;
  81.     }
  82.    
  83.     return true;
  84. }
  85. Console_RegisterCommand(Display_SetBacklight, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Display_Aliases(), Display_Backlight()); });
  86.  
  87. function Display_SetBacklightAuto(alias_name, strength, autolight)
  88. {
  89.     if (arguments.length < 2)
  90.     {
  91.         Log("\033[31mNot enough parameters given.\033[0m\n");
  92.         return false;
  93.     }
  94.    
  95.     var aliases_data = Module_ResolveAlias(alias_name, Display_ModuleNames);
  96.     var found = false;
  97.    
  98.     for (var name in aliases_data)
  99.     {
  100.         var variables = {
  101.         "Strength" : strength,
  102.         "AutoLight" : autolight
  103.         };
  104.        
  105.         if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "LCD_Backlight", variables))
  106.         {
  107.             //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
  108.         }
  109.         else
  110.         {
  111.             Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
  112.         }
  113.        
  114.         found = true;
  115.     }
  116.    
  117.     if (!found)
  118.     {
  119.         Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
  120.         return false;
  121.     }
  122.    
  123.     return true;
  124. }
  125. Console_RegisterCommand(Display_SetBacklightAuto, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Display_Aliases(), Display_Backlight(),Display_Autolight()); });
  126.  
  127.  
  128.  
  129. function Display_Print(alias_name, x, y, text)
  130. {
  131.     if (arguments.length < 4)
  132.     {
  133.         Log("\033[31mNot enough parameters given.\033[0m\n");
  134.         return false;
  135.     }
  136.    
  137.     text = text.replace(/Å/, String.fromCharCode(1));
  138.     text = text.replace(/å/, String.fromCharCode(0));
  139.     text = text.replace(/Ä/, String.fromCharCode(2));
  140.     text = text.replace(/ä/, String.fromCharCode(225));
  141.     text = text.replace(/Ö/, String.fromCharCode(3));
  142.     text = text.replace(/ö/, String.fromCharCode(239));
  143.     text = text.replace(/¤/, String.fromCharCode(223));
  144.    
  145.     x = parseInt(x);
  146.     y = parseInt(y);
  147.    
  148.     for (var n = 4;  n < arguments.length; n++)
  149.     {
  150.         text += " " + arguments[n];
  151.     }
  152.    
  153.     var aliases_data = Module_ResolveAlias(alias_name, Display_ModuleNames);
  154.     var found = false;
  155.    
  156.     for (var name in aliases_data)
  157.     {
  158.         var org_text = text;
  159.        
  160.         while (text.length > 0)
  161.         {
  162.             var length = text.length < 6 ? text.length : 6;
  163.             var text_part = text.substr(0, length);
  164.            
  165.             var variables = {
  166.             "X"    : x,
  167.             "Y"    : y,
  168.             "Text" : text_part };
  169.            
  170.             if (Module_SendMessage(aliases_data[name]["module_name"], aliases_data[name]["module_id"], "LCD_TextAt", variables))
  171.             {
  172.                 //Log("\033[32mCommand sent successfully to " + name + ".\033[0m\n");
  173.             }
  174.             else
  175.             {
  176.                 Log("\033[31mFailed to send command to " + name + ".\033[0m\n");
  177.             }
  178.            
  179.             text = text.substr(6);
  180.             x += 6;
  181.         }
  182.        
  183.         text = org_text;
  184.         found = true;
  185.     }
  186.    
  187.     if (!found)
  188.     {
  189.         Log("\033[31mNo aliases by the name " + alias_name + " were applicable for this command.\033[0m\n");
  190.         return false;
  191.     }
  192.    
  193.     return true;
  194. }
  195. Console_RegisterCommand(Display_Print, function(arg_index, args) { return Console_StandardAutocomplete(arg_index, args, Display_Aliases(), Display_Width(), Display_Height()); });
  196.  
  197.  
  198. function Display_OnMessage(module_name, module_id, command, variables)
  199. {
  200.     if (in_array(Display_ModuleNames, module_name))
  201.     {
  202.         var aliases_data = Module_LookupAliases({
  203.             "module_name" : module_name,
  204.             "module_id"   : module_id,
  205.             "group"       : false
  206.         });
  207.        
  208.         switch (command)
  209.         {
  210.             case "LCD_Size":
  211.             {
  212.                 for (var alias_name in aliases_data)
  213.                 {
  214.                     var last_value = {};
  215.                     var last_value_string = Storage_GetParameter("LastValues", alias_name);
  216.                    
  217.                     if (last_value_string)
  218.                     {
  219.                         last_value = eval("(" + last_value_string + ")");
  220.                     }
  221.                    
  222.                     last_value["Width"] = { "value" : variables["Width"], "timestamp" : get_time() };
  223.                     last_value["Height"] = { "value" : variables["Height"], "timestamp" : get_time() };
  224.                    
  225.                     Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
  226.                 }
  227.                
  228.                 break;
  229.             }
  230.             case "LCD_Backlight":
  231.             {
  232.                 for (var alias_name in aliases_data)
  233.                 {
  234.                     var last_value = {};
  235.                     var last_value_string = Storage_GetParameter("LastValues", alias_name);
  236.                    
  237.                     if (last_value_string)
  238.                     {
  239.                         last_value = eval("(" + last_value_string + ")");
  240.                     }
  241.                    
  242.                     last_value["Strength"] = { "value" : variables["Strength"], "timestamp" : get_time() };
  243.                     last_value["AutoLight"] = { "value" : variables["AutoLight"], "timestamp" : get_time() };
  244.                    
  245.                     Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
  246.                 }
  247.                
  248.                 break;
  249.             }
  250.         }
  251.     }
  252. }
  253. Module_RegisterToOnMessage("all", Display_OnMessage);
  254.  
  255. function Display_OnChange(module_name, module_id, available)
  256. {
  257.     if (in_array(Display_ModuleNames, module_name) && available)
  258.     {
  259.         var aliases_data = Module_LookupAliases({
  260.             "module_name" : module_name,
  261.             "module_id"   : module_id,
  262.             "group"       : false
  263.         });
  264.        
  265.         for (var alias_name in aliases_data)
  266.         {
  267.             var variables = { };
  268.            
  269.             Module_SendMessage(aliases_data[alias_name]["module_name"], aliases_data[alias_name]["module_id"], "LCD_Backlight", variables);
  270.             Module_SendMessage(aliases_data[alias_name]["module_name"], aliases_data[alias_name]["module_id"], "LCD_Size", variables);
  271.         }
  272.     }
  273. }
  274. Module_RegisterToOnChange("all", Display_OnChange);
  275.