{"action":"created","comment":{"url":"https://api.github.com/repos/eclipse/smarthome/pulls/comments/29681904","id":29681904,"diff_hunk":"@@ -116,11 +120,11 @@ channel-type.yahooweather.temperature.option.OPTION1 = Option Nummer 1\n channel-type.yahooweather.temperature.option.OPTION2 = Option Nummer 2\n ```\n \n-So the key for referencing a label of a defined thing type is `thing-type.<binding-id>.<thing-type-id>.label`. A label of a channel can be referenced with `channel-type.<binding-id>.<channel-type-id>.label`. And finally the config description parameter key is `thing-type.config.<binding-id>.<thing-type-id>.<parameter-name>.label`.\n+So the key for referencing a label of a defined thing type is `thing-type.<binding-id>.<thing-type-id>.label`. A label of a channel can be referenced with `channel-type.<binding-id>.<channel-type-id>.label`. And finally the config description parameter key is `thing-type.config.<binding-id>.<thing-type-id>.<parameter-name>.label` and the group parameter is `thing-type.configGroup.<binding-id>.<thing-type-id>.<parameter-name>.label`.","path":"docs/sources/architecture/internationalization.md","position":39,"original_position":39,"commit_id":"aad6d37a6c99f5d1160acc8dcf94673ae5bc0942","original_commit_id":"aad6d37a6c99f5d1160acc8dcf94673ae5bc0942","user":{"login":"dnobel","id":1380535,"avatar_url":"https://avatars.githubusercontent.com/u/1380535?v=3","gravatar_id":"","url":"https://api.github.com/users/dnobel","html_url":"https://github.com/dnobel","followers_url":"https://api.github.com/users/dnobel/followers","following_url":"https://api.github.com/users/dnobel/following{/other_user}","gists_url":"https://api.github.com/users/dnobel/gists{/gist_id}","starred_url":"https://api.github.com/users/dnobel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dnobel/subscriptions","organizations_url":"https://api.github.com/users/dnobel/orgs","repos_url":"https://api.github.com/users/dnobel/repos","events_url":"https://api.github.com/users/dnobel/events{/privacy}","received_events_url":"https://api.github.com/users/dnobel/received_events","type":"User","site_admin":false},"body":"> and the group parameter is `thing-type.configGroup.<binding-id>.<thing-type-id>.<parameter-name>.label`.\r\n\r\nI think the pattern is '<binding-id>.<thing-type-id>.<parameter-group-name>'","created_at":"2015-05-05T15:46:42Z","updated_at":"2015-05-05T15:46:42Z","html_url":"https://github.com/eclipse/smarthome/pull/272#discussion_r29681904","pull_request_url":"https://api.github.com/repos/eclipse/smarthome/pulls/272","_links":{"self":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/comments/29681904"},"html":{"href":"https://github.com/eclipse/smarthome/pull/272#discussion_r29681904"},"pull_request":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/272"}}},"pull_request":{"url":"https://api.github.com/repos/eclipse/smarthome/pulls/272","id":34130588,"html_url":"https://github.com/eclipse/smarthome/pull/272","diff_url":"https://github.com/eclipse/smarthome/pull/272.diff","patch_url":"https://github.com/eclipse/smarthome/pull/272.patch","issue_url":"https://api.github.com/repos/eclipse/smarthome/issues/272","number":272,"state":"open","locked":false,"title":"Config parameter and interface enhancements","user":{"login":"cdjackson","id":1041475,"avatar_url":"https://avatars.githubusercontent.com/u/1041475?v=3","gravatar_id":"","url":"https://api.github.com/users/cdjackson","html_url":"https://github.com/cdjackson","followers_url":"https://api.github.com/users/cdjackson/followers","following_url":"https://api.github.com/users/cdjackson/following{/other_user}","gists_url":"https://api.github.com/users/cdjackson/gists{/gist_id}","starred_url":"https://api.github.com/users/cdjackson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdjackson/subscriptions","organizations_url":"https://api.github.com/users/cdjackson/orgs","repos_url":"https://api.github.com/users/cdjackson/repos","events_url":"https://api.github.com/users/cdjackson/events{/privacy}","received_events_url":"https://api.github.com/users/cdjackson/received_events","type":"User","site_admin":false},"body":"This is an early PR for some changes to the config interface. It's not fully tested, but it's working with no obvious problems - I wanted to put it out there early for comment...\r\n\r\nThis adds a few features that are basically targeted towards devices with a lot of configuration - ie zwave being my focus - but I'm sure will also be useful for smaller bindings. Currently there are devices in the zwave database with 30+ configuration parameters, plus there will be additional parameters added by the binding in order to control parts of the device that don't need to be defined (eg wakeup intervals) as they are dependant on the command classes supported by the individual devices.\r\n\r\n## Overview of Changes\r\n1. It changes the XML config reader to use the new ConfigParameterDescriptionBuilder. This just makes good sense I think as it isolates the parameter definition, meaning changes can be made without breaking the XML reader (or any other reader).\r\n2. I've added 3 new attributes to the configuration description.\r\n 1. An 'advanced' flag. This allows the user interface to filter out parameters that are marked as 'advanced' - effectively highlighting parameters that are most useful.\r\n 2. Added a 'limitToOptions' flag. This is used to say whether or not the value returned must be in the options list. The point here is that sometimes you want to have an options list of 'most used values' (or whatever) where the values are kind of hints, and other times you really want to limit to the listed values. A use case I have in zwave is a parameter may have a valid range of between (say) 50 and 100, but you can specify -1 to disable. I want to be able to set an option with value -1, and then let the user either select this, or a number of their choosing.\r\n 3. Added a group attribute. This is a larger change, and is my attempt to solve the issues we've discussed on the ESH forum a while back about linking configuration parameters together. I feel this is a good compromise - it provides a good deal of definition, but doesn't break the current interface (and yes, I've checked that the PaperUI still works! :) ).\r\n\r\n## Parameter Groups\r\nMost of the changes are associated with the last point above - parameter groups. The config interface I currently have in OH1 for zwave is hierarchical, so it's easy to group things together. It was designed this way to be flexible, but in reality for a single device, and assuming the current interface in ESH, 1 level is more than enough.\r\n\r\nSo, the proposed solution is to add an (optional) group id string to each parameter so that the UI can (optionally) group the parameters.\r\n\r\nIn addition to the group id in each parameter, there is a parameterGroups list that has been added to the ConfigDescription. This has 4 members -:\r\n\r\n1. groupid: to allow the UI to link parameters.\r\n2. context: to allow some sort of context information - the UI might for example use it to display an icon. Ideally we'd agree a defined set (similar to the Categories) and potentially also limit them (enum) so the UI knows what they mean (which I also think should be done with Categories).\r\n3. label: the group name for us mortals to read.\r\n4. description: to let people know what it's all about.\r\n\r\nThese get exposed through the REST UI with the addition of the parameterGroups object in the thing. This makes it totally transparent - the UI can use it, or ignore it.\r\n\r\nThe above provides a concrete and consistent set of parameters and groups, all specified into a single object. They can be dynamically updated through the ConfigDescriptionProvider interface if the binding desires.\r\n\r\nI've not looked at adding this to the XML provider in any detail yet. It should be considered optional so maybe it's not needed (but it would be nice I think), but for complex bindings, I think it's essential to avoid the user ending up with a list of 50+ parameters in a long list.\r\n\r\n## More stuff to do\r\nThere's a few more bits to do - more testing for starters... \r\n\r\nI would like to resolve the number of selections that can be made when 'multiple' is set ([see bug 465493](https://bugs.eclipse.org/bugs/show_bug.cgi?id=465493)). Some configurations need multiple selection, but each device only allows a certain number of entries in some lists - I think it's better to limit this at the UI that in the binding and leave the user wondering why he set 10 entries, but he's only got 5.  This is an easy change but we can discuss in the bug what option is best.\r\n\r\nI've not implemented this in the XML - I've had a quick look and given a little time I'm sure I can work that out, so I can probably add the above features into the XML config provider if desired.\r\n\r\nI'm happy to tweak this a bit if anyone has other ideas...\r\n\r\nSigned-off-by: Chris Jackson <chris@cd-jackson.com>","created_at":"2015-04-26T21:40:17Z","updated_at":"2015-05-05T15:46:42Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5390002fce217a818fbe937016301020a821e605","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/eclipse/smarthome/pulls/272/commits","review_comments_url":"https://api.github.com/repos/eclipse/smarthome/pulls/272/comments","review_comment_url":"https://api.github.com/repos/eclipse/smarthome/pulls/comments{/number}","comments_url":"https://api.github.com/repos/eclipse/smarthome/issues/272/comments","statuses_url":"https://api.github.com/repos/eclipse/smarthome/statuses/aad6d37a6c99f5d1160acc8dcf94673ae5bc0942","head":{"label":"cdjackson:cfg_parameter_update","ref":"cfg_parameter_update","sha":"aad6d37a6c99f5d1160acc8dcf94673ae5bc0942","user":{"login":"cdjackson","id":1041475,"avatar_url":"https://avatars.githubusercontent.com/u/1041475?v=3","gravatar_id":"","url":"https://api.github.com/users/cdjackson","html_url":"https://github.com/cdjackson","followers_url":"https://api.github.com/users/cdjackson/followers","following_url":"https://api.github.com/users/cdjackson/following{/other_user}","gists_url":"https://api.github.com/users/cdjackson/gists{/gist_id}","starred_url":"https://api.github.com/users/cdjackson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdjackson/subscriptions","organizations_url":"https://api.github.com/users/cdjackson/orgs","repos_url":"https://api.github.com/users/cdjackson/repos","events_url":"https://api.github.com/users/cdjackson/events{/privacy}","received_events_url":"https://api.github.com/users/cdjackson/received_events","type":"User","site_admin":false},"repo":{"id":17073319,"name":"smarthome","full_name":"cdjackson/smarthome","owner":{"login":"cdjackson","id":1041475,"avatar_url":"https://avatars.githubusercontent.com/u/1041475?v=3","gravatar_id":"","url":"https://api.github.com/users/cdjackson","html_url":"https://github.com/cdjackson","followers_url":"https://api.github.com/users/cdjackson/followers","following_url":"https://api.github.com/users/cdjackson/following{/other_user}","gists_url":"https://api.github.com/users/cdjackson/gists{/gist_id}","starred_url":"https://api.github.com/users/cdjackson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdjackson/subscriptions","organizations_url":"https://api.github.com/users/cdjackson/orgs","repos_url":"https://api.github.com/users/cdjackson/repos","events_url":"https://api.github.com/users/cdjackson/events{/privacy}","received_events_url":"https://api.github.com/users/cdjackson/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/cdjackson/smarthome","description":"Eclipse SmartHome project","fork":true,"url":"https://api.github.com/repos/cdjackson/smarthome","forks_url":"https://api.github.com/repos/cdjackson/smarthome/forks","keys_url":"https://api.github.com/repos/cdjackson/smarthome/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cdjackson/smarthome/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cdjackson/smarthome/teams","hooks_url":"https://api.github.com/repos/cdjackson/smarthome/hooks","issue_events_url":"https://api.github.com/repos/cdjackson/smarthome/issues/events{/number}","events_url":"https://api.github.com/repos/cdjackson/smarthome/events","assignees_url":"https://api.github.com/repos/cdjackson/smarthome/assignees{/user}","branches_url":"https://api.github.com/repos/cdjackson/smarthome/branches{/branch}","tags_url":"https://api.github.com/repos/cdjackson/smarthome/tags","blobs_url":"https://api.github.com/repos/cdjackson/smarthome/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cdjackson/smarthome/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cdjackson/smarthome/git/refs{/sha}","trees_url":"https://api.github.com/repos/cdjackson/smarthome/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cdjackson/smarthome/statuses/{sha}","languages_url":"https://api.github.com/repos/cdjackson/smarthome/languages","stargazers_url":"https://api.github.com/repos/cdjackson/smarthome/stargazers","contributors_url":"https://api.github.com/repos/cdjackson/smarthome/contributors","subscribers_url":"https://api.github.com/repos/cdjackson/smarthome/subscribers","subscription_url":"https://api.github.com/repos/cdjackson/smarthome/subscription","commits_url":"https://api.github.com/repos/cdjackson/smarthome/commits{/sha}","git_commits_url":"https://api.github.com/repos/cdjackson/smarthome/git/commits{/sha}","comments_url":"https://api.github.com/repos/cdjackson/smarthome/comments{/number}","issue_comment_url":"https://api.github.com/repos/cdjackson/smarthome/issues/comments{/number}","contents_url":"https://api.github.com/repos/cdjackson/smarthome/contents/{+path}","compare_url":"https://api.github.com/repos/cdjackson/smarthome/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cdjackson/smarthome/merges","archive_url":"https://api.github.com/repos/cdjackson/smarthome/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cdjackson/smarthome/downloads","issues_url":"https://api.github.com/repos/cdjackson/smarthome/issues{/number}","pulls_url":"https://api.github.com/repos/cdjackson/smarthome/pulls{/number}","milestones_url":"https://api.github.com/repos/cdjackson/smarthome/milestones{/number}","notifications_url":"https://api.github.com/repos/cdjackson/smarthome/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cdjackson/smarthome/labels{/name}","releases_url":"https://api.github.com/repos/cdjackson/smarthome/releases{/id}","created_at":"2014-02-21T23:24:18Z","updated_at":"2015-05-05T15:20:17Z","pushed_at":"2015-05-05T15:40:21Z","git_url":"git://github.com/cdjackson/smarthome.git","ssh_url":"git@github.com:cdjackson/smarthome.git","clone_url":"https://github.com/cdjackson/smarthome.git","svn_url":"https://github.com/cdjackson/smarthome","homepage":null,"size":7873,"stargazers_count":2,"watchers_count":2,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":2,"default_branch":"master"}},"base":{"label":"eclipse:master","ref":"master","sha":"24a2a9a5a0864050bdef9743af147d1de86cb96f","user":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","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,"name":"smarthome","full_name":"eclipse/smarthome","owner":{"login":"eclipse","id":56974,"avatar_url":"https://avatars.githubusercontent.com/u/56974?v=3","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}","created_at":"2014-01-09T20:47:19Z","updated_at":"2015-05-05T15:44:01Z","pushed_at":"2015-05-05T15:44:00Z","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":null,"size":13453,"stargazers_count":135,"watchers_count":135,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":128,"mirror_url":null,"open_issues_count":8,"forks":128,"open_issues":8,"watchers":135,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/272"},"html":{"href":"https://github.com/eclipse/smarthome/pull/272"},"issue":{"href":"https://api.github.com/repos/eclipse/smarthome/issues/272"},"comments":{"href":"https://api.github.com/repos/eclipse/smarthome/issues/272/comments"},"review_comments":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/272/comments"},"review_comment":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/eclipse/smarthome/pulls/272/commits"},"statuses":{"href":"https://api.github.com/repos/eclipse/smarthome/statuses/aad6d37a6c99f5d1160acc8dcf94673ae5bc0942"}}}}