diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlActionHandler.java b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlActionHandler.java index df5bb9544..af185ee4f 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlActionHandler.java +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlActionHandler.java @@ -36,6 +36,7 @@ import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; +import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.types.Command; import org.slf4j.Logger; @@ -54,6 +55,8 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh private volatile @Nullable NhcAction nhcAction; + private volatile boolean initialized = false; + private String actionId = ""; private int stepValue; private boolean invert; @@ -64,10 +67,9 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh @Override public void handleCommand(ChannelUID channelUID, Command command) { - NikoHomeControlCommunication nhcComm = getCommunication(); + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); if (nhcComm == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + logger.debug("communication not up yet, cannot handle command {} for {}", command, channelUID); return; } @@ -200,6 +202,8 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh @Override public void initialize() { + initialized = false; + NikoHomeControlActionConfig config; if (thing.getThingTypeUID().equals(THING_TYPE_DIMMABLE_LIGHT)) { config = getConfig().as(NikoHomeControlActionDimmerConfig.class); @@ -212,52 +216,66 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh } actionId = config.actionId; - NikoHomeControlCommunication nhcComm = getCommunication(); - if (nhcComm == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + NikoHomeControlBridgeHandler bridgeHandler = getBridgeHandler(); + if (bridgeHandler == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); return; - } else { - updateStatus(ThingStatus.UNKNOWN); } - // We need to do this in a separate thread because we may have to wait for the communication to become active - scheduler.submit(() -> { - if (!nhcComm.communicationActive()) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, - "@text/offline.communication-error"); - return; - } + updateStatus(ThingStatus.UNKNOWN); - NhcAction nhcAction = nhcComm.getActions().get(actionId); - if (nhcAction == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, - "@text/offline.configuration-error.actionId"); - return; - } + Bridge bridge = getBridge(); + if ((bridge != null) && ThingStatus.ONLINE.equals(bridge.getStatus())) { + // We need to do this in a separate thread because we may have to wait for the + // communication to become active + scheduler.submit(this::startCommunication); + } + } - nhcAction.setEventHandler(this); + private synchronized void startCommunication() { + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); - updateProperties(nhcAction); + if (nhcComm == null) { + return; + } - String actionLocation = nhcAction.getLocation(); - if (thing.getLocation() == null) { - thing.setLocation(actionLocation); - } + if (!nhcComm.communicationActive()) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + "@text/offline.communication-error"); + return; + } - actionEvent(nhcAction.getState()); + NhcAction nhcAction = nhcComm.getActions().get(actionId); + if (nhcAction == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.actionId"); + return; + } - this.nhcAction = nhcAction; + nhcAction.setEventHandler(this); - logger.debug("action initialized {}", actionId); + updateProperties(nhcAction); - Bridge bridge = getBridge(); - if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { - updateStatus(ThingStatus.ONLINE); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); - } - }); + String actionLocation = nhcAction.getLocation(); + if (thing.getLocation() == null) { + thing.setLocation(actionLocation); + } + + this.nhcAction = nhcAction; + + logger.debug("action initialized {}", actionId); + + Bridge bridge = getBridge(); + if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { + updateStatus(ThingStatus.ONLINE); + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + + actionEvent(nhcAction.getState()); + + initialized = true; } private void updateProperties(NhcAction nhcAction) { @@ -341,13 +359,13 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh if (nhcBridgeHandler != null) { nhcBridgeHandler.bridgeOnline(); } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); } } - private @Nullable NikoHomeControlCommunication getCommunication() { - NikoHomeControlBridgeHandler nhcBridgeHandler = getBridgeHandler(); + private @Nullable NikoHomeControlCommunication getCommunication( + @Nullable NikoHomeControlBridgeHandler nhcBridgeHandler) { return nhcBridgeHandler != null ? nhcBridgeHandler.getCommunication() : null; } @@ -355,4 +373,18 @@ public class NikoHomeControlActionHandler extends BaseThingHandler implements Nh Bridge nhcBridge = getBridge(); return nhcBridge != null ? (NikoHomeControlBridgeHandler) nhcBridge.getHandler() : null; } + + @Override + public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) { + ThingStatus bridgeStatus = bridgeStatusInfo.getStatus(); + if (ThingStatus.ONLINE.equals(bridgeStatus)) { + if (!initialized) { + scheduler.submit(this::startCommunication); + } else { + updateStatus(ThingStatus.ONLINE); + } + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + } } diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlEnergyMeterHandler.java b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlEnergyMeterHandler.java index 6aee1157f..1f5d66280 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlEnergyMeterHandler.java +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlEnergyMeterHandler.java @@ -31,6 +31,7 @@ import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; +import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.types.Command; import org.openhab.core.types.UnDefType; @@ -50,6 +51,8 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen private volatile @Nullable NhcEnergyMeter nhcEnergyMeter; + private volatile boolean initialized = false; + private String energyMeterId = ""; public NikoHomeControlEnergyMeterHandler(Thing thing) { @@ -71,66 +74,81 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen @Override public void initialize() { + initialized = false; + NikoHomeControlEnergyMeterConfig config = getConfig().as(NikoHomeControlEnergyMeterConfig.class); energyMeterId = config.energyMeterId; - NikoHomeControlCommunication nhcComm = getCommunication(); - if (nhcComm == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + NikoHomeControlBridgeHandler bridgeHandler = getBridgeHandler(); + if (bridgeHandler == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); return; - } else { - updateStatus(ThingStatus.UNKNOWN); } - // We need to do this in a separate thread because we may have to wait for the - // communication to become active - scheduler.submit(() -> { - if (!nhcComm.communicationActive()) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, - "@text/offline.communication-error"); - return; - } + updateStatus(ThingStatus.UNKNOWN); - NhcEnergyMeter nhcEnergyMeter = nhcComm.getEnergyMeters().get(energyMeterId); - if (nhcEnergyMeter == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, - "@text/offline.configuration-error.energyMeterId"); - return; - } + Bridge bridge = getBridge(); + if ((bridge != null) && ThingStatus.ONLINE.equals(bridge.getStatus())) { + // We need to do this in a separate thread because we may have to wait for the + // communication to become active + scheduler.submit(this::startCommunication); + } + } - nhcEnergyMeter.setEventHandler(this); + private synchronized void startCommunication() { + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); - updateProperties(nhcEnergyMeter); + if (nhcComm == null) { + return; + } - String location = nhcEnergyMeter.getLocation(); - if (thing.getLocation() == null) { - thing.setLocation(location); - } + if (!nhcComm.communicationActive()) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + "@text/offline.communication-error"); + return; + } - // Subscribing to power readings starts an intensive data flow, therefore only do it when there is an item - // linked to the channel - if (isLinked(CHANNEL_POWER)) { - nhcComm.startEnergyMeter(energyMeterId); - } + NhcEnergyMeter nhcEnergyMeter = nhcComm.getEnergyMeters().get(energyMeterId); + if (nhcEnergyMeter == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.energyMeterId"); + return; + } - this.nhcEnergyMeter = nhcEnergyMeter; + nhcEnergyMeter.setEventHandler(this); - logger.debug("energy meter intialized {}", energyMeterId); + updateProperties(nhcEnergyMeter); - Bridge bridge = getBridge(); - if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { - updateStatus(ThingStatus.ONLINE); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); - } - }); + String location = nhcEnergyMeter.getLocation(); + if (thing.getLocation() == null) { + thing.setLocation(location); + } + + this.nhcEnergyMeter = nhcEnergyMeter; + + logger.debug("energy meter intialized {}", energyMeterId); + + Bridge bridge = getBridge(); + if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { + updateStatus(ThingStatus.ONLINE); + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + + // Subscribing to power readings starts an intensive data flow, therefore only do it when there is an item + // linked to the channel + if (isLinked(CHANNEL_POWER)) { + nhcComm.startEnergyMeter(energyMeterId); + } + + initialized = true; } @Override public void dispose() { - NikoHomeControlCommunication nhcComm = getCommunication(); + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); if (nhcComm != null) { nhcComm.stopEnergyMeter(energyMeterId); @@ -178,7 +196,7 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen // Subscribing to power readings starts an intensive data flow, therefore only do it when there is an item linked to // the channel public void channelLinked(ChannelUID channelUID) { - NikoHomeControlCommunication nhcComm = getCommunication(); + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); if (nhcComm != null) { // This can be expensive, therefore do it in a job. scheduler.submit(() -> { @@ -196,7 +214,7 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen @Override public void channelUnlinked(ChannelUID channelUID) { - NikoHomeControlCommunication nhcComm = getCommunication(); + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); if (nhcComm != null) { // This can be expensive, therefore do it in a job. scheduler.submit(() -> { @@ -230,13 +248,13 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen if (nhcBridgeHandler != null) { nhcBridgeHandler.bridgeOnline(); } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); } } - private @Nullable NikoHomeControlCommunication getCommunication() { - NikoHomeControlBridgeHandler nhcBridgeHandler = getBridgeHandler(); + private @Nullable NikoHomeControlCommunication getCommunication( + @Nullable NikoHomeControlBridgeHandler nhcBridgeHandler) { return nhcBridgeHandler != null ? nhcBridgeHandler.getCommunication() : null; } @@ -244,4 +262,18 @@ public class NikoHomeControlEnergyMeterHandler extends BaseThingHandler implemen Bridge nhcBridge = getBridge(); return nhcBridge != null ? (NikoHomeControlBridgeHandler) nhcBridge.getHandler() : null; } + + @Override + public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) { + ThingStatus bridgeStatus = bridgeStatusInfo.getStatus(); + if (ThingStatus.ONLINE.equals(bridgeStatus)) { + if (!initialized) { + scheduler.submit(this::startCommunication); + } else { + updateStatus(ThingStatus.ONLINE); + } + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + } } diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlThermostatHandler.java b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlThermostatHandler.java index 0debc0e7a..f318306a0 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlThermostatHandler.java +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/java/org/openhab/binding/nikohomecontrol/internal/handler/NikoHomeControlThermostatHandler.java @@ -36,6 +36,7 @@ import org.openhab.core.thing.ChannelUID; import org.openhab.core.thing.Thing; import org.openhab.core.thing.ThingStatus; import org.openhab.core.thing.ThingStatusDetail; +import org.openhab.core.thing.ThingStatusInfo; import org.openhab.core.thing.binding.BaseThingHandler; import org.openhab.core.types.Command; import org.slf4j.Logger; @@ -54,6 +55,8 @@ public class NikoHomeControlThermostatHandler extends BaseThingHandler implement private volatile @Nullable NhcThermostat nhcThermostat; + private volatile boolean initialized = false; + private String thermostatId = ""; private int overruleTime; @@ -66,10 +69,9 @@ public class NikoHomeControlThermostatHandler extends BaseThingHandler implement @Override public void handleCommand(ChannelUID channelUID, Command command) { - NikoHomeControlCommunication nhcComm = getCommunication(); + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); if (nhcComm == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + logger.debug("communication not up yet, cannot handle command {} for {}", command, channelUID); return; } @@ -149,59 +151,74 @@ public class NikoHomeControlThermostatHandler extends BaseThingHandler implement @Override public void initialize() { + initialized = false; + NikoHomeControlThermostatConfig config = getConfig().as(NikoHomeControlThermostatConfig.class); thermostatId = config.thermostatId; overruleTime = config.overruleTime; - NikoHomeControlCommunication nhcComm = getCommunication(); - if (nhcComm == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + NikoHomeControlBridgeHandler bridgeHandler = getBridgeHandler(); + if (bridgeHandler == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); return; - } else { - updateStatus(ThingStatus.UNKNOWN); } - // We need to do this in a separate thread because we may have to wait for the - // communication to become active - scheduler.submit(() -> { - if (!nhcComm.communicationActive()) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, - "@text/offline.communication-error"); - return; - } + updateStatus(ThingStatus.UNKNOWN); - NhcThermostat nhcThermostat = nhcComm.getThermostats().get(thermostatId); - if (nhcThermostat == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, - "@text/offline.configuration-error.thermostatId"); - return; - } + Bridge bridge = getBridge(); + if ((bridge != null) && ThingStatus.ONLINE.equals(bridge.getStatus())) { + // We need to do this in a separate thread because we may have to wait for the + // communication to become active + scheduler.submit(this::startCommunication); + } + } - nhcThermostat.setEventHandler(this); + private synchronized void startCommunication() { + NikoHomeControlCommunication nhcComm = getCommunication(getBridgeHandler()); - updateProperties(nhcThermostat); + if (nhcComm == null) { + return; + } - String thermostatLocation = nhcThermostat.getLocation(); - if (thing.getLocation() == null) { - thing.setLocation(thermostatLocation); - } + if (!nhcComm.communicationActive()) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, + "@text/offline.communication-error"); + return; + } - thermostatEvent(nhcThermostat.getMeasured(), nhcThermostat.getSetpoint(), nhcThermostat.getMode(), - nhcThermostat.getOverrule(), nhcThermostat.getDemand()); + NhcThermostat nhcThermostat = nhcComm.getThermostats().get(thermostatId); + if (nhcThermostat == null) { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.thermostatId"); + return; + } - this.nhcThermostat = nhcThermostat; + nhcThermostat.setEventHandler(this); - logger.debug("thermostat intialized {}", thermostatId); + updateProperties(nhcThermostat); - Bridge bridge = getBridge(); - if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { - updateStatus(ThingStatus.ONLINE); - } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); - } - }); + String thermostatLocation = nhcThermostat.getLocation(); + if (thing.getLocation() == null) { + thing.setLocation(thermostatLocation); + } + + this.nhcThermostat = nhcThermostat; + + logger.debug("thermostat intialized {}", thermostatId); + + Bridge bridge = getBridge(); + if ((bridge != null) && (bridge.getStatus() == ThingStatus.ONLINE)) { + updateStatus(ThingStatus.ONLINE); + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + + thermostatEvent(nhcThermostat.getMeasured(), nhcThermostat.getSetpoint(), nhcThermostat.getMode(), + nhcThermostat.getOverrule(), nhcThermostat.getDemand()); + + initialized = true; } private void updateProperties(NhcThermostat nhcThermostat) { @@ -306,13 +323,13 @@ public class NikoHomeControlThermostatHandler extends BaseThingHandler implement if (nhcBridgeHandler != null) { nhcBridgeHandler.bridgeOnline(); } else { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_UNINITIALIZED, - "@text/offline.bridge-unitialized"); + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.CONFIGURATION_ERROR, + "@text/offline.configuration-error.invalid-bridge-handler"); } } - private @Nullable NikoHomeControlCommunication getCommunication() { - NikoHomeControlBridgeHandler nhcBridgeHandler = getBridgeHandler(); + private @Nullable NikoHomeControlCommunication getCommunication( + @Nullable NikoHomeControlBridgeHandler nhcBridgeHandler) { return nhcBridgeHandler != null ? nhcBridgeHandler.getCommunication() : null; } @@ -320,4 +337,18 @@ public class NikoHomeControlThermostatHandler extends BaseThingHandler implement Bridge nhcBridge = getBridge(); return nhcBridge != null ? (NikoHomeControlBridgeHandler) nhcBridge.getHandler() : null; } + + @Override + public void bridgeStatusChanged(ThingStatusInfo bridgeStatusInfo) { + ThingStatus bridgeStatus = bridgeStatusInfo.getStatus(); + if (ThingStatus.ONLINE.equals(bridgeStatus)) { + if (!initialized) { + scheduler.submit(this::startCommunication); + } else { + updateStatus(ThingStatus.ONLINE); + } + } else { + updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.BRIDGE_OFFLINE); + } + } } diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol.properties b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol.properties index e7c7a4ce0..3f63b3909 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol.properties +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol.properties @@ -116,5 +116,6 @@ offline.configuration-error.energyMeterRemoved = Energy meter has been removed f offline.configuration-error.thermostatId = Configured thermostat ID does not match an thermostat in controller offline.configuration-error.thermostatRemoved = Thermostat has been removed from controller +offline.configuration-error.invalid-bridge-handler = Invalid bridge handler + offline.communication-error = Error communicating with controller -offline.bridge-unitialized = Bridge not initialized diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_fr.properties b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_fr.properties index cc473f544..4a12e2dbc 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_fr.properties +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_fr.properties @@ -116,4 +116,3 @@ offline.configuration-error.thermostatId = L'ID configuré ne correspond pas à offline.configuration-error.thermostatRemoved = Le thermostat a été retiré de l'unité de contrôle offline.communication-error = Erreur de communication avec l'unité de contrôle -offline.bridge-unitialized = Pont de connexion non initialisé diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_nl.properties b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_nl.properties index e03247a66..1de9dda40 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_nl.properties +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/i18n/nikohomecontrol_nl.properties @@ -116,4 +116,4 @@ offline.configuration-error.thermostatId = Geconfigureerde thermostaat-ID komt n offline.configuration-error.thermostatRemoved = Thermostaat is verwijderd van de controller offline.communication-error = Fout tijdens het communiceren met de controller -offline.bridge-unitialized = Bridge niet geïnitialiseerd + diff --git a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/thing/thing-types.xml b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/thing/thing-types.xml index e75e3a666..90af05135 100644 --- a/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/thing/thing-types.xml +++ b/bundles/org.openhab.binding.nikohomecontrol/src/main/resources/OH-INF/thing/thing-types.xml @@ -161,8 +161,8 @@ - - @textThermostatDescription + + @text/ThermostatDescription