Subversion Repositories HomeAutomation

Rev

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

  1.  
  2. Rotary_ModuleNames    = [ "Rotary","RotaryHex"];
  3. Rotary_Aliases        = function() { return Module_GetAliasNames(Rotary_ModuleNames); };
  4. Rotary_AvailableIds   = function() { return Module_GetAvailableIds(Rotary_ModuleNames); };
  5.  
  6.  
  7. function Rotary_OnMessage(module_name, module_id, command, variables)
  8. {
  9.  
  10.     if (in_array(Rotary_ModuleNames, module_name))
  11.     {
  12.         var aliases_data = Module_LookupAliases({
  13.             "module_name" : module_name,
  14.             "module_id"   : module_id,
  15.             "group"       : false
  16.         });
  17.        
  18.         switch (command)
  19.         {
  20.             case "Rotary_Switch":
  21.             {
  22.                 for (var alias_name in aliases_data)
  23.                 {
  24.                     if (aliases_data[alias_name]["specific"]["SwitchId"] != variables["SwitchId"])
  25.                     {
  26.                         continue;
  27.                     }
  28.                     var last_value = {};
  29.                     var last_value_string = Storage_GetParameter("LastValues", alias_name);
  30.                
  31.                     if (last_value_string)
  32.                     {
  33.                         last_value = eval("(" + last_value_string + ")");
  34.                     }
  35.                    
  36.                     last_value["Direction"] = { "value" : variables["Direction"], "timestamp" : get_time() };
  37.                     last_value["Steps"] = { "value" : variables["Steps"], "timestamp" : get_time() };
  38.                     last_value["Position"] = { "value" : variables["Position"], "timestamp" : get_time() };
  39.                     Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
  40.                 }
  41.                
  42.                 break;
  43.             }
  44.             case "Button":
  45.             {
  46.                 for (var alias_name in aliases_data)
  47.                 {
  48.                     if (aliases_data[alias_name]["specific"]["SwitchId"] != variables["SwitchId"])
  49.                     {
  50.                         continue;
  51.                     }
  52.                    
  53.                     var last_value = {};
  54.                     var last_value_string = Storage_GetParameter("LastValues", alias_name);
  55.  
  56.                     if (last_value_string)
  57.                     {
  58.                         last_value = eval("(" + last_value_string + ")");
  59.                     }
  60.                    
  61.                     last_value["Status"] = { "value" : variables["Status"], "timestamp" : get_time() };
  62.                    
  63.                     Storage_SetParameter("LastValues", alias_name, JSON.stringify(last_value));
  64.                 }
  65.                
  66.                 break;
  67.             }
  68.         }
  69.     }
  70. }
  71. Module_RegisterToOnMessage("all", Rotary_OnMessage);
  72.