{"id":32270271,"url":"https://github.com/kitchenstories/flutter_home_connect_sdk","last_synced_at":"2026-02-23T19:01:45.188Z","repository":{"id":65881463,"uuid":"596628327","full_name":"KitchenStories/flutter_home_connect_sdk","owner":"KitchenStories","description":"Flutter SDK for Home Connect's smart appliances","archived":false,"fork":false,"pushed_at":"2024-02-12T14:51:00.000Z","size":159,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-11-27T17:10:58.652Z","etag":null,"topics":["active","flutter","home-connect","library","mobile"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/homeconnect_flutter","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KitchenStories.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-02-02T15:46:45.000Z","updated_at":"2024-09-26T07:31:35.000Z","dependencies_parsed_at":"2023-07-15T03:15:19.512Z","dependency_job_id":null,"html_url":"https://github.com/KitchenStories/flutter_home_connect_sdk","commit_stats":{"total_commits":31,"total_committers":3,"mean_commits":"10.333333333333334","dds":0.3870967741935484,"last_synced_commit":"ea5d1195b493f0252f33c54033869630ce423cc1"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/KitchenStories/flutter_home_connect_sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitchenStories%2Fflutter_home_connect_sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitchenStories%2Fflutter_home_connect_sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitchenStories%2Fflutter_home_connect_sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitchenStories%2Fflutter_home_connect_sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KitchenStories","download_url":"https://codeload.github.com/KitchenStories/flutter_home_connect_sdk/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KitchenStories%2Fflutter_home_connect_sdk/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29751707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-23T07:44:07.782Z","status":"ssl_error","status_checked_at":"2026-02-23T07:44:07.432Z","response_time":90,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["active","flutter","home-connect","library","mobile"],"created_at":"2025-10-22T22:34:26.579Z","updated_at":"2026-02-23T19:01:45.182Z","avatar_url":"https://github.com/KitchenStories.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HomeConnectApi\n\nA Dart package for interacting with the Home Connect API, which provides a unified interface for controlling a variety of smart home appliances.\nGetting started\nPrerequisites\n\n    Dart 2.17 or higher\n\n# Installation\n\nAdd the following dependency to your `pubspec.yaml` file:\n\nyaml\n\n    dependencies:\n    homeconnect: ^0.0.2\n\nThen, run `dart pub get` to install the package.\n\n## Usage\n\nFirst, import the package:\n\n```dart\nimport 'package:homeconnect/homeconnect.dart';\n```\n\nTo create an instance of the HomeConnectApi class, you need to provide the base URL of the Home Connect API, as well as the client credentials for authentication. Checkout out the [example](./homeconnect/example/flutter_home_connect_sdk_example.dart) file to get a better idea.\n\n```dart\n  // set up the api\n  HomeConnectApi api = HomeConnectApi(\n    Uri.parse('https://simulator.home-connect.com/'),\n    credentials: HomeConnectClientCredentials(\n      clientId: 'Your client id',\n      clientSecret: 'Your client secret',\n      redirectUri: 'https://example.com',\n    ),\n    authenticator: SandboxAuthorizer(),\n  );\n\n  api.storage.setCredentials(HomeConnectAuthCredentials(\n    accessToken: accessToken,\n    refreshToken: refreshToken,\n    expirationDate: DateTime.now().add(Duration(days: 1)),\n  ));\nfinal api = HomeConnectApi(Uri.parse('https://api.home-connect.com'), credentials: HomeConnectClientCredentials(clientId: '...', clientSecret: '...'));\n```\n\n## Get all devices.\n\n```dart\nfinal devices = await api.getDevices();\n```\n\n## Select a device.\n\nYou can pick a device using any method, here we select the first oven from the device list.\n\n```dart\nfinal selectedDevice = devices.firstWhere((element) =\u003e element.info.type == DeviceType.oven);\n```\n\n## Fetch device programs and status.\n\nOnce you have the selected device, to fetch its data we need to run `selectedDevice.init()`\n\n```dart\nawait selectedDevice.init();\n```\n\nAfter this we will have access to the devices programs and status.\n\n```dart\n// print all available programs\nfor (var program in selectedDevice.programs) {\n    print(program.key);\n}\n\n// print device status\nfor (var stat in selectedDevice.status) {\n    print(stat.key);\n}\n```\n\n## Select a program\n\nWe need to select a program before getting its options and contraints.\n\n```dart\nawait selectedDevice.selectProgram(programKey: 'Cooking.Oven.Program.HeatingMode.TopBottomHeating');\n```\n\nSelecting a program will allows to use `startProgram`, but first we need to set some valid values for the options.\n\nIn the example we will print the program options and their coinstraints to get the valid values.\n\n```dart\nfor (var option in selectedDevice.selectedProgram.options) {\n    print(option.key);\n    print(option.constraints!.toJson());\n}\n```\n\nThe output will be something like this:\n\n    Cooking.Oven.Option.SetpointTemperature\n    {min: 30, max: 250, stepsize: 5}\n    BSH.Common.Option.Duration\n    {min: 1, max: 86340, stepsize: 1}\n\nNow we can a start a program with valid options.\n\n## Starting a program\n\nFirst, lets generate the option payloads\n\nWe use `toCommandPayload` to parse the data for the request.\n\n```dart\nfinal tempOption = ProgramOptions.toCommandPayload(key: 'Cooking.Oven.Option.SetpointTemperature', value: 200);\nfinal durationOption = ProgramOptions.toCommandPayload(key: 'BSH.Common.Option.Duration', value: 500);\n```\n\nTo start the program just call the method like this:\n\n```dart\nawait selectedDevice.startProgram(options: [tempOption, durationOption]);\n```\n\n## Other methods.\n\nHomeDevice class also allows you to turn off and on your device.\n\n```dart\nselectedDevice.turnOff();\nselectedDevice.turnOn();\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitchenstories%2Fflutter_home_connect_sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkitchenstories%2Fflutter_home_connect_sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkitchenstories%2Fflutter_home_connect_sdk/lists"}