You should be able to use EnergyManagementSystem to do this:
Create an exterior equipment. I think you'll need to use Exterior:Lights
here, because it has an actuator called "Electric Power", Exterior:FuelEquipment
doesn't look it has one. See source: ExteriorEnergyUse.cc#L316[1] . Set the Exterior:Lights
End-Use Subcategory to "Water Pump" or whatever you want in order to have the right reporting in your eplustbl.htm.
Add an EMS Sensor for your flow rate, probably capturing the WaterUse:Storage
's output variable Water System Storage Tank Inlet Volume Flow Rate [m3/s]
(ref here)
- Declare an EMS Actuator for your chosen Exterior equipment's Electric Power.
- Write an EMS program that will compute the power used by the pump based on the flow rate given by the EMS Sensor.
Debug, look at outputs.
I hope it helps.
[1] You could make sure: try with Exterior:FuelEquipment
, request the EMS actuator dictionary (see here), check if there is indeed an actuator for this object or not.
Here's a completely untested, written on the fly and manually (problems/typos expected), EMS snippet. I think the calling point should be about right, but you may have to change it.
Exterior:Lights,
RainWaterPump,
[...],
Rain Water Pump; !- End Use Subcategory
EnergyManagementSystem:Actuator,
RainWaterPump_ElecPower_Override, !- Name
RainWaterPump, !- Actuated Component Unique Name
Exterior:Lights, ! Actuated Component Type
Electric Power; ! Actuated Component Control Type
WaterUse:Storage,
RainWaterTank, !- Name
[....]
EnergyManagementSystem:Sensor,
RainWaterTank_OutletFlowRate_Sensor, !- Name
RainWaterTank, !- Output:Variable or Output:Meter Index Key Name
Water System Storage Tank Inlet Volume Flow Rate; !- Output:Variable or Output:Meter Name
EnergyManagementSystem:ProgramCallingManager,
Model_RainWaterPump_CallingManager, !- Name
AfterPredictorAfterHVACManagers , !- EnergyPlus Model Calling Point
Model_RainWaterPump; !- Program Name 1
EnergyManagementSystem:Program,
Model_RainWaterPump , ! Name
IF RainWaterTank_OutletFlowRate_Sensor > 0,
! ### IMPLEMENT PUMP POWER CALC HERE, assuming 30 ft of head and 0.5 total pump eff ###
SET RainWaterPump_ElecPower_Override = RainWaterTank_OutletFlowRate_Sensor * 89,672 / 0.5,
! This IF/ELSE statement is useless here (if flow is zero, power is zero), but I wanted to show the syntax
ELSE,
SET RainWaterPump_ElecPower_Override = 0.0,
ENDIF;