diff --git a/bundles/org.openhab.binding.qbus/README.md b/bundles/org.openhab.binding.qbus/README.md index 50b5bedcc..4cdd90fea 100644 --- a/bundles/org.openhab.binding.qbus/README.md +++ b/bundles/org.openhab.binding.qbus/README.md @@ -1,10 +1,8 @@ # Qbus Binding -![Qbus Logo](doc/Logo.JPG) - This binding for [Qbus](https://qbus.be) communicates with all controllers of the Qbus home automation system. -We also host a site which contains a [manual](https://manualoh.schockaert.tk/) where you can find lots of information to set up openHAB with Qbus client and server (for the moment only in Dutch). +We also host a site which contains a [manual](https://iot.qbus.be/) where you can find lots of information to set up openHAB with Qbus client and server (for the moment only in Dutch). The controllers can not communicate directly with openHAB, therefore we developed a client/server application which you must install prior to enable this binding. More information can be found here: @@ -49,16 +47,13 @@ Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverC } ``` - - | Property | Default | Required | Description | -| ------------- | --------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------ | +|---------------|-----------|----------|--------------------------------------------------------------------------------------------------------------------------------------| | `addr` | localhost | YES | The ip address of the machine where the Qbus Server runs | | `sn` | | YES | The serial number of your controller | | `port` | 8447 | YES | The communication port of the client/server | -| `serverCheck` | 10 | NO | Refresh time - After x minutes there will be a check if server is still running and if client is still connected. If not - reconnect | +| `serverCheck` | 10 | NO | Refresh time - After x minutes there will be a check if server is still running and if client is still connected. If not - reconnect | - ## Things configuration @@ -81,30 +76,30 @@ Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverC ``` Bridge qbus:bridge:CTD001122 [ addr="localhost", sn="001122", port=8447, serverCheck=10 ] { - dimmer 1 "ToonzaalLED" [ dimmerId=100 ] - onOff 30 "Toonzaal230V" [ bistabielId=76 ] - thermostat 50 "Service" [ thermostatId=99 ] - scene 70 "Disco" [ sceneId=36 ] - co2 100 "Productie" [ co2Id=26 ] - rollershutter 120 "Roller1" [ rolId=268 ] - rollershutter_slats 121 "Roller2" [ rolId=264 ] + dimmer 1 "ToonzaalLED" [ dimmerId=100 ] + onOff 30 "Toonzaal230V" [ bistabielId=76 ] + thermostat 50 "Service" [ thermostatId=99 ] + scene 70 "Disco" [ sceneId=36 ] + co2 100 "Productie" [ co2Id=26 ] + rollershutter 120 "Roller1" [ rolId=268 ] + rollershutter_slats 121 "Roller2" [ rolId=264 ] } ``` ### Items ``` -Dimmer ToonzaalLED [ "Lighting" ] {channel="qbus:dimmer:CTD007841:1:brightness"} -Switch Toonzaal230V {channel="qbus:onOff:CTD007841:30:switch"} -Number:Temperature ServiceSP"[%.1f %unit%]" (GroepThermostaten) {channel="qbus:thermostat:CTD007841:50:setpoint"} -Number:Temperature ServiceCT"[%.1f %unit%]" (GroepThermostaten) {channel="qbus:thermostat:CTD007841:50:measured"} -Number ServiceMode (GroepThermostaten) {channel="qbus:thermostat:CTD007841:50:mode",ihc="0x33c311" , autoupdate="true"} -Switch Disco {channel="qbus:scene:CTD007841:36:scene"} -Number ProductieCO2 {channel="qbus:co2:CTD007841:100:co2"} -Rollershutter Roller1 {channel="qbus:rollershutter:CTD007841:120:rollershutter"} -Rollershutter Roller2 {channel="qbus:rollershutter_slats:CTD007841:121:rollershutter"} -Dimmer Roller2_slats {channel="qbus:rollershutter_slats:CTD007841:121:slats"} +Dimmer ToonzaalLED ["Lighting"] {channel="qbus:dimmer:CTD001122:1:brightness"} +Switch Toonzaal230V ["Switchable"] {channel="qbus:onOff:CTD001122:30:switch"} +Group gThermostaat ["HVAC"] +Number:Temperature ServiceSP"[%.1f %unit%]" (gThermostaat) ["Setpoint"] {channel="qbus:thermostat:CTD001122:50:setpoint"} +Number:Temperature ServiceCT"[%.1f %unit%]" (gThermostaat) ["Measurement"] {channel="qbus:thermostat:CTD001122:50:measured"} +Number ServiceMode (gThermostaat) ["Control"] {channel="qbus:thermostat:CTD001122:50:mode",ihc="0x33c311" , autoupdate="true"} +Switch Disco ["Switchable"] {channel="qbus:scene:CTD001122:36:scene"} +Number ProductieCO2 ["CO2"] {channel="qbus:co2:CTD001122:100:co2"} +Rollershutter Roller1 ["Blinds"] {channel="qbus:rollershutter:CTD001122:120:rollershutter"} +Rollershutter Roller2 ["Blinds"] {channel="qbus:rollershutter_slats:CTD001122:121:rollershutter"} +Dimmer Roller2_slats ["Blinds"] {channel="qbus:rollershutter_slats:CTD001122:121:slats"} ``` This is the link to the [Qbus forum](https://qbusforum.be). This forum is mainly in dutch and you can find a lot of information about the pre testings of this binding and offers a way to communicate with other users. - diff --git a/bundles/org.openhab.binding.qbus/doc/Logo.JPG b/bundles/org.openhab.binding.qbus/doc/Logo.JPG deleted file mode 100644 index 93f10e4de..000000000 Binary files a/bundles/org.openhab.binding.qbus/doc/Logo.JPG and /dev/null differ diff --git a/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/QbusBridgeHandler.java b/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/QbusBridgeHandler.java index 2f625669a..015889bc7 100644 --- a/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/QbusBridgeHandler.java +++ b/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/QbusBridgeHandler.java @@ -56,15 +56,15 @@ public class QbusBridgeHandler extends BaseBridgeHandler { */ @Override public void initialize() { - Integer serverCheck = getServerCheck(); - readConfig(); - createCommunicationObject(); + Integer serverCheck = getServerCheck(); if (serverCheck != null) { this.setupRefreshTimer(serverCheck); } + + createCommunicationObject(); } /** @@ -176,6 +176,7 @@ public class QbusBridgeHandler extends BaseBridgeHandler { } refreshTimer = scheduler.scheduleWithFixedDelay(() -> { + logger.debug("Timer started"); QbusCommunication comm = getCommunication(); Integer serverCheck = getServerCheck(); diff --git a/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/protocol/QbusCommunication.java b/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/protocol/QbusCommunication.java index e07032d2e..a6ba211f2 100644 --- a/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/protocol/QbusCommunication.java +++ b/bundles/org.openhab.binding.qbus/src/main/java/org/openhab/binding/qbus/internal/protocol/QbusCommunication.java @@ -121,12 +121,26 @@ public final class QbusCommunication extends BaseThingHandler { InetAddress addr = InetAddress.getByName(handler.getAddress()); Integer port = handler.getPort(); - if (port != null) { - Socket socket = new Socket(addr, port); + if (port == null) { + handler.bridgeOffline(ThingStatusDetail.CONFIGURATION_ERROR, "Please set a correct port."); + return; + } + + if (addr == null) { + handler.bridgeOffline(ThingStatusDetail.CONFIGURATION_ERROR, "Please set the hostname of the Qbus server."); + return; + } + + Socket socket = null; + + try { + socket = new Socket(addr, port); qSocket = socket; qOut = new PrintWriter(socket.getOutputStream(), true); qIn = new BufferedReader(new InputStreamReader(socket.getInputStream())); - } else { + } catch (IOException e) { + String msg = e.getMessage(); + handler.bridgeOffline(ThingStatusDetail.COMMUNICATION_ERROR, "No communication with Qbus Server. " + msg); return; } @@ -338,7 +352,6 @@ public final class QbusCommunication extends BaseThingHandler { logger.trace("Not acted on unsupported json {} : {}", qMessage, msg); return; } - QbusBridgeHandler handler = bridgeCallBack; if (handler != null) {