@boozilla/homebridge-shome 1.2.1 → 1.2.3
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/.idea/codeStyles/Project.xml +69 -0
- package/.idea/codeStyles/codeStyleConfig.xml +1 -1
- package/.idea/misc.xml +2 -1
- package/dist/platform.d.ts +2 -0
- package/dist/platform.js +59 -41
- package/dist/platform.js.map +1 -1
- package/package.json +1 -1
- package/src/platform.ts +62 -45
- package/.idea/jsLinters/eslint.xml +0 -6
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
<component name="ProjectCodeStyleConfiguration">
|
|
2
|
+
<code_scheme name="Project" version="173">
|
|
3
|
+
<JSCodeStyleSettings version="0">
|
|
4
|
+
<option name="FORCE_SEMICOLON_STYLE" value="true" />
|
|
5
|
+
<option name="USE_DOUBLE_QUOTES" value="false" />
|
|
6
|
+
<option name="FORCE_QUOTE_STYlE" value="true" />
|
|
7
|
+
<option name="ENFORCE_TRAILING_COMMA" value="WhenMultiline" />
|
|
8
|
+
<option name="SPACES_WITHIN_OBJECT_LITERAL_BRACES" value="true" />
|
|
9
|
+
<option name="SPACES_WITHIN_IMPORTS" value="true" />
|
|
10
|
+
</JSCodeStyleSettings>
|
|
11
|
+
<JavaCodeStyleSettings>
|
|
12
|
+
<option name="GENERATE_FINAL_LOCALS" value="true" />
|
|
13
|
+
<option name="GENERATE_FINAL_PARAMETERS" value="true" />
|
|
14
|
+
<option name="DELETE_UNUSED_MODULE_IMPORTS" value="true" />
|
|
15
|
+
</JavaCodeStyleSettings>
|
|
16
|
+
<codeStyleSettings language="JAVA">
|
|
17
|
+
<option name="KEEP_FIRST_COLUMN_COMMENT" value="false" />
|
|
18
|
+
<option name="KEEP_CONTROL_STATEMENT_IN_ONE_LINE" value="false" />
|
|
19
|
+
<option name="BRACE_STYLE" value="2" />
|
|
20
|
+
<option name="METHOD_BRACE_STYLE" value="2" />
|
|
21
|
+
<option name="ELSE_ON_NEW_LINE" value="true" />
|
|
22
|
+
<option name="WHILE_ON_NEW_LINE" value="true" />
|
|
23
|
+
<option name="CATCH_ON_NEW_LINE" value="true" />
|
|
24
|
+
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
|
25
|
+
<option name="ALIGN_MULTILINE_THROWS_LIST" value="true" />
|
|
26
|
+
<option name="ALIGN_THROWS_KEYWORD" value="true" />
|
|
27
|
+
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
|
|
28
|
+
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
|
|
29
|
+
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
|
|
30
|
+
<option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
|
|
31
|
+
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
|
|
32
|
+
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
|
|
33
|
+
<option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
|
|
34
|
+
<option name="SPACE_BEFORE_METHOD_LBRACE" value="false" />
|
|
35
|
+
<option name="SPACE_BEFORE_IF_LBRACE" value="false" />
|
|
36
|
+
<option name="SPACE_BEFORE_ELSE_LBRACE" value="false" />
|
|
37
|
+
<option name="SPACE_BEFORE_WHILE_LBRACE" value="false" />
|
|
38
|
+
<option name="SPACE_BEFORE_FOR_LBRACE" value="false" />
|
|
39
|
+
<option name="SPACE_BEFORE_DO_LBRACE" value="false" />
|
|
40
|
+
<option name="SPACE_BEFORE_SWITCH_LBRACE" value="false" />
|
|
41
|
+
<option name="SPACE_BEFORE_TRY_LBRACE" value="false" />
|
|
42
|
+
<option name="SPACE_BEFORE_CATCH_LBRACE" value="false" />
|
|
43
|
+
<option name="SPACE_BEFORE_FINALLY_LBRACE" value="false" />
|
|
44
|
+
<option name="SPACE_BEFORE_SYNCHRONIZED_LBRACE" value="false" />
|
|
45
|
+
<option name="SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE" value="true" />
|
|
46
|
+
<option name="SPACE_BEFORE_ELSE_KEYWORD" value="false" />
|
|
47
|
+
<option name="SPACE_BEFORE_WHILE_KEYWORD" value="false" />
|
|
48
|
+
<option name="SPACE_BEFORE_CATCH_KEYWORD" value="false" />
|
|
49
|
+
<option name="SPACE_BEFORE_FINALLY_KEYWORD" value="false" />
|
|
50
|
+
<option name="THROWS_LIST_WRAP" value="1" />
|
|
51
|
+
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
|
52
|
+
<option name="WHILE_BRACE_FORCE" value="3" />
|
|
53
|
+
</codeStyleSettings>
|
|
54
|
+
<codeStyleSettings language="JavaScript">
|
|
55
|
+
<option name="RIGHT_MARGIN" value="160" />
|
|
56
|
+
<option name="INDENT_CASE_FROM_SWITCH" value="false" />
|
|
57
|
+
<option name="ALIGN_MULTILINE_PARAMETERS" value="false" />
|
|
58
|
+
<option name="ALIGN_MULTILINE_FOR" value="false" />
|
|
59
|
+
<option name="IF_BRACE_FORCE" value="3" />
|
|
60
|
+
<option name="DOWHILE_BRACE_FORCE" value="3" />
|
|
61
|
+
<option name="WHILE_BRACE_FORCE" value="3" />
|
|
62
|
+
<option name="FOR_BRACE_FORCE" value="3" />
|
|
63
|
+
<indentOptions>
|
|
64
|
+
<option name="INDENT_SIZE" value="2" />
|
|
65
|
+
<option name="CONTINUATION_INDENT_SIZE" value="2" />
|
|
66
|
+
</indentOptions>
|
|
67
|
+
</codeStyleSettings>
|
|
68
|
+
</code_scheme>
|
|
69
|
+
</component>
|
package/.idea/misc.xml
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
2
|
<project version="4">
|
|
3
|
-
<component name="
|
|
3
|
+
<component name="KubernetesApiProvider"><![CDATA[{}]]></component>
|
|
4
|
+
<component name="ProjectRootManager" version="2" languageLevel="JDK_25" default="true" project-jdk-name="mandrel-25" project-jdk-type="JavaSDK">
|
|
4
5
|
<output url="file://$PROJECT_DIR$/out" />
|
|
5
6
|
</component>
|
|
6
7
|
</project>
|
package/dist/platform.d.ts
CHANGED
|
@@ -11,9 +11,11 @@ export declare class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
11
11
|
private readonly accessoryHandlers;
|
|
12
12
|
private pollingInterval;
|
|
13
13
|
private pollingTimer?;
|
|
14
|
+
private isPolling;
|
|
14
15
|
private lastCheckedTimestamp;
|
|
15
16
|
private lastCheckedParkingTimestamp;
|
|
16
17
|
private lastCheckedMaintenanceFeeMonth;
|
|
18
|
+
private isInitializingMaintenanceFee;
|
|
17
19
|
constructor(log: Logger, config: PlatformConfig, api: API);
|
|
18
20
|
configureAccessory(accessory: PlatformAccessory): void;
|
|
19
21
|
discoverDevices(): Promise<void>;
|
package/dist/platform.js
CHANGED
|
@@ -20,9 +20,11 @@ export class ShomePlatform {
|
|
|
20
20
|
accessoryHandlers = new Map();
|
|
21
21
|
pollingInterval;
|
|
22
22
|
pollingTimer;
|
|
23
|
+
isPolling = false;
|
|
23
24
|
lastCheckedTimestamp = new Date();
|
|
24
25
|
lastCheckedParkingTimestamp = new Date();
|
|
25
26
|
lastCheckedMaintenanceFeeMonth = null;
|
|
27
|
+
isInitializingMaintenanceFee = false;
|
|
26
28
|
constructor(log, config, api) {
|
|
27
29
|
this.log = log;
|
|
28
30
|
this.config = config;
|
|
@@ -46,7 +48,7 @@ export class ShomePlatform {
|
|
|
46
48
|
});
|
|
47
49
|
this.api.on('shutdown', () => {
|
|
48
50
|
if (this.pollingTimer) {
|
|
49
|
-
|
|
51
|
+
clearTimeout(this.pollingTimer);
|
|
50
52
|
}
|
|
51
53
|
for (const handler of this.accessoryHandlers.values()) {
|
|
52
54
|
if (handler instanceof DoorbellAccessory) {
|
|
@@ -87,19 +89,6 @@ export class ShomePlatform {
|
|
|
87
89
|
const doorbellDevice = { thngModelTypeName: 'DOORBELL', nickname: 'Doorbell', thngId: 'shome-doorbell' };
|
|
88
90
|
const doorbellAccessory = this.setupAccessory(doorbellDevice, null, doorbellUUID);
|
|
89
91
|
foundAccessories.push(doorbellAccessory);
|
|
90
|
-
const doorbellHandler = this.accessoryHandlers.get(doorbellUUID);
|
|
91
|
-
if (doorbellHandler) {
|
|
92
|
-
this.log.info('Initializing latest visitor for doorbell...');
|
|
93
|
-
const visitorList = await this.shomeClient.getVisitorHistory();
|
|
94
|
-
if (visitorList && visitorList.length > 0) {
|
|
95
|
-
visitorList.sort((a, b) => b.recodDt.localeCompare(a.recodDt));
|
|
96
|
-
const latestVisitor = visitorList[0];
|
|
97
|
-
doorbellHandler.initializeLatestVisitor(latestVisitor);
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
this.log.info('No visitor history found, skipping initialization.');
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
92
|
const parkingUUID = this.api.hap.uuid.generate('shome-parking');
|
|
104
93
|
const parkingDevice = { thngModelTypeName: 'PARKING', nickname: 'Parking Sensor', thngId: 'shome-parking' };
|
|
105
94
|
const parkingAccessory = this.setupAccessory(parkingDevice, null, parkingUUID);
|
|
@@ -173,7 +162,16 @@ export class ShomePlatform {
|
|
|
173
162
|
}
|
|
174
163
|
startPolling() {
|
|
175
164
|
this.log.info(`Starting periodic state polling every ${this.pollingInterval / 1000} seconds.`);
|
|
176
|
-
|
|
165
|
+
const pollCycle = async () => {
|
|
166
|
+
if (this.isPolling) {
|
|
167
|
+
this.log.warn('Previous polling cycle still running. Skipping this cycle to prevent overlap.');
|
|
168
|
+
if (this.pollingInterval > 0) {
|
|
169
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
170
|
+
}
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
this.isPolling = true;
|
|
174
|
+
const startedAt = Date.now();
|
|
177
175
|
this.log.debug('Polling for updates...');
|
|
178
176
|
try {
|
|
179
177
|
await this.pollDeviceUpdates();
|
|
@@ -184,7 +182,18 @@ export class ShomePlatform {
|
|
|
184
182
|
catch (error) {
|
|
185
183
|
this.log.error('An error occurred during polling:', error);
|
|
186
184
|
}
|
|
187
|
-
|
|
185
|
+
finally {
|
|
186
|
+
const elapsed = Date.now() - startedAt;
|
|
187
|
+
this.log.debug(`Polling cycle finished in ${elapsed} ms.`);
|
|
188
|
+
this.isPolling = false;
|
|
189
|
+
if (this.pollingInterval > 0) {
|
|
190
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
if (this.pollingInterval > 0) {
|
|
195
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
196
|
+
}
|
|
188
197
|
}
|
|
189
198
|
async pollDeviceUpdates() {
|
|
190
199
|
const devices = await this.shomeClient.getDeviceList();
|
|
@@ -277,36 +286,45 @@ export class ShomePlatform {
|
|
|
277
286
|
}
|
|
278
287
|
}
|
|
279
288
|
async checkForNewMaintenanceFee() {
|
|
280
|
-
this.
|
|
289
|
+
if (this.isInitializingMaintenanceFee) {
|
|
290
|
+
this.log.debug('Maintenance fee initialization is already in progress. Skipping check.');
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
281
293
|
if (!this.lastCheckedMaintenanceFeeMonth) {
|
|
294
|
+
this.isInitializingMaintenanceFee = true;
|
|
282
295
|
this.log.debug('First run for maintenance fee check. Finding the latest available data...');
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
296
|
+
try {
|
|
297
|
+
const now = new Date();
|
|
298
|
+
let initialFeeData = null;
|
|
299
|
+
let initialYear = now.getFullYear();
|
|
300
|
+
let initialMonth = now.getMonth() + 1;
|
|
301
|
+
for (let i = 0; i < 3; i++) {
|
|
302
|
+
const feeData = await this.shomeClient.getMaintenanceFee(initialYear, initialMonth);
|
|
303
|
+
if (feeData && feeData.expense_total && feeData.expense_total.length > 0 && feeData.expense_total[0].money > 0) {
|
|
304
|
+
initialFeeData = feeData;
|
|
305
|
+
break;
|
|
306
|
+
}
|
|
307
|
+
initialMonth--;
|
|
308
|
+
if (initialMonth === 0) {
|
|
309
|
+
initialMonth = 12;
|
|
310
|
+
initialYear--;
|
|
311
|
+
}
|
|
292
312
|
}
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
313
|
+
if (initialFeeData) {
|
|
314
|
+
const monthStr = `${initialFeeData.search_year}-${initialFeeData.search_month}`;
|
|
315
|
+
this.log.info(`Found initial latest maintenance fee data for ${monthStr}.`);
|
|
316
|
+
this.lastCheckedMaintenanceFeeMonth = monthStr;
|
|
317
|
+
}
|
|
318
|
+
else {
|
|
319
|
+
this.log.debug('Could not find any maintenance fee data for the last 3 months on first run.');
|
|
320
|
+
const twoMonthsAgo = new Date();
|
|
321
|
+
twoMonthsAgo.setMonth(twoMonthsAgo.getMonth() - 2);
|
|
322
|
+
this.lastCheckedMaintenanceFeeMonth = `${twoMonthsAgo.getFullYear()}-${String(twoMonthsAgo.getMonth() + 1).padStart(2, '0')}`;
|
|
323
|
+
this.log.debug(`Setting baseline check month to ${this.lastCheckedMaintenanceFeeMonth}.`);
|
|
297
324
|
}
|
|
298
325
|
}
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
this.log.info(`Found initial latest maintenance fee data for ${monthStr}.`);
|
|
302
|
-
this.lastCheckedMaintenanceFeeMonth = monthStr;
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
this.log.debug('Could not find any maintenance fee data for the last 3 months on first run.');
|
|
306
|
-
const twoMonthsAgo = new Date();
|
|
307
|
-
twoMonthsAgo.setMonth(twoMonthsAgo.getMonth() - 2);
|
|
308
|
-
this.lastCheckedMaintenanceFeeMonth = `${twoMonthsAgo.getFullYear()}-${String(twoMonthsAgo.getMonth() + 1).padStart(2, '0')}`;
|
|
309
|
-
this.log.debug(`Setting baseline check month to ${this.lastCheckedMaintenanceFeeMonth}.`);
|
|
326
|
+
finally {
|
|
327
|
+
this.isInitializingMaintenanceFee = false;
|
|
310
328
|
}
|
|
311
329
|
return;
|
|
312
330
|
}
|
package/dist/platform.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"platform.js","sourceRoot":"","sources":["../src/platform.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/platform.ts
CHANGED
|
@@ -23,10 +23,12 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
23
23
|
private readonly accessoryHandlers = new Map<string, AccessoryHandler>();
|
|
24
24
|
private pollingInterval: number;
|
|
25
25
|
private pollingTimer?: NodeJS.Timeout;
|
|
26
|
+
private isPolling = false;
|
|
26
27
|
|
|
27
28
|
private lastCheckedTimestamp: Date = new Date();
|
|
28
29
|
private lastCheckedParkingTimestamp: Date = new Date();
|
|
29
30
|
private lastCheckedMaintenanceFeeMonth: string | null = null;
|
|
31
|
+
private isInitializingMaintenanceFee = false;
|
|
30
32
|
|
|
31
33
|
constructor(
|
|
32
34
|
public readonly log: Logger,
|
|
@@ -62,7 +64,7 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
62
64
|
|
|
63
65
|
this.api.on('shutdown', () => {
|
|
64
66
|
if (this.pollingTimer) {
|
|
65
|
-
|
|
67
|
+
clearTimeout(this.pollingTimer);
|
|
66
68
|
}
|
|
67
69
|
|
|
68
70
|
for (const handler of this.accessoryHandlers.values()) {
|
|
@@ -109,19 +111,6 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
109
111
|
const doorbellAccessory = this.setupAccessory(doorbellDevice, null, doorbellUUID);
|
|
110
112
|
foundAccessories.push(doorbellAccessory);
|
|
111
113
|
|
|
112
|
-
const doorbellHandler = this.accessoryHandlers.get(doorbellUUID) as DoorbellAccessory | undefined;
|
|
113
|
-
if (doorbellHandler) {
|
|
114
|
-
this.log.info('Initializing latest visitor for doorbell...');
|
|
115
|
-
const visitorList = await this.shomeClient.getVisitorHistory();
|
|
116
|
-
if (visitorList && visitorList.length > 0) {
|
|
117
|
-
visitorList.sort((a, b) => b.recodDt.localeCompare(a.recodDt));
|
|
118
|
-
const latestVisitor = visitorList[0];
|
|
119
|
-
doorbellHandler.initializeLatestVisitor(latestVisitor);
|
|
120
|
-
} else {
|
|
121
|
-
this.log.info('No visitor history found, skipping initialization.');
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
|
|
125
114
|
const parkingUUID = this.api.hap.uuid.generate('shome-parking');
|
|
126
115
|
const parkingDevice = { thngModelTypeName: 'PARKING', nickname: 'Parking Sensor', thngId: 'shome-parking' } as MainDevice;
|
|
127
116
|
const parkingAccessory = this.setupAccessory(parkingDevice, null, parkingUUID);
|
|
@@ -207,7 +196,18 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
207
196
|
|
|
208
197
|
startPolling() {
|
|
209
198
|
this.log.info(`Starting periodic state polling every ${this.pollingInterval / 1000} seconds.`);
|
|
210
|
-
|
|
199
|
+
|
|
200
|
+
const pollCycle = async (): Promise<void> => {
|
|
201
|
+
if (this.isPolling) {
|
|
202
|
+
this.log.warn('Previous polling cycle still running. Skipping this cycle to prevent overlap.');
|
|
203
|
+
if (this.pollingInterval > 0) {
|
|
204
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
205
|
+
}
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
this.isPolling = true;
|
|
210
|
+
const startedAt = Date.now();
|
|
211
211
|
this.log.debug('Polling for updates...');
|
|
212
212
|
try {
|
|
213
213
|
await this.pollDeviceUpdates();
|
|
@@ -216,8 +216,19 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
216
216
|
await this.checkForNewMaintenanceFee();
|
|
217
217
|
} catch (error) {
|
|
218
218
|
this.log.error('An error occurred during polling:', error);
|
|
219
|
+
} finally {
|
|
220
|
+
const elapsed = Date.now() - startedAt;
|
|
221
|
+
this.log.debug(`Polling cycle finished in ${elapsed} ms.`);
|
|
222
|
+
this.isPolling = false;
|
|
223
|
+
if (this.pollingInterval > 0) {
|
|
224
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
225
|
+
}
|
|
219
226
|
}
|
|
220
|
-
}
|
|
227
|
+
};
|
|
228
|
+
|
|
229
|
+
if (this.pollingInterval > 0) {
|
|
230
|
+
this.pollingTimer = setTimeout(pollCycle, this.pollingInterval);
|
|
231
|
+
}
|
|
221
232
|
}
|
|
222
233
|
|
|
223
234
|
async pollDeviceUpdates() {
|
|
@@ -323,40 +334,47 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
323
334
|
}
|
|
324
335
|
|
|
325
336
|
async checkForNewMaintenanceFee() {
|
|
326
|
-
this.
|
|
337
|
+
if (this.isInitializingMaintenanceFee) {
|
|
338
|
+
this.log.debug('Maintenance fee initialization is already in progress. Skipping check.');
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
327
341
|
|
|
328
342
|
if (!this.lastCheckedMaintenanceFeeMonth) {
|
|
343
|
+
this.isInitializingMaintenanceFee = true;
|
|
329
344
|
this.log.debug('First run for maintenance fee check. Finding the latest available data...');
|
|
330
|
-
const now = new Date();
|
|
331
|
-
let initialFeeData: MaintenanceFeeData | null = null;
|
|
332
|
-
let initialYear = now.getFullYear();
|
|
333
|
-
let initialMonth = now.getMonth() + 1;
|
|
334
|
-
|
|
335
|
-
for (let i = 0; i < 3; i++) {
|
|
336
|
-
const feeData = await this.shomeClient.getMaintenanceFee(initialYear, initialMonth);
|
|
337
|
-
if (feeData && feeData.expense_total && feeData.expense_total.length > 0 && feeData.expense_total[0].money > 0) {
|
|
338
|
-
initialFeeData = feeData;
|
|
339
|
-
break;
|
|
340
|
-
}
|
|
341
345
|
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
+
try {
|
|
347
|
+
const now = new Date();
|
|
348
|
+
let initialFeeData: MaintenanceFeeData | null = null;
|
|
349
|
+
let initialYear = now.getFullYear();
|
|
350
|
+
let initialMonth = now.getMonth() + 1;
|
|
351
|
+
|
|
352
|
+
for (let i = 0; i < 3; i++) {
|
|
353
|
+
const feeData = await this.shomeClient.getMaintenanceFee(initialYear, initialMonth);
|
|
354
|
+
if (feeData && feeData.expense_total && feeData.expense_total.length > 0 && feeData.expense_total[0].money > 0) {
|
|
355
|
+
initialFeeData = feeData;
|
|
356
|
+
break;
|
|
357
|
+
}
|
|
358
|
+
initialMonth--;
|
|
359
|
+
if (initialMonth === 0) {
|
|
360
|
+
initialMonth = 12;
|
|
361
|
+
initialYear--;
|
|
362
|
+
}
|
|
346
363
|
}
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
if (initialFeeData) {
|
|
350
|
-
const monthStr = `${initialFeeData.search_year}-${initialFeeData.search_month}`;
|
|
351
|
-
this.log.info(`Found initial latest maintenance fee data for ${monthStr}.`);
|
|
352
|
-
this.lastCheckedMaintenanceFeeMonth = monthStr;
|
|
353
|
-
} else {
|
|
354
|
-
this.log.debug('Could not find any maintenance fee data for the last 3 months on first run.');
|
|
355
364
|
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
365
|
+
if (initialFeeData) {
|
|
366
|
+
const monthStr = `${initialFeeData.search_year}-${initialFeeData.search_month}`;
|
|
367
|
+
this.log.info(`Found initial latest maintenance fee data for ${monthStr}.`);
|
|
368
|
+
this.lastCheckedMaintenanceFeeMonth = monthStr;
|
|
369
|
+
} else {
|
|
370
|
+
this.log.debug('Could not find any maintenance fee data for the last 3 months on first run.');
|
|
371
|
+
const twoMonthsAgo = new Date();
|
|
372
|
+
twoMonthsAgo.setMonth(twoMonthsAgo.getMonth() - 2);
|
|
373
|
+
this.lastCheckedMaintenanceFeeMonth = `${twoMonthsAgo.getFullYear()}-${String(twoMonthsAgo.getMonth() + 1).padStart(2, '0')}`;
|
|
374
|
+
this.log.debug(`Setting baseline check month to ${this.lastCheckedMaintenanceFeeMonth}.`);
|
|
375
|
+
}
|
|
376
|
+
} finally {
|
|
377
|
+
this.isInitializingMaintenanceFee = false;
|
|
360
378
|
}
|
|
361
379
|
return;
|
|
362
380
|
}
|
|
@@ -372,7 +390,6 @@ export class ShomePlatform implements DynamicPlatformPlugin {
|
|
|
372
390
|
}
|
|
373
391
|
|
|
374
392
|
const now = new Date();
|
|
375
|
-
|
|
376
393
|
if (nextYear > now.getFullYear() || (nextYear === now.getFullYear() && nextMonth > now.getMonth() + 1)) {
|
|
377
394
|
break;
|
|
378
395
|
}
|