diff --git a/package-lock.json b/package-lock.json index 83359ba2..f3fe9afc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "devDependencies": { "@prettier/plugin-php": "^0.22.1", "@seamapi/nextlove-sdk-generator": "^1.18.1", - "@seamapi/types": "1.405.0", + "@seamapi/types": "1.410.1", "del": "^7.1.0", "prettier": "^3.0.0" } @@ -456,9 +456,9 @@ } }, "node_modules/@seamapi/types": { - "version": "1.405.0", - "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.405.0.tgz", - "integrity": "sha512-kcNY2tltFbmjI+KVn8qlRjFxQEd1eQAq0sacZ/TZ8uNu/jNlXSng8DkkfEHNvcTWd3v8h9FnY8xagweQZ/nBTg==", + "version": "1.410.1", + "resolved": "https://registry.npmjs.org/@seamapi/types/-/types-1.410.1.tgz", + "integrity": "sha512-PmPBVbx2B7sRirjJYMx4DMoHWJwZT0cZTkM0NioUa6AfCzcRUi3uT1ZG/efy2SeTTSm1NqMf90mNoQ8EaNrdjQ==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index 0f0f2e41..8e222934 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "devDependencies": { "@prettier/plugin-php": "^0.22.1", "@seamapi/nextlove-sdk-generator": "^1.18.1", - "@seamapi/types": "1.405.0", + "@seamapi/types": "1.410.1", "del": "^7.1.0", "prettier": "^3.0.0" } diff --git a/src/Objects/AcsAccessGroup.php b/src/Objects/AcsAccessGroup.php index a3ded15b..dc9fe519 100644 --- a/src/Objects/AcsAccessGroup.php +++ b/src/Objects/AcsAccessGroup.php @@ -14,6 +14,7 @@ public static function from_json(mixed $json): AcsAccessGroup|null access_group_type_display_name: $json->access_group_type_display_name, acs_access_group_id: $json->acs_access_group_id, acs_system_id: $json->acs_system_id, + connected_account_id: $json->connected_account_id, created_at: $json->created_at, display_name: $json->display_name, external_type: $json->external_type, @@ -33,6 +34,7 @@ public function __construct( public string $access_group_type_display_name, public string $acs_access_group_id, public string $acs_system_id, + public string $connected_account_id, public string $created_at, public string $display_name, public string $external_type, diff --git a/src/Objects/AcsEncoder.php b/src/Objects/AcsEncoder.php index 877a341d..d5e35807 100644 --- a/src/Objects/AcsEncoder.php +++ b/src/Objects/AcsEncoder.php @@ -12,6 +12,7 @@ public static function from_json(mixed $json): AcsEncoder|null return new self( acs_encoder_id: $json->acs_encoder_id, acs_system_id: $json->acs_system_id, + connected_account_id: $json->connected_account_id, created_at: $json->created_at, display_name: $json->display_name, errors: array_map( @@ -25,6 +26,7 @@ public static function from_json(mixed $json): AcsEncoder|null public function __construct( public string $acs_encoder_id, public string $acs_system_id, + public string $connected_account_id, public string $created_at, public string $display_name, public array $errors, diff --git a/src/Objects/ClientSession.php b/src/Objects/ClientSession.php index 6db73623..43b27547 100644 --- a/src/Objects/ClientSession.php +++ b/src/Objects/ClientSession.php @@ -19,6 +19,7 @@ public static function from_json(mixed $json): ClientSession|null token: $json->token, user_identity_ids: $json->user_identity_ids, workspace_id: $json->workspace_id, + customer_id: $json->customer_id ?? null, user_identifier_key: $json->user_identifier_key ?? null ); } @@ -33,6 +34,7 @@ public function __construct( public string $token, public array $user_identity_ids, public string $workspace_id, + public string|null $customer_id, public string|null $user_identifier_key ) { } diff --git a/src/Objects/ConnectWebview.php b/src/Objects/ConnectWebview.php index 9b9d54d0..dbfa7482 100644 --- a/src/Objects/ConnectWebview.php +++ b/src/Objects/ConnectWebview.php @@ -10,6 +10,7 @@ public static function from_json(mixed $json): ConnectWebview|null return null; } return new self( + accepted_capabilities: $json->accepted_capabilities, accepted_devices: $json->accepted_devices, accepted_providers: $json->accepted_providers, any_device_allowed: $json->any_device_allowed, @@ -34,6 +35,7 @@ public static function from_json(mixed $json): ConnectWebview|null } public function __construct( + public array $accepted_capabilities, public array $accepted_devices, public array $accepted_providers, public bool $any_device_allowed, diff --git a/src/Objects/MagicLink.php b/src/Objects/MagicLink.php new file mode 100644 index 00000000..54a01432 --- /dev/null +++ b/src/Objects/MagicLink.php @@ -0,0 +1,31 @@ +building_block_type, + created_at: $json->created_at, + customer_key: $json->customer_key, + expires_at: $json->expires_at, + url: $json->url, + workspace_id: $json->workspace_id + ); + } + + public function __construct( + public string $building_block_type, + public string $created_at, + public string $customer_key, + public string $expires_at, + public string $url, + public string $workspace_id + ) { + } +} diff --git a/src/Objects/Network.php b/src/Objects/Space.php similarity index 67% rename from src/Objects/Network.php rename to src/Objects/Space.php index c17b16d8..967f7bb7 100644 --- a/src/Objects/Network.php +++ b/src/Objects/Space.php @@ -2,9 +2,9 @@ namespace Seam\Objects; -class Network +class Space { - public static function from_json(mixed $json): Network|null + public static function from_json(mixed $json): Space|null { if (!$json) { return null; @@ -12,7 +12,8 @@ public static function from_json(mixed $json): Network|null return new self( created_at: $json->created_at, display_name: $json->display_name, - network_id: $json->network_id, + name: $json->name, + space_id: $json->space_id, workspace_id: $json->workspace_id ); } @@ -20,7 +21,8 @@ public static function from_json(mixed $json): Network|null public function __construct( public string $created_at, public string $display_name, - public string $network_id, + public string $name, + public string $space_id, public string $workspace_id ) { } diff --git a/src/Objects/UnmanagedAcsAccessGroup.php b/src/Objects/UnmanagedAcsAccessGroup.php index 18b0c93b..cf70b84d 100644 --- a/src/Objects/UnmanagedAcsAccessGroup.php +++ b/src/Objects/UnmanagedAcsAccessGroup.php @@ -14,6 +14,7 @@ public static function from_json(mixed $json): UnmanagedAcsAccessGroup|null access_group_type_display_name: $json->access_group_type_display_name, acs_access_group_id: $json->acs_access_group_id, acs_system_id: $json->acs_system_id, + connected_account_id: $json->connected_account_id, created_at: $json->created_at, display_name: $json->display_name, external_type: $json->external_type, @@ -33,6 +34,7 @@ public function __construct( public string $access_group_type_display_name, public string $acs_access_group_id, public string $acs_system_id, + public string $connected_account_id, public string $created_at, public string $display_name, public string $external_type, diff --git a/src/SeamClient.php b/src/SeamClient.php index 317b9587..56c76775 100644 --- a/src/SeamClient.php +++ b/src/SeamClient.php @@ -20,12 +20,13 @@ use Seam\Objects\EnrollmentAutomation; use Seam\Objects\Event; use Seam\Objects\InstantKey; -use Seam\Objects\Network; +use Seam\Objects\MagicLink; use Seam\Objects\NoiseThreshold; use Seam\Objects\Pagination; use Seam\Objects\Phone; use Seam\Objects\PhoneRegistration; use Seam\Objects\PhoneSession; +use Seam\Objects\Space; use Seam\Objects\ThermostatSchedule; use Seam\Objects\UnmanagedAccessCode; use Seam\Objects\UnmanagedAcsAccessGroup; @@ -50,6 +51,8 @@ class SeamClient { public AccessCodesClient $access_codes; + public AccessGrantsClient $access_grants; + public AccessMethodsClient $access_methods; public AcsClient $acs; public ActionAttemptsClient $action_attempts; public ClientSessionsClient $client_sessions; @@ -58,9 +61,9 @@ class SeamClient public DevicesClient $devices; public EventsClient $events; public LocksClient $locks; - public NetworksClient $networks; public NoiseSensorsClient $noise_sensors; public PhonesClient $phones; + public SpacesClient $spaces; public ThermostatsClient $thermostats; public UserIdentitiesClient $user_identities; public WebhooksClient $webhooks; @@ -90,6 +93,8 @@ public function __construct( "http_errors" => $throw_http_errors, ]); $this->access_codes = new AccessCodesClient($this); + $this->access_grants = new AccessGrantsClient($this); + $this->access_methods = new AccessMethodsClient($this); $this->acs = new AcsClient($this); $this->action_attempts = new ActionAttemptsClient($this); $this->client_sessions = new ClientSessionsClient($this); @@ -98,9 +103,9 @@ public function __construct( $this->devices = new DevicesClient($this); $this->events = new EventsClient($this); $this->locks = new LocksClient($this); - $this->networks = new NetworksClient($this); $this->noise_sensors = new NoiseSensorsClient($this); $this->phones = new PhonesClient($this); + $this->spaces = new SpacesClient($this); $this->thermostats = new ThermostatsClient($this); $this->user_identities = new UserIdentitiesClient($this); $this->webhooks = new WebhooksClient($this); @@ -436,6 +441,7 @@ public function get( public function list( ?array $access_code_ids = null, + ?array $customer_ids = null, ?string $device_id = null, ?float $limit = null, ?string $page_cursor = null, @@ -447,6 +453,9 @@ public function list( if ($access_code_ids !== null) { $request_payload["access_code_ids"] = $access_code_ids; } + if ($customer_ids !== null) { + $request_payload["customer_ids"] = $customer_ids; + } if ($device_id !== null) { $request_payload["device_id"] = $device_id; } @@ -841,6 +850,187 @@ public function update( } } +class AccessGrantsClient +{ + private SeamClient $seam; + + public function __construct(SeamClient $seam) + { + $this->seam = $seam; + } + + public function create( + array $requested_access_methods, + ?string $user_identity_id = null, + mixed $user_identity = null, + ?array $acs_entrance_ids = null, + ?array $device_ids = null, + ?string $ends_at = null, + mixed $location = null, + ?array $location_ids = null, + ?array $space_ids = null, + ?string $starts_at = null + ): void { + $request_payload = []; + + if ($requested_access_methods !== null) { + $request_payload[ + "requested_access_methods" + ] = $requested_access_methods; + } + if ($user_identity_id !== null) { + $request_payload["user_identity_id"] = $user_identity_id; + } + if ($user_identity !== null) { + $request_payload["user_identity"] = $user_identity; + } + if ($acs_entrance_ids !== null) { + $request_payload["acs_entrance_ids"] = $acs_entrance_ids; + } + if ($device_ids !== null) { + $request_payload["device_ids"] = $device_ids; + } + if ($ends_at !== null) { + $request_payload["ends_at"] = $ends_at; + } + if ($location !== null) { + $request_payload["location"] = $location; + } + if ($location_ids !== null) { + $request_payload["location_ids"] = $location_ids; + } + if ($space_ids !== null) { + $request_payload["space_ids"] = $space_ids; + } + if ($starts_at !== null) { + $request_payload["starts_at"] = $starts_at; + } + + $this->seam->request( + "POST", + "/access_grants/create", + json: (object) $request_payload + ); + } + + public function delete(string $access_grant_id): void + { + $request_payload = []; + + if ($access_grant_id !== null) { + $request_payload["access_grant_id"] = $access_grant_id; + } + + $this->seam->request( + "POST", + "/access_grants/delete", + json: (object) $request_payload + ); + } + + public function get(string $access_grant_id): void + { + $request_payload = []; + + if ($access_grant_id !== null) { + $request_payload["access_grant_id"] = $access_grant_id; + } + + $this->seam->request( + "POST", + "/access_grants/get", + json: (object) $request_payload + ); + } + + public function list( + ?string $acs_entrance_id = null, + ?string $acs_system_id = null, + ?string $location_id = null, + ?string $space_id = null, + ?string $user_identity_id = null + ): void { + $request_payload = []; + + if ($acs_entrance_id !== null) { + $request_payload["acs_entrance_id"] = $acs_entrance_id; + } + if ($acs_system_id !== null) { + $request_payload["acs_system_id"] = $acs_system_id; + } + if ($location_id !== null) { + $request_payload["location_id"] = $location_id; + } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + if ($user_identity_id !== null) { + $request_payload["user_identity_id"] = $user_identity_id; + } + + $this->seam->request( + "POST", + "/access_grants/list", + json: (object) $request_payload + ); + } +} + +class AccessMethodsClient +{ + private SeamClient $seam; + + public function __construct(SeamClient $seam) + { + $this->seam = $seam; + } + + public function delete(string $access_method_id): void + { + $request_payload = []; + + if ($access_method_id !== null) { + $request_payload["access_method_id"] = $access_method_id; + } + + $this->seam->request( + "POST", + "/access_methods/delete", + json: (object) $request_payload + ); + } + + public function get(string $access_method_id): void + { + $request_payload = []; + + if ($access_method_id !== null) { + $request_payload["access_method_id"] = $access_method_id; + } + + $this->seam->request( + "POST", + "/access_methods/get", + json: (object) $request_payload + ); + } + + public function list(string $access_grant_id): void + { + $request_payload = []; + + if ($access_grant_id !== null) { + $request_payload["access_grant_id"] = $access_grant_id; + } + + $this->seam->request( + "POST", + "/access_methods/list", + json: (object) $request_payload + ); + } +} + class AcsAccessGroupsClient { private SeamClient $seam; @@ -1563,7 +1753,8 @@ public function grant_access( public function list( ?string $acs_credential_id = null, ?string $acs_system_id = null, - ?string $location_id = null + ?string $location_id = null, + ?string $space_id = null ): array { $request_payload = []; @@ -1576,6 +1767,9 @@ public function list( if ($location_id !== null) { $request_payload["location_id"] = $location_id; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } $res = $this->seam->request( "POST", @@ -2116,6 +2310,8 @@ public function __construct(SeamClient $seam) public function create( ?array $connect_webview_ids = null, ?array $connected_account_ids = null, + ?string $customer_id = null, + ?string $customer_key = null, ?string $expires_at = null, ?string $user_identifier_key = null, ?array $user_identity_ids = null @@ -2128,6 +2324,12 @@ public function create( if ($connected_account_ids !== null) { $request_payload["connected_account_ids"] = $connected_account_ids; } + if ($customer_id !== null) { + $request_payload["customer_id"] = $customer_id; + } + if ($customer_key !== null) { + $request_payload["customer_key"] = $customer_key; + } if ($expires_at !== null) { $request_payload["expires_at"] = $expires_at; } @@ -2315,17 +2517,22 @@ public function __construct(SeamClient $seam) } public function create( + ?array $accepted_capabilities = null, ?array $accepted_providers = null, ?bool $automatically_manage_new_devices = null, mixed $custom_metadata = null, ?string $custom_redirect_failure_url = null, ?string $custom_redirect_url = null, + ?string $customer_id = null, ?string $device_selection_mode = null, ?string $provider_category = null, ?bool $wait_for_device_creation = null ): ConnectWebview { $request_payload = []; + if ($accepted_capabilities !== null) { + $request_payload["accepted_capabilities"] = $accepted_capabilities; + } if ($accepted_providers !== null) { $request_payload["accepted_providers"] = $accepted_providers; } @@ -2345,6 +2552,9 @@ public function create( if ($custom_redirect_url !== null) { $request_payload["custom_redirect_url"] = $custom_redirect_url; } + if ($customer_id !== null) { + $request_payload["customer_id"] = $customer_id; + } if ($device_selection_mode !== null) { $request_payload["device_selection_mode"] = $device_selection_mode; } @@ -2400,6 +2610,7 @@ public function get(string $connect_webview_id): ConnectWebview public function list( mixed $custom_metadata_has = null, + ?array $customer_ids = null, ?float $limit = null, ?string $user_identifier_key = null ): array { @@ -2408,6 +2619,9 @@ public function list( if ($custom_metadata_has !== null) { $request_payload["custom_metadata_has"] = $custom_metadata_has; } + if ($customer_ids !== null) { + $request_payload["customer_ids"] = $customer_ids; + } if ($limit !== null) { $request_payload["limit"] = $limit; } @@ -2521,6 +2735,21 @@ public function list( ); } + public function sync(string $connected_account_id): void + { + $request_payload = []; + + if ($connected_account_id !== null) { + $request_payload["connected_account_id"] = $connected_account_id; + } + + $this->seam->request( + "POST", + "/connected_accounts/sync", + json: (object) $request_payload + ); + } + public function update( string $connected_account_id, ?bool $automatically_manage_new_devices = null, @@ -2595,6 +2824,7 @@ public function list( ?float $limit = null, ?string $manufacturer = null, ?string $page_cursor = null, + ?string $space_id = null, ?string $unstable_location_id = null, ?string $user_identifier_key = null, ?callable $on_response = null @@ -2643,6 +2873,9 @@ public function list( if ($page_cursor !== null) { $request_payload["page_cursor"] = $page_cursor; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } if ($unstable_location_id !== null) { $request_payload["unstable_location_id"] = $unstable_location_id; } @@ -2818,6 +3051,7 @@ public function list( ?float $limit = null, ?string $manufacturer = null, ?string $page_cursor = null, + ?string $space_id = null, ?string $unstable_location_id = null, ?string $user_identifier_key = null, ?callable $on_response = null @@ -2866,6 +3100,9 @@ public function list( if ($page_cursor !== null) { $request_payload["page_cursor"] = $page_cursor; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } if ($unstable_location_id !== null) { $request_payload["unstable_location_id"] = $unstable_location_id; } @@ -3066,6 +3303,7 @@ public function list( ?float $limit = null, ?string $manufacturer = null, ?string $page_cursor = null, + ?string $space_id = null, ?string $unstable_location_id = null, ?string $user_identifier_key = null, ?callable $on_response = null @@ -3114,6 +3352,9 @@ public function list( if ($page_cursor !== null) { $request_payload["page_cursor"] = $page_cursor; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } if ($unstable_location_id !== null) { $request_payload["unstable_location_id"] = $unstable_location_id; } @@ -3197,40 +3438,6 @@ public function unlock_door( } } -class NetworksClient -{ - private SeamClient $seam; - - public function __construct(SeamClient $seam) - { - $this->seam = $seam; - } - - public function get(string $network_id): Network - { - $request_payload = []; - - if ($network_id !== null) { - $request_payload["network_id"] = $network_id; - } - - $res = $this->seam->request( - "POST", - "/networks/get", - json: (object) $request_payload - ); - - return Network::from_json($res->network); - } - - public function list(): array - { - $res = $this->seam->request("POST", "/networks/list"); - - return array_map(fn($r) => Network::from_json($r), $res->networks); - } -} - class NoiseSensorsClient { private SeamClient $seam; @@ -3258,6 +3465,7 @@ public function list( ?float $limit = null, ?string $manufacturer = null, ?string $page_cursor = null, + ?string $space_id = null, ?string $unstable_location_id = null, ?string $user_identifier_key = null, ?callable $on_response = null @@ -3306,6 +3514,9 @@ public function list( if ($page_cursor !== null) { $request_payload["page_cursor"] = $page_cursor; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } if ($unstable_location_id !== null) { $request_payload["unstable_location_id"] = $unstable_location_id; } @@ -3625,6 +3836,177 @@ public function create_sandbox_phone( } } +class SpacesClient +{ + private SeamClient $seam; + + public function __construct(SeamClient $seam) + { + $this->seam = $seam; + } + + public function add_acs_entrances( + array $acs_entrance_ids, + string $space_id + ): void { + $request_payload = []; + + if ($acs_entrance_ids !== null) { + $request_payload["acs_entrance_ids"] = $acs_entrance_ids; + } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $this->seam->request( + "POST", + "/spaces/add_acs_entrances", + json: (object) $request_payload + ); + } + + public function add_devices(array $device_ids, string $space_id): void + { + $request_payload = []; + + if ($device_ids !== null) { + $request_payload["device_ids"] = $device_ids; + } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $this->seam->request( + "POST", + "/spaces/add_devices", + json: (object) $request_payload + ); + } + + public function create( + string $name, + ?array $acs_entrance_ids = null, + ?array $device_ids = null + ): Space { + $request_payload = []; + + if ($name !== null) { + $request_payload["name"] = $name; + } + if ($acs_entrance_ids !== null) { + $request_payload["acs_entrance_ids"] = $acs_entrance_ids; + } + if ($device_ids !== null) { + $request_payload["device_ids"] = $device_ids; + } + + $res = $this->seam->request( + "POST", + "/spaces/create", + json: (object) $request_payload + ); + + return Space::from_json($res->space); + } + + public function delete(string $space_id): void + { + $request_payload = []; + + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $this->seam->request( + "POST", + "/spaces/delete", + json: (object) $request_payload + ); + } + + public function get(string $space_id): Space + { + $request_payload = []; + + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $res = $this->seam->request( + "POST", + "/spaces/get", + json: (object) $request_payload + ); + + return Space::from_json($res->space); + } + + public function list(): array + { + $res = $this->seam->request("POST", "/spaces/list"); + + return array_map(fn($r) => Space::from_json($r), $res->spaces); + } + + public function remove_acs_entrances( + array $acs_entrance_ids, + string $space_id + ): void { + $request_payload = []; + + if ($acs_entrance_ids !== null) { + $request_payload["acs_entrance_ids"] = $acs_entrance_ids; + } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $this->seam->request( + "POST", + "/spaces/remove_acs_entrances", + json: (object) $request_payload + ); + } + + public function remove_devices(array $device_ids, string $space_id): void + { + $request_payload = []; + + if ($device_ids !== null) { + $request_payload["device_ids"] = $device_ids; + } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + + $this->seam->request( + "POST", + "/spaces/remove_devices", + json: (object) $request_payload + ); + } + + public function update(string $space_id, ?string $name = null): Space + { + $request_payload = []; + + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } + if ($name !== null) { + $request_payload["name"] = $name; + } + + $res = $this->seam->request( + "POST", + "/spaces/update", + json: (object) $request_payload + ); + + return Space::from_json($res->space); + } +} + class ThermostatsClient { private SeamClient $seam; @@ -3908,6 +4290,7 @@ public function list( ?float $limit = null, ?string $manufacturer = null, ?string $page_cursor = null, + ?string $space_id = null, ?string $unstable_location_id = null, ?string $user_identifier_key = null, ?callable $on_response = null @@ -3956,6 +4339,9 @@ public function list( if ($page_cursor !== null) { $request_payload["page_cursor"] = $page_cursor; } + if ($space_id !== null) { + $request_payload["space_id"] = $space_id; + } if ($unstable_location_id !== null) { $request_payload["unstable_location_id"] = $unstable_location_id; } @@ -4160,13 +4546,13 @@ public function set_temperature_threshold( public function update_climate_preset( string $climate_preset_key, string $device_id, - bool $manual_override_allowed, ?float $cooling_set_point_celsius = null, ?float $cooling_set_point_fahrenheit = null, ?string $fan_mode_setting = null, ?float $heating_set_point_celsius = null, ?float $heating_set_point_fahrenheit = null, ?string $hvac_mode_setting = null, + ?bool $manual_override_allowed = null, ?string $name = null ): void { $request_payload = []; @@ -4177,11 +4563,6 @@ public function update_climate_preset( if ($device_id !== null) { $request_payload["device_id"] = $device_id; } - if ($manual_override_allowed !== null) { - $request_payload[ - "manual_override_allowed" - ] = $manual_override_allowed; - } if ($cooling_set_point_celsius !== null) { $request_payload[ "cooling_set_point_celsius" @@ -4208,6 +4589,11 @@ public function update_climate_preset( if ($hvac_mode_setting !== null) { $request_payload["hvac_mode_setting"] = $hvac_mode_setting; } + if ($manual_override_allowed !== null) { + $request_payload[ + "manual_override_allowed" + ] = $manual_override_allowed; + } if ($name !== null) { $request_payload["name"] = $name; }