Ja es geht, aber es bedarf einiger Anpassungen. Dazu müssen einige Dateien editiert werden. Dies kann mit der Admin-Oberfläche von iobroker erledigt werden.
Datei: habpanel/app/settings/settings.html:
Ungefähr in Zeile 125 steht:
<select ng-model="settings.dashboard_control_item" ng-change="vm.saveOptions()" ng-options="item.name as item.name for item in items | filter: vm.isStringItem " class="form-control">
Der Filter
| filter: vm.isStringItem
muss gelöscht werden. Hintergrund ist, dass das originale OpenHAB in $rootSope.items ein Array liefert, das gefiltert werden kann. ioBroker liefert aber ein Object. Die Liste ist zwar sehr lang, aber vermutlich steht die gewünschteVariable eh in 0:userdata, so dass das mehrmalige tippen einer Null reicht, um das gewünschte Element zu erreichen.
Wer plant, die Sprachausgabe zu benutzen, kann einige Zeilen darüber gleich den Filter bei der speech_synthesis_item mit entfernen.
Datei: habpanel/app/dashboard/dashboard.view.controller.js
Ungefähr in Zeile 50 wird die Function activate definiert:
function activate() {
$timeout(function() {
OHService.reloadItems();
OHService.getLocale();
});
Das ist zu ändern in:
$timeout(function() {
OHService.reloadItems();
OHService.getLocale();
// subscribe to dashboard control and send id back to ioBroker
if ($rootScope.settings.dashboard_control_item) {
OHService.getItem($rootScope.settings.dashboard_control_item);
OHService.sendCmd($rootScope.settings.dashboard_control_item, dashboard.id);
}
// subscibe to speech control
if ($rootScope.settings.speech_synthesis_item) {
OHService.getItem($rootScope.settings.speech_synthesis_item);
}
});
Hintergrund ist hier, dass ein Object, das von ioBroker geholt werden soll, auch registriert werden muss und dass wird damit zu Beginn jedes einzelnen Dashboards gemacht. Vermutlich würde auch einmal zentral reichen.
Zusätzliches Feature ist hier die Zeile
OHService.sendCmd($rootScope.settings.dashboard_control_item, dashboard.id);
Diese meldet das gestartete Dashboard an die Variable in ioBroker zurück und ist damit für weitere Automatisierungen verfügbar.