{"action":"created","comment":{"url":"https://api.github.com/repos/eclipse/smarthome/pulls/comments/201302127","pull_request_review_id":135756864,"id":201302127,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwMTMwMjEyNw==","diff_hunk":"@@ -0,0 +1,52 @@\n+/**\n+ * Copyright (c) 2014,2018 Contributors to the Eclipse Foundation\n+ *\n+ * See the NOTICE file(s) distributed with this work for additional\n+ * information regarding copyright ownership.\n+ *\n+ * This program and the accompanying materials are made available under the\n+ * terms of the Eclipse Public License 2.0 which is available at\n+ * http://www.eclipse.org/legal/epl-2.0\n+ *\n+ * SPDX-License-Identifier: EPL-2.0\n+ */\n+package org.eclipse.smarthome.binding.mqtt.generic.internal.homie300;\n+\n+import org.eclipse.smarthome.binding.mqtt.generic.internal.mapping.MapToField;\n+import org.eclipse.smarthome.binding.mqtt.generic.internal.mapping.TopicPrefix;\n+\n+/**\n+ * Homie 3.x Device attributes\n+ *\n+ * @author David Graeff - Initial contribution\n+ */\n+@TopicPrefix\n+public class DeviceAttributes {\n+    public enum ReadyState {\n+        unknown,","path":"extensions/binding/org.eclipse.smarthome.binding.mqtt.generic/src/main/java/org/eclipse/smarthome/binding/mqtt/generic/internal/homie300/DeviceAttributes.java","position":26,"original_position":26,"commit_id":"6f4dc58c693b1dfabeaaa1b46dd3f6e4028b6b36","original_commit_id":"6f4dc58c693b1dfabeaaa1b46dd3f6e4028b6b36","user":{"login":"Hilbrand","id":1272873,"node_id":"MDQ6VXNlcjEyNzI4NzM=","avatar_url":"https://avatars1.githubusercontent.com/u/1272873?v=4","gravatar_id":"","url":"https://api.github.com/users/Hilbrand","html_url":"https://github.com/Hilbrand","followers_url":"https://api.github.com/users/Hilbrand/followers","following_url":"https://api.github.com/users/Hilbrand/following{/other_user}","gists_url":"https://api.github.com/users/Hilbrand/gists{/gist_id}","starred_url":"https://api.github.com/users/Hilbrand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Hilbrand/subscriptions","organizations_url":"https://api.github.com/users/Hilbrand/orgs","repos_url":"https://api.github.com/users/Hilbrand/repos","events_url":"https://api.github.com/users/Hilbrand/events{/privacy}","received_events_url":"https://api.github.com/users/Hilbrand/received_events","type":"User","site_admin":false},"body":"Shouldn't these enum values be in upper case?","created_at":"2018-07-10T11:05:28Z","updated_at":"2018-07-10T11:10:58Z","html_url":"https://github.com/eclipse/smarthome/pull/5880#discussion_r201302127","pull_request_url":"https://api.github.com/repos/eclipse/smarthome/pulls/5880","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/comments/201302127"},"html":{"href":"https://github.com/eclipse/smarthome/pull/5880#discussion_r201302127"},"pull_request":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/5880"}}},"pull_request":{"url":"https://api.github.com/repos/eclipse/smarthome/pulls/5880","id":200059370,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAwMDU5Mzcw","html_url":"https://github.com/eclipse/smarthome/pull/5880","diff_url":"https://github.com/eclipse/smarthome/pull/5880.diff","patch_url":"https://github.com/eclipse/smarthome/pull/5880.patch","issue_url":"https://api.github.com/repos/eclipse/smarthome/issues/5880","number":5880,"state":"open","locked":false,"title":"Mqtt generic things and Homie 3.x things","user":{"login":"davidgraeff","id":66436,"node_id":"MDQ6VXNlcjY2NDM2","avatar_url":"https://avatars2.githubusercontent.com/u/66436?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgraeff","html_url":"https://github.com/davidgraeff","followers_url":"https://api.github.com/users/davidgraeff/followers","following_url":"https://api.github.com/users/davidgraeff/following{/other_user}","gists_url":"https://api.github.com/users/davidgraeff/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgraeff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgraeff/subscriptions","organizations_url":"https://api.github.com/users/davidgraeff/orgs","repos_url":"https://api.github.com/users/davidgraeff/repos","events_url":"https://api.github.com/users/davidgraeff/events{/privacy}","received_events_url":"https://api.github.com/users/davidgraeff/received_events","type":"User","site_admin":false},"body":"This is a friendly re-take over of #5101, originally #3876 with changes from @sjka:\r\n\r\n* incorporate (my...) review feedback (see #3876 (review))\r\n* update the license headers\r\n* adaptation to mockito 2\r\n* adding the binding to the docu structure\r\n* Eclipse & Karaf features\r\n\r\n## Abstract\r\nAt this very moment there exist no means to actually connect mqtt topics to ESH things. Specialized bindings for all those commercial and non-commercial MQTT products out there makes sense.\r\n\r\nBut for a start this PR provides a simple generic MQTT topics to thing/channel mapping. \r\n\r\n* Use bridges of the main MQTT bundle.\r\n* Manually add a thing and an arbitrary number of channels (Text, Number, OnOff, Color, Dimmer) and bind those to MQTT states and/or command topic.\r\n* Allow to use a transformation pattern to extract a state from a formatted response like JSON. An example would be the pattern `JSONPATH:$.device.status.temperature` for an incoming message of `{device: {status: { temperature: 23.2 }}}`.\r\n* The number as well as dimmer channel can have a configured min, max and step.\r\n* The OnOff channel takes a configuration for the ON and OFF state. Some people use \"1\" and \"0\", some \"true\" and \"false\", we support all variants.\r\n\r\n## Channels\r\n\r\n* TextChannel: String\r\n* NumberChannel: Number, Rollershutter, Dimmer\r\n* OnOffChannel: Contact, Switch\r\n* ColorChannel: Color\r\n\r\n## Homie 3.x convention\r\n\r\nDiscovery of Things/Channels is possible by supporting the Homie convention. \r\n* I'm not too keen to support node instances at that moment in time. The specification is not entirely clear to me in this regard.\r\n* Device statistics are made available as thing properties. \r\n* Some attributes like the `localip` or `mac` attribute do not make sense in the standard and will not be used or required from peer devices.\r\n\r\nCheers,\r\nDavid","created_at":"2018-07-09T10:42:03Z","updated_at":"2018-07-10T11:10:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1d1902eaec3d8ab73d261711fa761754f4659ca3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/eclipse/smarthome/pulls/5880/commits","review_comments_url":"https://api.github.com/repos/eclipse/smarthome/pulls/5880/comments","review_comment_url":"https://api.github.com/repos/eclipse/smarthome/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eclipse/smarthome/issues/5880/comments","statuses_url":"https://api.github.com/repos/eclipse/smarthome/statuses/6f4dc58c693b1dfabeaaa1b46dd3f6e4028b6b36","head":{"label":"davidgraeff:mqtt_things","ref":"mqtt_things","sha":"6f4dc58c693b1dfabeaaa1b46dd3f6e4028b6b36","user":{"login":"davidgraeff","id":66436,"node_id":"MDQ6VXNlcjY2NDM2","avatar_url":"https://avatars2.githubusercontent.com/u/66436?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgraeff","html_url":"https://github.com/davidgraeff","followers_url":"https://api.github.com/users/davidgraeff/followers","following_url":"https://api.github.com/users/davidgraeff/following{/other_user}","gists_url":"https://api.github.com/users/davidgraeff/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgraeff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgraeff/subscriptions","organizations_url":"https://api.github.com/users/davidgraeff/orgs","repos_url":"https://api.github.com/users/davidgraeff/repos","events_url":"https://api.github.com/users/davidgraeff/events{/privacy}","received_events_url":"https://api.github.com/users/davidgraeff/received_events","type":"User","site_admin":false},"repo":{"id":94952984,"node_id":"MDEwOlJlcG9zaXRvcnk5NDk1Mjk4NA==","name":"smarthome","full_name":"davidgraeff/smarthome","owner":{"login":"davidgraeff","id":66436,"node_id":"MDQ6VXNlcjY2NDM2","avatar_url":"https://avatars2.githubusercontent.com/u/66436?v=4","gravatar_id":"","url":"https://api.github.com/users/davidgraeff","html_url":"https://github.com/davidgraeff","followers_url":"https://api.github.com/users/davidgraeff/followers","following_url":"https://api.github.com/users/davidgraeff/following{/other_user}","gists_url":"https://api.github.com/users/davidgraeff/gists{/gist_id}","starred_url":"https://api.github.com/users/davidgraeff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidgraeff/subscriptions","organizations_url":"https://api.github.com/users/davidgraeff/orgs","repos_url":"https://api.github.com/users/davidgraeff/repos","events_url":"https://api.github.com/users/davidgraeff/events{/privacy}","received_events_url":"https://api.github.com/users/davidgraeff/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/davidgraeff/smarthome","description":"Eclipse SmartHome™ project","fork":true,"url":"https://api.github.com/repos/davidgraeff/smarthome","forks_url":"https://api.github.com/repos/davidgraeff/smarthome/forks","keys_url":"https://api.github.com/repos/davidgraeff/smarthome/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davidgraeff/smarthome/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davidgraeff/smarthome/teams","hooks_url":"https://api.github.com/repos/davidgraeff/smarthome/hooks","issue_events_url":"https://api.github.com/repos/davidgraeff/smarthome/issues/events{/number}","events_url":"https://api.github.com/repos/davidgraeff/smarthome/events","assignees_url":"https://api.github.com/repos/davidgraeff/smarthome/assignees{/user}","branches_url":"https://api.github.com/repos/davidgraeff/smarthome/branches{/branch}","tags_url":"https://api.github.com/repos/davidgraeff/smarthome/tags","blobs_url":"https://api.github.com/repos/davidgraeff/smarthome/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davidgraeff/smarthome/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davidgraeff/smarthome/git/refs{/sha}","trees_url":"https://api.github.com/repos/davidgraeff/smarthome/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davidgraeff/smarthome/statuses/{sha}","languages_url":"https://api.github.com/repos/davidgraeff/smarthome/languages","stargazers_url":"https://api.github.com/repos/davidgraeff/smarthome/stargazers","contributors_url":"https://api.github.com/repos/davidgraeff/smarthome/contributors","subscribers_url":"https://api.github.com/repos/davidgraeff/smarthome/subscribers","subscription_url":"https://api.github.com/repos/davidgraeff/smarthome/subscription","commits_url":"https://api.github.com/repos/davidgraeff/smarthome/commits{/sha}","git_commits_url":"https://api.github.com/repos/davidgraeff/smarthome/git/commits{/sha}","comments_url":"https://api.github.com/repos/davidgraeff/smarthome/comments{/number}","issue_comment_url":"https://api.github.com/repos/davidgraeff/smarthome/issues/comments{/number}","contents_url":"https://api.github.com/repos/davidgraeff/smarthome/contents/{+path}","compare_url":"https://api.github.com/repos/davidgraeff/smarthome/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davidgraeff/smarthome/merges","archive_url":"https://api.github.com/repos/davidgraeff/smarthome/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davidgraeff/smarthome/downloads","issues_url":"https://api.github.com/repos/davidgraeff/smarthome/issues{/number}","pulls_url":"https://api.github.com/repos/davidgraeff/smarthome/pulls{/number}","milestones_url":"https://api.github.com/repos/davidgraeff/smarthome/milestones{/number}","notifications_url":"https://api.github.com/repos/davidgraeff/smarthome/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davidgraeff/smarthome/labels{/name}","releases_url":"https://api.github.com/repos/davidgraeff/smarthome/releases{/id}","deployments_url":"https://api.github.com/repos/davidgraeff/smarthome/deployments","created_at":"2017-06-21T02:07:59Z","updated_at":"2018-04-12T07:56:29Z","pushed_at":"2018-07-09T14:54:08Z","git_url":"git://github.com/davidgraeff/smarthome.git","ssh_url":"git@github.com:davidgraeff/smarthome.git","clone_url":"https://github.com/davidgraeff/smarthome.git","svn_url":"https://github.com/davidgraeff/smarthome","homepage":"https://www.eclipse.org/smarthome/","size":57714,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"epl-2.0","name":"Eclipse Public License 2.0","spdx_id":"EPL-2.0","url":"https://api.github.com/licenses/epl-2.0","node_id":"MDc6TGljZW5zZTMy"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"eclipse:master","ref":"master","sha":"8d107bd6eae5792d1ec1089a4ee3d684dc100828","user":{"login":"eclipse","id":56974,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2OTc0","avatar_url":"https://avatars1.githubusercontent.com/u/56974?v=4","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"repo":{"id":15778981,"node_id":"MDEwOlJlcG9zaXRvcnkxNTc3ODk4MQ==","name":"smarthome","full_name":"eclipse/smarthome","owner":{"login":"eclipse","id":56974,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU2OTc0","avatar_url":"https://avatars1.githubusercontent.com/u/56974?v=4","gravatar_id":"","url":"https://api.github.com/users/eclipse","html_url":"https://github.com/eclipse","followers_url":"https://api.github.com/users/eclipse/followers","following_url":"https://api.github.com/users/eclipse/following{/other_user}","gists_url":"https://api.github.com/users/eclipse/gists{/gist_id}","starred_url":"https://api.github.com/users/eclipse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eclipse/subscriptions","organizations_url":"https://api.github.com/users/eclipse/orgs","repos_url":"https://api.github.com/users/eclipse/repos","events_url":"https://api.github.com/users/eclipse/events{/privacy}","received_events_url":"https://api.github.com/users/eclipse/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/eclipse/smarthome","description":"Eclipse SmartHome™ project","fork":false,"url":"https://api.github.com/repos/eclipse/smarthome","forks_url":"https://api.github.com/repos/eclipse/smarthome/forks","keys_url":"https://api.github.com/repos/eclipse/smarthome/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eclipse/smarthome/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eclipse/smarthome/teams","hooks_url":"https://api.github.com/repos/eclipse/smarthome/hooks","issue_events_url":"https://api.github.com/repos/eclipse/smarthome/issues/events{/number}","events_url":"https://api.github.com/repos/eclipse/smarthome/events","assignees_url":"https://api.github.com/repos/eclipse/smarthome/assignees{/user}","branches_url":"https://api.github.com/repos/eclipse/smarthome/branches{/branch}","tags_url":"https://api.github.com/repos/eclipse/smarthome/tags","blobs_url":"https://api.github.com/repos/eclipse/smarthome/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eclipse/smarthome/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eclipse/smarthome/git/refs{/sha}","trees_url":"https://api.github.com/repos/eclipse/smarthome/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eclipse/smarthome/statuses/{sha}","languages_url":"https://api.github.com/repos/eclipse/smarthome/languages","stargazers_url":"https://api.github.com/repos/eclipse/smarthome/stargazers","contributors_url":"https://api.github.com/repos/eclipse/smarthome/contributors","subscribers_url":"https://api.github.com/repos/eclipse/smarthome/subscribers","subscription_url":"https://api.github.com/repos/eclipse/smarthome/subscription","commits_url":"https://api.github.com/repos/eclipse/smarthome/commits{/sha}","git_commits_url":"https://api.github.com/repos/eclipse/smarthome/git/commits{/sha}","comments_url":"https://api.github.com/repos/eclipse/smarthome/comments{/number}","issue_comment_url":"https://api.github.com/repos/eclipse/smarthome/issues/comments{/number}","contents_url":"https://api.github.com/repos/eclipse/smarthome/contents/{+path}","compare_url":"https://api.github.com/repos/eclipse/smarthome/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eclipse/smarthome/merges","archive_url":"https://api.github.com/repos/eclipse/smarthome/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eclipse/smarthome/downloads","issues_url":"https://api.github.com/repos/eclipse/smarthome/issues{/number}","pulls_url":"https://api.github.com/repos/eclipse/smarthome/pulls{/number}","milestones_url":"https://api.github.com/repos/eclipse/smarthome/milestones{/number}","notifications_url":"https://api.github.com/repos/eclipse/smarthome/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eclipse/smarthome/labels{/name}","releases_url":"https://api.github.com/repos/eclipse/smarthome/releases{/id}","deployments_url":"https://api.github.com/repos/eclipse/smarthome/deployments","created_at":"2014-01-09T20:47:19Z","updated_at":"2018-07-10T08:20:41Z","pushed_at":"2018-07-10T10:02:29Z","git_url":"git://github.com/eclipse/smarthome.git","ssh_url":"git@github.com:eclipse/smarthome.git","clone_url":"https://github.com/eclipse/smarthome.git","svn_url":"https://github.com/eclipse/smarthome","homepage":"https://www.eclipse.org/smarthome/","size":57325,"stargazers_count":722,"watchers_count":722,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":696,"mirror_url":null,"archived":false,"open_issues_count":399,"license":{"key":"epl-2.0","name":"Eclipse Public License 2.0","spdx_id":"EPL-2.0","url":"https://api.github.com/licenses/epl-2.0","node_id":"MDc6TGljZW5zZTMy"},"forks":696,"open_issues":399,"watchers":722,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/5880"},"html":{"href":"https://github.com/eclipse/smarthome/pull/5880"},"issue":{"href":"https://api.github.com/repos/eclipse/smarthome/issues/5880"},"comments":{"href":"https://api.github.com/repos/eclipse/smarthome/issues/5880/comments"},"review_comments":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/5880/comments"},"review_comment":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/5880/commits"},"statuses":{"href":"https://api.github.com/repos/eclipse/smarthome/statuses/6f4dc58c693b1dfabeaaa1b46dd3f6e4028b6b36"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"Hilbrand"}}