OpenTherm Gateway binding

Arjen,

to be honest I do not know what would be the best option. The commands the binding now provides will serve most people that use the OTGW for their information and control needs (If I need to do other stuff I use the ESP that is connected to the gateway because they are at most an onetime change).
When the binding offers an option to send anything then you would have to program this into OH again which maybe may complicate matters for some.

So I would vote for a combination of the two; having certain fixed commands and also a channel that is able to cope with everything.

Kind regards,

Han

Hi Arjen,

Thanks for version 0.6.0, I haven’t test it yet.
I will be happy with a new “SendCommand” channel instead of the existing channels for override, but a combination of the existing override channels and this new channel is maybe even better.

Actually I have a strange behavior with version 0.5.0, after some hours the binding stops with updating the value’s and I don’t see any message anymore in the console.
After re-setting the roomsetpoint override to zero (was zero), everything works fine again.
Very strange, I haven’t seen this issue with the previous versions …

Capture%201

Capture%202

21:18:40.277 [INFO ] [smarthome.event.ItemCommandEvent ] - Item 'OpenThermGateway_TemporaryRoomSetpointOverride' received command 0
21:18:41.475 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_DomesticHotWaterTemperature changed from 56.796875 to 56.90625
21:18:42.144 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature changed from 22.42578125 to 22.40625
21:18:43.165 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T18:59:55.210+0200 to 2018-10-24T21:18:41.552+0200
21:18:43.446 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_DomesticHotWaterTemperature changed from 56.90625 to 56.796875
21:18:44.798 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_OutsideTemperature changed from 14.734375 to 14.640625
21:18:45.132 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T21:18:41.552+0200 to 2018-10-24T21:18:42.863+0200
21:18:45.931 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T21:18:42.863+0200 to 2018-10-24T21:18:44.153+0200
21:18:46.000 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.53125 to 24.8125
21:18:46.046 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T21:18:44.153+0200 to 2018-10-24T21:18:45.060+0200
21:18:46.102 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T21:18:45.060+0200 to 2018-10-24T21:18:45.848+0200
21:18:50.817 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.8125 to 24.671875
21:18:55.149 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature changed from 22.40625 to 22.25

21:18:55.225 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_RoomTemperature_LastUpdate changed from 2018-10-24T21:18:45.848+0200 to 2018-10-24T21:18:55.157+0200
21:18:55.741 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.671875 to 24.8125
21:19:00.772 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.8125 to 24.671875
21:19:05.689 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.671875 to 24.8125
21:19:10.818 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.8125 to 24.671875
21:19:15.739 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.671875 to 24.8125
21:19:30.209 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_ReturnWaterTemperature changed from 23.953125 to 23.796875
21:19:30.810 [INFO ] [smarthome.event.ItemStateChangedEvent] - OpenThermGateway_BoilerWaterTemperature changed from 24.8125 to 24.671875

Do you have the same experience Han ?

Kind Regards,
Peter.

Haven’t installed the latest version yet sorry. Because I will not be at home the next week due to holiday and relatives are staying in my house its not so wise to perform an upgrade :thinking:. Will do as soon as I am back.

regards

Han

Hi,

It seems like it’s loosing connection then, but if you could provide me with some more logging details on DEBUG level, that would help me to better understand what’s going on.

Currently, the binding does automatically reconnect, but only when sending a new command. In the next version, I will add an auto re-connect feature, that upon disconnecting will retry connecting n times with a certain interval. Configurable if desired.

And… thanks a lot for testing and providing feedback! This really allows me to make the binding more stable and feature rich. And yes Han… it’s still a development version, so best not have your relatives rely on it for a warm and cosy place :wink:

Hi Arjen,

Its working loike a charm now. I really don’t know why it kept saying in Paper UI that it was 0.5.0 in Karaf it said the binding was 0.6.0. But i followed the steps you and and now indeed i can see it(and use it :stuck_out_tongue:) Thank you for the effort you put in the binding.

Regards,
Mic

Great Mic, let me know if you run into any issues.

Hi Arjen,

Excellent work. Thank you very much.
I have made some changes (hopefully improvements) and created a pull request https://github.com/ArjenKorevaar/openhab2-addons/pull/1.

The changes will do:

  • Automatic reconnects when connection is lost
  • Automatically resend commands if not acknowledge by the OTGW (this happens on a regular basis with my OTGW + Nodo ESP Easy WiFi to serial controller)
  • Handle Write Messages which are not acknowledged with proper data (my intergas boiler does not acknowledge roomtemp setting)

Hope you can merge these changes and other can benefit. Keep up the good work!

Arjan

Hi Arjan,

Thanks a lot for putting in the effort to improve the binding! I have completed the pull request and uploaded a new version 0.7.0.

@PGustias if you still encounter the disconnect problem, have try with this new version

Hi Arjen and Arjan,

Many thanks for this new version and all the effort !
I will try it immediately, because I have still problems with the connection.
Finally I was able to log the disconnection at 16:48 this afternoon, the connection restored this evening after a (manual) TC command at 19:48.

See this log :

2018-11-04 16:48:54.297 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_enable': OFF
2018-11-04 16:48:54.517 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_enable': OFF
2018-11-04 16:48:54.709 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_mode': OFF
2018-11-04 16:48:54.900 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_mode': OFF
2018-11-04 16:48:55.103 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'flame': OFF
2018-11-04 16:48:55.290 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T00000000
2018-11-04 16:48:55.461 [ERROR] [eway.handler.OpenThermGatewayHandler] - An error occured in OpenThermGatewaySocketConnector
java.net.SocketException: Connection reset
	at java.net.SocketInputStream.read(SocketInputStream.java:210) [?:?]
	at java.net.SocketInputStream.read(SocketInputStream.java:141) [?:?]
	at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) [?:?]
	at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) [?:?]
	at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) [?:?]
	at java.io.InputStreamReader.read(InputStreamReader.java:184) [?:?]
	at java.io.BufferedReader.fill(BufferedReader.java:161) [?:?]
	at java.io.BufferedReader.readLine(BufferedReader.java:324) [?:?]
	at java.io.BufferedReader.readLine(BufferedReader.java:389) [?:?]
	at org.openhab.binding.openthermgateway.internal.OpenThermGatewaySocketConnector.run(OpenThermGatewaySocketConnector.java:61) [216:org.openhab.binding.openthermgateway:0.4.0]
	at java.lang.Thread.run(Thread.java:748) [?:?]
...
...
2018-11-04 19:48:49.364 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received channel: openthermgateway:otgw:8effc82c:temperatureconstant, command: 16
2018-11-04 19:48:49.783 [INFO ] [eway.handler.OpenThermGatewayHandler] - Starting OpenTherm Gateway connector
2018-11-04 19:48:50.027 [INFO ] [eway.handler.OpenThermGatewayHandler] - OpenTherm Gateway connector started
2018-11-04 19:48:50.027 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Connecting OpenThermGatewaySocketConnector to 192.168.1.231:23
2018-11-04 19:48:50.263 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Unable to send message: TC=16. OpenThermGatewaySocketConnector is not connected.
2018-11-04 19:48:50.518 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector connected
2018-11-04 19:48:51.331 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PR=A
2018-11-04 19:48:51.498 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PS=0
2018-11-04 19:48:51.667 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: BC0000000
2018-11-04 19:48:51.850 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_enable': OFF
2018-11-04 19:48:52.052 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_enable': OFF
2018-11-04 19:48:52.255 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_mode': OFF
2018-11-04 19:48:52.457 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_mode': OFF
2018-11-04 19:48:52.694 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'flame': OFF
2018-11-04 19:48:52.818 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T10010A00
2018-11-04 19:48:52.991 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: BD0010A00
2018-11-04 19:48:53.164 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'controlsetpoint': 10.0
2018-11-04 19:48:53.382 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T90101000
2018-11-04 19:48:53.562 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: B50101000
2018-11-04 19:48:53.734 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'roomsetpoint': 16.0
2018-11-04 19:48:53.946 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T80190000
2018-11-04 19:48:54.121 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: BC01915D8
2018-11-04 19:48:54.334 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'flowtemp': 21.84375
2018-11-04 19:48:54.552 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T00000000
2018-11-04 19:48:54.726 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: BC0000000
2018-11-04 19:48:54.901 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_enable': OFF
2018-11-04 19:48:55.105 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_enable': OFF
2018-11-04 19:48:55.314 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'ch_mode': OFF
2018-11-04 19:48:55.514 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'dhw_mode': OFF
2018-11-04 19:48:55.718 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received update for channel 'flame': OFF
2018-11-04 19:48:55.975 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: T00000000
2018-11-04 19:48:56.135 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Received message: BC0000000

I’m very curious to see if this new version will restore the connection !!
I will keep you informed.

Kind regards,
Peter.

I’m new in OpenHAB, coming from Domoticz and very keen on trying to get OpenTherm binding up-and-running… But… When I download the JAR file into my addons folder, I doesn’t appear in PaperUI.

Not even after a reboot.

What am I doing wrong?

Hi Sven,

Downloading the jar into the addons folder should normally do the trick, even without restarting openHAB or rebooting the system. In PaperUI it would appear under Bindings and through adding Things or using .things file you should be able to configure it.

Are you sure you are using the correct addons folder ? On my raspberry pi that’s /usr/share/openhab2/addons. Can you also check the logs to see if any errors occur during startup and loading of the addons?

I’ve put it in the addons folder but it’s not getting recognized. I don’t see it in the logs neither. I don’t get it…
img

Edit: cleared cache in:

  • /var/lib/openhab2/tmp
  • /var/lib/openhab2/cache

Rebooted the machine but still couldn’t see it.
I had to click on the refresh icon in the right top corner of the page /paperui/index.html#/configuration/bindings
Then it was visible and I could add the ‘configuration thing’.

Hi CarlJ,

Glad you got it working. Let me know if you run into any issues or have any questions regarding the OTGW binding.

Regards
Arjen

Hello Arjen,
thank you very much for all your work and sharing it with us!
I recently bought the OTGW from Nodo-shop with UTP-connector. I can reach it with my browser and login in the webinterface. I have set the settings according to the manual from nodo-shop, setting it to port 23 (is this for communication to the heater/thermostat or for UTP communication to openhab?). In openhab I have your binding version 0.7 running, but it does not get any information and in the log I see ‘cennexion refused’. In paperUI I set the right IP and port nr 23 in the thing-config. I also tryed port 80 here, since the webinterface is on port 80, but that doesn’t work either.
So I must be doing something wrong and I hope you can help me.
For starters: does it matter whether I put the wires of the boiler one way or the other? (And same for the wires to the thermostat?).
In your examples the OTGW gets number ‘1’. For some reason, my thing has nr ‘b8663928’. I changed the items accordingly. Could this be the problem?
I have tryed the OT0monitor software, but I think this requires an usb-connection? I only have utp with my OTGW from nodo-shop.
Also the web-interface on the OTGW from nodoshop does not provide any communication to/with the heater or the thermostat, just settings.
Do you have any other tips for debugging?

Debug log says:

2018-12-27 10:53:37.395 [INFO ] [eway.handler.OpenThermGatewayHandler] - OpenTherm Gateway connector started

2018-12-27 10:53:37.400 [INFO ] [eway.handler.OpenThermGatewayHandler] - Connecting OpenThermGatewaySocketConnector to 192.168.0.6:23

2018-12-27 10:53:37.436 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector connected

2018-12-27 10:53:37.445 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from OFFLINE to ONLINE

2018-12-27 10:53:37.440 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PR=A

2018-12-27 10:53:37.449 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PS=0

2018-12-27 10:53:42.465 [ERROR] [eway.handler.OpenThermGatewayHandler] - An error occured in OpenThermGatewaySocketConnector: Read timed out

2018-12-27 10:53:42.468 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector disconnected

2018-12-27 10:53:42.472 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from ONLINE to OFFLINE

2018-12-27 10:53:46.980 [INFO ] [eway.handler.OpenThermGatewayHandler] - Starting OpenTherm Gateway connector

2018-12-27 10:53:46.984 [INFO ] [eway.handler.OpenThermGatewayHandler] - OpenTherm Gateway connector started

2018-12-27 10:53:46.986 [INFO ] [eway.handler.OpenThermGatewayHandler] - Connecting OpenThermGatewaySocketConnector to 192.168.0.6:23

2018-12-27 10:53:47.007 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from OFFLINE to ONLINE

2018-12-27 10:53:47.005 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector connected

2018-12-27 10:53:47.012 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PR=A

2018-12-27 10:53:47.016 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PS=0

2018-12-27 10:53:52.028 [ERROR] [eway.handler.OpenThermGatewayHandler] - An error occured in OpenThermGatewaySocketConnector: Read timed out

2018-12-27 10:53:52.036 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector disconnected

2018-12-27 10:53:52.043 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from ONLINE to OFFLINE

2018-12-27 10:53:56.950 [INFO ] [eway.handler.OpenThermGatewayHandler] - Starting OpenTherm Gateway connector

2018-12-27 10:53:56.959 [INFO ] [eway.handler.OpenThermGatewayHandler] - OpenTherm Gateway connector started

2018-12-27 10:53:56.962 [INFO ] [eway.handler.OpenThermGatewayHandler] - Connecting OpenThermGatewaySocketConnector to 192.168.0.6:23

2018-12-27 10:53:56.979 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from OFFLINE to ONLINE

2018-12-27 10:53:56.980 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector connected

2018-12-27 10:53:56.995 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PR=A

2018-12-27 10:53:56.997 [DEBUG] [eway.handler.OpenThermGatewayHandler] - Sending message: PS=0

2018-12-27 10:54:02.009 [ERROR] [eway.handler.OpenThermGatewayHandler] - An error occured in OpenThermGatewaySocketConnector: Read timed out

2018-12-27 10:54:02.012 [DEBUG] [eway.handler.OpenThermGatewayHandler] - OpenThermGatewaySocketConnector disconnected

2018-12-27 10:54:02.016 [hingStatusInfoChangedEvent] - 'openthermgateway:otgw:b8663928' changed from ONLINE to OFFLINE

Hi,

I would first try to use the otmonitor program. Under Options->Connections you can enter host and port.

The log shows you can connect to port 23 but the OTGW does not respond as expected. This can be a misconfiguration of hte ethrnet interface or a problemen with the serial interface between OTGW and the enthernet interface. Please take a look at http://otgw.tclcode.com/debugging.html for troubleshooting advice.

The webconfig is just for the ethernet interface, not for the otgw itself.

I use it with the wifi (nodo) option myself so config is different.

The 1 versus b8663928 should not matter. I simply configured it manually in openhab.

Thanx for your reply.
I got OT-monitor to trying to connect, but no succes. The log file only shows: ;;;;;;;;;;;;;;;20181227;12:49:30 .
I would like to try the debugging steps mentioned at tclcode.com, but these must be for the version where the 20V adapter is on the board. My version is the smc-version with external power adapter. I am affraid the steps don’t translate.
But I will try and start with checking resistances etc as mentioned, see what comes up.

With a little help from Nodo-shop I got it working! The manual was clear for usb/wifi-setup, but not so clear for utp-version which I have. I needed to add jumpers the same way I would have needed for wifi-setup.

Now I get almost all data except for ‘Domestic hot water temperature’, ‘Domestic hot water setpoint’, ‘Domestic hot water setpoint override’ ‘Return water temperature’ and ‘Central heating water pressure’.

I wonder if this has to do with the fact that I have an Intergas HRECO. I’ve read that Intergas needs another firmware on thhe OTGW? But I do not know if this is possible with my version of the OTGW (from nodo-shop).

Also, I have two lines in my log from OTMonitor that are pictured in red. Does anybody know what these are all about?

|BE0020000|Data-Inv  |Master configuration: 00000000 0|
|B60050000|Data-Inv  |Application-specific flags: 00000000 0|

It could be that these are simply not supported by boiler and/or thermostat. It is not related to the openhab implementation as far as I can see.

Compatibility tables:
http://otgw.tclcode.com/matrix.cgi#boilers
And protocol reference, to look up the message ids:

You are probably better off with these questions on: https://www.domoticaforum.eu/viewforum.php?f=75

According to the table, my boiler does support Ch18(water pressure), but my thermostat does not. Does this mean it’s not supported by the combination and will not work? Or do I need only the boiler to support this? (Since it’s the boiler that provides this info)

Hi Guido,

Glad you got it working, for the most part anyway.

“But I do not know if this is possible with my version of the OTGW”

From what I’ve seen, the Nodo shop variant of the OTGW uses SMD components and therefor a slightly different PCB, but it still uses the same PIC processor. So, in general: yes, with a PIC programmer it would be possible to replace the firmware.

“Or do I need only the boiler to support this? (Since it’s the boiler that provides this info)”

While it is indeed the boiler that provides this info, the thermostat needs to ‘ask’ for it, so that the OTGW can pick up the response message sent from the boiler. So if the thermostat never asks for the water pressure, the boiler is not going to report it.

And as far as I know there is no command available on the OTGW to have it request the water pressure. However, there is an AA (Add Alternative) command which may be helpful in this situation. I have no experience in using this AA command though.

Of course getting a thermostat that supports reading water pressure should also work.