There are two DAC variables: drainPumpDAC and drainPumpDACSet. The first should be set here (as in RPM set function above). The second should be set from the off state as you've stated.
Measured speed is not kept - only broadcast. Are there any checks to be added to this monitor function? Should measured speed be checked vs. commanded speed? Consider keeping measured speed in an override array if you are going to check it.
Why is this here and also outside of status in an override array? Can these be consolidated? Can state be overridden? I think it should be something that Dialin user can set (by requesting on or off) but not override.
Change PWM in comment to PWM duty cycle %. This equation looks upside down. If you want a conversion factor from °C to duty cycle %, you will want the % on top (i.e. °C x % / °C = %).
In f/w, I like to keep percentages as per unit so that the math works - e.g. if I need to apply percentage to something I can just multiply it directly. On Dialin side, I kept as percentage.
1. Why dialInData is not a pointer but line below *dialOutFlowData is pointed? 2. Why one's name does not include the keyword "Flow" and the other does?