Question-and-Answer Resource for the Building Energy Modeling Community
Get started with the Help page
Ask Your Question

Revision history [back]

You should be able to use EnergyManagementSystem to do this:

  • Create an exterior equipment. Try with Exterior:FuelEquipment, request the EMS actuator dictionary (see here), check if there is indeed an actuator for this object. Worst case, I am 100% certain there is an Actuator for "Exterior:Lights" called "Electric Power" (set the 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 Outlet 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.

You should be able to use EnergyManagementSystem to do this:

  • Create an exterior equipment. Try 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 Outlet 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. Worst case, I am 100% certain there is an Actuator for "Exterior:Lights" called "Electric Power" (set the End-Use Subcategory to "Water Pump" object 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 Outlet 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.

    not.

    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 Outlet 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 Outlet Volume Flow Rate; ! Output:Variable or Output:Meter Name
    
    EnergyManagementSystem:ProgramCallingManager,
      Initialize EMS for Run , ! 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;
    

    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 Outlet 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
    !- Name
      RainWaterTank, !                                     !- Output:Variable or Output:Meter Index Key Name
      Water System Storage Tank Outlet Volume Flow Rate; ! !- Output:Variable or Output:Meter Name
    
    EnergyManagementSystem:ProgramCallingManager,
      Initialize EMS for Run , !                         !- 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;
    

    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 Outlet 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 Outlet Volume Flow Rate; !- Output:Variable or Output:Meter Name
    
    EnergyManagementSystem:ProgramCallingManager,
      Initialize EMS for Run ,                         !- 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;
    

    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 Outlet 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 Outlet Volume Flow Rate; !- Output:Variable or Output:Meter Name
    
    EnergyManagementSystem:ProgramCallingManager,
      Initialize EMS for Run ,                         !- 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;
    

    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 Outlet 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 Outlet Inlet Volume Flow Rate; !- Output:Variable or Output:Meter Name
    
    EnergyManagementSystem:ProgramCallingManager,
      Initialize EMS for Run ,                         !- 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;
    

    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,
      Initialize EMS for Run , 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;