import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNullByDefault;
-import org.eclipse.jdt.annotation.Nullable;
import org.openhab.binding.netatmo.internal.api.HomeApi;
import org.openhab.binding.netatmo.internal.api.NetatmoException;
import org.openhab.binding.netatmo.internal.api.data.NetatmoConstants.FeatureArea;
if (!config.securityId.isBlank()) {
homeIds.add(config.securityId);
}
- if (hasArea(FeatureArea.SECURITY) && !handler.getCapabilities().containsKey(SecurityCapability.class)) {
- handler.getCapabilities().put(new SecurityCapability(handler));
- }
- if (hasArea(FeatureArea.ENERGY) && !handler.getCapabilities().containsKey(EnergyCapability.class)) {
- handler.getCapabilities().put(new EnergyCapability(handler, descriptionProvider));
- }
}
@Override
@Override
protected void updateHomeData(HomeData home) {
if (firstLaunch) {
+ if (featureAreas.contains(FeatureArea.SECURITY)) {
+ handler.getCapabilities().put(new SecurityCapability(handler));
+ } else {
+ handler.removeChannels(thing.getChannelsOfGroup(GROUP_SECURITY));
+ }
+ if (featureAreas.contains(FeatureArea.ENERGY)) {
+ handler.getCapabilities().put(new EnergyCapability(handler, descriptionProvider));
+ } else {
+ handler.removeChannels(thing.getChannelsOfGroup(GROUP_ENERGY));
+ }
home.getCountry().map(country -> properties.put(PROPERTY_COUNTRY, country));
home.getTimezone().map(tz -> properties.put(PROPERTY_TIMEZONE, tz));
properties.put(GROUP_LOCATION, ((Location) home).getLocation().toString());
}
}
- @Override
- protected void afterNewData(@Nullable NAObject newData) {
- if (firstLaunch && !hasArea(FeatureArea.SECURITY)) {
- handler.removeChannels(thing.getChannelsOfGroup(GROUP_SECURITY));
- }
- if (firstLaunch && !hasArea(FeatureArea.ENERGY)) {
- handler.removeChannels(thing.getChannelsOfGroup(GROUP_ENERGY));
- }
- super.afterNewData(newData);
- }
-
- private boolean hasArea(FeatureArea searched) {
- return featureAreas.contains(searched);
- }
-
/**
* Errored equipments are reported at home level - so we need to explore all the tree to identify modules
* depending from a child device.