after a while I re-setup my Pi with the pentair binding to control my pool system. I had to replace the old serial adapter, re-wire and moved from OH 2.5 to 4 in between.
Raspberry Pi
OH 4.0.2 with Pentair binding
Ip2Serial adapter with WiFi (USR-W610), link is up
serial port is set uo 9600,8,n,1; no flow control, RS485 mode
no other serial device
I have a Pentair EasyTouch controller with PentAir pump and a remove, system operated in shared equipment mode with a spa. I had this setup running at that time.
The serial adapter shows “Link Up” (WiFi) and I can ping it. I see frequent RxD.
nc shows the following traffic:
Which version on the binding are you using? There are quite a few requested changes before I check in the latest, so the one in the distribution is pretty outdated.
I haven’t tested with OH 4.0 yet, so I don’t know if there is some incompatibility.
Is the serial data not being received - or can you not write data?
Hi, OH4 is baed ob Java 17, so I doubt that the OH3 version starts (Java 11), Do you mind to create a version, Changes should be minimal (copyright head in source files, new addon.xml - you can take it from the distro). I created a script for me that converts from OH3 to 4, so I could maintain a single codebase.
I have only tested on my development platform with the ip_bridge since I haven’t migrated my home setup to OH 4.0 yet.
If you are starting from the binding that was in the openhab distro, there are quite a few “not backward compatible” changes. Overall the binding should be more robust and capable (see https://github.com/openhab/openhab-addons/pull/13485)
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.pentair [285]
Unresolved requirement: Import-Package: javax.measure; version="[2.2.0,3.0.0)"
at org.eclipse.osgi.container.Module.start(Module.java:463) ~[org.eclipse.osgi-3.18.0.jar:?]
at org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:445) ~[org.eclipse.osgi-3.18.0.jar:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365) ~[?:?]
at org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316) ~[?:?]
I’m wondering, because of javax.measure. You may add this to pom.xml
It sounds like the binding is not receiving traffic - which was the same issue you had before, correct? The controller and pump things will stay in the UNKNOWN state until it sees a status packet from the ip_bridge. Are you configuring via text or did you add the controller & pump through the UI?
No with the old version the binding was receiving FFs, whereas nc shows at least different codes (but may be just protocol leaders with FF as payload), see Pentair: Serial connection not working
I setup the things using the UI, no text files.
EDIT: ok, it seems debug levels have changed. If I put the binding to TRACE log I see
The old one was same brand, different model. It was running well under OH 2.5 and then breaks. It took me a while to work on that and the old model was no longer available.
Firmware (UI etc.) looks the same beside new functions. It supports transparent mode, which should be the required one (others are HTTP client, command mode…). Serial is set to 9600,8,n,1 and I see traffic (also RxD blinks; I connected green to A and yellow to B)
Since RS485 uses differential signalling, you could try to swap the green/yellow connections. In fact, looking at your bit-stream, i see a lot of repeated 00 (vs. FF) - its possible your entire bit-stream is inverted. Just something to try.