homebridge-openwrt-control 0.0.2-beta.41 → 0.0.2-beta.42
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.
- package/package.json +1 -1
- package/src/openwrt.js +29 -17
package/package.json
CHANGED
package/src/openwrt.js
CHANGED
|
@@ -85,8 +85,6 @@ class OpenWrt extends EventEmitter {
|
|
|
85
85
|
params: [session, service, method, params]
|
|
86
86
|
});
|
|
87
87
|
|
|
88
|
-
if (this.logDebug) this.emit('debug', `Response: ${JSON.stringify(response.data, null, 2)}`);
|
|
89
|
-
|
|
90
88
|
if (response.data?.error) throw new Error(response.data.error.message || 'Ubus call error');
|
|
91
89
|
|
|
92
90
|
return response.data.result[1];
|
|
@@ -99,28 +97,42 @@ class OpenWrt extends EventEmitter {
|
|
|
99
97
|
const systemInfo = await this.ubusCall('system', 'board');
|
|
100
98
|
if (this.logDebug) this.emit('debug', `System info data: ${JSON.stringify(systemInfo, null, 2)}`);
|
|
101
99
|
|
|
102
|
-
const networkInfo = await this.ubusCall('network.device', 'status', { "name": "eth0" });
|
|
100
|
+
//const networkInfo = await this.ubusCall('network.device', 'status', '{ "name": "eth0" }');
|
|
101
|
+
const networkInfo = await this.ubusCall('uci', 'get', { config: 'network', section: 'lan', option: 'macaddr' });
|
|
103
102
|
if (this.logDebug) this.emit('debug', `Network info data: ${JSON.stringify(networkInfo, null, 2)}`);
|
|
104
103
|
|
|
105
|
-
const wirelessStatus = await this.ubusCall('network.wireless', 'status');
|
|
104
|
+
//const wirelessStatus = await this.ubusCall('network.wireless', 'status');
|
|
105
|
+
const wirelessStatus = await this.ubusCall('uci', 'get', { config: 'wireless' });
|
|
106
106
|
if (this.logDebug) this.emit('debug', `Wireless status data: ${JSON.stringify(wirelessStatus, null, 2)}`);
|
|
107
107
|
|
|
108
|
-
const wirelessRadios = Object.values(wirelessStatus.radios).map(radio => ({
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
}));
|
|
117
|
-
|
|
118
|
-
const ssids = wirelessRadios.flatMap(radio => radio.interfaces);
|
|
108
|
+
//const wirelessRadios = Object.values(wirelessStatus.radios).map(radio => ({
|
|
109
|
+
//name: radio.name,
|
|
110
|
+
//state: radio.up === true,
|
|
111
|
+
//interfaces: Object.values(radio.interfaces).map(i => ({
|
|
112
|
+
//name: i.ssid,
|
|
113
|
+
//state: i.up === true,
|
|
114
|
+
//mode: i.mode
|
|
115
|
+
//}))
|
|
116
|
+
//}));
|
|
117
|
+
|
|
118
|
+
//const ssids = wirelessRadios.flatMap(radio => radio.interfaces);
|
|
119
|
+
const ssids = Object.entries(wirelessStatus.values || {}).flatMap(([key, data]) => {
|
|
120
|
+
if (!key.startsWith('wifinet')) return [];
|
|
121
|
+
return [{
|
|
122
|
+
ifname: data['.name'] || key,
|
|
123
|
+
name: data.ssid || null,
|
|
124
|
+
device: data.device || null,
|
|
125
|
+
mode: data.mode || null,
|
|
126
|
+
hidden: data.hidden === '1' || data.hidden === true,
|
|
127
|
+
state: true
|
|
128
|
+
}];
|
|
129
|
+
});
|
|
130
|
+
|
|
119
131
|
openWrtInfo.state = true;
|
|
120
132
|
openWrtInfo.systemInfo = systemInfo;
|
|
121
133
|
openWrtInfo.networkInfo = networkInfo;
|
|
122
134
|
openWrtInfo.wirelessStatus = wirelessStatus;
|
|
123
|
-
openWrtInfo.wirelessRadios = wirelessRadios;
|
|
135
|
+
//openWrtInfo.wirelessRadios = wirelessRadios;
|
|
124
136
|
openWrtInfo.ssids = ssids;
|
|
125
137
|
|
|
126
138
|
if (this.firstRun) {
|
|
@@ -132,7 +144,7 @@ class OpenWrt extends EventEmitter {
|
|
|
132
144
|
this.emit('systemInfo', systemInfo);
|
|
133
145
|
this.emit('networkInfo', networkInfo);
|
|
134
146
|
this.emit('wirelessStatus', wirelessStatus);
|
|
135
|
-
this.emit('wirelessRadios', wirelessRadios);
|
|
147
|
+
//this.emit('wirelessRadios', wirelessRadios);
|
|
136
148
|
this.emit('ssids', ssids);
|
|
137
149
|
|
|
138
150
|
return openWrtInfo;
|