{"id":20457712,"url":"https://github.com/chmoore889/esp_local_control","last_synced_at":"2025-04-13T05:27:27.845Z","repository":{"id":44800353,"uuid":"332528978","full_name":"chmoore889/esp_local_control","owner":"chmoore889","description":"Library for locally controlling ESP Rainmaker devices.","archived":false,"fork":false,"pushed_at":"2022-10-06T23:17:33.000Z","size":58,"stargazers_count":8,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T22:11:17.795Z","etag":null,"topics":["esp-rainmaker","esp32","espressif"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/esp_rainmaker_local_control","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chmoore889.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}},"created_at":"2021-01-24T18:49:57.000Z","updated_at":"2024-03-28T04:12:31.000Z","dependencies_parsed_at":"2022-09-02T16:39:18.829Z","dependency_job_id":null,"html_url":"https://github.com/chmoore889/esp_local_control","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chmoore889%2Fesp_local_control","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chmoore889%2Fesp_local_control/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chmoore889%2Fesp_local_control/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chmoore889%2Fesp_local_control/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chmoore889","download_url":"https://codeload.github.com/chmoore889/esp_local_control/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248667656,"owners_count":21142487,"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":["esp-rainmaker","esp32","espressif"],"created_at":"2024-11-15T12:08:50.092Z","updated_at":"2025-04-13T05:27:27.811Z","avatar_url":"https://github.com/chmoore889.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\nThis is a library for controlling ESP Rainmaker devices over a local network rather than through the Rainmaker servers. It gives access to overall node configuration as well as the state of each device.\n\nIt uses the [multicast_dns](https://pub.dev/packages/multicast_dns/versions/0.2.2) package for device discovery. This service does not consistently discover Rainmaker devices on local networks, so a timer is used to regularly poll for the device IP and port information. The period of this timer can be set when contructing the `LocalControl` object, though it has a default value of 15 seconds.\n\nUses the [isolate_json](https://pub.dev/packages/isolate_json) package for decoding/encoding JSONs. This allows this package to use the same isolate for decoding/encoding as this package's complement, [esp_rainmaker](https://pub.dev/packages/esp_rainmaker).\n\n## Usage\n\nA simple usage example:\n\n```dart\nimport 'package:esp_rainmaker_local_control/src/esp_local_control_base.dart';\n\nFuture\u003cvoid\u003e main() async {\n  final control = LocalControl('rainmaker device id');\n  Map\u003cString,dynamic\u003e nodeValues;\n  try{\n    nodeValues = await control.getParamsValues();\n    await control.updateParamValue({\n      'device': {\n        'deivce state': true,\n      }\n    });\n  } catch(e) {\n    print(e);\n\n    //Handle local control failure\n    //Use Rainmaker API as a backup\n  }\n\n  print(nodeValues);\n  control.dispose();\n}\n```\n\n## Features and bugs\n\nPlease file feature requests and bugs at the [issue tracker][tracker].\n\n[tracker]: https://github.com/chmoore889/esp_local_control/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchmoore889%2Fesp_local_control","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchmoore889%2Fesp_local_control","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchmoore889%2Fesp_local_control/lists"}