homebridge-openwrt-control 0.0.2-beta.41 → 0.0.2-beta.43

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/openwrt.js +30 -18
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "displayName": "OpenWrt Control",
3
3
  "name": "homebridge-openwrt-control",
4
- "version": "0.0.2-beta.41",
4
+ "version": "0.0.2-beta.43",
5
5
  "description": "Homebridge plugin to control OpenWrt flashed devices.",
6
6
  "license": "MIT",
7
7
  "author": "grzegorz914",
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" });
103
- if (this.logDebug) this.emit('debug', `Network info data: ${JSON.stringify(networkInfo, null, 2)}`);
100
+ //const networkInfo = await this.ubusCall('network.device', 'status', '{ "name": "eth0" }');
101
+ const networkInfo = await this.ubusCall('file', 'read', { path: '/sys/class/net/eth0/address' });
102
+ if (this.logDebug) this.emit('debug', `Network info data: ${networkInfo}`);
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
- 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);
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;