1
+ var mqtt = require ( 'mqtt' ) ;
2
+ var client = mqtt . connect ( 'mqtt://mosquitto' ) ;
3
+ var chaconEmitter = require ( './chaconEmitter' ) ;
4
+
5
+ chaconEmitter . init ( ) ;
6
+
7
+ var switchTopic = 'chacon/switch' ;
8
+ var dimmerTopic = 'chacon/dimmer' ;
9
+ var emitterId = 12325261 ;
10
+
11
+ client . subscribe ( switchTopic ) ;
12
+ client . subscribe ( dimmerTopic ) ;
13
+
14
+ client . on ( 'message' , function ( topic , message ) {
15
+
16
+ var command = JSON . parse ( message . toString ( ) ) ;
17
+ var deviceId = command . deviceId ;
18
+ if ( topic === switchTopic ) {
19
+ if ( command . value === 'ON' ) {
20
+ sendOnCommand ( emitterId , deviceId ) ;
21
+ }
22
+ else if ( command . value === 'OFF' ) {
23
+ sendOffCommand ( emitterId , deviceId ) ;
24
+ }
25
+ }
26
+ else if ( topic === dimmerTopic ) {
27
+ if ( command . value === 'ON' ) {
28
+ sendOnCommand ( emitterId , deviceId ) ;
29
+ }
30
+ else if ( command . value === 'OFF' ) {
31
+ sendOffCommand ( emitterId , deviceId ) ;
32
+ }
33
+ else {
34
+ var dimValue = parseInt ( command . value ) ;
35
+ if ( 0 <= dimValue && dimValue <= 100 ) {
36
+ sendDimCommand ( emitterId , deviceId , dimValue ) ;
37
+ }
38
+ }
39
+ }
40
+ } ) ;
41
+
42
+ function sendOnCommand ( emitterId , deviceId ) {
43
+ chaconEmitter . transmit ( chaconEmitter . buildOrder ( emitterId , deviceId , true ) ) ;
44
+ }
45
+
46
+ function sendOffCommand ( emitterId , deviceId ) {
47
+ chaconEmitter . transmit ( chaconEmitter . buildOrder ( emitterId , deviceId , false ) ) ;
48
+ }
49
+
50
+ function sendDimCommand ( emitterId , deviceId , dimValue ) {
51
+ chaconEmitter . transmit ( chaconEmitter . buildDimOrder ( emitterId , deviceId , dimValue ) , true ) ;
52
+ }
0 commit comments