node-switchbot 1.6.0-beta.7 → 1.6.0-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -391,7 +391,7 @@ class SwitchbotAdvertising {
391
391
  let red = byte3;
392
392
  let green = byte4;
393
393
  let blue = byte5;
394
- let color_Temperature = byte6;
394
+ let color_temperature = byte6;
395
395
  let state = byte7 & 0b01111111 ? true : false;
396
396
  let brightness = byte7 & 0b01111111;
397
397
  let delay = byte8 & 0b10000000;
@@ -403,7 +403,7 @@ class SwitchbotAdvertising {
403
403
  let data = {
404
404
  model: "u",
405
405
  modelName: "WoBulb",
406
- color_Temperature: color_Temperature,
406
+ color_temperature: color_temperature,
407
407
  state: state,
408
408
  red: red,
409
409
  green: green,
@@ -35,10 +35,114 @@ class SwitchbotDeviceWoBulb extends SwitchbotDevice {
35
35
  }
36
36
 
37
37
  /**
38
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
38
+ * @returns {Promise<number>} resolves with brightness percent
39
+ */
40
+ setBrightness(brightness) {
41
+ if (typeof brightness != "number") {
42
+ return new Promise((resolve, reject) => {
43
+ reject(
44
+ new Error(
45
+ "The type of target brightness percentage is incorrent: " +
46
+ typeof brightness
47
+ )
48
+ );
49
+ });
50
+ }
51
+ if (brightness > 100) {
52
+ brightness = 100;
53
+ } else if (brightness < 0) {
54
+ brightness = 0;
55
+ }
56
+ return this._setState([0x02, 0x14]);
57
+ }
58
+
59
+ /**
60
+ * @returns {Promise<number>} resolves with brightness percent
61
+ */
62
+ setColorTemperature(color_temperature) {
63
+ if (typeof color_temperature != "number") {
64
+ return new Promise((resolve, reject) => {
65
+ reject(
66
+ new Error(
67
+ "The type of target brightness percentage is incorrent: " +
68
+ typeof brightness
69
+ )
70
+ );
71
+ });
72
+ }
73
+ if (color_temperature > 100) {
74
+ color_temperature = 100;
75
+ } else if (color_temperature < 0) {
76
+ color_temperature = 0;
77
+ }
78
+ return this._setState([0x02, 0x17, color_temperature]);
79
+ }
80
+
81
+ /**
82
+ * @returns {Promise<number>} resolves with brightness percent
39
83
  */
40
- toggle() {
41
- return this._setState([0x02, 0x03]);
84
+ setRGB(brightness, red, green, blue) {
85
+ if (typeof brightness != "number") {
86
+ return new Promise((resolve, reject) => {
87
+ reject(
88
+ new Error(
89
+ "The type of target brightness percentage is incorrent: " +
90
+ typeof brightness
91
+ )
92
+ );
93
+ });
94
+ }
95
+ if (typeof red != "number") {
96
+ return new Promise((resolve, reject) => {
97
+ reject(
98
+ new Error(
99
+ "The type of target red is incorrent: " +
100
+ typeof red
101
+ )
102
+ );
103
+ });
104
+ }
105
+ if (typeof green != "number") {
106
+ return new Promise((resolve, reject) => {
107
+ reject(
108
+ new Error(
109
+ "The type of target green is incorrent: " +
110
+ typeof green
111
+ )
112
+ );
113
+ });
114
+ }
115
+ if (typeof blue != "number") {
116
+ return new Promise((resolve, reject) => {
117
+ reject(
118
+ new Error(
119
+ "The type of target blue is incorrent: " +
120
+ typeof blue
121
+ )
122
+ );
123
+ });
124
+ }
125
+ if (brightness > 100) {
126
+ brightness = 100;
127
+ } else if (brightness < 0) {
128
+ brightness = 0;
129
+ }
130
+ if (red > 255) {
131
+ red = 255;
132
+ } else if (red < 0) {
133
+ red = 0;
134
+ }
135
+ if (green > 255) {
136
+ green = 255;
137
+ } else if (green < 0) {
138
+ green = 0;
139
+ }
140
+ if (blue > 255) {
141
+ blue = 255;
142
+ } else if (blue < 0) {
143
+ blue = 0;
144
+ }
145
+ return this._setState([0x02, 0x12, brightness, red, green, blue]);
42
146
  }
43
147
 
44
148
  /**
@@ -35,10 +35,108 @@ class SwitchbotDeviceWoStrip extends SwitchbotDevice {
35
35
  }
36
36
 
37
37
  /**
38
- * @returns {Promise<boolean>} resolves with a boolean that tells whether the plug in ON(true) or OFF(false)
38
+ * @returns {Promise<number>} resolves with brightness percent
39
+ */
40
+ setBrightness(brightness) {
41
+ if (typeof brightness != "number") {
42
+ return new Promise((resolve, reject) => {
43
+ reject(
44
+ new Error(
45
+ "The type of target brightness percentage is incorrent: " +
46
+ typeof brightness
47
+ )
48
+ );
49
+ });
50
+ }
51
+ if (brightness > 100) {
52
+ brightness = 100;
53
+ } else if (brightness < 0) {
54
+ brightness = 0;
55
+ }
56
+ return this._setState([0x02, 0x14]);
57
+ }
58
+
59
+ /**
60
+ * @returns {Promise<number>} resolves with color temperature
61
+ */
62
+ setColorTemperature(color_temperature) {
63
+ if (color_temperature) {
64
+ return new Promise((resolve, reject) => {
65
+ reject(
66
+ new Error(
67
+ "Strip Light Doesn't Support Color temperature: " +
68
+ typeof color_temperature
69
+ )
70
+ );
71
+ });
72
+ }
73
+ }
74
+
75
+ /**
76
+ * @returns {Promise<number>} resolves with brightness + rgb
39
77
  */
40
- toggle() {
41
- return this._setState([0x02, 0x03]);
78
+ setRGB(brightness, red, green, blue) {
79
+ if (typeof brightness != "number") {
80
+ return new Promise((resolve, reject) => {
81
+ reject(
82
+ new Error(
83
+ "The type of target brightness percentage is incorrent: " +
84
+ typeof brightness
85
+ )
86
+ );
87
+ });
88
+ }
89
+ if (typeof red != "number") {
90
+ return new Promise((resolve, reject) => {
91
+ reject(
92
+ new Error(
93
+ "The type of target red is incorrent: " +
94
+ typeof red
95
+ )
96
+ );
97
+ });
98
+ }
99
+ if (typeof green != "number") {
100
+ return new Promise((resolve, reject) => {
101
+ reject(
102
+ new Error(
103
+ "The type of target green is incorrent: " +
104
+ typeof green
105
+ )
106
+ );
107
+ });
108
+ }
109
+ if (typeof blue != "number") {
110
+ return new Promise((resolve, reject) => {
111
+ reject(
112
+ new Error(
113
+ "The type of target blue is incorrent: " +
114
+ typeof blue
115
+ )
116
+ );
117
+ });
118
+ }
119
+ if (brightness > 100) {
120
+ brightness = 100;
121
+ } else if (brightness < 0) {
122
+ brightness = 0;
123
+ }
124
+ if (red > 255) {
125
+ red = 255;
126
+ } else if (red < 0) {
127
+ red = 0;
128
+ }
129
+ if (green > 255) {
130
+ green = 255;
131
+ } else if (green < 0) {
132
+ green = 0;
133
+ }
134
+ if (blue > 255) {
135
+ blue = 255;
136
+ } else if (blue < 0) {
137
+ blue = 0;
138
+ }
139
+ return this._setState([0x02, 0x12, brightness, red, green, blue]);
42
140
  }
43
141
 
44
142
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "node-switchbot",
3
- "version": "1.6.0-beta.7",
3
+ "version": "1.6.0-beta.9",
4
4
  "description": "The node-switchbot is a Node.js module which allows you to control your Switchbot Devices through Bluetooth (BLE).",
5
5
  "main": "./lib/switchbot.js",
6
6
  "files": [