import org.openhab.binding.hue.internal.handler.sensors.TapSwitchHandler;
import org.openhab.binding.hue.internal.handler.sensors.TemperatureHandler;
import org.openhab.core.config.core.Configuration;
+import org.openhab.core.i18n.LocaleProvider;
+import org.openhab.core.i18n.TranslationProvider;
import org.openhab.core.thing.Bridge;
import org.openhab.core.thing.Thing;
import org.openhab.core.thing.ThingTypeUID;
.flatMap(i -> i).collect(Collectors.toSet()));
private final HueStateDescriptionProvider stateDescriptionProvider;
+ private final TranslationProvider i18nProvider;
+ private final LocaleProvider localeProvider;
@Activate
- public HueThingHandlerFactory(final @Reference HueStateDescriptionProvider stateDescriptionProvider) {
+ public HueThingHandlerFactory(final @Reference HueStateDescriptionProvider stateDescriptionProvider,
+ final @Reference TranslationProvider i18nProvider, final @Reference LocaleProvider localeProvider) {
this.stateDescriptionProvider = stateDescriptionProvider;
+ this.i18nProvider = i18nProvider;
+ this.localeProvider = localeProvider;
}
@Override
@Override
protected @Nullable ThingHandler createHandler(Thing thing) {
if (HueBridgeHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
- return new HueBridgeHandler((Bridge) thing, stateDescriptionProvider);
+ return new HueBridgeHandler((Bridge) thing, stateDescriptionProvider, i18nProvider, localeProvider);
} else if (HueLightHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
return new HueLightHandler(thing, stateDescriptionProvider);
} else if (DimmerSwitchHandler.SUPPORTED_THING_TYPES.contains(thing.getThingTypeUID())) {
@Override
public void setThingHandler(@Nullable ThingHandler handler) {
if (handler instanceof HueBridgeHandler) {
- hueBridgeHandler = (HueBridgeHandler) handler;
+ HueBridgeHandler localHandler = (HueBridgeHandler) handler;
+ hueBridgeHandler = localHandler;
bridgeUID = handler.getThing().getUID();
+ i18nProvider = localHandler.getI18nProvider();
+ localeProvider = localHandler.getLocaleProvider();
}
}
Map<String, Object> properties = new HashMap<>();
properties.put(GROUP_ID, group.getId());
- String name = String.format("%s (%s)", "0".equals(group.getId()) ? "All lights" : group.getName(),
- group.getType());
+ String name;
+ if ("0".equals(group.getId())) {
+ name = "@text/discovery.group.all_lights.label";
+ } else if ("Room".equals(group.getType())) {
+ name = group.getName();
+ } else {
+ name = String.format("%s (%s)", group.getName(), group.getType());
+ }
DiscoveryResult discoveryResult = DiscoveryResultBuilder.create(thingUID).withThingType(THING_TYPE_GROUP)
.withProperties(properties).withBridge(localBridgeUID).withRepresentationProperty(GROUP_ID)
.withLabel(name).build();
import org.openhab.binding.hue.internal.exceptions.UnauthorizedException;
import org.openhab.core.config.core.Configuration;
import org.openhab.core.config.core.status.ConfigStatusMessage;
+import org.openhab.core.i18n.LocaleProvider;
+import org.openhab.core.i18n.TranslationProvider;
import org.openhab.core.library.types.HSBType;
import org.openhab.core.library.types.OnOffType;
import org.openhab.core.library.types.StringType;
private final Logger logger = LoggerFactory.getLogger(HueBridgeHandler.class);
private final HueStateDescriptionProvider stateDescriptionOptionProvider;
+ private final TranslationProvider i18nProvider;
+ private final LocaleProvider localeProvider;
private final Map<String, FullLight> lastLightStates = new ConcurrentHashMap<>();
private final Map<String, FullSensor> lastSensorStates = new ConcurrentHashMap<>();
private List<String> consoleScenesList = new ArrayList<>();
- public HueBridgeHandler(Bridge bridge, HueStateDescriptionProvider stateDescriptionOptionProvider) {
+ public HueBridgeHandler(Bridge bridge, HueStateDescriptionProvider stateDescriptionOptionProvider,
+ TranslationProvider i18nProvider, LocaleProvider localeProvider) {
super(bridge);
this.stateDescriptionOptionProvider = stateDescriptionOptionProvider;
+ this.i18nProvider = i18nProvider;
+ this.localeProvider = localeProvider;
}
@Override
return List.of();
}
}
+
+ public TranslationProvider getI18nProvider() {
+ return i18nProvider;
+ }
+
+ public LocaleProvider getLocaleProvider() {
+ return localeProvider;
+ }
}
actionInputFadeTimeDesc = The fade time to use for the light command in ms.
actionLabel = send a light command with a custom fade time
actionDesc = Send a light command with a custom fade time.
+
+# discovery results
+
+discovery.group.all_lights.label = All lights