u
This commit is contained in:
@@ -141,6 +141,8 @@ export class ACInfinityClient {
|
||||
.replace(/[^a-z0-9]+/g, '-')
|
||||
.replace(/^-|-$/g, '');
|
||||
|
||||
console.log(`[AC] Debug: Device ${deviceId} (${device.devName}) Type: ${device.devType}`);
|
||||
|
||||
// --- Device Level Sensors ---
|
||||
|
||||
// Temperature (Celsius * 100)
|
||||
@@ -272,6 +274,10 @@ export class ACInfinityClient {
|
||||
const settings = await this.getDeviceModeSettings(devId, port);
|
||||
if (!settings) throw new Error('Could not fetch existing settings');
|
||||
|
||||
console.log(`[AC] Debug: Device Settings for ${devId}:${port}`, JSON.stringify(settings));
|
||||
// Log device info if available to check type? We don't have devType here easily without passing it or fetching list again.
|
||||
// But settings usually contains some info.
|
||||
|
||||
// 2. Prepare updates
|
||||
// Constrain level 0-10
|
||||
const safeLevel = Math.max(0, Math.min(10, Math.round(level)));
|
||||
@@ -306,6 +312,18 @@ export class ACInfinityClient {
|
||||
const speakValue = mode === AtType.OFF ? 0 : safeLevel;
|
||||
params.append('speak', speakValue.toString());
|
||||
|
||||
// CRITICAL FIX: Explicitly set atType to match the mode!
|
||||
// atType: 1 = OFF, 2 = ON, 3 = AUTO
|
||||
params.append('atType', mode.toString());
|
||||
|
||||
// Ensure onSpead (Max Speed) matches target if in ON mode
|
||||
if (mode === AtType.ON) {
|
||||
params.append('onSpead', safeLevel.toString());
|
||||
} else {
|
||||
// In OFF mode, ensure onSpead is at least present (maybe 10 or 0? Leaving existing or default)
|
||||
if (!params.has('onSpead')) params.append('onSpead', '10');
|
||||
}
|
||||
|
||||
// Copy other relevant fields from settings if they exist to maintain state
|
||||
// Common fields seen in other implementations:
|
||||
// transitionType, surplus, backup, trigger related fields...
|
||||
@@ -327,7 +345,10 @@ export class ACInfinityClient {
|
||||
if (!params.has('transitionType')) params.append('transitionType', '0');
|
||||
|
||||
// 3. Send update
|
||||
const response = await fetch(`${this.host}/api/dev/addDevMode?${params.toString()}`, {
|
||||
const requestUrl = `${this.host}/api/dev/addDevMode?${params.toString()}`;
|
||||
console.log(`[AC] Debug: Sending request to ${requestUrl}`);
|
||||
|
||||
const response = await fetch(requestUrl, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'User-Agent': 'ACController/1.9.7 (com.acinfinity.humiture; build:533; iOS 18.5.0) Alamofire/5.10.2',
|
||||
|
||||
Reference in New Issue
Block a user