{"id":22147139,"url":"https://github.com/michielpeeters/nefiteasy","last_synced_at":"2025-07-26T02:31:36.338Z","repository":{"id":144145499,"uuid":"142433702","full_name":"michielpeeters/nefiteasy","owner":"michielpeeters","description":"An Async .NET Standard C# Nefit Easy Client Library","archived":false,"fork":false,"pushed_at":"2019-01-02T08:25:59.000Z","size":34,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-04-29T13:22:35.655Z","etag":null,"topics":["api","async","bosch","c-sharp","client","dotnet","easy","lib","library","nefit","nefit-easy","xmpp"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michielpeeters.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"publiccode":null,"codemeta":null}},"created_at":"2018-07-26T11:47:43.000Z","updated_at":"2024-04-16T19:19:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"d6715bd3-e291-4437-bb16-ccb6ac8f184e","html_url":"https://github.com/michielpeeters/nefiteasy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michielpeeters%2Fnefiteasy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michielpeeters%2Fnefiteasy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michielpeeters%2Fnefiteasy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michielpeeters%2Fnefiteasy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michielpeeters","download_url":"https://codeload.github.com/michielpeeters/nefiteasy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227590851,"owners_count":17790542,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","async","bosch","c-sharp","client","dotnet","easy","lib","library","nefit","nefit-easy","xmpp"],"created_at":"2024-12-01T23:13:30.501Z","updated_at":"2024-12-01T23:13:31.176Z","avatar_url":"https://github.com/michielpeeters.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Nefit Easy™ .NET Standard Library\n.NET Standard client library for the [Nefit Easy](http://www.nefit.nl/consument/service/easy/easy) smart thermostat.\n\n## PLEASE READ BEFORE USE!\nUse this library in moderation: don't flood the backend with new connections made every X seconds. Instead, if you want to poll the backend for data, create a connection once and reuse it for each command. In the end, it's your own responsibility to not get blocked because of excessive (ab)use.\n\n## Disclaimer\nThe implementation of this library is based on an other github user [larscom](https://github.com/larscom). He put really great work in it. The only thing I did is creating a dotnet standard package from it so it can be used in dotnet core projects.\n\n#### Official Disclaimer from larscom:\nThe implementation of this library is based on reverse-engineering the communications between the apps and the backend, plus various other bits and pieces of information. It is *not* based on any official information given out by Nefit/Bosch, and therefore there are no guarantees whatsoever regarding the safety of your devices and/or their settings, or the accuracy of the information provided.\n\n## Examples\n### Create Client \u0026 Connect\n\nCreate a client and get the owner info.\n\n```\nINefitEasyClient client = new NefitEasyClient(new NefitEasyCredentials {\n  SerialNumber = \"\",\n  AccessKey = \"\",\n  Password = \"\"\n});\n    \nawait client.ConnectAsync().ConfigureAwait(false);\n    \nif (client.Status == NefitConnectionStatus.Connected)\n{\n  IEnumerable\u003cstring\u003e owner = await client.GetOwnerInfoAsync().ConfigureAwait(false);\n}    \n```\n\n#### \n\n### Subscribe to Connection Events\n\n```\nINefitEasyClient client = new NefitEasyClient(new NefitEasyCredentials {\n  SerialNumber = \"\",\n  AccessKey = \"\",\n  Password = \"\"\n});\n\nclient.OnStatusChanged += (sender, status) =\u003e\n{\n    switch (status)\n    {\n       case NefitConnectionStatus.Connecting:\n           break;\n       case NefitConnectionStatus.Connected:\n           break;\n       case NefitConnectionStatus.AuthenticationTest:\n           break;\n       case NefitConnectionStatus.InvalidCredentials:\n           break;\n       case NefitConnectionStatus.Disconnecting:\n           break;\n       case NefitConnectionStatus.Disconnected:\n           break;\n    }\n };\n\nawait client.ConnectAsync().ConfigureAwait(false);\n```\n\n#### \n\n### UI Status\n\nGet the current UI status (room temperature and more)\n\n```\nINefitEasyClient client = new NefitEasyClient(new NefitEasyCredentials {\n  SerialNumber = \"\",\n  AccessKey = \"\",\n  Password = \"\"\n});\n    \nawait client.ConnectAsync().ConfigureAwait(false);\n    \nif (client.ConnectionStatus == NefitConnectionStatus.Connected)\n{\n   UiStatus status = await client.GetUiStatusAsync().ConfigureAwait(false);\n   double temperature = status.InHouseTemperature;\n}\n```\n\n#### \n\n### Set Room Temperature\n\nSet a room temperature between 5 and 30 degrees Celsius\n\n```\nINefitEasyClient client = new NefitEasyClient(new NefitEasyCredentials {\n  SerialNumber = \"\",\n  AccessKey = \"\",\n  Password = \"\"\n});\n    \nawait client.ConnectAsync();\n    \nif (client.ConnectionStatus == NefitConnectionStatus.Connected)\n{\n  bool succeeded = await client.SetTemperatureAsync(24d).ConfigureAwait(false);\n}\n```\n\n####\n\n### Using in dotnet core project\n\nIn StartUp.cs\n```\nservices.AddNefitEasy(options =\u003e {\n  IsSingletonClient = true|false,\n  AutoConnect = true|false\n  Credentials = new NefitEasyCredentials {\n    SerialNumber = \"\",\n    AccessKey = \"\",\n    Password = \"\"\n  }  \n});\n```\n\nUsage in a controller\n```\npublic HomeController(INefitEasyClient client)\n{\n   UiStatus status = await client.GetUiStatusAsync().ConfigureAwait(false);\n   double temperature = status.InHouseTemperature\n}\n```\n\n####\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichielpeeters%2Fnefiteasy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichielpeeters%2Fnefiteasy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichielpeeters%2Fnefiteasy/lists"}