Subversion Repositories HomeAutomation

Rev

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

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