I thought it would be useful to have a thread where developers could pool their discoveries on what it takes to migrate plugins to work under UI7.
I have started testing on the Release Candidate (1.7.318). The basic functionality seems the same as on UI5 but there are several differences in the way the UI works.
There is a new attribute for each device (device_json) that specifies the json file. I think this should be helpful if it allows devices of the same type to use different json. It may allow me to simplify the way I change the button text in MultiSwitch.
The mechanism for icons is totally different. It is now much more flexible. The icon files now reside in /www/cmh/skins/default/icons/device_states. You can see how this is used by downloading D_DimmableLight1.json.
There is a new control element - multi_state_button - which allows different text according to the value of a device variable. This should be useful. See D_DimmableLight1.json for the syntax.
There are some new options for the slider control including a Validation section - presumably for scene actions. Right now my plugins that use a slider are not positioning it correctly so need some investigation.
Input controls are not working the same as on UI5. The text is larger and lower. It looks as though the box size will need to be increased.
My label and variable controls are not displaying on the front of the device block although they are OK on the Control tab. Investigation required…
Some of the above appear to require different json files for UI5 and UI7 versions. Can the App Store manage this or does it need to be handled in the Implementation initialization logic?
The current lack of an Advanced tab in the scene editor makes it hard to specify anything other than a simple button action. You can, of course, use the Luup option but that isn’t very user-friendly. I trust RTS will not have this problem in PLEG…
There is no Create another button for plugins. Right now you have to manually create subsequent devices under APPS -> Develop Apps -> Create device. It requires valid entries for Device type, Upnp Device Filename and Upnp Implementation Filename. Once the device has been created, you then need to enter the json file name under the device_json attribute.
There does not seem to be a way to display the plugin’s Help file. Does this need to be added to the device UI as another tab?