1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | const devices = require("@domojs/devices");
|
4 | const akala = require("@akala/server");
|
5 | const api = require("./api");
|
6 | const log = akala.log('domojs:pioneer');
|
7 | akala.worker.createClient('devices').then(function (c) {
|
8 | var deviceCollection = {};
|
9 | akala.injectWithName(['$worker'], function (worker) {
|
10 | function getMainDevice(name) {
|
11 | var indexOfDot = name.indexOf('.');
|
12 | if (indexOfDot > 0)
|
13 | var mainDevice = name.substr(0, indexOfDot);
|
14 | else
|
15 | var mainDevice = name;
|
16 | return deviceCollection[mainDevice];
|
17 | }
|
18 | var client = akala.api.jsonrpcws(devices.deviceType).createClient(c, {
|
19 | exec: function (p) {
|
20 | var cmd = p.command;
|
21 | var mainDevice = getMainDevice(p.device);
|
22 | if (p.device != mainDevice.name) {
|
23 | switch (p.device.substring(mainDevice.name.length + 1)) {
|
24 | case 'power':
|
25 | if (p.command == 'off')
|
26 | cmd = 'PF';
|
27 | else
|
28 | cmd = 'PO';
|
29 | break;
|
30 | case 'mute':
|
31 | if (p.command == 'off')
|
32 | cmd = 'MF';
|
33 | else
|
34 | cmd = 'MO';
|
35 | break;
|
36 | case 'volume':
|
37 | switch (p.command) {
|
38 | case 'up':
|
39 | cmd = 'VU';
|
40 | break;
|
41 | case 'down':
|
42 | cmd = 'VD';
|
43 | break;
|
44 | case 'set':
|
45 | cmd = 'VL';
|
46 | break;
|
47 | }
|
48 | break;
|
49 | case 'input':
|
50 | switch (p.command) {
|
51 | case 'Game':
|
52 | cmd = '49FN';
|
53 | break;
|
54 | case 'Dvd':
|
55 | cmd = '04FN';
|
56 | break;
|
57 | case 'Sat/Cbl':
|
58 | cmd = '06FN';
|
59 | break;
|
60 | case 'Dvr/Bdr':
|
61 | cmd = '15FN';
|
62 | break;
|
63 | case 'iPod':
|
64 | cmd = '17FN';
|
65 | break;
|
66 | case 'Video':
|
67 | cmd = '10FN';
|
68 | break;
|
69 | case 'BD':
|
70 | cmd = '25FN';
|
71 | break;
|
72 | }
|
73 | break;
|
74 | }
|
75 | }
|
76 | return api.send(cmd, mainDevice['address']).then((result) => undefined);
|
77 | },
|
78 | getStatus: function (device) {
|
79 | var mainDevice = getMainDevice(device.device);
|
80 | if (mainDevice.name == device.device)
|
81 | return Promise.resolve(mainDevice.status());
|
82 | else
|
83 | return Promise.resolve(mainDevice.subdevices[device.device.substring(mainDevice.name.length + 1)].status());
|
84 | },
|
85 | save: (p) => {
|
86 | if (p.device.name.indexOf('.') > -1)
|
87 | return p.device;
|
88 | deviceCollection[p.device.name] = p.device;
|
89 | p.device['address'] = p.body.IP || p.device.name;
|
90 | p.device.statusMethod = 'pull';
|
91 | p.device.subdevices = [
|
92 | {
|
93 | name: "power",
|
94 | type: 'pioneer',
|
95 | category: 'switch',
|
96 | classes: ['power', 'switch'],
|
97 | statusMethod: 'pull',
|
98 | status: function () {
|
99 | return api.send('?P', p.device.name).then(function (result) {
|
100 | console.log('result:' + result);
|
101 | if (result)
|
102 | result = result.trim();
|
103 | return { state: result == 'PWR0', color: result == 'PWR0' ? 'green' : 'red' };
|
104 | });
|
105 | },
|
106 | commands: ['on', 'off']
|
107 | },
|
108 | {
|
109 | name: "mute",
|
110 | type: 'pioneer',
|
111 | category: 'switch',
|
112 | statusMethod: 'pull',
|
113 | status: function () {
|
114 | console.log('mute status');
|
115 | return api.send('?M', p.device.name).then((result) => {
|
116 | console.log(result);
|
117 | return { state: result == 'MUT0', color: result == 'MUT0' ? 'green' : 'red' };
|
118 | });
|
119 | },
|
120 | commands: ['on', 'off']
|
121 | },
|
122 | {
|
123 | name: "volume",
|
124 | type: 'pioneer',
|
125 | category: 'input',
|
126 | statusMethod: 'pull',
|
127 | status: function () {
|
128 | var status = {};
|
129 | return api.send('?V', p.device.name).then(function (result) {
|
130 | return { state: Number(/\d+/.exec(result)) * 100 / 185 };
|
131 | });
|
132 | },
|
133 | commands: ['up', 'down', 'set']
|
134 | },
|
135 | {
|
136 | name: "input",
|
137 | type: 'pioneer',
|
138 | category: 'values',
|
139 | statusMethod: 'pull',
|
140 | status: function () {
|
141 | return api.send('?FN', p.device.name).then(function (result) {
|
142 | console.log(result);
|
143 | switch (Number(/[0-9]+/.exec(result))) {
|
144 | case 49:
|
145 | return { state: 'Game' };
|
146 | case 25:
|
147 | return { state: 'BD' };
|
148 | case 4:
|
149 | return { state: 'Dvd' };
|
150 | case 6:
|
151 | return { state: 'Sat/Cbl' };
|
152 | case 15:
|
153 | return { state: 'Dvr/Bdr' };
|
154 | case 17:
|
155 | return { state: 'iPod' };
|
156 | case 10:
|
157 | return { state: 'Video' };
|
158 | default:
|
159 | return null;
|
160 | }
|
161 | });
|
162 | },
|
163 | commands: ['Game', 'Dvd', 'Sat/Cbl', 'Dvr/Bdr', 'iPod', 'Video', 'BD']
|
164 | }
|
165 | ];
|
166 | return p.device;
|
167 | }
|
168 | });
|
169 | worker.on('ready', function () {
|
170 | client.$proxy().register({ commandMode: 'dynamic', name: 'pioneer', view: '/@domojs/pioneer/device.html' });
|
171 | });
|
172 | })();
|
173 | });
|
174 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc2VydmVyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsMkNBQTJDO0FBQzNDLHVDQUF1QztBQUN2Qyw2QkFBNEI7QUFDNUIsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0FBRXhDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7SUFFakQsSUFBSSxnQkFBZ0IsR0FBZ0QsRUFBRSxDQUFDO0lBQ3ZFLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsRUFBRSxVQUFVLE1BQU07UUFFOUMsdUJBQXVCLElBQUk7WUFFdkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxJQUFJLFVBQVUsR0FBRyxDQUFDO2dCQUNkLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDOztnQkFFNUMsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBRTFCLE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUVELElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxFQUFFO1lBQ2pFLElBQUksRUFBRSxVQUFVLENBQUM7Z0JBRWIsSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQztnQkFDcEIsSUFBSSxVQUFVLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDekMsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxJQUFJLEVBQy9CO29CQUNJLFFBQVEsQ0FB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 |
\ | No newline at end of file |