I must admit I have not downloaded 2 yet, and also not successfully setup 1.7.
I must admit I am a little frustrated in configuring 1.7 using the GUI/text files, therefore wrote down the idea described below. Hopefully some will merge into Openhab2. If not maybe someone like the idea to create a new domotica application (rather not there are already a lot to choose from ), or use the idea for another application.
As a mechanical/software/electrical engineer I like working from a tree like data structure where each node has properties and commands. This is similar to the linux file system.
Using this tree a (simple) GUI can be created browsing this tree, and for the selected node show its properties and its commands. The properties can be values or parameters of various types. Displayed as static text which are kept in sync with the current value, or parameters. Parameters can be text or numbers with edit boxes, or booleans represented by check boxes. Commands can be viewed as buttons.
When above is implemented it would be relative easy to create a configuration/GUI friendly interface:
On the root of tree a plugin manager node is added which creates commands for all present plugins (I know it is a long list). After pressing the button in the GUI the plugin is enabled and loaded, and a (sub)node is added to the plugin manager node allowing configuring this plugin using various parameters, and maybe commands. For example the ZWave plugin interfacing commands to reset its interface or to detect new devices, and parameters to set the comm port address, or (text)parameters to show the master status, or number of nodes. For ZWave each zwave device will become a subnode of the zwave plugin node. And each new device is a new node dynamically added. This sub node should have the properties of the binded zwave module, so showing its status or having commands to perform triggers, or checkboxes editable or readonly (boolean parameters) for performing or showing toggling functions. Also the node should have properties (values) showing the node status like light is on/off, temperaturs, etc.
Above would allow me to test and see statuses of my zwave devices in a (simple) GUI, without defining items or other (GUI) setup.
To store the plugin configuration the plugin manager has to store its enabled plugins, and the parameters of each plugin. or each plugin can store its own configuration.
Also it can be an idea to allow one plugin to be instantiated multiple time: e.g. to use two zwave networks connected to a system.
After setup and test/verified the plugins, the items can be defined these are maintained by an item manager which creates a binding to the plugin item (I must admit I like the dot separator): e.g. OutdoorLampPower -> .Plugins.Zwave1.ZwaveLightmodule.PowerConsumption.
In my opinion each item is a subnode of the item manager allowing also functionality like a toggle to a switch binding. or a value to a temperature.
Now these items can be viewed in a userfriendly GUI dashboard.
The scriptmanager also will become a node in the tree showing the scripts in individual nodes, To create a new script the manager has an ‘Add Script’ command. This creates a subnode which has a script property showing a special GUI widget for setup the script using item names, or could even address the plugin devices directly using the property address (e.g. .Plugins.Zwave1.ZwaveLightmodule.Switch).
A script node can have a boolean property to dis/enable the script by using the GUI.
An alternative script node (without a script, but with fixed functionality) can be a switch node, in which a property is present to define an input item (or other property address), and a command to add sub nodes to this script. Each subnode contains the address/item of the device which must be controlled. This allows controlling multiple lights using one switch.
A storemanager can instantiate a store system like the plugin manager. Now a storage can add storageitems which are binded to item/address of values to be monitored/stored. A dedicated store view should be added to show the data in a time diagram.
Above would allow implementing a complex system, which can be configured and used by a relative simple GUI which is consistent for the full application.