Speaking of heat pumps and granular control, I recently figured out that some Midea heat pumps (usually sold rebranded to various brands) contain two interfaces to get and set detailed information:
1) Detailed diagnostics i.e. RPMs, feeds, speeds, currents, temps etc can be read from the high voltage signal line between the indoor and outdoor unit - there is an official tool (search "Dr. Smart Midea" on YouTube) that does this. If you look in the right places, there is a PowerPoint with a schematic of the PHY that you need to interface with this using a LV isolated controller
2) The outdoor unit can be driven manually using the same tool using an i2c port that is on the PCB on the outdoor unit
I have the new generation of their Dr. Smart tool, which I haven't had the time to thoroughly test or document. If there is interest I will likely try to reverse engineer and document these protocols properly.
> "I want to be my own mechanic, and if I'm not that mechanic I want to be able to have anyone be that mechanic."
> "Do you want to know what the active airflow rate is? I want to know what the active airflow rate is. Do you want to know power consumption? I want to know power consumption. Do you have a way to write unique schedules/programs that get executed on the heat pump? I want a way to write unique schedules/programs that get executed on the heat pump."
There's one feature of this diagnostic interface that I really really like.
It allows you to "drive" the hardware of the unit manually, like Program Auto mode on a camera. You can manually set the frequency of the compressor and fan, and the control board will continue to enforce safeties.
I haven't tried yet, but something I really want to try to implement myself is "frequency lockout". This is a common feature on commercial variable frequency drives. I noticed that under some operating conditions, the unit vibrations resonate with the building and create unpleasant sounds - I'd like to program it to never dwell on that frequency and skip over it.
> The desire is to have any control/knowledge you'd want to have as the creator/developer.
While I was exploring this, I had this in mind constantly. I definitely had this diag interface in mind when I was selecting a unit.