Subversion Repositories HomeAutomation

Rev

Rev 1786 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | SVN | RSS feed

  1.  
  2.  
  3. function badrumsdimmer(aliasnameSensor, aliasnameDimmer1, aliasnameRotary, aliasnameDimmer2, aliasnameOutput)
  4. {
  5.     /* We must always call the parent constructor, initialization
  6.        of variables could be done here, but initialize is a better place */
  7.     var self = this;
  8.     this.mySensor = aliasnameSensor;
  9.     this.myDimmer1 = aliasnameDimmer1;
  10.     this.myOutput = aliasnameOutput;
  11.     this.myDimmer2 = aliasnameDimmer2;
  12.     this.myRotary = aliasnameRotary;
  13.     this.myMode = 3;
  14.  
  15.     Module_RegisterToOnMessage(aliasnameSensor, function(alias_name, command, variables) { self.sensorOnMessage(alias_name, command, variables) });
  16.     Module_RegisterToOnMessage(this.myRotary, function(alias_name, command, variables) { self.rotary_OnMessage(alias_name, command, variables) });
  17.     //Module_RegisterToOnChange(this.myRotary, function(alias_name, available,test) { self.rotaryOnline(alias_name, available,test) });
  18.    
  19.     //Module_RegisterToOnChange( aliasnameSensor, function(alias_name, available,test) { self.sensorOnline(alias_name, available,test) });
  20.     //Module_RegisterToOnChange( aliasnameDimmer, function(alias_name, available) { self.dimmerOnline(alias_name, available) });
  21.    
  22.     /* Start interval timer for sending timestamp to network. Arguments are the callback function and time in milliseconds
  23.     used to make sure an eth-node gets its init packet (600s) */
  24.     this.myTimer = Timer_SetTimer(function(timer) {self.timerUpdate1(timer)}, 5000, true);
  25.     Log("\033[33mbadrumsdimmer created.\033[0m\n");
  26.    
  27. }
  28.  
  29. /* Declaration of instance variables, for static variables remove prototype */
  30. badrumsdimmer.prototype.myDimmer1 = null;
  31. badrumsdimmer.prototype.myDimmer2 = null;
  32. badrumsdimmer.prototype.myMode = 1;
  33. badrumsdimmer.prototype.mySensor = null;
  34. badrumsdimmer.prototype.myOutput = null;
  35. badrumsdimmer.prototype.myRotary = null;
  36. badrumsdimmer.prototype.outputStatus = "Low";
  37. badrumsdimmer.prototype.myInterval = null;
  38. badrumsdimmer.prototype.oldPwmValue = 0;
  39. badrumsdimmer.prototype.turnOffCnt = 0;
  40. const MovementTimeout = 300;
  41. const AdjustTimeout = 480;
  42. const ButtonTimeout = 900;
  43.  
  44. badrumsdimmer.prototype.sensorOnline = function(alias_name, available)
  45. {
  46.  
  47. }
  48.  
  49. badrumsdimmer.prototype.dimmerOnline = function(alias_name, available)
  50. {
  51.  
  52. }
  53.  
  54. badrumsdimmer.prototype.sensorOnMessage = function(alias_name, command, variables)
  55. {
  56. //Log("\033[33mMessage.\033[0m\n");
  57.     switch (command)
  58.     {
  59.         case "PinStatus":
  60.         {
  61.            
  62.             if (variables["Status"] == "Low") {
  63.  
  64.                 if (this.oldPwmValue == 0) {
  65.                     this.oldPwmValue = 255;
  66.                 }
  67.                 if (this.myMode == 1) {
  68.                     Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  69.                 } else if (this.myMode == 2) {
  70.                     Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  71.                 } else {
  72.                     Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  73.                     Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  74.                 }
  75.          
  76.             } else {
  77.               //Log("\033[33mknapp hög.\033[0m\n");
  78.              
  79. //            Dimmer_AbsoluteFade(this.myDimmerIndication, 129, 0);
  80.               //Log("\033[33mPin high.\033[0m\n");
  81.             }
  82.             if (this.turnOffCnt <  MovementTimeout) {
  83.                 this.turnOffCnt = MovementTimeout;
  84.             }
  85.             break;
  86.         }
  87.     }
  88.  
  89. }
  90.  
  91. badrumsdimmer.prototype.timerUpdate1 = function(timer)
  92. {
  93.   //Log("\033[33mTimer.\033[0m\n");
  94.     if (this.turnOffCnt > 0) {
  95.         this.turnOffCnt -= 5;
  96.         if (this.turnOffCnt < 0) {
  97.             this.turnOffCnt = 0;
  98.         }
  99.         if (this.turnOffCnt == 0) {
  100.             //Turn off light
  101.             //log(this.myName + ":" + this.myId + "> Light off.\n");
  102.             //this.myPWM.setPWMValue(0,2);
  103.             Dimmer_AbsoluteFade(this.myDimmer1, 129, 0);
  104.             Dimmer_AbsoluteFade(this.myDimmer2, 129, 0);
  105.             //getDimmerService('Skohylla').absFade(2,129, 0);
  106.         }
  107.     }
  108. }
  109.    
  110. badrumsdimmer.prototype.rotary_OnMessage = function(alias_name, command, variables)
  111. {
  112.     switch (command)
  113.     {
  114.         case "Rotary_Switch":
  115.         {
  116.             this.oldPwmValue = 17*variables["Position"];
  117.             /*for (var i = 0; i < variables["Steps"]; i++)
  118.             {
  119.                    
  120.                 if (variables["Direction"] == "Clockwise")
  121.                 {
  122.                     Dimmer_RelativeFade(this.myDimmer, 132, "Increase", 25);
  123.                     Log("\033[33mclock.\033[0m\n");
  124.              
  125.                 }
  126.                 else
  127.                 {
  128.                     Dimmer_RelativeFade(this.myDimmer, 132, "Decrease", 25);
  129.                     Log("\033[33m!clock.\033[0m\n");
  130.              
  131.                 }
  132.                
  133.             }*/
  134.             if (this.myMode == 1) {
  135.                 Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  136.             } else if (this.myMode == 2) {
  137.                 Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  138.             } else {
  139.                 Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  140.                 Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  141.             }
  142.                
  143.            
  144.            
  145.            
  146.             if (this.turnOffCnt <  AdjustTimeout) {
  147.                 this.turnOffCnt = AdjustTimeout;
  148.             }
  149.            
  150.             break;
  151.         }
  152.         case "Button":
  153.         {
  154.             if (variables["Status"] == "Pressed")
  155.             {
  156.                
  157.              
  158.                 if (this.myMode == 1) {
  159.                     this.myMode =2;
  160.                     Log("\033[33mknapp pressed, Mode 2\033[0m\n");
  161.                 } else if (this.myMode == 2) {
  162.                     this.myMode =3;
  163.                     Log("\033[33mknapp pressed, Mode 3\033[0m\n");
  164.                 } else {
  165.                     this.myMode =1;
  166.                     Log("\033[33mknapp pressed, Mode 1\033[0m\n");
  167.                 }
  168.                
  169.                 if (this.myMode == 1) {
  170.                     Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  171.                     Dimmer_AbsoluteFade(this.myDimmer2, 135, 0);
  172.                 } else if (this.myMode == 2) {
  173.                     Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  174.                     Dimmer_AbsoluteFade(this.myDimmer1, 135, 0);
  175.                 } else {
  176.                     Dimmer_AbsoluteFade(this.myDimmer1, 135, this.oldPwmValue);
  177.                     Dimmer_AbsoluteFade(this.myDimmer2, 135, this.oldPwmValue);
  178.                 }
  179.                
  180.                 if (this.turnOffCnt < ButtonTimeout) {
  181.                     this.turnOffCnt = ButtonTimeout;
  182.                 }
  183.             }
  184.        
  185.             break;
  186.         }
  187.     }
  188.  
  189. }
  190.  
  191.