Closed theRealMCQwerty closed 4 years ago
Here is where we are up to with this and what we have learned thus far.
[255, 0, 255][165, 1, 16, 12, 82, 8][0, 128, 216, 128, 57, 64, 25, 166][4, 44]
. There is one other known piece of equipment in the wild that broadcasts on the 12 address and this is the new iChlor cell. While the message structure is different we suspect this is also a hail indicating to the OCP that it is available to be commanded.If anybody has any ideas or wants to help coding on this project let me know. Given the sheer number of possible messages out there, sending random messages to the valves is probably an exercise in futility. I really want to see an iChlor attached to IntelliCenter to see that communication. Perhaps it will yield a nugget that will break this wide open.
r., So based on your outstanding write up of the current status of this project, would it be helpful (and feasible), for one to get a hold of an iChlor temporarily, connect it up to the IntelliCenter and grab a capture? I wonder if it would yield the necessary messaging without having to actually plumb it in? Just thinking out loud. I'm certainly willing to help if I can.
r., Another question on this issue. If you could get anything you needed from Pentair to make this work, what would it be? In other words, what specific question(s) would you ask the Pentair Engineer and what information/data would you be asking for exactly. Thanks!!
I am not even certain iChlor would yield any results. We do know that iChlor still communicates using the same protocol as IntelliChlor but the unit has additional features that are not broadcast through that protocol. And it periodically broadcasts a message on the 12 address.
However, I don't think an unplumbed test bed would yield the results we are looking for. The idea here would be be go all out Jane Goodall and observe how it behaves within the troop. A test bed that doesn't include activating the flow sensor or temperature sensor would be like throwing bananas at it through a chute. In the end, it may just act like any chlorinator member but who knows maybe just maybe the silverback acknowledges it differently within the IntelliCenter troop.
If the Pentair engineers were to cough up the protocol for IntelliValve that would be spectacular. However, I wouldn't hold my breath on that one. That would be way above their pay grade. While I would be surprised to get a response, I would ask Pentair for documentation on what messages are requested to IntelliValve and what messages are responded from IntelliValve. Simple as that.
I can't imagine them giving the information because innovation requires investment and without it we simply have cool ideas. Cool ideas are driven by capital. Those that can do the technical work have to be given that capital so that they can work on the idea and still fill their bellies. Without it we have cool ideas and hunter-gathering.
While I can imagine that the engineering team is under intense pressure from the front side and the back side of the house to stabilize everything that has been released, IntelliValve doesn't represent pressure relief within my field of view. If you think the pressure from the front side of the house is intense. Imagine the investment, required to get IntelliCenter packaged into a cardboard box with a black and white label. The life of the entire division depends on its success. Perhaps there is some pressure from the back side of the house that we cannot see. Then again looking up someone's backside doesn't make any sense.
Given the current state of the IoT space It is completely normal for them to be in a one legged butt kicking contest to reach some stasis with things like Alexa, mobile apps, and platforms. All of it is currently very fragile and is very complex. A good indicator of this is that failure is often not complete, rather it is some form of annoying unusable state when it occurs.
Pentair will get it figured out but only if they don't run out of money. Right now service based software is a capital suck. The front lines are so far away from the supply zone that a washed out foot bridge can bring everything into chaos. The only folks really succeeding in this right now are platform host companies. I wonder why everything always gets blamed on capacity when latency is the true problem.
If the Pentair engineers were to cough up the protocol for IntelliValve that would be spectacular.
Heck, just ask them for the whole kit-n-caboodle for the specs. There's still stuff we don't understand about the basic 2-status packet. ;-)
I did ask (again).... They are "discussing" it.
Hi all... On Friday, I received a message on TFP from a gentleman, that provided some new information regarding the IntelliValve.
I provided him with this link and suggested he come here to share the information. I can only assume that he is busy these last few days. I messaged him back this afternoon and advised that I would share the following information in order to get this out to the rest of the applicable folks here. I'm sure he will be along shortly... I'm hoping that the following information can provide some additional pieces to this puzzle. Thoughts?
**Any luck decoding the intellivalve, I have three now and just ordered a fourth one to take apart and see if i can download the program directly form the controller chip. I am a computer and electrical engineer. I have hooked one up and here is what i got.
FF 00 FF A5 01 10 0C 52 08 00 80 D8 80 39 E7 06 64 04 7E
I have decoded the following FF 00 FF A5 = preamable 01 = version 10 = destination 0C = source 52 = command 08 00 80 D8 80 39 E7 06 64 = data packet 04 7E = Checksum
as for the data packet 08 =home value of 0 D8 = xxxx value of 80 39 = xxxx value of E7 06 = diverter end position value of 64 = 100%**
He got "I am Groot".
[255,0,255][165,1,16,12,82,8][0,128,216,128,57,231,6,100][4,126]
. Here it is in decimal, the first 8 is actually the data length not part of the data itself.
I am building a purpose built app and have hooked another pi to see if I can send more messages faster to the valve. As it stands I have tried several hundred thousand combinations and that damn tree keeps saying "I am Groot". I will learn the language.
R., Ah, gotcha... Hopefully you have some success with the app! Thanks!!
I was wondering if Pentair designed the Intellivalve to operate similar to how the intellibrite and globrite lights work. They pulse the power and the lights react based on the number of pulses. It could be that the only purpose of the RS-485 is identification and feedback of position. So pulse the line that powers counterclockwise rotation 5 times and the valve moves 5 positions, or pulse the line 10 times in the clockwise direction and the valve moves 10 positions in that direction. Solid power in either direction moves the valve to the preset. Just thinking out loud. Pentair seems to go for the simplest approach. Even simpler than Morse code.
@thumbnut I would highly doubt that one. In fact I don't think the brain-dead on/off protocol was even a Pentair creation as many of the lighting products out there use the on/off sequencing (gawd why not dmx). This kinda smacks of the Fiberstars stuff that was going around at the time it was all created. This was back when colors were selected on a color wheel and Spectrum Amerlite was the new tech. On/off was the way to tell the stepper motor to stop after a specific period of time.
Here are the things that I am pretty certain of.
Actually I am going to disassemble one of my valves. hopefully it isn't potted so i can get at the control board. The patent application shows a fairly detailed assembly. Will let you know when i get it apart. hopefully they used a standard chip.
Also the documentation on the pentair controller says a max of four valves on a rs485 channel. Not sure that will help
@Amigaman68,
Could you point me to the documentation where you found that limit?
Are you referring to the 4 valve limit as the Intake, Return, ValveA, and ValveB? If so that is the limit as it relates to the number of stock valve relays found on IntelliTouch, EasyTouch, and IntelliCenter. For IntelliTouch you can add 3 additional relays and in IntelliCenter you can add 6 additional per personality board. There is an apparent limit of 1 valve expansions per load center but I think this is because of the power draw potential of moving that many valves at once. Each valve can draw 750mA continuous and it is an inductive load. While the limit appears to be 7 total for all configurations in IntelliTouch the limit for IntelliCenter is supposed to be 26 yet mathematically you come up with 28 if you add up the expansion centers and relays. In order to get to 26 you would have to remove the Intake/Return out of the equation for a shared body. Btw this also coincides with the lettering scheme found on the valves A-Z.
I would be very interested to hear your findings on your valve deconstruction project.
I based it upon the IntelliCenter Control System Installation Guide, but i agree if we can address it, then that may just be a limit of the intellicenter
@rstrouse,
I have 13 valves that I need to hook up. One is a standard Intermatic and 12 are IntelliValves. I have been told by numerous Pentair techs and engineers that we cannot break the 10 valve total barrier on RS485, which includes the Intake, Return, ValveA, and ValveB. The only way around as I understand is to use relays, which bypass the RS-485. I have the Intellicenter with i10PS personality module and valve expansion board. I had also purchased an expansion center with i5X and a second valve expansion board, but was told the second valve expansion board would not be seen by the automation. The best I could do is make use of the extra AUX circuits on the expansion panel to run valves. I ended up returning the expansion panel and boards. Do you know of any example where more than 10 IntelliValves have been operated on RS485?
As far as i know, no one has controlled the valves via rs485 yet except pentair. all anyone has done has gotten i am grout message. They wont release the protocols for communication. which is why i am taking one apart and hoping i can identify the controller chip, and download the software from it and disassemble the code, and figure out the protocols. Which should be fun because i haven't done assembly language in a long time, but i think i am up for the challenge.
the patent application contains a lot of useful information.
@thumbnut,
Actually, I think the 10 valve limit is due to the traces on the IntelliCenter system. I haven't spent any time looking too deeply at it, but the I/O channels are probably the limit. If you add an XP this gives you additional I/O channels. In fact the standard names for all valves > 10 start with (XP1), (XP2)... etc. I think this is a hardware not a programming limit. To that end I suspect there are some power limits with the transformer and traces as well. Wanna see magic smoke draw 26 amps on that transformer. Good thing there is a breaker on it.
I agree that the way around it is using relays but if one were inclined that doesn't actually mean direct circuit relays for the valves. These could be triggered from the circuit but emitted to another controller or even relays hardwired to the load side of the circuit. My design could benefit from some variable valving but I have gotten around most of that with variable speed pumps.
So far I have run several million messages to the valve to see if I can get it to respond. My fear is that there is some sort of user interaction required to get it to address. So far everything is being done in auto mode but it may require the valve to be in off or set to get it to respond. I know it's a fools errand.
So, i us a modicon plc to run my setup, so i am using relays until i can get at the protocols. what makes me mad is pentair wont release the protocols, i already bought the valves from them.
i opened it up PIC16F1717_8_9-data-sheet-40001740C.pdf what i have learned so far
As the French would say moi aussi. I don't have any doubt that the protocols will never be released. In fact the so called API rumor will probably only see the light of day to peeps like Control4 which by the way is such a small subset of the product. I might be pleasantly surprised but that old-dog spirit of obscurity is so hard for engineers to give up. What they fail to realize is that opening it up would put a death nail in competing platforms. These systems are often sold by a network of pool builders that don't understand all the tech. However, customers tend to drive that with the "is it possible to" statement. At some point getting the deal takes precedence over incentives to the dealer.
My approach is depending on things that I have learned from the RS485 protocols. Groot fits the mold but there are other protocols on this bus. While theoretically it could communicate on another channel or even using a start/stop marker it is unlikely.
we are about to find out i think i see a serial port on jp2
the five pins are a serial port startin on the bottom pins bein 1,2,3,4,5 and 5 being at the top. pin 4 connects to pin 28 which is ICSPDAT, pin 5 connects to pin 27 which is ICSPClK, and i only need to connect to pin 4&5 to be able to access the program. will need to order pic programming software and serial converter
I just ordered the programmer, but i am going away so I wont be able to continue till next week
If and when we do crack the IntelliValve protocol, will it be possible to add code to run them directly from poolController? If we don't, will it be possible to add a rpi and some solenoids to extend the number of valves we can control? I would much rather buy a cheap rpi, a 24v transformer, and some relays, so I could at least have my own direct control of any amount of valves I have, rather than paying a thousand to Pentair for another fairly useless motherboard with a display attached so I can control some relays.
Once we see the level of control we can make a determination as to which way to go with it. Perhaps we end up with valves AA-ZZ as a 3rd type of valve. Either way the valve relay will be needed as the protocol won't actually spin the motor. Currently you must energize one or the other load to get the valve to move to an endpoint but maybe for light duty you could simply flip the reverse direction bit. Even so, today you can control a valve relay from PoolController through the interface bindings when a circuit is activated. What we are looking to do here is control those endpoints.
I think the 10 valve limit is due to the traces on the IntelliCenter system.
I think I accidentally, (well ignorantly), tested this. I currently have 2 of my 3 valve expansion modules installed. If use 5 of the unaddressable connection to provide power to 5 intellivalves that just sit in service mode and make me grumble every time I walk over to manually push their buttons. The 6th connection on the second expansion board is connected to a cable that runs to my junction box where I use it as a power feed for my other 9 intellivalves. When I first hooked it up at least 6 if not all 9 of them started moving. So one connection can power at least 6 valves all at the same time. Not sure what would happen if I tried more than that, but I don't have that many hands to hold down buttons on valves in service mode (grumble!). Also, interesting that a valve expansion board that is unaddressable (although detected) by the main system provides power to the valve connectors. I have a spare 24VAC transformer so I think I need put that in my junction box to run the extra valves rather than pushing my luck. I have been delaying all of this since I really don't want to cut my cables and wire them into an ESP8266 controlled relay array. RS485 control woudl solve so many of my problems. Still holding out that @rstrouse will break the code and make that groot talk sense. @Amigaman68 - good luck with your tear-down operation. I love the Blitz spirit on this one!
Yep the message generator has been chumming the RS485 waters and has dumped over 2 million rotting fishes in the vicinity of the valve. Narry a peep out of it yet. It will continue to run... lets hope we need a bigger boat.
On a side note I have added some code that may give some relief to the extra valves and keep you from wearing a path to the pad. This involves adding another controller that is set up to get http requests from pool controller. A description of its operation can be found here.
This should allow you with some minor programming and cobbling of existing components to add as many valves as you want (actually I set an artificial limit of 100) to your pool definition. poolController will emit the commands regardless of where the circuit is triggered. It will act just like a valve defined on IntelliCenter except the control will come from poolController.
This all reminds me of The Imitation Game and Alan Turing trying to break the unbreakable Enigma code.
Yeah, we have eyes on. While, @Amigaman68 is waterboarding, I continue to try to get one drunk. How messed up would that be if the only thing it knows is "I am Groot."
Two valves walk into a bar. One of them looks at the bartender and says "I am Groot."
So I bought a pi compatible relay and will hook it up to a test bed pi probably next weekend. That way I can follow along with you guys while grooting. Maybe I'll create a valve relay controller server that at least works with a pi and can be easily configured.
Below is a user defined valve that is set up to operate on gpio pin 25. Currently it sends an http request off into the ether but when I get the relay hooked up, there should be someone out in center field to catch that ball.
Which relay did you get? I am looking to do something similar. I was hoping to bypass the pi and go straight to a web controlled relay, but I could go with the pi. I need 9 or more relays and there is a 16 channel relay that would work, but I have read from reviews on Amazon that it does not play nice with rpi. https://www.sainsmart.com/products/imatic-rj45-ethernet-wi-fi-control-board-with-integrated-16-ch-dc-12v-relay
I simply bought a hat for now with only 3 relays and it is stackable. You can go directly to a web controlled relay as it should work. I figured I would fart around with a board that is known to use 3v3 signal. The problem with most of these is that they are 5v signal and are not well documented but there are a whole lot of tutorials out there to get you going. I may add i2c to the project to be able to read temp sensors and the like at a later date. For now I will be coding to straight GPIO.
So, Have not been able to download the program yet. it code locked, amd going to have to try voltage glitch the pic controller. its going to take a while.
Also i thing they may have put a false marking on the chip.
I figured they probably flipped the copy protection bit.
I have to build a setup to voltage glitch it while its booting
I like this one. I am trying to keep everything in the low voltage side of the IC Load Center. It looks like this will work.
@thumbnut I saw that one but never saw a place where I could actually get it before the sun starts making carbon. That does look like a compact little unit.
I ordered the last one they have but they will get more in a few weeks. It has a neat little LED hat that goes with it. I was surprised to see that it allows you to stack up to eight high. It must be great for the extreme holiday light enthusiasts.
user defined valve that is set up to operate on gpio pin 25
This is cool. I hooked up an 8-channel relay I have been meaning to connect to an ESP8266 and control via ESPHome but decided to give this a shot first since my pi is already out on the pad.
Pulled down the latest dashpanel and also the latest next
branch of pool controller. Added a virtual valve on GPIO17 and got this:
ApiError: Valve Id has not been defined
at /home/openhabian/nodejs-poolController/controller/boards/SystemBoard.ts:2389:35
at new Promise ()
at ValveCommands.setValveAsync (/home/openhabian/nodejs-poolController/controller/boards/SystemBoard.ts:2388:16)
at /home/openhabian/nodejs-poolController/web/services/config/Config.ts:222:52
at Layer.handle [as handle_request] (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at next (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at /home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:335:12)
at next (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:275:10)
at /home/openhabian/nodejs-poolController/web/Server.ts:292:21
at Layer.handle [as handle_request] (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/layer.js:95:5)
at trim_prefix (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:317:13)
at /home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:284:7
at Function.process_params (/home/openhabian/nodejs-poolController/node_modules/express/lib/router/index.js:335:12)
What did I mess up?
@theRealMCQwerty you are just getting a little bit ahead of me. Don't get me wrong I really appreciate you grabbing this by the horns. The IntelliCenter code is just grabbing the configuration before it gets added and I will be posting up some final changes for the config shortly.
@rstrouse got it. 👍 Don't let me disturb you from your grooting. That is the holy grail, raspberry pi GPIOs are pretty nice in the interim though 😄
Also, (and this is certainly a distraction), any chance you could add support for inputs? The DHT22 (temp and humidity) would be fantastic. When I move the pi into a box with the relays this thing is going to get pretty hot and I would like to activate a 5v case fan based on a temp reading inside the box. It would be cool to also have a DHT22 outside the box to get a second opinion on air temp also as well as humidity.
I could of course do all of this with an ESP8266 but since we have the pi just sitting there and it has wired ethernet vs wifi on the ESP then it would be a neat solution. 😃 Would also convince me to finally spend the $ on a poe hat for the pi too 😉
Also, (and this is certainly a distraction), any chance you could add support for inputs? The DHT22 (temp and humidity) would be fantastic. When I move the pi into a box with the relays this thing is going to get pretty hot and I would like to activate a 5v case fan based on a temp reading inside the box. It would be cool to also have a DHT22 outside the box to get a second opinion on air temp also as well as humidity.
How fun is that. I'll see what all that takes. My foray into pi GPIO will be a learning experience. About to hit the 3M message mark on grooting. Bear in mind the total possibilities are psychotically high and 3M is a drop in an ocean. The approach however is to groot potential likely suspects so it's not entirely random. I'd really like to see @Amigaman68 have some success so at least we can limit the incoming byte signatures.
About to hit the 3M message mark on grooting.
I think you said you are trying first with the IntelliValve in service mode correct? Is this setup something us kids can try at home? Maybe I could run the same message list but with my valve in Auto mode? At least we could shorten the timelines a bit and if we had enough volunteers maybe message batches could be assigned to each grooter. Bit like a bitcoin mining pool. You could call it Mt.Groot..... ok maybe that's not such a great idea 😄
@theRealMCQwerty I am hitting it in auto mode.
Here is the setup that it needs:
If you have such a setup I can package it up but it will take some time. Git makes me want to sky scream.
Do you have such a setup?
Continuation of closed issue https://github.com/tagyoureit/nodejs-poolController/issues/116
The IntelliCenter is supported but the IntelliValve is not. Or at least not supported via RS485 for incremental control of the valve actuator position.
@rstrouse has made some good progress but with the previous issue being closed there is nowhere to continue the discussion on this particular issue.
@rstrouse - do you have an update on current state? Is there anything I can do to help?