I'd say you're doing great stumbling in the darkness! Fortunatly, KNX is open source so the official documentation would be overwhelming. However in this case we don't need to invent the wheel again, because there are a couple of working librarys to use. My idea was to taking the easy way out on this, but since you're a guru you might looking for challenges in life? This library for example works good:
https://bitbucket.org/thorstengehrig/arduino-tpuart-knx-user-forum
About the Rego, it's a closed protocol not meant for public. The Rego600 series are quite old (my HP is manufactured 2007) and retired since many years. Newer controls for IVT/Bosch heat pumps use CAN or Modbus depending on which controls used and are slightly more convenient to interact with, compared to this dinosaur we're dealing with.
I think the availble documentation is not far from complete in terms of whats actually useful, because there aren't many things to do in the physical client-menus either, and some things really isn't needed to be controlled.
The installer-menu is a bit more deep going and let you change advanced parameters, that you actually shouldn't touch once the pump is properly configurated for the site.
In theory, it would be possible to simulate menu navigation by sending commands to the Rego and read the return/display-lines (I guess this is how the physical display communicate with the REGO-box through the RJ45/Cat cable that connects them together)
Even though it would be cool, I think this would be aiming way too high and I can't really see the need for it.
Regarding controlling the REGO, imo there are only a hand full of user-parameters that could be handy to set. But thats about it. For instance the target temperatures for some of the sensors are calculated by the REGO depending on Out temp and room temp for example. So they would be read only. Heat-curves would be the thing to write, as this is what the REGO use to determ what target temps would be needed to keep the house at comfortable temperature.
The REGO binding for OpenHAB linked below lists the useful registers to write to.
Some insipration projects, you might have stumpled upon some of them already.
-
rego637_v304/rego_modify_heatcurve.c at master ยท johellstrand/rego637_v304 ยท GitHub
In this project, he seem to have been able to set the heat curve but also read out last error and previous error. -
GitHub - garo/cottage-iot-files: rego600-control
Seem to be a Python program or something, looks like he is using the keys on the display to navigate around I believe. -
GitHub - hlounent/rego: Tools for interacting with Rego heat pump controller
Another project, not sure if it's Rego 6xx or more modern 800/1000. -
https://github.com/openhab/openhab2-addons/tree/master/addons/binding/org.openhab.binding.regoheatpump
OpenHAB is a HomeAutomation dashboard. It works with binding, for example this Rego binding. They also have KNX binding, Z-wave, Zigbee, 1-wire.... you name it, to make everything interact with eachother. This was one of the routes I were considering until you came in BlackFin. I think Arduino way is more fun, since I already have a Visu-server for the KNX I really don't want more servers, rather use microcontrollers for theese tasks.
This binding contains alot of Rego functionality, perhaps it could give some insights?
Since I'm familiar with the heat pump, and know what all the sensors are. Would it benefit you if I do a write-up explaing the registers and how they are related to eachother?
Perhaps we should start with reading out all the read-only registers (as listed in oHAB binding) and output them on serial only if the value have changed?
Attached pictures of Display, REGO box and the heat pump.
Thanks again Blackfin!