{"action":"created","issue":{"url":"https://api.github.com/repos/nfarina/homebridge/issues/497","repository_url":"https://api.github.com/repos/nfarina/homebridge","labels_url":"https://api.github.com/repos/nfarina/homebridge/issues/497/labels{/name}","comments_url":"https://api.github.com/repos/nfarina/homebridge/issues/497/comments","events_url":"https://api.github.com/repos/nfarina/homebridge/issues/497/events","html_url":"https://github.com/nfarina/homebridge/pull/497","id":130067033,"number":497,"title":"Plugin 2.0","user":{"login":"KhaosT","id":1725664,"avatar_url":"https://avatars.githubusercontent.com/u/1725664?v=3","gravatar_id":"","url":"https://api.github.com/users/KhaosT","html_url":"https://github.com/KhaosT","followers_url":"https://api.github.com/users/KhaosT/followers","following_url":"https://api.github.com/users/KhaosT/following{/other_user}","gists_url":"https://api.github.com/users/KhaosT/gists{/gist_id}","starred_url":"https://api.github.com/users/KhaosT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KhaosT/subscriptions","organizations_url":"https://api.github.com/users/KhaosT/orgs","repos_url":"https://api.github.com/users/KhaosT/repos","events_url":"https://api.github.com/users/KhaosT/events{/privacy}","received_events_url":"https://api.github.com/users/KhaosT/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":28,"created_at":"2016-01-31T02:47:27Z","updated_at":"2016-02-07T19:42:28Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/nfarina/homebridge/pulls/497","html_url":"https://github.com/nfarina/homebridge/pull/497","diff_url":"https://github.com/nfarina/homebridge/pull/497.diff","patch_url":"https://github.com/nfarina/homebridge/pull/497.patch"},"body":"🚧Work In Progress🚧\r\nThis PR tries to give plugin the ability to dynamically add/remove accessory, update reachability of the accessory and provide a way for user to configure platform plugin without having them to touch config.json\r\n\r\nThis PR shouldn't break the existing plugin but in order for plugin to use the new feature, there are some changes plugins need to make on their side. Please check ``./example-plugins/homebridge-samplePlatform`` for more details.\r\n\r\nI made a simple configurator to help test this PR, you can find it at [here](https://github.com/KhaosT/HesperusBridgeConfigurator).\r\n\r\nThis PR should addressed #465 and partially addressed #477. I'm not sure what's the best solution for user to install plugins other than having them to run ``npm install``.\r\n\r\n/cc @cflurin, @snowdd1, @SphtKr, @maddox, @nfarina, @KraigM, @rudders "},"comment":{"url":"https://api.github.com/repos/nfarina/homebridge/issues/comments/181092989","html_url":"https://github.com/nfarina/homebridge/pull/497#issuecomment-181092989","issue_url":"https://api.github.com/repos/nfarina/homebridge/issues/497","id":181092989,"user":{"login":"KhaosT","id":1725664,"avatar_url":"https://avatars.githubusercontent.com/u/1725664?v=3","gravatar_id":"","url":"https://api.github.com/users/KhaosT","html_url":"https://github.com/KhaosT","followers_url":"https://api.github.com/users/KhaosT/followers","following_url":"https://api.github.com/users/KhaosT/following{/other_user}","gists_url":"https://api.github.com/users/KhaosT/gists{/gist_id}","starred_url":"https://api.github.com/users/KhaosT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KhaosT/subscriptions","organizations_url":"https://api.github.com/users/KhaosT/orgs","repos_url":"https://api.github.com/users/KhaosT/repos","events_url":"https://api.github.com/users/KhaosT/events{/privacy}","received_events_url":"https://api.github.com/users/KhaosT/received_events","type":"User","site_admin":false},"created_at":"2016-02-07T19:42:28Z","updated_at":"2016-02-07T19:42:28Z","body":"@snowdd1 sorry about the confusion, I'm terrible at documenting things 😅\r\n\r\n``'didFinishLaunching'`` is an event emitted by API object when homebridge finishes launching sequence. Plugin should only try to register new accessories after this event.\r\n``configureAccessory()`` and ``configurationRequestHandler()`` are new interfaces that Platform.prototype needs to provide in order for homebridge to give plugins the ability to restore accessories and handle configuration request."}}