{"action":"created","issue":{"url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/87","repository_url":"https://api.github.com/repos/marvinroger/homie-esp8266","labels_url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/87/labels{/name}","comments_url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/87/comments","events_url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/87/events","html_url":"https://github.com/marvinroger/homie-esp8266/issues/87","id":154854427,"number":87,"title":"Wishlist for v2.0.0","user":{"login":"marvinroger","id":990773,"avatar_url":"https://avatars.githubusercontent.com/u/990773?v=3","gravatar_id":"","url":"https://api.github.com/users/marvinroger","html_url":"https://github.com/marvinroger","followers_url":"https://api.github.com/users/marvinroger/followers","following_url":"https://api.github.com/users/marvinroger/following{/other_user}","gists_url":"https://api.github.com/users/marvinroger/gists{/gist_id}","starred_url":"https://api.github.com/users/marvinroger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marvinroger/subscriptions","organizations_url":"https://api.github.com/users/marvinroger/orgs","repos_url":"https://api.github.com/users/marvinroger/repos","events_url":"https://api.github.com/users/marvinroger/events{/privacy}","received_events_url":"https://api.github.com/users/marvinroger/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/marvinroger/homie-esp8266/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/marvinroger/homie-esp8266/milestones/6","html_url":"https://github.com/marvinroger/homie-esp8266/milestones/v2.0.0","labels_url":"https://api.github.com/repos/marvinroger/homie-esp8266/milestones/6/labels","id":1680332,"number":6,"title":"v2.0.0","description":null,"creator":{"login":"marvinroger","id":990773,"avatar_url":"https://avatars.githubusercontent.com/u/990773?v=3","gravatar_id":"","url":"https://api.github.com/users/marvinroger","html_url":"https://github.com/marvinroger","followers_url":"https://api.github.com/users/marvinroger/followers","following_url":"https://api.github.com/users/marvinroger/following{/other_user}","gists_url":"https://api.github.com/users/marvinroger/gists{/gist_id}","starred_url":"https://api.github.com/users/marvinroger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marvinroger/subscriptions","organizations_url":"https://api.github.com/users/marvinroger/orgs","repos_url":"https://api.github.com/users/marvinroger/repos","events_url":"https://api.github.com/users/marvinroger/events{/privacy}","received_events_url":"https://api.github.com/users/marvinroger/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":4,"state":"open","created_at":"2016-04-03T15:44:13Z","updated_at":"2016-06-18T19:01:00Z","due_on":null,"closed_at":null},"comments":28,"created_at":"2016-05-14T13:45:13Z","updated_at":"2016-06-18T21:39:26Z","closed_at":null,"body":"### TODO\r\n\r\n* [ ] The framework must be completely asynchronous. It was not doable before because TCP stuff was synchronous, now with [ESPAsyncTCP](https://github.com/me-no-dev/ESPAsyncTCP), we can. The only drawback is SSL is not supported. This is currently not stable enough anyway, and it probably won't be production ready due to limited memory, something that might change with the ESP32.\r\n  * [ ] WebServer must be implemented with [ESPAsyncWebServer](https://github.com/me-no-dev/ESPAsyncWebServer)\r\n  * [x] MQTT client must be switched to [AsyncMqttClient](https://github.com/marvinroger/async-mqtt-client) (implemented in c6facaad4971425df8fa2cc3c64cbc6104c7071a)\r\n  * [x] See for OTA, currently blocking (implemented in c6facaad4971425df8fa2cc3c64cbc6104c7071a)\r\n\r\n* [x] More modular design (implemented in #91, thanks to @euphi and @unaiur)\r\n\r\n* [x] The configuration UI must be embeddable, optionally. Captive portal must be working, so everything would be transparent to the user (implemented in #84, thanks to @unaiur!)\r\n\r\n* [ ] There must be custom settings support (#26)\r\n\r\n* [ ] There must be a way to change configuration while in normal mode. This is achievable with [AsyncMqttClient](https://github.com/marvinroger/async-mqtt-client) because there are no hard limits like PubSubClient has (#36)\r\n\r\n* [x] @euphi (implemented in f1110fb960614410ef425210dbdd0c255bd5fc8d): \r\n> It should be possible to set a logger class, e.g. any class implemting the \"Print\" class\r\n\r\n* [x] Embed the magic bytes (useful for [homie-ota](https://github.com/jpmens/homie-ota) for example) as a macro (implemented for firmware name, version and brand in e73b3af066bf7daf3a551803affcb884ee2db066)\r\n\r\n* [x] No need to call `registerNode` (implemented in #96, thanks to @euphi and @unaiur)\r\n\r\n* [x] Transparent proxy for captive portal custom configurations (implemented in #95, thanks to @flaviostutz )\r\n\r\n* [x] Optimize Wi-Fi (implemented in 56088cd3d7ee84fff17dbe6a28aaa8dd0070eed5)\r\n  * [x] Use events instead of the main loop to handle Wi-Fi events\r\n  * [x] Store the Wi-Fi config in SDK to cut down the time required to connect to the Wi-Fi (see https://github.com/z2amiller/sensorboard/blob/b33da405795761efce0dfa02f53b6932c87958ee/PowerSaving.md)\r\n\r\n### Breaking changes (or migration guide from v1.5.0 to v2.0.0)\r\n\r\n* `Homie.setFirmware(name, version)` must be replaced by `Homie_setFirmware(name, version)`\r\n* `Homie.setBrand(brand)` must be replaced by `Homie_setBrand(brand)`\r\n* Every `Homie.registerNode()` must be removed\r\n* If you've enabled Serial logging, `Serial.begin()` must be called explicitely in your sketch\r\n* Remove the `HOMIE_OTA_MODE` in your event handler, if you have one\r\n* `config.json` changes:\r\n  * In the `mqtt` section:\r\n    * `mdns` must be removed. Set the `host` and `port` fields\r\n    * `ssl` and `fingerprint` must be removed. No SSL support anymore\r\n  * In the `ota` section:\r\n    * All fields must be removed, except `enabled`. OTA is now done over MQTT now\r\n* The `Homie.setNodeProperty()` signature changed from `const HomieNode& node, const char* property, const char* value, bool retained` to `const HomieNode& node, const char* property, const char* value, uint8_t qos, bool retained`\r\n\r\n### Let's discuss\r\n\r\nThe 2.0.0 will be a breaking change. As such, we can safely change the API, the functions name, the order of the parameters... Let me know if you think there is any weirdness with the API, or the HTTP API of the config mode, etc. :smiley: "},"comment":{"url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/comments/226966418","html_url":"https://github.com/marvinroger/homie-esp8266/issues/87#issuecomment-226966418","issue_url":"https://api.github.com/repos/marvinroger/homie-esp8266/issues/87","id":226966418,"user":{"login":"me-no-dev","id":12663778,"avatar_url":"https://avatars.githubusercontent.com/u/12663778?v=3","gravatar_id":"","url":"https://api.github.com/users/me-no-dev","html_url":"https://github.com/me-no-dev","followers_url":"https://api.github.com/users/me-no-dev/followers","following_url":"https://api.github.com/users/me-no-dev/following{/other_user}","gists_url":"https://api.github.com/users/me-no-dev/gists{/gist_id}","starred_url":"https://api.github.com/users/me-no-dev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/me-no-dev/subscriptions","organizations_url":"https://api.github.com/users/me-no-dev/orgs","repos_url":"https://api.github.com/users/me-no-dev/repos","events_url":"https://api.github.com/users/me-no-dev/events{/privacy}","received_events_url":"https://api.github.com/users/me-no-dev/received_events","type":"User","site_admin":false},"created_at":"2016-06-18T21:39:26Z","updated_at":"2016-06-18T21:39:26Z","body":"you are welcome :)"}}
{"actor":{"display_login":"me-no-dev"}}