Problems with Pentair binding

Looking for some ideas on how to get this working. I have a USB to RS485 adapter plugged into my Raspberry Pi, running the latest version of Openhab2. It is working fine - I can run

od -x < /dev/ttyUSB1

and i see the correct binary output flowing from the device. I have added the Pentair binding and I see a Serial Bridge thing, which I have configured to use /dev/ttyUSB1. It remains in UNINITIALIZED status. I have tried to remove it so that I can add it again, and the remove just hangs. I have Force Removed it and re-added the Serial Bridge thing, but it still sits in UNINITIALIZED status.

Looking at the log after I add the Thing I see:

==> /var/log/openhab2/openhab.log <==
2018-12-30 11:48:21.470 [WARN ] [ore.thing.internal.ThingRegistryImpl] - Cannot create thing. No binding found that supports creating a thing of type ‘pentair:pentair_serial_bridge’.
2018-12-30 11:48:44.539 [ERROR] [ersey.server.ServerRuntime$Responder] - An I/O error has occurred while writing a response message entity to the container output stream.
org.glassfish.jersey.server.internal.process.MappableException: org.eclipse.jetty.io.EofException
at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundWriteTo(MappableExceptionWrapperInterceptor.java:92) ~[?:?]
at org.glassfish.jersey.message.internal.WriterInterceptorExecutor.proceed(WriterInterceptorExecutor.java:162) ~[171:org.glassfish.jersey.core.jersey-common:2.22.2]

How do I fix this?


Did you add your openHAB user to the tty group

No, however the openhab2 install seems to do this anyway, my zwave connectivity on /dev/ttyUSB0 works fine and the output of groups openhab shows membership of tty.

thanks

EXTRA_JAVA_OPTS

set correctly?

I don’t know what to set it at. I have tried -Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB1 and -Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyUSB1

Restarted openhab after both changes and and my zwave gets screwed up - that shows up as uninitialized too.

Sorry, no idea then.

thanks. I managed to get -Dgnu.io.rxtx.SerialPorts=/dev/ttyUSB0:/dev/ttyUSB1 working. zwave showed up, but the pentair binding is still uninitialized, whatever that means. And I still get this error in the log

2018-12-30 13:50:00.015 [WARN ] [ore.thing.internal.ThingRegistryImpl] - Cannot create thing. No binding found that supports creating a thing of type ‘pentair:pentair_serial_bridge’.

Using Windows, but I have roughly the same issue with the pentair binding. I can run the node.js pool-controller binding against this exact setup, and I get all of the info, can control lights, pump, etc. I am running 2.4.0 version of OpenHAB. Is anyone successfully using this binding? I have tried configuring through paper as well as via manual things configuration.

I have a Pi that is running the node.js code and it works fine. I just wanted to put everything under the openhab umbrella. However, not only does this binding not work, if you read the notes carefully it seems to be readonly, so it’s pretty useless even if it did work. I’m going to stick with the node.js code instead.

Well, I think I found one problem with the serial binding… PaperUI configures it as pentair:pentair_serial_binding, whereas the documentation has it as just pentair:serial_binding. I have tried running it with the IP binding, using comsocketbridge (windows equivalent to ser2sock), and I don’t get any errors about initializing, but I also don’t get any useful information. Anthony, have you tried using the IP binding with ser2sock running locally?

I have not tried that, seems like too much work when I have the cable from the controller right by the openhab Pi. When I’m back at my house, I can try renaming the serial binding and see if that works. Will be a week or so.

ok, so a year has passed and I’ve now got back to looking at this!

I upgraded to 2.5.0, but I don’t think that was necessary. I had finally got around to using configuration files vs. PaperUI, so I created a pool.things file:

Bridge pentair:serial_bridge:1 [ serialPort="/dev/ttyUSB1" ] {
    easytouch main [ id=16 ]
    intelliflo pump1 [ id=96 ]
    intellichlor ic40
}

I had to add /dev/ttyUSB1 to EXTRA_JAVA_OPTS and also chown /dev/ttyUSB1 to root:dialout and chmod it to 666. Then this started working.

I was able to get the binding to display information about the pool, but not control it. Maybe this is because this binding is for the Pentair Easytouch and I have a Pentair Intellitouch controller.

Oh well, at least I can still use nodejs PoolController!

1 Like

Did anyone get it to actually control the Pentair stuff? I can read all data, but there is no controlling it.

I tried it again recently and it’s still read-only. Waste of time, just use node-js-poolcontroller.

Sure, but it would have been nice to get it working with the binding. Is the person who did the binding reading this?

Hi Christian/Anthony - I have not been monitoring this forum. If you would like help in getting this running, let me know.

Jeff

Hi Jeff, yes, I would appreciate that!

Thanks

Chris

Hi Jeff,

I’m also interested in getting this up and running as a binding. I installed a TCP bridge, I can see output via netcat, and my bridge thing is online as green and so is my controller.

However, I get no numbers, and when I send a command to a switch, it doesn’t do anything.

Also, I have the RBG lights if a dump of that communication would be useful.

-Rich

I have this up and running, and it’s working very well.

The developer, Jeff, has a more up-to-date version that I needed in order to get it working. That’s version 2.5.7.

It’s important to note that Jeff is just some volunteer who’s writing this for free. He has some pool controller setup, but he doesn’t have EVERY pool controller setup. That means that the community needs to help him out by sending him some logs and reports when it doesn’t work. That way, he can update the binding and make it better.

Here’s what I did to get it running-

  • Purchased a RS-485 Bridge- https://www.amazon.com/dp/B07VWPVVNP/
  • Connected to the bridge using nc IP.OF.My.Bridge 10000 | xxd
  • Noticed no “FFa5” in the output, so I switched the serial lines on the bridge. For this particular controller A is Data + and B is Data -
  • Uninstalled the official OpenHAB binding, and copied the new jar from Jeff into my addons folder.
  • Things appeared in my inbox and I added them.

My EasyTouch Controller, Intelliflo, and Intellichlor were all found. The easytouch is 90% good, but it doesn’t read Feature Circuits yet. However it can control them. The Pump and Intellichlor are like 50% complete in their parsing and control.

The biggie though- I can control my spa, turn the lights on and off, turn the jets on and off, control the waterfall, see the temperatures…all through openhab. That’s like 99% of my use case. The rest is like…ok, let me setup an email so I know when my pool needs more salt. That’s some gravy right there, and it’s close, Jeff just needs more support in people sending him logs and bug reports to work out all the kinks.

What I can’t do yet is run a cleaning cycle from OpenHab or check my Intellichlor aside from my current salt concentration. I’m sure that’s coming though. Jeff doesn’t have all these components, so he’s somewhat swinging in the dark with regards to parsing them. I’m actually surprised as much parses correctly as does without him having an actual device.

Is the new version installable via OpenHab? I can try it next time I’m in Florida. I have a USB RS485 connector that currently plugs into my RPi running the node-js poolcontroller.